UNPKG

ns-components-angular

Version:

Angular Wrapper Components for NSComponents

1 lines 190 kB
export declare const NSTextBoxCode = "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\nvar gridRef = require('./nsGrid.min.js');\r\nvar NSGrid = gridRef.NSGrid;\r\n\r\n\t\t}\r\nvar NSList = (function()\r\n{\r\n\tfunction NSList(component,setting) \r\n\t{\r\n\t\t//this.base.call(this);\r\n\t\tthis.ITEM_SELECTED = \"itemSelected\";\r\n\t\tthis.ITEM_UNSELECTED = \"itemUnselected\";\r\n\t\tthis.ITEM_NAVIGATED = \"itemNavigated\";\r\n\t\tthis.NAVIGATION_UP = \"up\";\r\n\t\tthis.NAVIGATION_DOWN = \"down\";\r\n\t\tthis.ITEM_DROPPING = \"itemDropping\";\r\n\t\tthis.ITEM_DROPPED = \"itemDropped\";\r\n\t\tthis.DRAG_STARTED = \"dragStarted\";\r\n\t\tthis.DRAGGING = \"dragging\";\r\n\t\tthis.DRAG_END = \"dragEnd\";\r\n\t\t\r\n\t\tthis.__setting = setting;\r\n\t\tthis.__dataSource = null;\r\n\t\tthis.__labelField = \"label\";\r\n\t\tthis.__itemRenderer = null;\r\n\t\tthis.__templateID = null;\r\n\t\tthis.__setData = null;\r\n\t\tthis.__labelFunction = null;\r\n\t\tthis.__enableHierarchical = false;\r\n\t\tthis.__enableMouseHover = false;\r\n\t\tthis.__enableMouseHoverAnimation = false;\r\n\t\tthis.__disableHoverField = null;\r\n\t\tthis.__disableHoverFunction = null;\r\n\t\tthis.__enableKeyboardNavigation = false;\r\n\t\tthis.__enableMultipleSelection = false;\r\n\t\tthis.__enableCustomScrollBar = false;\r\n\t\tthis.__enableVirtualScroll = false;\r\n\t\tthis.__isDraggable = true;\r\n\t\tthis.__isDroppable = true;\r\n\t\tthis.__enableDragByHandle = false;\r\n\t\tthis.__dragHandlerClass = null;\r\n\t\tthis.__enableDragAfterHold = false;\r\n\t\tthis.__holdTime = 500;\r\n\t\tthis.__enableCloneMode = false;\r\n\t\tthis.__rowHeight = -1;\r\n\t\tthis.__noDataMessage = \"No matching records found\";\r\n\t\tthis.__enableContextMenu = false;\r\n\t\tthis.__enableVariableRowHeight = false;\r\n\t\tthis.__contextMenuProvider = null;\r\n\t\tthis.__contextMenuSetting = null;\r\n\t\tthis.__enableTruncateToFit = false;\r\n\t\tthis.__toolTipField = null;\r\n\t\tthis.__enableToolTipForTruncateText = false;\r\n\t\tthis.__toolTipRenderer = null;\r\n\t\t\r\n\t\tthis.__arrWrapper = null;\r\n\t\tthis.__arrInternalSource = null;\r\n\t\tthis.__arrFlatHierarchicalSource = [];\r\n\t\t\r\n\t\tthis.__divOuterContainer = null;\r\n\t\tthis.__divParentContainer = null;\r\n\t\tthis.__listContainer = null;\r\n\t\tthis.__scroller = null;\r\n\t\tthis.__scrollerSetting = {};\r\n\t\tthis.__customScrollBarSetting = {};\r\n\t\tthis.__customScrollBarTooltip = null;\r\n\t\t\r\n\t\tthis.__template = null;\r\n\t\tthis.__currentIndex = -1;\r\n\t\tthis.__selectedIndex = -1;\r\n\t\tthis.__navigationIndex = -1;\r\n\t\tthis.__selectedItem = null;\r\n\t\tthis.__selectedItems = [];\t\r\n\t\tthis.__selectedIndexes = [];\r\n\t\tthis.__lastNavigationDirection = null;\r\n\t\tthis.__orignalItemKey = [];\r\n\t\t//for keyboard navigation\r\n\t\tthis.__pageSize = 0;\r\n\t\tthis.__scrollTarget = null;\r\n\t\tthis.__startArrayElement = -1;\r\n\t\tthis.__listItemHeight = 0;\r\n\t\t//for Virtual Scroll\r\n\t\tthis.__virtualScrollSetting = {};\r\n\t\tthis.__nsVirtualScroll = null; \r\n\t\tthis.__virtualRowHeight = 0;\r\n\t\t\r\n\t\tthis.__childField = \"children\";\r\n\t\tthis.__CLASS_GROUP_CELL = \"nsListGroupCell\";\r\n\t\tthis.__CLASS_CELL_CHILD = \"nsListCellChild\";\r\n\t\t\r\n\t\t//removing this.getID() as prefix as move functionality from one list to another would have different fields.\r\n\t\tthis.__fieldPrefix = \"ns_field\";\r\n\t\tthis.__fieldIndex = this.__fieldPrefix + \"_item_index\";\r\n\t\tthis.__fieldVisibleIndex = this.__fieldPrefix + \"_item_visible_index\";\r\n\t\tthis.__fieldItem = this.__fieldPrefix + \"_item\";\r\n\t\tthis.__fieldDisableHover = this.__fieldPrefix + \"_disableHover\";\r\n\t\tthis.__fieldSelected = this.__fieldPrefix + \"_selected\";\r\n\t\tthis.__fieldHover = this.__fieldPrefix + \"_hover\";\r\n\t\t\r\n\t\tthis.__fieldItemLevel = this.__fieldPrefix + \"_item_level\";\r\n\t\tthis.__fieldItemVisible = this.__fieldPrefix + \"_item_visible\";\r\n\t\tthis.__fieldParentIndex = this.__fieldPrefix + \"_parent_index\";\r\n\t\tthis.__fieldHasChild = this.__fieldPrefix + \"_item_hasChild\";\r\n\t\tthis.__fieldHasParent = this.__fieldPrefix + \"_item_hasParent\";\r\n\t\tthis.__fieldIsCollapsed = this.__fieldPrefix + \"_item_isCollapsed\";\r\n\t\tthis.__fieldItemArrow = this.__fieldPrefix + \"_item_arrow\";\r\n\t\t\r\n\t\tthis.__isShiftPressed = false;\r\n\t\tthis.__isCtrlPressed = false;\r\n\t\t\r\n\t\tthis.__objGrid = null;\r\n\t\tthis.__nsListFilter = null;\r\n\t\tthis.__nsListDragDrop = null;\r\n\t\tthis.__nsToolTipInElement = null;\r\n\t\t\r\n\t\tthis.__keyDownRef = null;\r\n\t\tthis.__keyUpRef = null;\r\n\t\tthis.base.__setBaseComponent.call(this,component);\r\n\t};\r\n\tnsExtendPrototype(NSContainerBase,NSList);\r\n\tNSList.prototype.constructor = NSList;\r\n\t\r\n\tNSList.prototype.initializeComponent = function() \r\n\t{\r\n\t\tthis.base.initializeComponent.call(this);\r\n\t\tthis.__setSetting();\r\n\t\tthis.__initializePluggins();\r\n\t};\r\n\t\r\n\tNSList.prototype.setComponentProperties = function() \r\n\t{\r\n\t\tthis.base.setComponentProperties.call(this);\r\n\t\tthis.__objGrid.__addSVGInPage();\r\n\t\tthis.__setTemplate();\r\n\t\tthis.__objGrid.__initialize();\r\n\t\tthis.__addListenerForBody();\r\n\t\tif(this.__dataSource)\r\n\t\t{\r\n\t\t\tthis.dataSource(this.__dataSource);\r\n\t\t}\r\n\t\tif(!window[\"nsListMap\"])\r\n\t\t{\r\n\t\t\twindow[\"nsListMap\"] = {};\r\n\t\t}\r\n\t\twindow[\"nsListMap\"][this.getID()] = this;\r\n\t};\r\n\t\r\n\tNSList.prototype.propertyChange = function(attrName, oldVal, newVal, setProperty)\r\n\t{\r\n\t\tvar attributeName = attrName.toLowerCase();\r\n\t\tthis.base.propertyChange.call(this,attrName, oldVal, newVal, setProperty);\r\n\t};\r\n\t\r\n\tNSList.prototype.removeComponent = function() \r\n\t{\r\n\t\tif(this.__keyDownRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document,\"keydown\",this.__keyDownRef);\r\n\t\t\tthis.__keyDownRef = null;\r\n\t\t}\r\n\t\tif(this.__keyUpRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document,\"keyup\",this.__keyUpRef);\r\n\t\t\tthis.__keyUpRef = null;\r\n\t\t}\r\n\t\tif(this.__scroller)\r\n\t\t{\r\n\t\t\tthis.__scroller.__destroyElements();\r\n\t\t\tthis.__scroller = null;\r\n\t\t}\r\n\t\tthis.base.removeComponent.call(this);\r\n\t};\r\n\t\r\n\tNSList.prototype.componentResized = function(event) \r\n\t{\r\n\t\tthis.base.componentResized.call(this,event);\r\n\t};\r\n\t\r\n\tNSList.prototype.expandAll = function()\r\n\t{\r\n\t\tif(this.__enableHierarchical)\r\n\t\t{\r\n\t\t\tthis.__expandCollapseAll(false);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.collapseAll = function()\r\n\t{\r\n\t\tif(this.__enableHierarchical)\r\n\t\t{\r\n\t\t\tthis.__expandCollapseAll(true);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.setContextMenuSetting = function(contextMenuSetting)\r\n\t{\r\n\t\tthis.__contextMenuSetting = contextMenuSetting;\r\n\t};\r\n\t\r\n\tNSList.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(\"enableHierarchical\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableHierarchical = Boolean.parse(setting[\"enableHierarchical\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableVirtualScroll\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableVirtualScroll = Boolean.parse(setting[\"enableVirtualScroll\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableDragDrop\"))\r\n\t\t\t{\r\n\t\t\t\tif(!this.__enableVirtualScroll)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__enableDragDrop = Boolean.parse(setting[\"enableDragDrop\"]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"isDraggable\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__isDraggable = Boolean.parse(setting[\"isDraggable\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"isDroppable\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__isDroppable = Boolean.parse(setting[\"isDroppable\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableDragByHandle\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableDragByHandle = Boolean.parse(setting[\"enableDragByHandle\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"dragHandlerClass\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__dragHandlerClass = setting[\"dragHandlerClass\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableDragAfterHold\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableDragAfterHold = Boolean.parse(setting[\"enableDragAfterHold\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"holdTime\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__holdTime = parseInt(setting[\"holdTime\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableCloneMode\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableCloneMode = Boolean.parse(setting[\"enableCloneMode\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"labelField\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__labelField = setting[\"labelField\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"itemRenderer\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__itemRenderer = setting[\"itemRenderer\"];\r\n\t\t\t\tthis.__itemRenderer = this.util.getFunction(this.__itemRenderer);\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(\"setData\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__setData = setting[\"setData\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"labelFunction\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__labelFunction = setting[\"labelFunction\"];\r\n\t\t\t\tthis.__labelFunction = this.util.getFunction(this.__labelFunction);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableMultipleSelection\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableMultipleSelection = Boolean.parse(setting[\"enableMultipleSelection\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableCustomScrollBar\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableCustomScrollBar = Boolean.parse(setting[\"enableCustomScrollBar\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableKeyboardNavigation\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableKeyboardNavigation = Boolean.parse(setting[\"enableKeyboardNavigation\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableMouseHover\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableMouseHover = Boolean.parse(setting[\"enableMouseHover\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableMouseHoverAnimation\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableMouseHoverAnimation = Boolean.parse(setting[\"enableMouseHoverAnimation\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"disableHoverField\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__disableHoverField = setting[\"disableHoverField\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"disableHoverFunction\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__disableHoverFunction = setting[\"disableHoverFunction\"];\r\n\t\t\t\tthis.__disableHoverFunction = this.util.getFunction(this.__disableHoverFunction);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"rowHeight\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__rowHeight = parseInt(setting[\"rowHeight\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"noDataMessage\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__noDataMessage = setting[\"noDataMessage\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"dataSource\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__dataSource = setting[\"dataSource\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"childField\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__childField = setting[\"childField\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableContextMenu\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableContextMenu = Boolean.parse(setting[\"enableContextMenu\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"contextMenuProvider\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__contextMenuProvider = setting[\"contextMenuProvider\"];\r\n\t\t\t\tthis.__contextMenuProvider = this.util.getFunction(this.__contextMenuProvider);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableVariableRowHeight\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableVariableRowHeight = Boolean.parse(setting[\"enableVariableRowHeight\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"customScrollBarSetting\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__customScrollBarSetting = setting[\"customScrollBarSetting\"];\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.__customScrollBarSetting = {enableTooltip: false,toolTipLabelFunction: null,verticalScrollButtons: {enable: false},horizontalScrollButtons:{enable: false}};\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"virtualScrollSetting\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__virtualScrollSetting = setting[\"virtualScrollSetting\"];\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.__virtualScrollSetting = {pageSize: null,pagesRendered: null,enableScrollDelay: false,scrollInterval: null,resizeInterval: null,enableLoader: false,getLoaderComponent: null};\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.dataSource = function(source)\r\n\t{\r\n\t\tthis.__dataSource = source;\r\n\t\tif(this.__listContainer)\r\n\t\t{\r\n\t\t\tthis.util.removeAllChildren(this.__listContainer);\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\tif(this.__dataSource && this.__dataSource.length > 0)\r\n\t\t{\r\n\t\t\tthis.__orignalItemKey = Object.keys(this.__dataSource[0]);\r\n\t\t\tthis.__objGrid.dataSource();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__arrWrapper = [];\r\n\t\t\tthis.__arrInternalSource = [];\r\n\t\t\tthis.__updateTotalRecords(0);\r\n\t\t}\r\n\t\tthis.__renderBody();\r\n\t};\r\n\t\r\n\tNSList.prototype.getOrignalItem = function(item)\r\n\t{\r\n\t\tif(item && this.__orignalItemKey && this.__orignalItemKey.length > 0)\r\n\t\t{\r\n\t\t\tvar retItem = {};\r\n\t\t\tvar key = null;\r\n\t\t\tfor(var count = 0;count < this.__orignalItemKey.length;count++)\r\n\t\t\t{\r\n\t\t\t\tkey = this.__orignalItemKey[count];\r\n\t\t\t\tretItem[key] = item[key];\r\n\t\t\t}\r\n\t\t\treturn retItem;\r\n\t\t}\r\n\t\treturn item;\r\n\t};\r\n\t\r\n\tNSList.prototype.addItems = function(arrItem)\r\n\t{\r\n\t\tthis.__addItem(arrItem);\r\n\t};\r\n\t\r\n\tNSList.prototype.addItemsAsChildren = function(item,arrChildren)\r\n\t{\r\n\t\tthis.__objGrid.addItemsAsChildren(item,arrChildren);\r\n\t};\r\n\t\r\n\tNSList.prototype.removeItems = function(arrObject)\r\n\t{\r\n\t\tif(arrObject && arrObject.length > 0)\r\n\t\t{\r\n\t\t\tvar arrIndex = [];\r\n\t\t\tif(this.util.isNumber(arrObject[0]))\r\n\t\t\t{\r\n\t\t\t\tarrIndex = arrObject;\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 < arrObject.length;count++)\r\n\t\t\t {\r\n\t\t\t\t\tvar item = arrObject[count];\r\n\t\t\t\t\tif(item && item[this.__fieldIndex])\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tarrIndex.push(item[this.__fieldIndex]);\r\n\t\t\t\t\t}\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tarrIndex.sort();\r\n\t \t \tfor (var rowIndex = arrIndex.length - 1; rowIndex >= 0; rowIndex--)\r\n\t\t {\r\n\t \t \t\tvar index = arrIndex[rowIndex];\r\n\t \t \t\tif(index > 0 && index < this.__arrInternalSource.length)\r\n\t \t \t\t{\r\n\t\t \t \t\t//if virtual scroll or Pagination of type Page is enabled then do not remove rows\r\n\t\t \t \t\tif(!this.__enableVirtualScroll)\r\n\t\t \t \t\t{\r\n\t\t \t \t\t\tthis.__listContainer.removeChild(this.__listContainer.childNodes[index]);\r\n\t\t \t \t\t}\r\n\t\t \t \t\tthis.__arrInternalSource.splice(index, 1);\r\n\t\t \t \t\tthis.__arrWrapper.splice(index, 1);\r\n\t \t \t\t}\r\n\t\t }\r\n\t\t \tthis.__updateTotalRecords();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.scrollToIndex = function(selectedIndex,animationRequired)\r\n\t{\r\n\t\tselectedIndex = parseInt(selectedIndex);\r\n\t\tvar source = this.__objGrid.__getFlatSource();\r\n\t\tif(selectedIndex > -1 && source && selectedIndex < source.length)\r\n\t\t{\r\n\t\t\tvar item = this.__getItemByIndex(selectedIndex);\r\n\t\t\tif(item)\r\n\t\t\t{\r\n\t\t\t\tif(this.__enableVirtualScroll)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this.__enableCustomScrollBar)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar targetDimension = this.__virtualRowHeight * (selectedIndex - 1);\r\n\t\t\t\t\t\tthis.__setVirtualScroll_ScrollTop(targetDimension);\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\t//var item = this.__getVisibleItemByIndex(this.__arrInternalSource,selectedIndex);\r\n\t\t\t\t\t\tif(this.__nsVirtualScroll)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t//because in list index is index+1\r\n\t\t\t\t\t\t\tthis.__nsVirtualScroll.scrollToIndex(selectedIndex - 1,animationRequired);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(item[this.__fieldItem])\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar targetDimension = item[this.__fieldItem].offsetTop;\r\n\t\t\t\t\t\tvar scrollTarget = this.__divOuterContainer;\r\n\t\t\t\t\t\tif(animationRequired)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar animation = new this.util.animation(scrollTarget,[\r\n\t\t\t\t \t \t {\r\n\t\t\t\t \t \t time: 500,\r\n\t\t\t\t \t \t property:\"scrollTop\",\r\n\t\t\t\t \t \t target: targetDimension,\r\n\t\t\t\t \t \t }\r\n\t\t\t\t \t \t]);\r\n\t\t\t\t \t \t \tanimation.animate();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tscrollTarget.scrollTop = targetDimension;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.setSelectedItems = function(arrItems)\r\n\t{\r\n\t\tif(arrItems && arrItems.length > 0)\r\n\t\t{\r\n\t\t\tvar source = this.__objGrid.__getFlatSource();\r\n\t\t\tif(source)\r\n\t\t\t{\r\n\t\t\t\tthis.__clearAllRowSelection(false);\r\n\t\t\t\tvar length = arrItems.length;\r\n\t\t\t\tvar item = null;\r\n\t\t\t\tvar index = -1;\r\n\t\t\t\tfor(var count = 0;count < length;count++)\r\n\t\t\t\t{\r\n\t\t\t\t\titem = arrItems[count];\r\n\t\t\t\t\tindex = this.__getIndexByItem(item);\r\n\t\t\t\t\tif(index > -1 && source && index < source.length)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.__setIndex(index,true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.setSelectedItem = function(arrItems)\r\n\t{\r\n\t\tthis.setSelectedItems([arrItems]);\r\n\t};\r\n\t\r\n\tNSList.prototype.setSelectedIndexes = function(arrSelectedIndex)\r\n\t{\r\n\t\tif(arrSelectedIndex && arrSelectedIndex.length > 0)\r\n\t\t{\r\n\t\t\tvar source = this.__objGrid.__getFlatSource();\r\n\t\t\tif(source)\r\n\t\t\t{\r\n\t\t\t\tvar length = arrSelectedIndex.length;\r\n\t\t\t\tvar index = -1;\r\n\t\t\t\tfor(var count = 0;count < length;count++)\r\n\t\t\t\t{\r\n\t\t\t\t\tindex = arrSelectedIndex[count];\r\n\t\t\t\t\tif(index > -1 && source && index < source.length)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.__setIndex(index,true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.setSelectedIndex = function(selectedIndex)\r\n\t{\r\n\t\tthis.setSelectedIndexes([selectedIndex]);\r\n\t};\r\n\t\r\n\tNSList.prototype.unSelectItems = function(arrItems)\r\n\t{\r\n\t\t\r\n\t};\r\n\t\r\n\tNSList.prototype.unSelectItem = function(arrItems)\r\n\t{\r\n\t\tthis.unSelectItems([arrItems]);\r\n\t};\r\n\t\r\n\tNSList.prototype.unSelectIndexes = function(arrSelectedIndex)\r\n\t{\r\n\t\t\r\n\t};\r\n\t\r\n\tNSList.prototype.unSelectIndex = function(selectedIndex)\r\n\t{\r\n\t\tthis.unSelectIndexes([selectedIndex]);\r\n\t};\r\n\t\r\n\tNSList.prototype.getSelectedIndex = function()\r\n\t{\r\n\t\treturn this.__selectedIndex;\r\n\t};\r\n\t\r\n\tNSList.prototype.getSelectedItem = function()\r\n\t{\r\n\t\treturn this.__selectedItem;\r\n\t};\r\n\t\r\n\tNSList.prototype.getSelectedIndexes = function()\r\n\t{\r\n\t\treturn this.__selectedIndexes;\r\n\t};\r\n\t\r\n\tNSList.prototype.getSelectedItems = function()\r\n\t{\r\n\t\treturn this.__selectedItems;\r\n\t};\r\n\t\r\n\tNSList.prototype.deselectAll = function()\r\n\t{\r\n\t\tthis.__clearAllRowSelection(true);\r\n\t};\r\n\t\r\n\tNSList.prototype.filter = function(strData,setting,enableHighlighting,recordLimit)\r\n\t{\r\n\t\tthis.__nsListFilter.filter(strData,setting,enableHighlighting,recordLimit);\r\n\t};\r\n\t\r\n\tNSList.prototype.resetFilter = function()\r\n\t{\r\n\t\tthis.__nsListFilter.reset();\r\n\t};\r\n\t\r\n\tNSList.prototype.updateListItemByIndex = function(index)\r\n\t{\r\n\t\tvar item = this.__getItemByIndex(index);\r\n\t\tif(item)\r\n\t\t{\r\n\t\t\tvar listItem = this.__getListItemFromItem(item);\r\n\t\t\tif(listItem)\r\n\t\t\t{\r\n\t\t\t\tvar index = this.__getIndexByItem(item);\r\n\t\t\t\tthis.__updateListItemText(listItem,item,index);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__highlightDiv = function(divText)\r\n\t{\r\n\t\tthis.__nsListFilter.__highlightDiv(divText);\r\n\t};\r\n\t\r\n\tNSList.prototype.__initializePluggins = function()\r\n\t{\r\n\t\tif(!this.__objGrid)\r\n\t\t{\r\n\t\t\tif(this.__enableHierarchical)\r\n\t\t\t{\r\n\t\t\t\tthis.__objGrid = new NSHierarchicalList(this);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.__objGrid = new NSFlatList(this);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(!this.__nsListFilter)\r\n\t\t{\r\n\t\t\tthis.__nsListFilter = new NSListFilter(this);\r\n\t\t\tif(this.__enableDragDrop)\r\n\t\t\t{\r\n\t\t\t\tthis.__nsListDragDrop = new NSListDragDrop(this);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.__nsToolTipInElement = new this.util.nsToolTipInElement();\r\n\t};\r\n\t\r\n\tNSList.prototype.__createStructure = function()\r\n\t{\r\n\t\tif(!this.__divOuterContainer)\r\n\t\t{\r\n\t\t\tthis.__divOuterContainer = this.util.createDiv(this.getID() + \"container\",\"nsListOuterContainer\");\r\n\t\t\tif(this.__enableHierarchical)\r\n\t\t\t{\r\n\t\t\t\tthis.util.addStyleClass(this.__divOuterContainer,\"nsListOuterContainerHierarchical\")\r\n\t\t\t}\r\n\t\t\tthis.__divOuterContainer.style.width = this.util.getStyleValue(this.__baseComponent,\"width\");\r\n\t\t\t//this.__divOuterContainer.style.height = this.util.getStyleValue(this.__baseComponent,\"height\");\r\n\t\t\tthis.addChild(this.__divOuterContainer);\r\n\t\t\tthis.__divParentContainer = this.util.createDiv(this.getID() + \"parentContainer\",\"nsListParentContainer\");\r\n\t\t\tthis.__divOuterContainer.appendChild(this.__divParentContainer);\r\n\t\t\tthis.__listContainer = this.util.createElement(\"ul\",this.getID() + \"list\",\"nsListContainer\");\r\n\t\t\tthis.__listContainer.style.minHeight = (this.__divOuterContainer.clientHeight - 10) + \"px\";\r\n\t\t\tthis.__divParentContainer.appendChild(this.__listContainer);\r\n\t\t\tif(this.__enableVirtualScroll)\r\n\t\t\t{\r\n\t\t\t\tthis.util.addStyleClass(this.__divParentContainer,\"nsListBodyContainerVirtual\");\r\n\t\t\t}\r\n\t\t\tthis.__createCustomScroller();\r\n\t\t}\r\n\t};\r\n\r\n\tNSList.prototype.__renderBody = function()\r\n\t{\r\n\t\tthis.__navigationIndex = -1;\r\n\t\tif(this.__enableContextMenu)\r\n\t\t{\r\n\t\t\tthis.__initializeContextMenu();\r\n\t\t}\r\n\t\tif(this.__enableVirtualScroll)\r\n\t\t{\r\n\t\t\tthis.__setNSVirtualScroll(this.__arrInternalSource);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.util.removeAllChildren(this.__listContainer);\r\n\t\t\tthis.__createList(this.__arrInternalSource,0,this.__arrInternalSource.length);\r\n\t\t\t//5 is offset for number of rows\r\n\t\t\tvar listItem = this.__getListItemByIndex(0);\r\n\t\t\tif(listItem)\r\n\t\t\t{\r\n\t\t\t\tthis.__listItemHeight = listItem.clientHeight;\r\n\t\t\t}\r\n\t\t\tthis.__pageSize = (this.__divOuterContainer.clientHeight/this.__listItemHeight) - 5;\r\n\t\t\tthis.__startArrayElement = 0;\r\n\t\t}\r\n\t\t//this.__listContainer.scrollTop = 0;\r\n\t\tif(this.__nsListDragDrop)\r\n\t\t{\r\n\t\t\tthis.__nsListDragDrop.initialize();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setNSVirtualScroll = function(source)\r\n\t{\r\n\t\tvar length = 0;\r\n\t\tif(source && source.length)\r\n\t\t{\r\n\t\t\tfor(var count = 0;count < source.length;count++)\r\n\t\t\t{\r\n\t\t\t\tif(source[count][this.__fieldItemVisible])\r\n\t\t\t\t{\r\n\t\t\t\t\tlength++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(this.__nsVirtualScroll)\r\n\t\t{\r\n\t\t\tthis.__nsVirtualScroll.dataSource(length);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(length > 0)\r\n\t\t\t{\r\n\t\t\t\tif(this.__rowHeight > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__virtualRowHeight = this.__rowHeight;\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.__createList(this.__arrInternalSource,0,1);\r\n\t\t\t\t\tvar item = this.__arrInternalSource[0];\r\n\t\t\t\t\tvar listItem = item[this.__fieldItem];\r\n\t\t\t\t this.__virtualRowHeight = listItem.offsetHeight;\r\n\t\t\t\t listItem.parentNode.removeChild(listItem);\r\n\t\t\t\t}\r\n\t\t\t\tvar setting = {scrollElement: this.__divOuterContainer,contentElement: this.__listContainer,itemTag: \"li\",totalLength: length,getItemComponent:this.__getItemComponentForVirtual.call(this),getEmptyItemComponent:this.__getEmptyItemComponentForVirtual.call(this)};\r\n\t\t\t\tvar virtualScrollSetting = this.__virtualScrollSetting;\r\n\t\t\t\tvar arrCopyFields = [\"pageSize\",\"pagesRendered\",\"enableScrollDelay\",\"scrollInterval\",\"resizeInterval\",\"enableLoader\",\"getLoaderComponent\"];\r\n\t\t\t\tvar field = null;\r\n\t\t\t\tfor(var count = 0;count < arrCopyFields.length;count++)\r\n\t\t\t\t{\r\n\t\t\t\t\tfield = arrCopyFields[count];\r\n\t\t\t\t\tif(!this.util.isUndefinedOrNull(virtualScrollSetting[field]))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsetting[field] = virtualScrollSetting[field];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.__nsVirtualScroll = new NSVirtualScroll(setting);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__getItemComponentForVirtual = function()\r\n\t{\r\n\t\tvar list = this;\r\n\t\tvar CreateListItem = function(index)\r\n\t\t{\r\n\t\t\tthis.__index = index;\r\n\t\t\tthis.__list = list;\r\n\t\t\tthis.__item = null;\r\n\t\t\tthis.__listItem = null;\r\n\t\t};\r\n\t\tCreateListItem.prototype.getElement = function()\r\n\t\t{\r\n\t\t\tif(!this.__listItem)\r\n\t\t\t{\r\n\t\t\t\tif(this.__list.__enableHierarchical)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__item = this.__list.__getVisibleItemByIndex(null,this.__index);\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.__item = this.__list.__arrInternalSource[this.__index];\r\n\t\t\t\t}\r\n\t\t\t\tthis.__listItem = this.__list.__createListItem(this.__item,false);\r\n\t\t\t}\r\n\t\t\treturn this.__listItem;\r\n\t\t};\r\n\t\treturn CreateListItem;\r\n\t};\r\n\t\r\n\tNSList.prototype.__getEmptyItemComponentForVirtual = function()\r\n\t{\r\n\t\tvar list = this;\r\n\t\tvar CreateEmptyListItem = function()\r\n\t\t{\r\n\t\t\tthis.__list = list;\r\n\t\t\tthis.__listItem = null;\r\n\t\t};\r\n\t\tCreateEmptyListItem.prototype.getElement = function()\r\n\t\t{\r\n\t\t\tif(!this.__listItem)\r\n\t\t\t{\r\n\t\t\t\tthis.__listItem = this.__list.__createNoDataRow.call(this.__list);\r\n\t\t\t}\r\n\t\t\treturn this.__listItem;\r\n\t\t};\r\n\t\treturn CreateEmptyListItem;\r\n\t};\r\n\t\r\n\tNSList.prototype.__createCustomScroller = function()\r\n\t{\r\n\t\tif(this.__enableCustomScrollBar && !this.__scroller)\r\n\t\t{\r\n\t\t\tvar setting = {element: this.__divOuterContainer,enableCustomHandler: true,verticalScrollButtons:this.__customScrollBarSetting.verticalScrollButtons,horizontalScrollButtons:this.__customScrollBarSetting.horizontalScrollButtons};\r\n\t\t\tfor (var key in setting) \r\n\t\t\t{ \r\n\t\t\t\tthis.__scrollerSetting[key] = setting[key]; \r\n\t\t\t}\r\n\t\t\tthis.__scroller = new NSScroller(this.__scrollerSetting);\r\n\t\t\tthis.util.addEvent(this.__scrollerSetting.element,NSScroller.SCROLLING,this.__customScrollHandler.bind(this));\r\n\t\t\tthis.util.addEvent(this.__scrollerSetting.element,NSScroller.SCROLL_END,this.__customScrollEndHandler.bind(this));\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__customScrollHandler = function(event)\r\n\t{\r\n\t\tvar self = this;\r\n\t\tvar virtualVerHandler = function()\r\n\t\t{\r\n\t\t\t//todo Virtual Scroll impl for Custom Scroll Bar\r\n\t\t};\r\n\t\tvar dataRefreshVerHandler = function()\r\n\t\t{\r\n\t\t\t\r\n\t\t};\r\n\t\tvar asyncLoadVerHandler = function()\r\n\t\t{\r\n\t\t\t\r\n\t\t};\r\n\t\tvar paginationVerHandler = function()\r\n\t\t{\r\n\t\t\t\r\n\t\t};\r\n\t\tvar normalVerHandler = function()\r\n\t\t{\r\n\t\t\tself.__divOuterContainer.scrollTop = scrollPos;\r\n\t\t\t\r\n\t\t\tvar first,last;\r\n\t\t\tvar arrRows = self.__listContainer.querySelectorAll(\"li\");\r\n\t\t\tfor(var count = 0;count < arrRows.length;count++)\r\n\t\t\t{\r\n\t\t\t\tvar li = arrRows[count];\r\n\t\t\t\tif(isInViewport(li))\r\n\t\t\t\t{\r\n\t\t\t\t\tfirst = li;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor(;count < arrRows.length;count++)\r\n\t\t\t{\r\n\t\t\t\tvar li = arrRows[count];\r\n\t\t\t\tif(!isInViewport(li))\r\n\t\t\t\t{\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tlast = li;\r\n\t\t\t}\r\n\t\t\tconsole.log(first,last);\r\n\t\t};\r\n\t\tvar normalHorHandler = function()\r\n\t\t{\r\n\t\t\tself.__divOuterContainer.scrollLeft = scrollPos;\r\n\t\t};\r\n\t\tvar isInViewport = function (elem) \r\n\t\t{\r\n\t\t\tif(elem)\r\n\t\t\t{\r\n\t\t\t\t/*var distance = elem.getBoundingClientRect();\r\n\t\t\t\treturn (\r\n\t\t\t\t\tdistance.top >= 0 &&\r\n\t\t\t\t\tdistance.left >= 0 &&\r\n\t\t\t\t\tdistance.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\t\t\t\tdistance.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t\t\t\t);*/\r\n\t\t\t\tconst rect = elem.getBoundingClientRect();\r\n\t\t\t const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\r\n\t\t\t const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\r\n\r\n\t\t\t const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);\r\n\t\t\t const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);\r\n\r\n\t\t\t return (vertInView && horInView);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\tvar objCondition = {virtualScroll:{eligible:this.__enableVirtualScroll,verHandler:virtualVerHandler,horHandler:normalHorHandler},\r\n\t\t\t\t\t\t\tdataRefreshOnEnd:{eligible:this.__enableDataRefreshOnScrollEnd,verHandler:dataRefreshVerHandler,horHandler:normalHorHandler},\r\n\t\t\t\t\t\t\tasyncLoad:{eligible:this.__enableAsyncLoadPagination,verHandler:asyncLoadVerHandler,horHandler:normalHorHandler},\r\n\t\t\t\t\t\t\tpagination:{eligible:(this.__enablePagination && this.__isPaginationTypeScroll),verHandler:paginationVerHandler,horHandler:normalHorHandler},\r\n\t\t\t\t\t\t\tnormal:{eligible:true,verHandler:normalVerHandler,horHandler:normalHorHandler}\r\n\t\t\t\t\t\t };\r\n\t\tvar eventItem = event;\r\n\t\tvar direction = eventItem.direction;\r\n\t\tvar scrollPos = eventItem.scrollPos;\r\n\t\tvar oldScrollPos = eventItem.oldScrollPos;\r\n\t\tvar orignalEvent = eventItem.orignalEvent;\r\n\t\tvar scrollBar = eventItem.scrollBar;\r\n\t\tvar position = eventItem.absoluteScrollBarPos;\r\n\t\tfor(var key in objCondition)\r\n\t\t{\r\n\t\t\tvar item = objCondition[key];\r\n\t\t\tif(item.eligible)\r\n\t\t\t{\r\n\t\t\t\tif(direction == \"vertical\")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(item.verHandler)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(this.__customScrollBarSetting[\"enableTooltip\"] && !this.__customScrollBarTooltip)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthis.__customScrollBarTooltip = this.util.createElement(\"span\",null,\"tooltiptext tooltip-left\");\r\n\t\t\t\t\t\t\tdocument.body.appendChild(this.__customScrollBarTooltip);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\titem.verHandler();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(item.horHandler)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\titem.horHandler();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__customScrollEndHandler = function(event)\r\n\t{\r\n\t\tif(this.__customScrollBarTooltip)\r\n\t\t{\r\n\t\t\tdocument.body.removeChild(this.__customScrollBarTooltip);\r\n\t\t\tthis.__customScrollBarTooltip = null;\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__customScrollTooltipPos = function(scrollbar,position,itemFrom,itemTo)\r\n\t{\r\n\t\tif(this.__customScrollBarTooltip)\r\n\t\t{\r\n\t\t\tvar toolTip = this.__customScrollBarTooltip;\r\n\t\t\tvar css = {};\r\n\t\t\t//5 for the triangle\r\n\t\t\tcss.left = (position.x - toolTip.offsetWidth - 5) + \"px\";\r\n\t\t\tcss.top = position.y + \"px\";\r\n\t\t\tthis.util.css(toolTip,css);\r\n\t\t\tif(this.__customScrollBarSetting.toolTipLabelFunction)\r\n\t\t\t{\r\n\t\t\t\ttoolTip.innerHTML = this.__customScrollBarSetting.toolTipLabelFunction(itemFrom,itemTo);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ttoolTip.innerHTML = \"Showing Record from index \" + itemFrom + \" to \" + itemTo;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t};\r\n\t\r\n\tNSList.prototype.__virtualRowSelection = function()\r\n\t{\r\n\t\tif(this.__listContainer.children && this.__listContainer.children.length > 0 && this.__arrInternalSource)\r\n\t\t{\r\n\t\t\tvar listItem = null;\r\n\t\t\tvar index = null;\r\n\t\t\tvar item = null;\r\n\t\t\tfor(var count = 0; count < this.__listContainer.children.length; count++) \r\n\t\t\t{\r\n\t\t\t\tlistItem = this.__listContainer.children[count];\r\n\t\t\t\tindex = this.__getIndexFromTarget(listItem);\r\n\t\t\t\titem = this.__getItemByIndex(index);\r\n\t\t\t\tif(item && this.__isMouseHoverAllowed(index))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(item[this.__fieldSelected])\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t//DONOT REPLACE WITH __markRowSelected\r\n\t\t\t\t\t\tthis.util.addStyleClass(listItem,\"nsListItemSelected\"); \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\t//DONOT REPLACE WITH __markRowUnselected\r\n\t\t\t\t\t\tthis.util.removeStyleClass(listItem,\"nsListItemSelected\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__virtualRowHover = function()\r\n\t{\r\n\t\tif(this.__listContainer.children && this.__listContainer.children.length > 0 && this.__arrInternalSource)\r\n\t\t{\r\n\t\t\tvar listItem = null;\r\n\t\t\tvar index = null;\r\n\t\t\tvar item = null;\r\n\t\t\tfor(var count = 0; count < this.__listContainer.children.length; count++) \r\n\t\t\t{\r\n\t\t\t\tlistItem = this.__listContainer.children[count];\r\n\t\t\t\tindex = this.__getIndexFromTarget(listItem);\r\n\t\t\t\titem = this.__getItemByIndex(index);\r\n\t\t\t\t(item && item[this.__fieldHover]) ? this.util.addStyleClass(listItem,\"nsListItemHover\") : this.util.removeStyleClass(listItem,\"nsListItemHover\");\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setVirtualRowHoverField = function(indexToSet)\r\n\t{\r\n\t\tif(this.util.isUndefinedOrNull(indexToSet))\r\n\t\t{\r\n\t\t\tindexToSet = -1;\r\n\t\t}\r\n\t\tvar source = this.__objGrid.__getFlatSource();\r\n\t\tif(source)\r\n\t\t{\r\n\t\t\tvar item = null;\r\n\t\t\tfor(var count = 0; count < source.length; count++) \r\n\t\t\t{\r\n\t\t\t\tvar item = source[count];\r\n\t\t\t\tif(item)\r\n\t\t\t\t{\r\n\t\t\t\t\titem[this.__fieldHover] = (item[this.__fieldIndex] === indexToSet); \r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setVirtualRowHover = function(indexToSet)\r\n\t{\r\n\t\tif(this.__enableVirtualScroll)\r\n\t\t{\r\n\t\t\tif(this.util.isUndefinedOrNull(indexToSet))\r\n\t\t\t{\r\n\t\t\t\tindexToSet = 0;\r\n\t\t\t}\r\n\t\t\tvar item = this.__getVisibleItemByIndex(null,indexToSet);\r\n\t\t\tif(item)\r\n\t\t\t{\r\n\t\t\t\tthis.__navigationIndex = indexToSet;\r\n\t\t\t\tvar index = item[this.__fieldIndex];\r\n\t\t\t\tthis.__setVirtualRowHoverField(index);\r\n\t\t\t\tthis.__virtualRowHover();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setRowHover = function(indexToSet)\r\n\t{\r\n\t\tif(this.util.isUndefinedOrNull(indexToSet))\r\n\t\t{\r\n\t\t\tindexToSet = 0;\r\n\t\t}\r\n\t\tif(this.__enableVirtualScroll)\r\n\t\t{\r\n\t\t\tthis.__setVirtualRowHover(indexToSet);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(this.util.isUndefinedOrNull(indexToSet))\r\n\t\t\t{\r\n\t\t\t\tindexToSet = 0;\r\n\t\t\t}\r\n\t\t\tthis.__navigationIndex = indexToSet;\r\n\t\t\tvar listItem = this.__getListItemFromContainer(this.__navigationIndex);\r\n\t\t\tthis.util.addStyleClass(listItem,\"nsListItemHover\");\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__createNoDataRow = function()\r\n\t{\r\n\t\tvar listItem = this.util.createElement(\"li\",null,\"nsListNoRecordsFound\");\r\n\t\tlistItem.setAttribute(\"nsNoData\",\"true\");\r\n\t\tvar textNode = document.createTextNode(this.__noDataMessage);\r\n\t\tlistItem.appendChild(textNode);\r\n\t\treturn listItem;\r\n\t};\r\n\t\r\n\tNSList.prototype.__addListenerForBody = function()\r\n\t{\r\n\t\tif(!this.__keyDownRef)\r\n\t\t{\r\n\t\t\tthis.__keyDownRef = this.__keyDownHandler.bind(this);\r\n\t\t\tthis.util.addEvent(document,\"keydown\",this.__keyDownRef);\r\n\t\t}\r\n\t\tif(!this.__keyUpRef)\r\n\t\t{\r\n\t\t\tthis.__keyUpRef = this.__keyUpHandler.bind(this);\r\n\t\t\tthis.util.addEvent(document,\"keyup\",this.__keyUpRef);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__createList = function(dataSet,startIndex,endIndex)\r\n\t{\r\n\t\tif(dataSet && dataSet.length > 0)\r\n\t {\r\n\t\t\tthis.__objGrid.__createList(dataSet,startIndex,endIndex);\r\n\t }\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__listContainer.appendChild(this.__createNoDataRow());\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__createListAt = function(item,index,isResetIndex)\r\n\t{\r\n\t\tif(item && index > -1)\r\n\t {\r\n\t\t\tthis.__updateItem(item,index,true,isResetIndex);\r\n\t\t\tvar listItem = this.__createListItem(item,false);\r\n\t\t\tthis.__listContainer.insertBefore(listItem, this.__listContainer.childNodes[index]);\r\n\t\t\treturn listItem;\r\n\t }\r\n\t\treturn null;\r\n\t};\r\n\t\r\n\tNSList.prototype.__updateItem = function(item,index,isReset,isResetIndex)\r\n\t{\r\n\t\tif(item)\r\n\t\t{\r\n\t\t\tif(isResetIndex || !item.hasOwnProperty(this.__fieldIndex))\r\n\t\t\t{\r\n\t\t\t\titem[this.__fieldIndex] = index;\r\n\t\t\t}\r\n\t\t\tif(isReset || !item.hasOwnProperty(this.__fieldDisableHover))\r\n\t\t\t{\r\n\t\t\t\titem[this.__fieldDisableHover] = this.__isHoverDisabled(item);\r\n\t\t\t}\r\n\t\t\tif(isReset || !item.hasOwnProperty(this.__fieldSelected))\r\n\t\t\t{\r\n\t\t\t\titem[this.__fieldSelected] = false;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__createListItem = function(item,isAdd)\r\n\t{\r\n\t\tif(item)\r\n\t\t{\r\n\t\t\t if(this.util.isUndefined(isAdd) || isAdd === null)\r\n\t\t\t {\r\n\t\t\t\t isAdd = true;\r\n\t\t\t }\r\n\t\t\t var listItem = this.util.createElement(\"li\",null,\"nsListItem\");\r\n\t\t\t this.__objGrid.__createListItem(listItem,item);\r\n\t\t\t if(this.__enableMouseHover)\r\n\t\t\t {\r\n\t\t\t\t this.util.addEvent(listItem,\"mouseover\",this.__itemMouseOverHandler.bind(this));\r\n\t\t\t\t this.util.addEvent(listItem,\"mouseout\",this.__itemMouseOutHandler.bind(this));\r\n\t\t\t\t if(this.__enableMouseHoverAnimation)\r\n\t\t\t\t {\r\n\t\t\t\t\t this.util.addStyleClass(listItem,\"nsListItemAnimated\");\r\n\t\t\t\t }\r\n\t\t\t\t else\r\n\t\t\t\t {\r\n\t\t\t\t\t this.util.addStyleClass(listItem,\"nsListItemNormal\");\r\n\t\t\t\t }\r\n\t\t\t }\r\n\t\t\t this.util.addEvent(listItem,\"click\",this.__itemClickHandler.bind(this));\r\n\t\t\t this.__setListItemProperties(listItem,item);\r\n\t\t\t if(isAdd)\r\n\t\t\t {\r\n\t\t\t\t this.__listContainer.appendChild(listItem);\r\n\t\t\t }\r\n\t\t\t return listItem;\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n\t\r\n\tNSList.prototype.__setListItemProperties = function(listItem,item)\r\n\t{\r\n\t\tthis.__objGrid.__setListItemProperties(listItem,item);\r\n\t};\r\n\t\r\n\tNSList.prototype.__addCellText = function(listItem,item,div)\r\n\t{\r\n\t\tvar toolTipText = null;\r\n\t\tif(listItem && item && div)\r\n\t\t{\r\n\t\t\tif(this.__itemRenderer)\r\n\t\t\t{\r\n\t\t\t\tvar objRenderer = this.__itemRenderer(item,this.__labelField,item[this.__fieldIndex],item[this.__fieldDisableHover],listItem);\r\n\t\t\t\tif(objRenderer)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this.util.isString(objRenderer))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar compBodySpan = document.createElement(\"span\");\r\n\t\t\t\t\t\tcompBodySpan.innerHTML = objRenderer;\r\n\t\t\t\t\t\tdiv.appendChild(compBodySpan);\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\tdiv.appendChild(objRenderer);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if(this.__template)\r\n\t\t\t{\r\n\t\t\t\tdiv.appendChild(this.__template.cloneNode(true));\r\n\t\t\t\tthis.__setDataInTemplateRenderer(div,item,listItem);\r\n\t\t\t}\r\n\t\t\telse if(this.__labelFunction)\r\n\t\t\t{\r\n\t\t\t\tvar text = this.__labelFunction(item,this.__labelField);\r\n\t\t\t\tdiv.appendChild(document.createTextNode(text));\r\n\t\t\t}\r\n\t\t\telse if(item.hasOwnProperty(this.__labelField) && !this.util.isUndefined(item[this.__labelField]) && item[this.__labelField] != null)\r\n\t\t {\r\n\t\t\t\tvar text = item[this.__labelField];\r\n\t\t\t\tdiv.appendChild(document.createTextNode(text));\r\n\t\t }\r\n\t\t\tthis.__highlightDiv(div);\r\n\t\t\tif(this.__toolTipField)\r\n\t\t\t{\r\n\t\t\t\ttoolTipText = item[this.__toolTipField];\r\n\t\t\t}\r\n\t\t\telse if(this.__toolTipRenderer)\r\n\t\t\t{\r\n\t\t\t\ttoolTipText = this.__toolTipRenderer(item,this.__labelField,item[this.__fieldIndex],item[this.__fieldDisableHover],listItem);\r\n\t\t\t}\r\n\t\t\tif(this.__enableTruncateToFit)\r\n\t\t\t{\r\n\t\t\t\tthis.util.addStyleClass(div,\"nsListTruncateToFit\");\r\n\t\t\t\t//This condition is above so that toolTip and title are not set togeather\r\n\t\t\t\tif(!toolTipText || toolTipText === \"\")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this.__enableToolTipForTruncateText)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttoolTipText = div.textContent;\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\tdiv.setAttribute(\"title\",div.textContent);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(toolTipText && toolTipText !== \"\")\r\n\t\t\t{\r\n\t\t\t\tthis.__nsToolTipInElement.addToolTip(div,toolTipText);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setDataInTemplateRenderer = function(cellItem,data,listItem)\r\n\t{\r\n\t\tif(cellItem && this.__setData)\r\n\t\t{\r\n\t\t\tthis.__setRendererProperties(cellItem);\r\n\t\t\tthis.__setRendererInData(cellItem,data,listItem);\r\n\t\t\t//IE bug\r\n\t\t\tcellItem.data = data;\r\n\t\t\tif(this.util.isFunction(this.__setData))\r\n\t\t {\r\n\t\t\t\tvar strParam = \"(cellItem,data,dataField,isDisabled,listItem)\"; \r\n\t\t \tif(this.util.isString(this.__setData))\r\n\t\t \t{\r\n\t\t \t\tvar base = this;\r\n\t\t \t\tthis.util.callFunctionFromString(this.__setData + strParam,function(paramValue){\r\n\t\t\t\t\t\tif(paramValue === \"cellItem\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn cellItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(paramValue === \"data\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(paramValue === \"dataField\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn base.__labelField;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(paramValue === \"isDisabled\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn data[base.__fieldDisableHover];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(paramValue === \"listItem\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn listItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn paramValue;\r\n\t\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.__setData(cellItem,data,this.__labelField,data[this.__fieldDisableHover],listItem);\r\n\t\t \t}\r\n\t\t }\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setRendererInData = function(cellItem,data,listItem)\r\n\t{\r\n\t\tif(cellItem)\r\n\t\t{\r\n\t\t\tvar compChild = null;\r\n\t\t\tfor(var count = 0; count < cellItem.children.length; count++) \r\n\t\t\t{\r\n\t\t\t\tcompChild = cellItem.children[count];\r\n\t\t\t\tif(compChild)\r\n\t\t\t\t{\r\n\t\t\t\t\tcompChild.data = data;\r\n\t\t\t\t\tcompChild.listItem = listItem;\r\n\t\t\t\t}\r\n\t\t\t\t//IE 9 Bug,you got to assign it back\r\n\t\t\t\t//listItem.children[count] = compChild;\r\n\t\t\t\tthis.__setRendererInData(compChild,data,listItem);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setRendererProperties = function(cellItem)\r\n\t{\r\n\t\tif(cellItem)\r\n\t\t{\r\n\t\t\tvar compChild = null;\r\n\t\t\tfor(var count = 0; count < cellItem.children.length; count++) \r\n\t\t\t{\r\n\t\t\t\tcompChild = cellItem.children[count];\r\n\t\t\t\tvar grid = this;\r\n\t\t\t\tArray.prototype.slice.call(compChild.attributes).forEach(function(attribute) \r\n\t\t\t\t{\r\n\t\t\t if(grid.util.isFunction(attribute.value))\r\n\t\t\t {\r\n\t\t\t \tvar newValue = attribute.value + \"(this)\";\r\n\t\t\t \tcompChild.removeAttribute(attribute.name);\r\n\t\t\t\t\t\tcompChild.setAttribute(attribute.name,newValue);\r\n\t\t\t }\r\n\t\t\t\t});\r\n\t\t\t\tif(compChild)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(compChild.hasAttribute(\"accessor-name\"))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcellItem[compChild.getAttribute(\"accessor-name\")] = compChild;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.__setRendererProperties(compChild);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__setTemplate = function()\r\n\t{\r\n\t\tif(this.__templateID)\r\n\t\t{\r\n\t\t\tthis.__template = this.util.getTemplate(this.__templateID);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__isHoverDisabled = function(item)\r\n\t{\r\n\t\tif(this.__disableHoverField)\r\n\t\t{\r\n\t\t\treturn Boolean.parse(item[this.__disableHoverField]);\r\n\t\t}\r\n\t\tif(this.__disableHoverFunction)\r\n\t\t{\r\n\t\t\treturn Boolean.parse(this.__disableHoverFunction(item,this.__fieldIndex));\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\t\r\n\tNSList.prototype.__itemClickHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t var target = this.util.getTarget(event);\r\n\t target = this.util.findParent(target,\"li\");\r\n\t var index = this.__getIndexFromTarget(target);\r\n\t this.__setIndex(index,false);\r\n\t this.__lastNavigationDirection = null;\r\n\t};\r\n\t\r\n\tNSList.prototype.__setIndex = function(index,isMultiSelect)\r\n\t{\r\n\t\tif(index > -1)\r\n\t\t{\r\n\t\t\tisMultiSelect = Boolean.parse(isMultiSelect);\r\n\t\t\tif (this.__isShiftPressed && this.__enableMultipleSelection)\r\n\t\t {\r\n\t\t \tthis.__multiSectionHandler(index);\r\n\t\t }\r\n\t\t else if(isMultiSelect || (this.__isCtrlPressed && this.__enableMultipleSelection))\r\n\t\t {\r\n\t\t \tif(this.__isRowSelected(index))\r\n\t\t \t{\r\n\t\t \t\tthis.__markRowUnselected(index);\r\n\t\t \t}\r\n\t\t \telse\r\n\t\t \t{\r\n\t\t \t\tthis.__markRowSelected(index);\r\n\t\t \t}\r\n\t\t }\r\n\t\t else\r\n\t\t {\r\n\t\t \tthis.__clearAllRowSelection(false);\r\n\t\t \tthis.__markRowSelected(index);\r\n\t\t } \r\n\t\t}\r\n\t};\r\n\t\r\n\tNSList.prototype.__itemMouseOverHandler = function(event)\r\n\t{\r\n\t\t var target = this.util.getTarget(event);\r\n\t target = this.util.findParent(target,\"li\");\r\n\t var index = this.__getIndexFromTarget(target);\r\n\t var item = this.__getItemByIndex(index);\r\n\t if(target && index > -1 && this.__isMouseHoverAllowed(index))\r\n\t {\r\n\t \t this.util.addStyleClass(target,\"nsListItemHover\");\r\n\t \t this.__navigationIndex = index;\r\n\t \t this.util.dispatchEvent(this.__baseComponent,this.ITEM_NAVIGATED,item,{index:this.__navigationIndex});\r\n\t }\r\n\t};\r\n\t\r\n\tNSList.prototype.__itemMouseOutHandler = function(event)\r\n\t{\r\n\t\t var target = this.util.getTarget(event);\r\n\t target = this.util.findParent(target,\"li\");\r\n\t if(target)\r\n\t {\r\n\t \t this.util.removeStyleClass(target,\"nsListItemHover\");\r\n\t }\r\n\t};\r\n\t\r\n\tNSList.prototype.__keyDownHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tif(this.hasFocus())\r\n\t\t{\r\n\t\t\tthis.__isShiftPressed = event.shiftKey;\r\n\t\t\tthis.__isCtrlPressed = event.ctrlKey;\r\n\t\t\tvar isShiftCtrlPressed = this.__isShiftPressed || this.__isCtrlPressed;\r\n\t\t\tvar keyCode = this.util.getKeyUnicode(event);\r\n\t\t\tif(this.__enableKeyboardNavigation)\r\n\t\t\t{\r\n\t\t\t\tvar source = this.__objGrid.__getFlatSource();\r\n\t\t\t\t//key Up\r\n\t\t\t\tif(keyCode === this.util.KEYCODE.UP && isShiftCtrlPressed && this.__enableMultipleSelection)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this.__lastNavigationDirection && this.__lastNavigationDirection === this.NAVIGATION_DOWN)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn this.__keyBoardSelectionHandler(event,this.NAVIGATION_UP);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(this.__selectedIndex != 0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.__sel