UNPKG

ns-components-angular

Version:

Angular Wrapper Components for NSComponents

1 lines 814 kB
export declare const NSGridCode = "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 NSMenu = (function()\r\n{\r\n\tfunction NSMenu(setting) \r\n\t{\r\n\t\tthis.util = new NSUtil();\r\n\t\tthis.DEFAULT_POSITION = this.util.POS_BOTTOMRIGHT;\r\n\t\t\r\n\t\tthis.__setting = setting;\r\n\t\tthis.__config = null;\r\n\t\t\r\n\t\tthis.__id = null;\r\n\t\tthis.__popUp = null;\r\n\t\tthis.__nsPopUp = null;\r\n\t\tthis.__fieldItem = null;\r\n\t\tthis.__fieldItemChild = null;\r\n\t\tthis.__fieldChild = \"children\";\r\n\t\tthis.__isInternalCall = false;\r\n\t\tthis.__suppressDocumentHandler = false;\r\n\t\t\r\n\t\tthis.__documentClickRef = null;\r\n\t\tthis.__documentKeyUpRef = null;\r\n\t\tthis.__lastSelectedTarget = null;\r\n\t\t\r\n\t\tthis.__initialize();\r\n\t}\r\n\t\r\n\tNSMenu.prototype.create = function (dataSource) \r\n\t{ \r\n\t\tif(dataSource && (this.__config.createRunTime || this.__isInternalCall))\r\n\t\t{\r\n\t\t\tif(this.__popUp)\r\n\t\t\t{\r\n\t\t\t\tthis.remove();\r\n\t\t\t}\r\n\t\t\tthis.__isInternalCall = false;\r\n\t\t\tthis.__config.dataSource = dataSource;\r\n\t\t\tthis.__popUp = this.__createElement(true,this.__config.dataSource);\r\n\t\t\tthis.util.addStyleClass(this.__nsPopUp,\"nsMainMenu\");\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.remove = function () \r\n\t{ \r\n\t\tif(this.__config.createRunTime || this.__isInternalCall)\r\n\t\t{\r\n\t\t\tthis.__isInternalCall = false;\r\n\t\t\tthis.__nsPopUp.remove();\r\n\t\t\tthis.__popUp = null;\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.show = function (event) \r\n\t{ \r\n\t\tevent = this.util.getEvent(event);\r\n\t\tthis.__nsPopUp.hideOtherNSPopUp();\r\n\t\tif(this.__config.createRunTime)\r\n\t\t{\r\n\t\t\tthis.__isInternalCall = true;\r\n\t\t\tvar dataSource = null;\r\n\t\t\tif(this.__config.sourceProvider)\r\n\t\t\t{\r\n\t\t\t\tdataSource = this.__config.sourceProvider(this.__lastSelectedTarget);\r\n\t\t\t}\r\n\t\t\tif(dataSource && dataSource.length > 0)\r\n\t\t\t{\r\n\t\t\t\tthis.create(dataSource);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.util.preventDefault(event);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.__nsPopUp.show();\r\n\t\tthis.__nsPopUp.placePopUp(event);\r\n\t\tif(!this.__documentClickRef)\r\n\t\t{\r\n\t\t\tthis.__documentClickRef = this.__documentClickHandler.bind(this);\r\n\t\t\tthis.util.addEvent(document.documentElement,\"click\", this.__documentClickRef);\r\n\t\t}\r\n\t\tif(!this.__documentKeyUpRef)\r\n\t\t{\r\n\t\t\tthis.__documentKeyUpRef = this.__documentKeyUpHandler.bind(this);\r\n\t\t\tthis.util.addEvent(document.documentElement,\"keyup\", this.__documentKeyUpRef);\r\n\t\t}\r\n\t\tthis.util.preventDefault(event);\r\n\t};\r\n\tNSMenu.prototype.hide = function() \r\n\t{\r\n\t\tthis.__lastSelectedTarget = null;\r\n\t\tthis.__hideAllSubMenus();\r\n\t\tif(this.__config.createRunTime)\r\n\t\t{\r\n\t\t\tthis.__isInternalCall = true;\r\n\t\t\tthis.remove();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__nsPopUp.hide();\r\n\t\t}\r\n\t\tif(this.__documentClickRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document.documentElement,\"click\", this.__documentClickRef, false);\r\n\t\t\tthis.__documentClickRef = null;\r\n\t\t}\r\n\t\tif(this.__documentKeyUpRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document.documentElement,\"keyup\", this.__documentKeyUpRef, false);\r\n\t\t\tthis.__documentKeyUpRef = null;\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__initialize = function ()\r\n\t{\r\n\t\tif(this.__setting)\r\n\t\t{\r\n\t\t\t//eventHandler:extra eventHandler which developer wants to execute on the event i.e. click,customEvent etc\r\n\t\t\tthis.__config = {\r\n\t\t\t\t\tparent: this.__setting[\"parent\"] || null,\r\n\t\t\t\t\tdataSource: this.__setting[\"dataSource\"] || null,\r\n\t\t\t\t\tisContextMenu: (this.util.isUndefined(this.__setting[\"isContextMenu\"]) || this.__setting[\"isContextMenu\"] === null) ? true : Boolean.parse(this.__setting[\"isContextMenu\"]),\r\n\t\t\t\t\teventType: this.__setting[\"eventType\"] || \"click\",\r\n\t\t\t\t\tcreateRunTime: (this.util.isUndefined(this.__setting[\"createRunTime\"]) || this.__setting[\"createRunTime\"] === null) ? false : Boolean.parse(this.__setting[\"createRunTime\"]),\r\n\t\t\t\t\tsourceProvider: this.__setting[\"sourceProvider\"] || null,\r\n\t\t\t\t\ttargetType: this.__setting[\"targetType\"] || null,\r\n\t\t\t\t\tdefaultHandler: (this.__setting[\"defaultHandler\"] ? this.util.getFunction(this.__setting[\"defaultHandler\"]) : null),\r\n\t\t\t\t\teventHandler: (this.__setting[\"eventHandler\"] ? this.util.getFunction(this.__setting[\"eventHandler\"]) : null),\r\n\t\t\t\t\tposition: this.__setting[\"position\"] || this.DEFAULT_POSITION,\r\n\t\t\t\t\twidth: parseInt(this.__setting[\"width\"]) || -1\r\n\t\t\t\t};\r\n\t\t\tif(this.__config.parent)\r\n\t\t\t{\r\n\t\t\t\tvar popUpSetting = {id:this.__getID() + \"menu\",type:\"ul\",width:this.__config.width,position:this.__config.position};\r\n\t\t\t\tthis.__nsPopUp = new this.util.nsPopUp(popUpSetting);\r\n\t\t\t\tthis.__fieldItem = this.__getID() + \"_item\";\r\n\t\t\t\tthis.__fieldItemChild = this.__getID() + \"_child\";\r\n\t\t\t\tif(!this.__config.createRunTime)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__isInternalCall = true;\r\n\t\t\t\t\tthis.create(this.__config.dataSource);\r\n\t\t\t\t}\r\n\t\t\t\tif(this.__config.isContextMenu)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.util.addEvent(this.__config.parent,\"contextmenu\", this.__parentContextMenuHandler.bind(this));\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.util.addEvent(this.__config.parent,this.__config.eventType, this.__parentClickHandler.bind(this),false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__createElement = function(isRoot,dataSource) \r\n\t{\r\n\t\tvar parentNode = null;\r\n\t\tif(dataSource && dataSource.length > 0)\r\n\t\t{\r\n\t\t\tif(isRoot)\r\n\t\t\t{\r\n\t\t\t\tparentNode = this.__nsPopUp.create();\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tparentNode = document.createElement(\"ul\"); \r\n\t\t\t\tthis.util.addStyleClass(parentNode,\"nsMenu\");\r\n\t\t\t\tif(this.__config.width > -1)\r\n\t\t\t\t{\r\n\t\t\t\t\tparentNode.style.width = this.__config.width + \"px\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (var count = 0; count < dataSource.length; count++) \r\n\t\t\t{\r\n\t\t\t\tvar item = dataSource[count];\r\n\t\t\t\tthis.__createItem(item,parentNode);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn parentNode;\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__createItem = function(item,parent)\r\n\t{\r\n\t\tvar menuItem = null;\r\n\t\tif(item)\r\n\t\t{\r\n\t\t\tmenuItem = document.createElement(\"li\");\r\n\t\t\tthis.util.addStyleClass(menuItem,\"nsMenuItem\");\r\n\t\t\tif(item[\"header\"])\r\n\t\t\t{\r\n\t\t\t\tthis.util.addStyleClass(menuItem,\"nsHeader\");\r\n\t\t\t}\r\n\t\t\tif(item[\"disabled\"])\r\n\t\t\t{\r\n\t\t\t\tthis.util.addStyleClass(menuItem,\"nsDisabled\");\r\n\t\t\t}\r\n\t\t\tvar button = document.createElement(\"BUTTON\");\r\n\t\t\tthis.util.addStyleClass(button,\"nsMenuButton\");\r\n\t\t\tif(item[\"iconHTML\"])\r\n\t\t\t{\r\n\t\t\t\tvar spanIcon = document.createElement(\"span\");\r\n\t\t\t\tthis.util.addStyleClass(spanIcon,\"nsMenuAlign\");\r\n\t\t\t\tspanIcon.innerHTML = item[\"iconHTML\"];\r\n\t\t\t\tbutton.appendChild(spanIcon);\r\n\t\t\t}\r\n\t\t\tvar spanText = document.createElement(\"span\");\r\n\t\t\tthis.util.addStyleClass(spanText,\"nsMenuText\");\r\n\t\t\tspanText.appendChild(document.createTextNode(item[\"title\"]));\r\n\t\t\tbutton.appendChild(spanText);\r\n\t\t\tmenuItem.appendChild(button);\r\n\t\t\tthis.util.addEvent(menuItem,\"click\",this.__itemClickHandler.bind(this));\r\n\t\t\tthis.util.addEvent(menuItem,\"mouseenter\",this.__itemMouseOverHandler.bind(this));\r\n\t\t\tthis.util.addEvent(menuItem,\"mouseleave\",this.__itemMouseOutHandler.bind(this));\r\n\t\t\tif(item[this.__fieldChild]) \r\n\t\t\t{\r\n\t\t\t\tthis.util.addStyleClass(menuItem,\"nsSubMenu\");\r\n\t\t \tvar subMenu = this.__createElement(false,item[this.__fieldChild]);\r\n\t\t \tif(subMenu)\r\n\t\t \t{\r\n\t\t \t\tthis.util.addStyleClass(subMenu,\"nsSubMenuContainer\");\r\n\t\t\t \tmenuItem.appendChild(subMenu);\r\n\t\t\t \titem[this.__fieldItemChild] = subMenu;\r\n\t\t\t \tmenuItem.setAttribute(\"hasChild\",true);\r\n\t\t \t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tmenuItem.setAttribute(\"hasChild\",false);\r\n\t\t\t}\r\n\t\t\tif(parent)\r\n\t\t\t{\r\n\t\t\t\tparent.appendChild(menuItem);\r\n\t\t\t\tif(item[\"separatorBelow\"])\r\n\t\t\t\t{\r\n\t\t\t\t\tvar lineMenuItem = document.createElement(\"li\");\r\n\t\t\t\t\tthis.util.addStyleClass(lineMenuItem,\"nsMenuSeparator\");\r\n\t\t\t\t\tparent.appendChild(lineMenuItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\titem[this.__fieldItem] = menuItem;\r\n\t\t}\r\n\t\treturn menuItem;\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__itemClickHandler = function(event) \r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\ttarget = this.util.findParent(target,\"LI\");\r\n\t\tvar item = this.__getItem(target,this.__config.dataSource);\r\n\t\tif(item)\r\n\t\t{\r\n\t\t\tvar handler = null;\r\n\t\t\tif(item[\"handler\"])\r\n\t\t\t{\r\n\t\t\t\thandler = this.util.getFunction(item[\"handler\"]);\r\n\t\t\t}\r\n\t\t\tif(!handler)\r\n\t\t\t{\r\n\t\t\t\thandler = this.__config.defaultHandler;\r\n\t\t\t}\r\n\t\t\tif(handler)\r\n\t\t\t{\r\n\t\t\t\thandler(this.__lastSelectedTarget,item);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.hide();\r\n\t\tevent.stopImmediatePropagation();\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__itemMouseOverHandler = function(event) \r\n\t{\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\ttarget = this.util.findParent(target,\"LI\");\r\n\t\tif(target.getAttribute(\"hasChild\") === \"true\")\r\n\t\t{\r\n\t\t\tvar item = this.__getItem(target,this.__config.dataSource);\r\n\t\t\tif(item && item[this.__fieldItemChild])\r\n\t\t\t{\r\n\t\t\t\tvar childMenu = item[this.__fieldItemChild];\r\n\t\t\t\tthis.util.addStyleClass(childMenu,\"nsShowMenu\");\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__itemMouseOutHandler = function(event) \r\n\t{\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\ttarget = this.util.findParent(target,\"LI\");\r\n\t\tif(target.getAttribute(\"hasChild\") === \"true\")\r\n\t\t{\r\n\t\t\tvar item = this.__getItem(target,this.__config.dataSource);\r\n\t\t\tif(item && item[this.__fieldItemChild])\r\n\t\t\t{\r\n\t\t\t\tvar childMenu = item[this.__fieldItemChild];\r\n\t\t\t\tthis.util.removeStyleClass(childMenu,\"nsShowMenu\");\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__documentClickHandler = function(event) \r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\t/*if(!this.__config.isContextMenu && this.__isParentPresent(event.target,this.__config.parent))\r\n\t\t{\r\n\t\t\treturn;\r\n\t\t}*/\r\n\t\t//commenting this so that menu closes on click in Grid\r\n\t\t/*if(this.__suppressDocumentHandler)\r\n\t\t{\r\n\t\t\tthis.__suppressDocumentHandler = false;\r\n\t\t\treturn;\r\n\t\t}*/\r\n\t\tthis.hide();\r\n\t};\r\n\t\r\n\t\r\n\tNSMenu.prototype.__documentKeyUpHandler = 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.hide();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__parentContextMenuHandler = function(event)\r\n\t{\r\n\t\tif(this.__config.eventHandler)\r\n\t\t{\r\n\t\t\tthis.__config.eventHandler(event);\r\n\t\t}\r\n\t\tthis.__setLastSelectedTarget(this.util.getTarget(event));\r\n\t\tthis.show(event);\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__parentClickHandler = function(event)\r\n\t{\r\n\t\tif(this.__config.eventHandler)\r\n\t\t{\r\n\t\t\tthis.__config.eventHandler(event);\r\n\t\t}\r\n\t\tthis.__setLastSelectedTarget(this.util.getTarget(event));\r\n\t\t//below condition to make documentClickhandler aware that do not hide the menu,hence put only for click handler\r\n\t\tif(this.__config.eventType === \"click\")\r\n\t\t{\r\n\t\t\tthis.__suppressDocumentHandler = true;\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\t\tthis.show(event);\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__getItem = function(objItem,dataSource)\r\n\t{\r\n\t\tif(objItem)\r\n\t\t{\r\n\t\t\tfor (var count = 0; count < dataSource.length; count++) \r\n\t\t\t{\r\n\t\t\t\tvar item = dataSource[count];\r\n\t\t\t\tif(item[this.__fieldItem] == objItem)\r\n\t\t\t\t{\r\n\t\t\t\t\treturn item;\r\n\t\t\t\t}\r\n\t\t\t\tif(item.hasOwnProperty(this.__fieldChild))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar childItem = this.__getItem(objItem,item[this.__fieldChild]);\r\n\t\t\t\t\tif(childItem)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn childItem;\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\treturn null;\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__hideAllSubMenus = function()\r\n\t{\r\n\t\tvar arrSubMenus = this.__popUp.querySelectorAll(\"ul\");\r\n\t\tif(arrSubMenus && arrSubMenus.length > 0)\r\n\t\t{\r\n\t\t\tvar subMenu = null;\r\n\t\t\tfor(var count = 0;count < arrSubMenus.length;count++)\r\n\t\t\t{\r\n\t\t\t\tsubMenu = arrSubMenus[count];\r\n\t\t\t\tthis.util.removeStyleClass(subMenu,\"nsShowMenu\");\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__setLastSelectedTarget = function(target)\r\n\t{\r\n\t\tif(target && this.__config.targetType)\r\n\t\t{\r\n\t\t\ttarget = this.util.findParent(target,this.__config.targetType);\r\n\t\t}\r\n\t\tthis.__lastSelectedTarget = target;\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__getID = function()\r\n\t{\r\n\t\tif(!this.__id)\r\n\t\t{\r\n\t\t\tif(this.__config.parent.hasAttribute(\"id\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__id = this.__config.parent.getAttribute(\"id\");\r\n\t\t\t}\r\n\t\t\telse if(this.__config.parent.hasAttribute(\"name\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__id = this.__config.parent.getAttribute(\"name\");\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.__id = \"comp\" + this.util.getUniqueId();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.__id;\r\n\t};\r\n\t\r\n\tNSMenu.prototype.__isParentPresent = function(node,parentNode) \r\n\t{\r\n\t\twhile (node && node!== document.body)\r\n\t\t{\r\n\t\t\tif(node.id === parentNode.id) \r\n\t\t\t{\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tnode = node.parentNode;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\t\r\n\treturn NSMenu;\r\n})();\r\nnsModuleExport(this,\"NSMenu\",NSMenu); \"use strict\";\r\nvar NSPagination = (function()\r\n{\r\n\tfunction NSPagination(setting) \r\n\t{\r\n\t\tthis.PAGE_CLICK = \"pageClick\";\r\n\t\tthis.PAGE_CHANGE = \"pageChange\";\r\n\t\tthis.util = new NSUtil();\r\n\t\t\r\n\t\tthis.__setting = setting;\r\n\t\tthis.__config = null;\r\n\t\t\r\n\t\tthis.__id = null;\r\n\t\tthis.__container = null;\r\n\t\tthis.__itemFirst = null;\r\n\t\tthis.__itemLast = null;\r\n\t\tthis.__itemPrev = null;\r\n\t\tthis.__itemNext = null;\r\n\t\tthis.__arrItemPage = [];\r\n\t\tthis.__pageCount = 0;\r\n\t\tthis.__selectedPage = -1;\r\n\t\tthis.__initialize();\r\n\t}\r\n\t\r\n\tNSPagination.prototype.__initialize = function ()\r\n\t{\r\n\t\tif(this.__setting)\r\n\t\t{\r\n\t\t\tthis.__config = {\r\n\t\t\t\t\tparent: this.__setting[\"parent\"] || null,\r\n\t\t\t\t\ttotalRecords: parseInt(this.__setting[\"totalRecords\"]) || 0,\r\n\t\t\t\t\tpageSize: parseInt(this.__setting[\"pageSize\"]) || 0,\r\n\t\t\t\t\ttotalPageCount: parseInt(this.__setting[\"totalPageCount\"]) || 0,\r\n\t\t\t\t\tvisiblePages: parseInt(this.__setting[\"visiblePages\"]) || 5,\r\n\t\t\t\t\tcontainerStyle: this.__setting[\"containerStyle\"] || \"nsPaginationContainer\",\r\n\t\t\t\t\tactiveStyle: this.__setting[\"activeStyle\"] || \"nsPageActive\",\r\n\t\t\t\t\tdisabledStyle: this.__setting[\"disabledStyle\"] || \"nsPageDisabled\",\r\n\t\t\t\t\ttextFirst : this.__setting[\"textFirst\"] || \"&laquo;\",\r\n\t\t\t\t\ttextLast : this.__setting[\"textLast\"] || \"&raquo;\",\r\n\t\t\t\t\ttextNext : this.__setting[\"textNext\"] || \"&rsaquo;\",\r\n\t\t\t\t\ttextPrev : this.__setting[\"textPrev\"] || \"&lsaquo;\",\r\n\t\t\t\t\ttextTitlePagePrefix: this.__setting[\"textTitlePagePrefix\"] || \"Page\",\r\n\t\t\t textTitleFirst : this.__setting[\"textTitleFirst\"] || 'First Page', \r\n\t\t\t textTitleLast : this.__setting[\"textTitleLast\"] || 'Last Page',\r\n\t\t\t textTitleNext : this.__setting[\"textTitleNext\"] || 'Next Page', \r\n\t\t\t textTitlePrev : this.__setting[\"textTitlePrev\"] || 'Previous Page', \r\n\t\t\t\t\tshowPrevNext : (!this.util.isUndefined(this.__setting[\"showPrevNext\"]) && this.__setting[\"showPrevNext\"] != null) ? Boolean.parse(this.__setting[\"showPrevNext\"]) : true,\r\n\t\t\t\t\tshowFirstLast : (!this.util.isUndefined(this.__setting[\"showFirstLast\"]) && this.__setting[\"showFirstLast\"] != null) ? Boolean.parse(this.__setting[\"showFirstLast\"]) : false\r\n\t\t\t\t};\r\n\t\t\tthis.__create();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPagination.prototype.changePageSize = function(pageSize)\r\n\t{\r\n\t\tif(pageSize > 0 && this.__config)\r\n\t\t{\r\n\t\t\tthis.__config.pageSize = pageSize;\r\n\t\t\tthis.__create();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPagination.prototype.setSelectedPage = function(pageNumber)\r\n\t{\r\n\t\tthis.__update(pageNumber);\r\n\t};\r\n\t\r\n\tNSPagination.prototype.getSelectedPage = function(pageNumber)\r\n\t{\r\n\t\treturn this.__selectedPage;\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__create = function()\r\n\t{\r\n\t\tif(this.__config.parent)\r\n\t\t{\r\n\t\t\tif(this.__container)\r\n\t\t\t{\r\n\t\t\t\tthis.__container.parentNode.removeChild(this.__container);\r\n\t\t\t\tthis.__arrItemPage = [];\r\n\t\t\t\tthis.__selectedPage = -1;\r\n\t\t\t}\r\n\t\t\tif(this.__config.totalPageCount > 0)\r\n\t\t\t{\r\n\t\t\t\tthis.__pageCount = this.__config.totalPageCount;\r\n\t\t\t}\r\n\t\t\telse if(this.__config.pageSize > 0)\r\n\t\t\t{\r\n\t\t\t\tthis.__pageCount = Math.ceil(this.__config.totalRecords / this.__config.pageSize);\r\n\t\t\t}\r\n\t\t\tthis.__container = this.util.createElement(\"ul\",this.__getID() + \"container\",this.__config.containerStyle);\r\n\t\t\tthis.__config.parent.appendChild(this.__container);\r\n\t\t\tif(this.__config.showFirstLast)\r\n\t\t\t{\r\n\t\t\t\tthis.__itemFirst = this.__createItem(\"-4\",this.__config[\"textFirst\"],this.__config.textTitleFirst,this.__controlItemClickHandler);\r\n\t\t\t}\r\n\t\t\tif(this.__config.showPrevNext)\r\n\t\t\t{\r\n\t\t\t\tthis.__itemPrev = this.__createItem(\"-3\",this.__config[\"textPrev\"],this.__config.textTitlePrev,this.__controlItemClickHandler);\r\n\t\t\t}\r\n\t\t\tvar createdNumber = Math.min(this.__pageCount,this.__config.visiblePages);\r\n\t\t\tfor(var count = 1;count <= createdNumber;count++)\r\n\t\t\t{\r\n\t\t\t\tvar pageItem = this.__createItem(count,count,this.__config.textTitlePagePrefix + \" \" + count,this.__pageItemClickHandler);\r\n\t\t\t\tthis.__arrItemPage.push(pageItem);\r\n\t\t\t}\r\n\t\t\tif(this.__config.showPrevNext)\r\n\t\t\t{\r\n\t\t\t\tthis.__itemNext = this.__createItem(\"-2\",this.__config[\"textNext\"],this.__config.textTitleNext,this.__controlItemClickHandler);\r\n\t\t\t}\r\n\t\t\tif(this.__config.showFirstLast)\r\n\t\t\t{\r\n\t\t\t\tthis.__itemLast = this.__createItem(\"-1\",this.__config[\"textLast\"],this.__config.textTitleLast,this.__controlItemClickHandler);\r\n\t\t\t}\r\n\t\t\t//this.__selectPage(1);\r\n\t\t\tthis.__updateControlState(1);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__controlItemClickHandler = function(event)\r\n\t{\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\ttarget = this.util.findParent(target,\"li\");\r\n\t\tvar index = parseInt(target.getAttribute(\"pageNum\"));\r\n\t\tvar pageSelected = -1;\r\n\t\tswitch(index)\r\n\t\t{\r\n\t\t\tcase -4:\r\n\t\t\t\tpageSelected = 1;\r\n\t\t\t\tbreak;\r\n\t\t\tcase -3:\r\n\t\t\t\tpageSelected = this.__selectedPage - 1;\r\n\t\t\t\tbreak;\r\n\t\t\tcase -2:\r\n\t\t\t\tpageSelected = this.__selectedPage + 1;\r\n\t\t\t\tbreak;\r\n\t\t\tcase -1:\r\n\t\t\t\tpageSelected = this.__pageCount;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.__update(pageSelected);\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__pageItemClickHandler = function(event)\r\n\t{\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\ttarget = this.util.findParent(target,\"li\");\r\n\t\tvar index = parseInt(target.getAttribute(\"pageNum\"));\r\n\t\tthis.__update(index);\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__createItem = function(pageNumber,htmlText,titleText,clickHandler)\r\n\t{\r\n\t\tvar pageItem = this.util.createElement(\"li\",this.__getID() + \"Page\" + pageNumber,null);\r\n\t\tpageItem.setAttribute(\"pageNum\",pageNumber);\r\n\t\tpageItem.setAttribute(\"title\",titleText);\r\n\t\tthis.util.addEvent(pageItem,\"click\",clickHandler.bind(this));\r\n\t\tvar pageText = this.util.createElement(\"a\",null,null);\r\n\t\tpageText.setAttribute(\"href\",\"javascript:void(0);\");\r\n\t\tpageText.innerHTML = htmlText;\r\n\t\tpageItem.appendChild(pageText);\r\n\t\tthis.__container.appendChild(pageItem);\r\n\t\treturn pageItem;\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__update = function(pageNumber)\r\n\t{\r\n\t\tif(pageNumber <= 0)\r\n\t\t{\r\n\t\t\tpageNumber = 1;\r\n\t\t}\r\n\t\telse if(pageNumber > this.__pageCount)\r\n\t\t{\r\n\t\t\tpageNumber = this.__pageCount;\r\n\t\t}\r\n\t\tvar range = this.__calculateRange(this.__pageCount,Math.min(this.__pageCount,this.__config.visiblePages),pageNumber);\r\n\t\tthis.__updateItem(range[0],range[1]);\r\n\t\tthis.__selectPage(pageNumber);\r\n\t\tthis.__updateControlState(pageNumber);\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__updateItem = function(fromPage,toPage)\r\n\t{\r\n\t\tvar firstNumber = parseInt(this.__arrItemPage[0].getAttribute(\"pageNum\"));\r\n\t\tvar lastNumber = parseInt(this.__arrItemPage[this.__arrItemPage.length - 1].getAttribute(\"pageNum\"));\r\n\t\tif(!(firstNumber === fromPage && lastNumber === toPage))\r\n\t\t{\r\n\t\t\tfor(var count = 0;count < this.__arrItemPage.length;count++)\r\n\t\t\t{\r\n\t\t\t\tvar pageItem = this.__arrItemPage[count];\r\n\t\t\t\tvar index = count + fromPage;\r\n\t\t\t\tpageItem.setAttribute(\"pageNum\",index);\r\n\t\t\t\tpageItem.setAttribute(\"title\",this.__config.textTitlePagePrefix + \" \" + index);\r\n\t\t\t\tvar pageText = pageItem.firstChild;\r\n\t\t\t\tpageText.innerHTML = index;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__updateControlState = function(pageNumber)\r\n\t{\r\n\t\tif(pageNumber === 1)\r\n\t\t{\r\n\t\t\tthis.__itemFirst ? this.util.addStyleClass(this.__itemFirst,this.__config.disabledStyle) : \"\";\r\n\t\t\tthis.__itemPrev ? this.util.addStyleClass(this.__itemPrev,this.__config.disabledStyle) : \"\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__itemFirst ? this.util.removeStyleClass(this.__itemFirst,this.__config.disabledStyle) : \"\";\r\n\t\t\tthis.__itemPrev ? this.util.removeStyleClass(this.__itemPrev,this.__config.disabledStyle) : \"\";\r\n\t\t}\r\n\t\tif(pageNumber === this.__pageCount)\r\n\t\t{\r\n\t\t\tthis.__itemNext ? this.util.addStyleClass(this.__itemNext,this.__config.disabledStyle) : \"\";\r\n\t\t\tthis.__itemLast ? this.util.addStyleClass(this.__itemLast,this.__config.disabledStyle) : \"\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__itemNext ? this.util.removeStyleClass(this.__itemNext,this.__config.disabledStyle) : \"\";\r\n\t\t\tthis.__itemLast ? this.util.removeStyleClass(this.__itemLast,this.__config.disabledStyle) : \"\";\r\n\t\t};\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__calculateRange = function(totalPages,visiblePages,pageToBeSelected)\r\n\t{\r\n\t\tvar renderPage = [1,totalPages];\r\n\t\tvar limit = Math.floor(visiblePages/2);\r\n\t\tif(visiblePages > 0)\r\n\t\t{\r\n\t\t\trenderPage[0] = Math.max(pageToBeSelected - limit, 1);\r\n\t\t\trenderPage[1] = Math.min(pageToBeSelected + limit, totalPages);\r\n\t\t\tvar difference = renderPage[1] - renderPage[0];\r\n\t\t\tif(renderPage[0] === 1 && difference < visiblePages)\r\n\t\t\t{\r\n\t\t\t\trenderPage[1] = visiblePages;\r\n\t\t\t}\r\n\t\t\telse if(renderPage[1] === totalPages && difference < visiblePages)\r\n\t\t\t{\r\n\t\t\t\trenderPage[0] = renderPage[1] - visiblePages + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn renderPage;\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__selectPage = function(pageIndex)\r\n\t{\r\n\t\tvar selectedIndex = -1;\r\n\t\tfor(var count = 0;count < this.__arrItemPage.length;count++)\r\n\t\t{\r\n\t\t\tvar pageItem = this.__arrItemPage[count];\r\n\t\t\tthis.util.removeStyleClass(pageItem,this.__config.activeStyle);\r\n\t\t\tvar index = parseInt(pageItem.getAttribute(\"pageNum\"));\r\n\t\t\tif(index === pageIndex)\r\n\t\t\t{\r\n\t\t\t\tselectedIndex = count;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(selectedIndex > -1)\r\n\t\t{\r\n\t\t\tvar oldPage = this.__selectedPage;\r\n\t\t\tthis.util.addStyleClass(this.__arrItemPage[selectedIndex],this.__config.activeStyle);\r\n\t\t\tthis.__selectedPage = pageIndex;\r\n\t\t\tvar fromRecord = (pageIndex - 1) * this.__config.pageSize;\r\n\t\t\tvar toRecord = fromRecord + this.__config.pageSize - 1;\r\n\t\t\ttoRecord = (toRecord < this.__config.totalRecords) ? toRecord : ((toRecord === this.__config.totalRecords) ? this.__config.totalRecords - 1 : this.__config.totalRecords);\r\n\t\t\tvar item = {oldIndex:oldPage,newIndex:this.__selectedPage,fromRecord:fromRecord,toRecord:toRecord};\r\n\t\t\tthis.util.dispatchEvent(this.__config.parent,this.PAGE_CLICK,item,item);\r\n\t\t\tif(oldPage !== this.__selectedPage)\r\n\t\t\t{\r\n\t\t\t\tthis.util.dispatchEvent(this.__config.parent,this.PAGE_CHANGE,item,item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPagination.prototype.__getID = function()\r\n\t{\r\n\t\tif(!this.__id)\r\n\t\t{\r\n\t\t\tif(this.__config.parent.hasAttribute(\"id\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__id = this.__config.parent.getAttribute(\"id\");\r\n\t\t\t}\r\n\t\t\telse if(this.__config.parent.hasAttribute(\"name\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__id = this.__config.parent.getAttribute(\"name\");\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.__id = \"comp\" + this.util.getUniqueId();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.__id;\r\n\t};\r\n\t\r\n\treturn NSPagination;\r\n})();\r\nnsModuleExport(this,\"NSPagination\",NSPagination);\r\nvar NSExport = (function()\r\n{\r\n\t//DONOT REMOVE: taken from https://gist.github.com/sevir/3946819\r\n\tif (window && !window.atob && !window.btoa)\r\n\t{\r\n\t ( function( window ) {\r\n\t var _PADCHAR = \"=\",\r\n\t _ALPHA = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n\t \r\n\t function _getbyte64( s, i ) { \r\n\t var idx = _ALPHA.indexOf( s.charAt( i ) );\r\n\t \r\n\t if ( idx === -1 ) {\r\n\t throw \"Cannot decode base64\";\r\n\t }\r\n\t \r\n\t return idx;\r\n\t }\r\n\t \r\n\t function _decode( s ) {\r\n\t var pads = 0,\r\n\t i,\r\n\t b10,\r\n\t imax = s.length,\r\n\t x = [];\r\n\t \r\n\t s = String( s );\r\n\t \r\n\t if ( imax === 0 ) {\r\n\t return s;\r\n\t }\r\n\t \r\n\t if ( imax % 4 !== 0 ) {\r\n\t throw \"Cannot decode base64\";\r\n\t }\r\n\t \r\n\t if ( s.charAt( imax - 1 ) === _PADCHAR ) {\r\n\t pads = 1;\r\n\t \r\n\t if ( s.charAt( imax - 2 ) === _PADCHAR ) {\r\n\t pads = 2;\r\n\t }\r\n\t \r\n\t // either way, we want to ignore this last block\r\n\t imax -= 4;\r\n\t }\r\n\t \r\n\t for ( i = 0; i < imax; i += 4 ) {\r\n\t b10 = ( _getbyte64( s, i ) << 18 ) | ( _getbyte64( s, i + 1 ) << 12 ) | ( _getbyte64( s, i + 2 ) << 6 ) | _getbyte64( s, i + 3 );\r\n\t x.push( String.fromCharCode( b10 >> 16, ( b10 >> 8 ) & 0xff, b10 & 0xff ) );\r\n\t }\r\n\t \r\n\t switch ( pads ) {\r\n\t case 1:\r\n\t b10 = ( _getbyte64( s, i ) << 18 ) | ( _getbyte64( s, i + 1 ) << 12 ) | ( _getbyte64( s, i + 2 ) << 6 );\r\n\t x.push( String.fromCharCode( b10 >> 16, ( b10 >> 8 ) & 0xff ) );\r\n\t break;\r\n\t \r\n\t case 2:\r\n\t b10 = ( _getbyte64( s, i ) << 18) | ( _getbyte64( s, i + 1 ) << 12 );\r\n\t x.push( String.fromCharCode( b10 >> 16 ) );\r\n\t break;\r\n\t }\r\n\t \r\n\t return x.join( \"\" );\r\n\t }\r\n\t \r\n\t function _getbyte( s, i ) {\r\n\t var x = s.charCodeAt( i );\r\n\t \r\n\t if ( x > 255 ) {\r\n\t throw \"INVALID_CHARACTER_ERR: DOM Exception 5\";\r\n\t }\r\n\t \r\n\t return x;\r\n\t }\r\n\t \r\n\t function _encode( s ) {\r\n\t if ( arguments.length !== 1 ) {\r\n\t throw \"SyntaxError: exactly one argument required\";\r\n\t }\r\n\t \r\n\t s = String( s );\r\n\t \r\n\t var i,\r\n\t b10,\r\n\t x = [],\r\n\t imax = s.length - s.length % 3;\r\n\t \r\n\t if ( s.length === 0 ) {\r\n\t return s;\r\n\t }\r\n\t \r\n\t for ( i = 0; i < imax; i += 3 ) {\r\n\t b10 = ( _getbyte( s, i ) << 16 ) | ( _getbyte( s, i + 1 ) << 8 ) | _getbyte( s, i + 2 );\r\n\t x.push( _ALPHA.charAt( b10 >> 18 ) );\r\n\t x.push( _ALPHA.charAt( ( b10 >> 12 ) & 0x3F ) );\r\n\t x.push( _ALPHA.charAt( ( b10 >> 6 ) & 0x3f ) );\r\n\t x.push( _ALPHA.charAt( b10 & 0x3f ) );\r\n\t }\r\n\t \r\n\t switch ( s.length - imax ) {\r\n\t case 1:\r\n\t b10 = _getbyte( s, i ) << 16;\r\n\t x.push( _ALPHA.charAt( b10 >> 18 ) + _ALPHA.charAt( ( b10 >> 12 ) & 0x3F ) + _PADCHAR + _PADCHAR );\r\n\t break;\r\n\t \r\n\t case 2:\r\n\t b10 = ( _getbyte( s, i ) << 16 ) | ( _getbyte( s, i + 1 ) << 8 );\r\n\t x.push( _ALPHA.charAt( b10 >> 18 ) + _ALPHA.charAt( ( b10 >> 12 ) & 0x3F ) + _ALPHA.charAt( ( b10 >> 6 ) & 0x3f ) + _PADCHAR );\r\n\t break;\r\n\t }\r\n\t \r\n\t return x.join(\"\");\r\n\t }\r\n\t\r\n\t window.btoa = _encode;\r\n\t window.atoa = _decode;\r\n\t \r\n\t })( window );\r\n\t}\r\n\t\r\n\t\"use strict\"; \r\n\tfunction NSExport(grid,fileName,extPath,ignoreColumn) \r\n\t{\r\n\t\tthis.__grid = grid;\r\n\t\tthis.__fileName = fileName;\r\n\t\tthis.__ignoreColumn = ignoreColumn;\r\n\t\tthis.__extFilePath = extPath ? extPath : \"../lib/com/ext\";\r\n\t\tthis.util = new NSUtil();\r\n\t\tthis.__defaultDelimiter = \",\";\r\n\t\tthis.__defaultNewLine = \"\\r\\n\";\r\n\t\tthis.__externalScriptLoad = {jspdf:false,html2canvas:false};\r\n\t}\r\n\t\r\n\t//Orientation: portrait or landscape\r\n\tNSExport.prototype.word = function(setting) \r\n\t{\r\n\t\tif(setting)\r\n\t\t{\r\n\t\t\tif(setting.type === \"doc\")\r\n\t\t\t{\r\n\t\t\t\tvar docSetting = {appType:\"doc\",extension:\"doc\",event:setting.event,orientation:setting.orientation,element:setting.element,pageBreakTag:setting.pageBreakTag,headerFooterCss:\"\",startHtml:\"\",endHtml:\"\"};\r\n\t\t\t\tif(setting.hasHeaderOrFooter)\r\n\t {\r\n\t \tdocSetting.headerFooterCss = setting.headerFooterCss || \"\";\r\n\t \tdocSetting.startHtml = setting.startHtml || \"\";\r\n\t \tdocSetting.endHtml = setting.endHtml || \"\";\r\n\t }\r\n\t\t\t\tif(setting.enablePageNumber)\r\n\t\t\t\t{\r\n\t\t\t\t\tdocSetting.headerFooterCss += \"p.MsoHeader, li.MsoHeader, div.MsoHeader{ margin:0in; margin-top:.0001pt; mso-pagination:widow-orphan; tab-stops:center 3.0in right 6.0in; } p.MsoFooter, li.MsoFooter, div.MsoFooter{ margin:0in 0in 1in 0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; tab-stops:center 3.0in right 6.0in; } .footer { font-size: 9pt; } @page Section1{ size:8.5in 11.0in; margin:0.5in 0.5in 0.5in 0.5in; mso-header-margin:0.5in; mso-header:h1; mso-footer:f1; mso-footer-margin:0.5in; mso-paper-source:0; } div.Section1{ page:Section1; } table#hrdftrtbl{ margin:0in 0in 0in 9in; }\";\r\n\t\t\t\t\tdocSetting.startHtml = \"<div class=\\\"Section1\\\">\" + docSetting.startHtml; \r\n\t\t\t\t\tdocSetting.endHtml += \"<table id=\\\"hrdftrtbl\\\" border=\\\"1\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"> <tr> <td> <div style=\\\"mso-element:footer\\\" id=\\\"f1\\\"> <p class=\\\"MsoFooter\\\"> <table width=\\\"100%\\\" border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"> <tr> <td align=\\\"center\\\" class=\\\"footer\\\"> <g:message code=\\\"offer.letter.page.label\\\"/> <span style=\\\"mso-field-code: PAGE \\\"></span> of <span style=\\\"mso-field-code: NUMPAGES \\\"></span> </td> </tr> </table> </p> </div> </td> </tr> </table> </div>\";;\r\n\t\t\t\t}\r\n\t\t\t\tthis.__exportOfficeTypes(docSetting);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!setting.orientation || (setting.orientation !== \"portrait\" && setting.orientation !== \"landscape\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.util.warning(\"NSExport\",\"Docx type value was either not valid or not in the correct format.Hence defaulting to portrait\");\r\n\t\t\t\t\tsetting.orientation = \"portrait\";\r\n\t\t\t\t}\r\n\t\t\t\tvar docSetting = {appType:\"doc\",element:setting.element,pageBreakTag:setting.pageBreakTag,headerFooterCss:\"\",startHtml:\"\",endHtml:\"\"};\r\n\t\t\t\tif(setting.hasHeaderOrFooter)\r\n\t {\r\n\t \tdocSetting.headerFooterCss = setting.headerFooterCss;\r\n\t \tdocSetting.startHtml = setting.startHtml;\r\n\t \tdocSetting.endHtml = setting.endHtml;\r\n\t }\r\n\t\t\t\tvar htmlText = this.__getHTMLTextForOffice(docSetting);\r\n\t\t\t\tif(htmlText && htmlText.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar fileName = this.__getFileName(\"docx\");\r\n\t\t\t\t\tvar exportSetting = {fileName:fileName,htmlSetting:{html:htmlText,htmlStyle: setting.extraStyle,loopNodesCallback: setting.loopNodesCallback},printSetting:{orientation: setting.orientation}};\r\n\t\t\t\t\tvar docxExport = new NSDocxExport(exportSetting);\r\n\t\t\t\t\tdocxExport.process();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.powerpoint = function(setting) \r\n\t{\r\n\t\tif(setting)\r\n\t\t{\r\n\t\t\tvar docSetting = {appType:\"powerpoint\",extension:\"ppt\",event:setting.event,element:setting.element};\r\n\t\t\tthis.__exportOfficeTypes(docSetting);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.excel = function(setting) \r\n\t{\r\n\t\tif(setting)\r\n\t\t{\r\n\t\t\tif(setting.type === \"xls\")\r\n\t\t\t{\r\n\t\t\t\tvar docSetting = {appType:\"excel\",extension:\"xls\",sheetName:setting.sheetName,event:setting.event,element:setting.element,properties:setting.properties};\r\n\t\t\t\tthis.__exportOfficeTypes(docSetting);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar objXslxExport = new this.xslxExport(this,setting.sheetName,setting.event,setting.properties);\r\n\t\t\t\tobjXslxExport.exportToxlsx();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.csv = function(event) \r\n\t{ \r\n\t\tvar csvText = this.__getTableAsString(this.__defaultDelimiter,this.__defaultNewLine);\r\n\t\tif(csvText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/csv\";\r\n\t\t\tthis.__downloadFile(csvText,uri,\"csv\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.xml = function(event) \r\n\t{ \r\n\t\tvar xmlText = this.__getTableAsXML();\r\n\t\tif(xmlText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/xml\";\r\n\t\t\tthis.__downloadFile(xmlText,uri,\"xml\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.text = function(event) \r\n\t{ \r\n\t\tvar csvText = this.__getTableAsString(this.__defaultDelimiter,this.__defaultNewLine,\"-\");\r\n\t\tif(csvText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/txt\";\r\n\t\t\tthis.__downloadFile(csvText,uri,\"txt\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.json = function(event) \r\n\t{ \r\n\t\tvar jsonText = this.__getTableAsJson();\r\n\t\tif(jsonText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/json\";\r\n\t\t\tthis.__downloadFile(jsonText,uri,\"json\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.pdf = function(event,setting) \r\n\t{ \r\n\t\tthis.__processPDF = function()\r\n\t\t{\r\n\t\t\tthis.__externalScriptLoad.jspdf = true;\r\n\t\t\tif(!setting)\r\n\t\t\t{\r\n\t\t\t\tsetting = {};\r\n\t\t\t}\r\n\t\t\tvar config = {\r\n\t\t\t\t\tfontSize: setting[\"fontSize\"] || 14,\r\n\t\t\t\t\twidth: setting[\"width\"] || 1200,\r\n\t\t\t\t\ttopMargin: setting[\"topMargin\"] || 30,\r\n\t\t\t\t\tbottomMargin: setting[\"bottomMargin\"] || 60,\r\n\t\t\t\t\tleftMargin: setting[\"leftMargin\"] || 60,\r\n\t\t\t\t\tmaxWidth: setting[\"maxWidth\"] || 550\r\n\t\t\t};\r\n\t\t\tvar divSource = this.__getStructureForPDF(config.width,config.fontSize);\r\n\t\t\tdocument.body.appendChild(divSource);\r\n\t\t\tvar pdf = new jsPDF(\"p\", \"pt\", \"ledger\");\r\n\t\t\t// we support special element handlers. Register them with jQuery-style \r\n\t\t // ID selector for either ID or node name. (\"#iAmID\", \"div\", \"span\" etc.)\r\n\t\t // There is no support for any other type of selectors \r\n\t\t // (class, of compound) at this time.\r\n\t\t\tspecialElementHandlers = \r\n\t\t\t{\r\n\t\t // element with id of \"bypass\" - jQuery style selector\r\n\t\t '#bypassme' : function(element, renderer) {\r\n\t\t // true = \"handled elsewhere, bypass text extraction\"\r\n\t\t return true;\r\n\t\t }\r\n\t\t };\r\n\t\t margins = {\r\n\t\t top : config.topMargin,\r\n\t\t bottom : config.bottomMargin,\r\n\t\t left : config.leftMargin,\r\n\t\t width : config.maxWidth\r\n\t\t };\r\n\t\t var self = this;\r\n\t\t // all coords and widths are in jsPDF instance's declared units\r\n\t\t // 'inches' in this case\r\n\t\t pdf.fromHTML(divSource, // HTML string or DOM elem ref.\r\n\t\t margins.left, // x coord\r\n\t\t margins.top, { // y coord\r\n\t\t 'width' : margins.width, // max width of content on PDF\r\n\t\t 'elementHandlers' : specialElementHandlers\r\n\t\t },\r\n\t\r\n\t\t function(dispose) {\r\n\t\t // dispose: object with X, Y of the last line add to the PDF \r\n\t\t // this allow the insertion of new lines after html\r\n\t\t pdf.save(self.__getFileName(\"pdf\"));\r\n\t\t\t\tdocument.body.removeChild(divSource);\r\n\t\t }, margins);\r\n\t\t};\r\n\t\tif(!this.__externalScriptLoad.jspdf)\r\n\t\t{\r\n\t\t\tthis.__includeJavaScriptFile(this.__extFilePath + \"/jspdf/jspdf.min.js\",this.__processPDF.bind(this));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__processPDF.bind(this)();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.image = function(setting) \r\n\t{\r\n\t\tif(!setting)\r\n\t\t{\r\n\t\t\tsetting = {};\r\n\t\t}\r\n\t\tthis.__processImage = function()\r\n\t\t{\r\n\t\t\tthis.__externalScriptLoad.html2canvas = true;\r\n\t\t\tif(!setting.type || (setting.type !== \"png\" && setting.type !== \"jpeg\"))\r\n\t\t\t{\r\n\t\t\t\tthis.util.warning(\"NSExport\",\"Image type value was either not valid or not in the correct format.Hence defaulting to png\");\r\n\t\t\t\tsetting.type = \"png\";\r\n\t\t\t}\r\n\t\t\tvar imageType = \"image/\" + setting.type; \r\n\t\t\tvar divParent = this.__getStructureForImage();\r\n\t\t\tif(divParent)\r\n\t\t\t{\r\n\t\t\t\tvar nsExport = this;\r\n\t\t\t\thtml2canvas(divParent,{\r\n\t\t\t\t\tonrendered: function(canvas) {\t\t\r\n\t\t\t\t\t\t//document.body.appendChild(canvas);\r\n\t\t\t\t\t\tvar data = canvas.toDataURL(imageType);\r\n\t\t\t\t\t\tif(!data || data === \"data:,\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tnsExport.util.throwNSError(\"NSExport\",\"Please give table some width and height\");\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\tnsExport.__downloadFile(data,imageType,setting.type);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\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.util.throwNSError(\"NSExport\",\"Please add the table inside a parent Element\");\r\n\t\t\t}\r\n\t\t};\r\n\t\tif(!this.__externalScriptLoad.html2canvas)\r\n\t\t{\r\n\t\t\tthis.__includeJavaScriptFile(this.__extFilePath + \"/html2canvas/html2canvas.min.js\",this.__processImage.bind(this));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__processImage.bind(this)();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.__exportOfficeTypes = function(setting) \r\n\t{\r\n\t\tvar htmlText = this.__getHTMLTextForOffice(setting);\r\n\t\tif(htmlText && htmlText.length > 0)\r\n\t\t{\r\n\t\t\tvar uri = \"application/vnd.ms-\" + setting.appType;\r\n\t\t\tif(setting.extension === \"doc\")\r\n\t\t\t{\r\n\t\t\t\turi = \"application/msword\";\r\n\t\t\t}\r\n\t\t\tthis.__downloadFile(htmlText,uri,setting.extension,setting.event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForOffice = function(setting) \r\n\t{\r\n\t\tvar appType = setting.appType;\r\n\t\tvar element = setting.element;\r\n\t\tvar headerFooterCss = setting.headerFooterCss ? setting.headerFooterCss : \"\";\r\n\t var startHtml = setting.startHtml ? setting.startHtml : \"\";\r\n\t var endHtml = setting.endHtml ? setting.endHtml : \"\";\r\n\t\tvar htmlText = \"\";\r\n\t\tvar outerHTML = null;\r\n\t\tvar isTable = false;\r\n\t\tif(element)\r\n\t\t{\r\n\t\t\touterHTML = element.outerHTML;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar table = this.__getTable();\r\n\t\t\tif(table)\r\n\t\t\t{\r\n\t\t\t\touterHTML = table.outerHTML;\r\n\t\t\t}\r\n\t\t\tisTable = true;\r\n\t\t}\r\n\t\tvar objValue = {};\r\n\t\tswitch(appType)\r\n\t\t{\r\n\t\t\tcase \"doc\":\r\n\t\t\t\tobjValue = this.__getHTMLTextForWord(setting,outerHTML,isTable);\r\n\t\t\tbreak;\r\n\t\t\tcase \"excel\":\r\n\t\t\t\tobjValue = this.__getHTMLTextForExcel(setting,outerHTML,isTable);\r\n\t\t\tbreak;\r\n\t\t\tcase \"powerpoint\":\r\n\t\t\t\tobjValue = this.__getHTMLTextForPpt(setting,outerHTML,isTable);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tif(outerHTML)\r\n\t\t{\r\n\t\t\tobjValue.style = (objValue.style) ? objValue.style : \"\";\r\n\t\t\thtmlText = '<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:' + appType +'\" xmlns=\"http://www.w3.org/TR/REC-html40\">';\r\n\t\t\thtmlText += '<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">';\r\n\t\t\thtmlText +='<!--[if gte mso 9]><xml>';\r\n\t\t\thtmlText += objValue.header;\r\n\t\t\thtmlText += '</xml><![endif]-->';\r\n\t\t //htmlText +=\"<o:shapedefaults v:ext=\\\"edit\\\" spidmax=\\\"1026\\\"/>\";\r\n\t\t\thtmlText += '<style>' + objValue.style + headerFooterCss + '.header{mso-style-parent:style0;color:white;font-size:10.0pt;font-weight:700;font-family:Tahoma, sans-serif;mso-font-charset:0;text-align:center;background:gray;mso-pattern:black none;}</style>';\r\n\t\t\thtmlText += '</head>';\r\n\t\t\thtmlText += '<body link=\"blue\" vlink=\"purple\">';\r\n\t\t\thtmlText += startHtml + objValue.html + endHtml;\r\n\t\t\thtmlText += '</body></html>';\r\n\t\t}\r\n\t\treturn htmlText;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForWord = function(setting,html,isTable)\r\n\t{\r\n\t\tvar objReturn = {header:null,style:null,html:html};\r\n\t\tobjReturn.header = \"<w:WordDocument><w:View>Print</w:View><w:Zoom>100</w:Zoom><w:DoNotOptimizeForBrowser/></w:WordDocument>\";\r\n\t\tif(isTable)\r\n\t\t{\r\n\t\t\tobjReturn.style = 'table{border-collapse: collapse;} table, th, td {border: 1px solid black;} ';\r\n\t\t}\r\n\t\tif(setting[\"pageBreakTag\"])\r\n\t\t{\r\n\t\t\tobjReturn.html = objReturn.html.replaceAll(setting[\"pageBreakTag\"],\"<br clear=all style='mso-special-character:line-break;page-break-before:always'>\");\r\n\t\t}\r\n\t\treturn objReturn;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForExcel = function(setting,html,isTable)\r\n\t{\r\n\t\tvar objReturn = {header:null,style:null,html:html};\r\n\t\tobjReturn.header = \"<x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>\";\r\n\t\tobjReturn.header += (setting[\"sheetName\"] ? setting[\"sheetName\"]: ((this.__fileName ? this.__fileName : \"Sheet 1\")));\r\n\t\tobjReturn.header += '</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>';\r\n\t\treturn objReturn;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForPpt = function(setting,html,isTable)\r\n\t{\r\n\t\tvar objReturn = {header:null,style:null,html:html};\r\n\t\tobjReturn.header = \"<x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>\";\r\n\t\tobjReturn.header += (setting[\"sheetName\"] ? setting[\"sheetName\"]: ((this.__fileName ? this.__fileName : \"Sheet 1\")));\r\n\t\tobjReturn.header += '</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>';\r\n\t\treturn objReturn;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__downloadFile = function(text,uri,fileType,event) \r\n\t{\r\n\t\tif(text && fileType)\r\n\t\t{\r\n\t\t\tif (\"Blob\" in window) \r\n\t\t\t{\r\n\t\t\t\tvar fileName = this.__getFileName(fileType);\r\n\t\t\t\tif (\"msSaveOrOpenBlob\" in window.navigator) \r\n\t\t\t\t{\r\n\t\t\t\t\tvar blobObject = null;\r\n\t\t\t\t\tif(text instanceof Blob)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tblobObject = text;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(!(text instanceof ArrayBuffer) && text.indexOf(\"base64\") > -1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tblobObject = this.__dataURItoBlob(text);\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\tblobObject = new Blob([text], { type: uri});\r\n\t\t\t\t\t}\r\n\t\t\t\t\twindow.navigator.msSaveOrOpenBlob(blobObject,fileName);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tvar hrefvalue = null;\r\n\t\t\t\t\tif(text instanceof ArrayBuffer)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar blobObject = new Blob([text], {type: uri});\r\n\t\t\t\t\t\threfvalue = URL.createObjectURL(blobObject);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(text instanceof Blob)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\threfvalue = URL.createObjectURL(text);\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\tif(text.indexOf(\"data:\") === -1)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\turi = \"data:\" + uri;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(text.indexOf(\";base64,\") === -1)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar base64String = \";base64,\" + window.btoa(window.unescape(encodeURIComponent(text)));\r\n\t\t\t\t\t\t\threfvalue = uri + base64String;\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\threfvalue = text;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t var anchor = document.createElement(\"a\");\r\n\t\t\t\t if (\"webkitURL\" in window) \r\n\t\t\t\t {\r\n\t\t\t\t // Chrome allows the link to be clicked without actually adding it to the DOM.\r\n\t\t\t\t \t//hrefvalue = window.webkitURL.createObjectURL([hrefvalue]);\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//hrefvalue = window.URL.createObjectURL([hrefvalue]);\r\n\t\t\t\t \tanchor.style.display = 'none';\r\n\t\t\t\t document.body.appendChild(anchor);\r\n\t\t\t\t this.util.addEvent(anchor,\"click\",function(event){\r\n\t\t\t\t \t\tdocument.body.removeChild(event.target);\r\n\t\t\t\t \t});\r\n\t\t\t\t }\r\n\t\t\t\t anchor.setAttribute(\"href\",hrefvalue);\r\n\t\t\t\t anchor.setAttribute(\"download\",this.__getFileName(fileType));\r\n\t\t\t\t anchor.setAttribute(\"target\",\"_blank\");\r\n\t\t\t\t anchor.innerHTML = \"Download File\";\r\n\t\t\t\t /*if(window.URL && window.URL.revokeObjectURL)\r\n\t\t\t\t {\r\n\t\t\t\t \twindow.URL.revokeObjectURL(hrefvalue);\r\n\t\t\t\t }*/\r\n\t\t\t\t anchor.click();\r\n\t\t\t\t if(event)\r\n\t\t\t\t {\r\n\t\t\t\t \tthis.util.preventDefault(event);\r\n\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\tNSExport.prototype.__getTable = function() \r\n\t{ \r\n\t\tvar tblResult = null;\r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tvar grid = this.__getPrototype(this.__grid);\r\n\t\t\tif(grid && this.__isTypeNSGrid(grid))\r\n\t\t\t{\r\n\t\t\t\tvar tblHeader = grid.__tblCenterHeader;\r\n\t\t \tvar tblBody = grid.__tblCenterBody;\r\n\t\t \ttblResult = document.createElement(\"TABLE\");\r\n\t\t \ttblResult.style.width = tblHeader.style.width;\r\n\t\t \tif(tblHeader && tblHeader.tBodies && tblHeader.tBodies.length > 0 && tblHeader.tBodies[0].rows && tblHeader.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t \t\tvar arrColumns = grid.__columns;\r\n\t\t \t\tif(grid.gridType === grid.GRID_TYPE_GROUP)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tarrColumns = grid.util.cloneObject(arrColumns);\r\n\t\t\t\t\t\tarrColumns.splice(0, 1);\r\n\t\t\t\t\t}\r\n\t\