@syncfusion/ej2-layouts 29.1.38 → 29.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-layouts.es5.js","sources":["../../src/splitter/splitter.js","../../src/dashboard-layout/dashboard-layout.js","../../src/timeline/timeline.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, setStyleAttribute, ChildProperty, compile } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, addClass, Collection, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, selectAll, removeClass, select, Browser, detach, formatUnit } from '@syncfusion/ej2-base';\nimport { SanitizeHtmlHelper, extend } from '@syncfusion/ej2-base';\nvar ROOT = 'e-splitter';\nvar HORIZONTAL_PANE = 'e-splitter-horizontal';\nvar VERTICAL_PANE = 'e-splitter-vertical';\nvar PANE = 'e-pane';\nvar SPLIT_H_PANE = 'e-pane-horizontal';\nvar SPLIT_V_PANE = 'e-pane-vertical';\nvar SPLIT_BAR = 'e-split-bar';\nvar SPLIT_H_BAR = 'e-split-bar-horizontal';\nvar SPLIT_V_BAR = 'e-split-bar-vertical';\nvar STATIC_PANE = 'e-static-pane';\nvar SCROLL_PANE = 'e-scrollable';\nvar RESIZE_BAR = 'e-resize-handler';\nvar RESIZABLE_BAR = 'e-resizable-split-bar';\nvar SPLIT_BAR_HOVER = 'e-split-bar-hover';\nvar SPLIT_BAR_ACTIVE = 'e-split-bar-active';\nvar HIDE_HANDLER = 'e-hide-handler';\nvar SPLIT_TOUCH = 'e-splitter-touch';\nvar DISABLED = 'e-disabled';\nvar RTL = 'e-rtl';\nvar E_ICONS = 'e-icons';\nvar COLLAPSIBLE = 'e-collapsible';\nvar NAVIGATE_ARROW = 'e-navigate-arrow';\nvar ARROW_RIGHT = 'e-arrow-right';\nvar ARROW_LEFT = 'e-arrow-left';\nvar ARROW_UP = 'e-arrow-up';\nvar ARROW_DOWN = 'e-arrow-down';\nvar HIDE_ICON = 'e-icon-hidden';\nvar EXPAND_PANE = 'e-expanded';\nvar COLLAPSE_PANE = 'e-collapsed';\nvar PANE_HIDDEN = 'e-pane-hidden';\nvar RESIZABLE_PANE = 'e-resizable';\nvar LAST_BAR = 'e-last-bar';\nvar BAR_SIZE_DEFAULT = 1;\n/**\n * Interface to configure pane properties such as its content, size, min, max, resizable, collapsed and collapsible.\n */\nvar PaneProperties = /** @class */ (function (_super) {\n __extends(PaneProperties, _super);\n function PaneProperties() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], PaneProperties.prototype, \"size\", void 0);\n __decorate([\n Property(false)\n ], PaneProperties.prototype, \"collapsible\", void 0);\n __decorate([\n Property(false)\n ], PaneProperties.prototype, \"collapsed\", void 0);\n __decorate([\n Property(true)\n ], PaneProperties.prototype, \"resizable\", void 0);\n __decorate([\n Property(null)\n ], PaneProperties.prototype, \"min\", void 0);\n __decorate([\n Property(null)\n ], PaneProperties.prototype, \"max\", void 0);\n __decorate([\n Property()\n ], PaneProperties.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], PaneProperties.prototype, \"cssClass\", void 0);\n return PaneProperties;\n}(ChildProperty));\nexport { PaneProperties };\n/**\n * Splitter is a layout user interface (UI) control that has resizable and collapsible split panes.\n * The container can be split into multiple panes, which are oriented horizontally or vertically.\n * The separator (divider) splits the panes and resizes and expands/collapses the panes.\n * The splitter is placed inside the split pane to make a nested layout user interface.\n *\n * ```html\n * <div id=\"splitter\">\n * <div> Left Pane </div>\n * <div> Center Pane </div>\n * <div> Right Pane </div>\n * </div>\n * ```\n * ```typescript\n * <script>\n * var splitterObj = new Splitter({ width: '300px', height: '200px'});\n * splitterObj.appendTo('#splitter');\n * </script>\n * ```\n */\nvar Splitter = /** @class */ (function (_super) {\n __extends(Splitter, _super);\n /**\n * Initializes a new instance of the Splitter class.\n *\n * @param options - Specifies Splitter model properties as options.\n * @param element - Specifies the element that is rendered as an Splitter.\n */\n function Splitter(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {SplitterModel} newProp - specifies the new property\n * @param {SplitterModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n Splitter.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'height':\n this.setSplitterSize(this.element, newProp.height, 'height');\n break;\n case 'width':\n this.setSplitterSize(this.element, newProp.width, 'width');\n break;\n case 'cssClass':\n this.setCssClass(this.element, newProp.cssClass);\n break;\n case 'enabled':\n this.isEnabled(this.enabled);\n break;\n case 'enableReversePanes':\n this.setReversePane();\n break;\n case 'separatorSize':\n this.setSeparatorSize(newProp.separatorSize);\n break;\n case 'orientation':\n this.changeOrientation(newProp.orientation);\n break;\n case 'paneSettings': {\n if (!(newProp.paneSettings instanceof Array && oldProp.paneSettings instanceof Array)) {\n var paneCounts = Object.keys(newProp.paneSettings);\n var isPaneContentChanged = paneCounts.some(function (count) {\n return !isNullOrUndefined(newProp.paneSettings[count].content);\n });\n if (this.isReact && isPaneContentChanged) {\n var cPaneCount = 0;\n for (var k = 0; k < this.paneSettings.length; k++) {\n if (typeof (this.paneSettings[k].content) === 'function') {\n cPaneCount = cPaneCount + 1;\n }\n }\n var hasAllContent = cPaneCount === this.paneSettings.length;\n if (hasAllContent) {\n this.clearTemplate();\n }\n }\n for (var i = 0; i < paneCounts.length; i++) {\n var index = parseInt(Object.keys(newProp.paneSettings)[i], 10);\n var changedPropsCount = Object.keys(newProp.paneSettings[index]).length;\n for (var j = 0; j < changedPropsCount; j++) {\n var property = Object.keys(newProp.paneSettings[index])[j];\n switch (property) {\n case 'content': {\n var newValue = Object(newProp.paneSettings[index])[\"\" + property];\n if (!isNullOrUndefined(newValue)) {\n this.allPanes[index].innerHTML = '';\n this.setTemplate(newValue, this.allPanes[index]);\n }\n break;\n }\n case 'resizable': {\n var newVal = Object(newProp.paneSettings[index])[\"\" + property];\n this.resizableModel(index, newVal);\n break;\n }\n case 'collapsible':\n this.collapsibleModelUpdate(index);\n break;\n case 'collapsed':\n if (newProp.paneSettings[index].collapsed) {\n this.isCollapsed(index);\n }\n else {\n this.collapsedOnchange(index);\n }\n break;\n case 'cssClass':\n this.setCssClass(this.allPanes[index], newProp.paneSettings[index].cssClass);\n break;\n case 'size': {\n var newValSize = Object(newProp.paneSettings[index])[\"\" + property];\n if (newValSize !== '' && !isNullOrUndefined(newValSize)) {\n this.updatePaneSize(newValSize, index);\n }\n break;\n }\n }\n }\n }\n }\n else {\n this.clearTemplate();\n this.destroyPaneSettings();\n this.allBars = [];\n this.allPanes = [];\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setRTL(this.enableRtl);\n this.isCollapsed();\n }\n break;\n }\n case 'enableRtl':\n this.setRTL(newProp.enableRtl);\n break;\n }\n }\n };\n Splitter.prototype.updatePaneSize = function (newValSize, index) {\n this.allPanes[index].style.flexBasis = newValSize;\n var flexPaneIndexes = [];\n var staticPaneWidth;\n var flexCount = 0;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.paneSettings[i].size && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n else if (this.paneSettings[i].size) {\n staticPaneWidth = this.orientation === 'Horizontal' ? this.allPanes[index].offsetWidth : this.allPanes[index].offsetHeight;\n }\n }\n staticPaneWidth = this.orientation === 'Horizontal' ? (this.allBars[0].offsetWidth * this.allBars.length) + staticPaneWidth :\n (this.allBars[0].offsetHeight * this.allBars.length) + staticPaneWidth;\n var flexPaneWidth = (this.orientation === 'Horizontal' ? this.element.offsetWidth : this.element.offsetHeight)\n - staticPaneWidth - (this.border * 2);\n var avgDiffWidth = flexPaneWidth / flexPaneIndexes.length;\n for (var j = 0; j < flexPaneIndexes.length; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = avgDiffWidth + 'px';\n }\n }\n this.allPanes[index].classList.add(STATIC_PANE);\n };\n Splitter.prototype.initializeValues = function () {\n this.allPanes = [];\n this.paneOrder = [];\n this.separatorOrder = [];\n this.allBars = [];\n this.previousCoordinates = {};\n this.currentCoordinates = {};\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n this.panesDimensions = [];\n this.border = 0;\n this.validDataAttributes = ['data-size', 'data-min', 'data-max', 'data-collapsible',\n 'data-resizable', 'data-content', 'data-collapsed'];\n this.validElementAttributes = ['data-orientation', 'data-width', 'data-height'];\n this.iconsDelay = 300;\n this.templateElement = [];\n this.collapseFlag = false;\n this.expandFlag = true;\n };\n Splitter.prototype.preRender = function () {\n this.initializeValues();\n this.onReportWindowSize = this.reportWindowSize.bind(this);\n this.onMouseMoveHandler = this.onMouseMove.bind(this);\n this.onMouseUpHandler = this.onMouseUp.bind(this);\n this.onTouchMoveHandler = this.onMouseMove.bind(this);\n this.onTouchEndHandler = this.onMouseUp.bind(this);\n this.wrapper = this.element.cloneNode(true);\n this.wrapperParent = this.element.parentElement;\n removeClass([this.wrapper], ['e-control', 'e-lib', ROOT]);\n var orientation = this.orientation === 'Horizontal' ? HORIZONTAL_PANE : VERTICAL_PANE;\n addClass([this.element], orientation);\n var name = Browser.info.name;\n var css = (name === 'msie') ? 'e-ie' : '';\n this.setCssClass(this.element, css);\n if (Browser.isDevice) {\n addClass([this.element], SPLIT_TOUCH);\n }\n };\n Splitter.prototype.getPersistData = function () {\n return this.addOnPersist(['paneSettings']);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - returns the string value\n * @private\n */\n Splitter.prototype.getModuleName = function () {\n return 'splitter';\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Splitter.prototype.render = function () {\n this.checkDataAttributes();\n this.setCssClass(this.element, this.cssClass);\n this.isEnabled(this.enabled);\n this.setDimension(this.getHeight(this.element), this.getWidth(this.element));\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setPaneSettings();\n this.setRTL(this.enableRtl);\n if (this.enableReversePanes) {\n this.setReversePane();\n }\n this.collapseFlag = true;\n this.isCollapsed();\n this.collapseFlag = false;\n EventHandler.add(document, 'touchstart click', this.onDocumentClick, this);\n this.renderComplete();\n this.element.ownerDocument.defaultView.addEventListener('resize', this.onReportWindowSize, true);\n EventHandler.add(this.element, 'keydown', this.onMove, this);\n };\n Splitter.prototype.onDocumentClick = function (e) {\n if (!e.target.classList.contains(SPLIT_BAR) && !isNullOrUndefined(this.currentSeparator)) {\n this.currentSeparator.classList.remove(SPLIT_BAR_HOVER);\n this.currentSeparator.classList.remove(SPLIT_BAR_ACTIVE);\n }\n };\n Splitter.prototype.checkPaneSize = function (e) {\n var prePaneSize = this.orientation === 'Horizontal' ? this.previousPane.offsetWidth : this.previousPane.offsetHeight;\n var nextPaneSize = this.orientation === 'Horizontal' ? this.nextPane.offsetWidth : this.nextPane.offsetHeight;\n var splitBarSize = isNullOrUndefined(this.separatorSize) ? BAR_SIZE_DEFAULT : this.separatorSize;\n if ((this.previousPane.style.flexBasis.indexOf('%') > 0 || this.previousPane.style.flexBasis.indexOf('p') > 0 || this.nextPane.style.flexBasis.indexOf('%') > 0)) {\n var previousFlexBasis = this.updatePaneFlexBasis(this.previousPane);\n var nextFlexBasis = this.updatePaneFlexBasis(this.nextPane);\n this.totalPercent = previousFlexBasis + nextFlexBasis;\n this.totalWidth = this.convertPercentageToPixel(this.totalPercent + '%');\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) <\n this.convertPercentageToPixel((nextFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis + 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis - 1) + '%';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) <\n this.convertPercentageToPixel((previousFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis - 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis + 1) + '%';\n }\n }\n }\n else {\n this.totalWidth = (this.orientation === 'Horizontal') ? this.previousPane.offsetWidth + this.nextPane.offsetWidth :\n this.previousPane.offsetHeight + this.nextPane.offsetHeight;\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) < (nextPaneSize + splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize + splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize < splitBarSize) ? '0px' :\n (nextPaneSize - splitBarSize) + 'px';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) < (prePaneSize - splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize < splitBarSize) ? '0px' :\n (prePaneSize - splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize + splitBarSize) + 'px';\n }\n }\n }\n };\n Splitter.prototype.onMove = function (event) {\n if (this.allPanes.length > 1) {\n var index = this.getSeparatorIndex(this.currentSeparator);\n var isPrevpaneCollapsed = this.previousPane.classList.contains(COLLAPSE_PANE);\n var isPrevpaneExpanded = this.previousPane.classList.contains(EXPAND_PANE);\n var isNextpaneCollapsed = this.nextPane.classList.contains(COLLAPSE_PANE);\n if (((this.orientation !== 'Horizontal' && event.keyCode === 38) || (this.orientation === 'Horizontal' &&\n event.keyCode === 39) ||\n (this.orientation === 'Horizontal' && event.keyCode === 37) || (this.orientation !== 'Horizontal' && event.keyCode === 40))\n && (!isPrevpaneExpanded && !isNextpaneCollapsed && !isPrevpaneCollapsed || (isPrevpaneExpanded) && !isNextpaneCollapsed) &&\n document.activeElement.classList.contains(SPLIT_BAR) && (this.paneSettings[index].resizable &&\n this.paneSettings[index + 1].resizable)) {\n event.preventDefault();\n this.checkPaneSize(event);\n this.triggerResizing(event);\n }\n else if (event.keyCode === 13 && this.paneSettings[index].collapsible &&\n document.activeElement.classList.contains(SPLIT_BAR) && this.currentSeparator.classList.contains(SPLIT_BAR_ACTIVE)) {\n if (!this.previousPane.classList.contains(COLLAPSE_PANE)) {\n this.collapse(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n else {\n this.expand(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n }\n }\n };\n Splitter.prototype.getMinInPixel = function (minValue) {\n if (isNullOrUndefined(minValue)) {\n return 0;\n }\n var paneMinRange = this.convertPixelToNumber(minValue.toString());\n if (minValue.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(minValue);\n }\n var min = this.convertPixelToNumber((paneMinRange).toString());\n return min;\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {string} returns the string\n * @hidden\n */\n Splitter.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNullOrUndefined(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n Splitter.prototype.checkDataAttributes = function () {\n var api;\n var value;\n // Element values\n for (var dataIndex = 0; dataIndex < this.validElementAttributes.length; dataIndex++) {\n value = this.element.getAttribute(this.validElementAttributes[dataIndex]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validElementAttributes[dataIndex]);\n // eslint-disable-next-line\n this[api] = value;\n }\n }\n // Pane values\n for (var paneIndex = 0; paneIndex < this.element.children.length; paneIndex++) {\n for (var dataAttr = 0; dataAttr < this.validDataAttributes.length; dataAttr++) {\n value = this.element.children[paneIndex].getAttribute(this.validDataAttributes[dataAttr]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validDataAttributes[dataAttr]);\n value = (api === 'collapsible' || api === 'resizable') ? (value === 'true') : value;\n if (isNullOrUndefined(this.paneSettings[paneIndex])) {\n this.paneSettings[paneIndex] = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsible: false,\n collapsed: false\n };\n }\n // eslint-disable-next-line\n var paneAPI = this.paneSettings[paneIndex][api];\n if (api === 'resizable' || api === 'collapsible' || api === 'collapsed') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n if (isNullOrUndefined(paneAPI) || paneAPI === '') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n }\n }\n }\n };\n Splitter.prototype.destroyPaneSettings = function () {\n [].slice.call(this.element.children).forEach(function (el) {\n detach(el);\n });\n this.restoreElem();\n };\n Splitter.prototype.setPaneSettings = function () {\n var childCount = this.allPanes.length;\n var paneCollection = [];\n var paneValue = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsed: false,\n collapsible: false,\n cssClass: ''\n };\n for (var i = 0; i < childCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i])) {\n paneCollection[i] = paneValue;\n }\n else {\n paneCollection[i] = this.paneSettings[i];\n }\n }\n this.setProperties({ 'paneSettings': paneCollection }, true);\n };\n Splitter.prototype.checkArrow = function (paneIndex, targetArrow) {\n return (this.allBars[paneIndex].querySelector('.' + NAVIGATE_ARROW + '.' + targetArrow));\n };\n Splitter.prototype.removeDataPrefix = function (attribute) {\n return attribute.slice(attribute.lastIndexOf('-') + 1);\n };\n Splitter.prototype.setRTL = function (rtl) {\n if (rtl) {\n addClass([this.element], RTL);\n }\n else {\n removeClass([this.element], RTL);\n }\n };\n Splitter.prototype.setReversePane = function () {\n this.allPanes = this.allPanes.reverse();\n this.allBars = this.allBars.reverse();\n addClass([this.allBars[this.allBars.length - 1]], LAST_BAR);\n removeClass([this.allBars[0]], LAST_BAR);\n this.setProperties({ 'paneSettings': this.paneSettings.reverse() }, true);\n if (this.enableReversePanes) {\n this.element.setAttribute('dir', 'rtl');\n }\n else {\n this.element.removeAttribute('dir');\n }\n };\n Splitter.prototype.setSplitterSize = function (element, size, property) {\n var style = property === 'width' ? { 'width': formatUnit(size) } : { 'height': formatUnit(size) };\n setStyleAttribute(element, style);\n };\n Splitter.prototype.getPanesDimensions = function () {\n for (var index = 0; index < this.allPanes.length; index++) {\n if (this.orientation === 'Horizontal') {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().width);\n }\n else {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().height);\n }\n }\n };\n Splitter.prototype.setCssClass = function (element, className) {\n if (className) {\n addClass([element], className.split(className.indexOf(',') > -1 ? ',' : ' '));\n }\n };\n Splitter.prototype.hideResizer = function (target) {\n addClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n };\n Splitter.prototype.showResizer = function (target) {\n if (!isNullOrUndefined(this.previousPane) && this.previousPane.classList.contains(RESIZABLE_PANE) &&\n !isNullOrUndefined(this.nextPane) && this.nextPane.classList.contains(RESIZABLE_PANE)) {\n removeClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n }\n };\n Splitter.prototype.resizableModel = function (index, newVal) {\n var paneIndex = (index === (this.allBars.length)) ? (index - 1) : index;\n var i = index;\n EventHandler.remove(this.allBars[paneIndex], 'mousedown', this.onMouseDown);\n if (newVal) {\n EventHandler.add(this.allBars[paneIndex], 'mousedown', this.onMouseDown, this);\n if (this.isResizable()) {\n this.showResizer(this.allBars[paneIndex]);\n removeClass([select('.' + RESIZE_BAR, this.allBars[paneIndex])], HIDE_HANDLER);\n this.allBars[paneIndex].classList.add(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.add(RESIZABLE_PANE);\n }\n this.updateResizablePanes(i);\n }\n }\n else {\n this.updateResizablePanes(i);\n this.hideResizer(this.allBars[paneIndex]);\n this.allBars[paneIndex].classList.remove(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.remove(RESIZABLE_PANE);\n }\n }\n };\n Splitter.prototype.collapsibleModelUpdate = function (index) {\n var paneIndex = index === (this.allBars.length) ? (index - 1) : index;\n var arrow2 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_LEFT) : this.checkArrow(paneIndex, ARROW_UP);\n var arrow1 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_RIGHT) : this.checkArrow(paneIndex, ARROW_DOWN);\n this.paneCollapsible(this.allPanes[index], index);\n this.updateCollapseIcons(paneIndex, arrow1, arrow2);\n };\n Splitter.prototype.collapseArrow = function (barIndex, arrow) {\n return selectAll('.' + arrow, this.allBars[barIndex])[0];\n };\n Splitter.prototype.updateIsCollapsed = function (index, collapseArrow, lastBarArrow) {\n if (!isNullOrUndefined(index)) {\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, lastBarArrow) : this.collapseArrow(barIndex, collapseArrow);\n }\n targetEle.click();\n }\n };\n Splitter.prototype.isCollapsed = function (index) {\n var _this = this;\n if (!isNullOrUndefined(index) && this.paneSettings[index].collapsed\n && isNullOrUndefined(this.allPanes[index].classList.contains(COLLAPSE_PANE))) {\n return;\n }\n this.expandFlag = false;\n if (!isNullOrUndefined(index)) {\n this.collapseFlag = true;\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, this.targetArrows().lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, this.targetArrows().lastBarArrow) :\n this.collapseArrow(barIndex, this.targetArrows().collapseArrow);\n }\n var event_1 = { target: targetEle };\n var eventArgs = this.beforeAction(event_1);\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n var collapsedindex = [];\n collapsedindex[0] = index;\n var j = 1;\n for (var i = 0; i < _this.allPanes.length; i++) {\n if (_this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n collapsedindex[j] = i;\n j++;\n }\n }\n collapsedindex = collapsedindex.sort();\n _this.updateIsCollapsed(index, _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n for (var i = 0; i < collapsedindex.length; i++) {\n if (!_this.allPanes[collapsedindex[i]].classList.contains(COLLAPSE_PANE)) {\n _this.updateIsCollapsed(collapsedindex[i], _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n }\n }\n for (var i = collapsedindex.length; i > 0; i--) {\n if (!_this.allPanes[collapsedindex[i - 1]].classList.contains(COLLAPSE_PANE)) {\n var targetArrow = _this.targetArrows();\n _this.updateIsCollapsed(collapsedindex[i - 1], targetArrow.collapseArrow, targetArrow.lastBarArrow);\n }\n }\n var collapseEventArgs = _this.afterAction(event_1);\n _this.trigger('collapsed', collapseEventArgs);\n _this.collapseFlag = false;\n }\n });\n }\n else {\n for (var m = 0; m < this.allPanes.length; m++) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed) {\n this.updateIsCollapsed(m, this.targetArrows().collapseArrow, this.targetArrows().lastBarArrow);\n }\n }\n for (var m = this.allPanes.length - 1; m >= 0; m--) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed &&\n !this.allPanes[m].classList.contains(COLLAPSE_PANE)) {\n var collapseArrow = this.orientation === 'Horizontal' ? ARROW_RIGHT : ARROW_DOWN;\n if (m !== 0) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n if (!this.nextPane.classList.contains(COLLAPSE_PANE)) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n }\n }\n }\n this.expandFlag = true;\n };\n Splitter.prototype.targetArrows = function () {\n this.splitterProperty();\n return {\n collapseArrow: (this.orientation === 'Horizontal') ? ARROW_LEFT : ARROW_UP,\n lastBarArrow: (this.orientation === 'Vertical') ? ARROW_DOWN : ARROW_RIGHT\n };\n };\n Splitter.prototype.collapsedOnchange = function (index) {\n if (!isNullOrUndefined(this.paneSettings[index]) && !isNullOrUndefined(this.paneSettings[index].collapsed)\n && this.allPanes[index].classList.contains(COLLAPSE_PANE)) {\n this.updateIsCollapsed(index, this.targetArrows().lastBarArrow, this.targetArrows().collapseArrow);\n }\n };\n Splitter.prototype.isEnabled = function (enabled) {\n if (enabled) {\n removeClass([this.element], DISABLED);\n }\n else {\n addClass([this.element], DISABLED);\n }\n };\n Splitter.prototype.setSeparatorSize = function (size) {\n var sizeValue = isNullOrUndefined(size) ? 'auto' : size + 'px';\n var separator = this.orientation === 'Horizontal' ? SPLIT_H_BAR : SPLIT_V_BAR;\n for (var index = 0; index < this.allBars.length; index++) {\n var splitBar = selectAll('.' + separator, this.element)[index];\n var resizeBar = selectAll('.' + RESIZE_BAR, splitBar)[0];\n if (this.orientation === 'Horizontal') {\n splitBar.style.width = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.width = sizeValue;\n }\n }\n else {\n splitBar.style.height = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.height = sizeValue;\n }\n }\n }\n };\n Splitter.prototype.changeOrientation = function (orientation) {\n var isVertical = orientation === 'Vertical';\n this.element.classList.remove(isVertical ? HORIZONTAL_PANE : VERTICAL_PANE);\n this.element.classList.add(isVertical ? VERTICAL_PANE : HORIZONTAL_PANE);\n for (var index = 0; index < this.allPanes.length; index++) {\n this.allPanes[index].classList.remove(isVertical ? SPLIT_H_PANE : SPLIT_V_PANE);\n this.allPanes[index].classList.add(isVertical ? SPLIT_V_PANE : SPLIT_H_PANE);\n }\n for (var index = 0; index < this.allBars.length; index++) {\n detach(this.allBars[index]);\n }\n this.allBars = [];\n this.addSeparator(this.element);\n };\n Splitter.prototype.checkSplitPane = function (currentBar, elementIndex) {\n var paneEle = this.collectPanes(currentBar.parentElement.children)[elementIndex];\n return paneEle;\n };\n Splitter.prototype.collectPanes = function (childNodes) {\n var elements = [];\n for (var i = 0; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(PANE)) {\n elements.push(childNodes[i]);\n }\n }\n return elements;\n };\n Splitter.prototype.getPrevPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order + 1) : this.getOrderPane(order - 1);\n };\n Splitter.prototype.getNextPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order - 1) : this.getOrderPane(order + 1);\n };\n Splitter.prototype.getOrderPane = function (order) {\n var pane;\n for (var i = 0; i < this.element.children.length; i++) {\n if (parseInt(this.element.children[i].style.order, 10) === order) {\n pane = this.element.children[i];\n }\n }\n return pane;\n };\n Splitter.prototype.getOrderIndex = function (order, type) {\n var index;\n var panes;\n if (type === 'pane') {\n panes = this.allPanes;\n }\n else {\n panes = this.allBars;\n }\n for (var i = 0; i < panes.length; i++) {\n if (parseInt(panes[i].style.order, 10) === order) {\n index = i;\n }\n }\n return index;\n };\n Splitter.prototype.updateSeparatorSize = function (resizeHanlder) {\n var sizeValue = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n if (this.orientation === 'Horizontal') {\n resizeHanlder.style.width = sizeValue;\n }\n else {\n resizeHanlder.style.height = sizeValue;\n }\n };\n Splitter.prototype.addResizeHandler = function (currentBar) {\n var resizeHanlder = this.createElement('div');\n addClass([resizeHanlder], [RESIZE_BAR, E_ICONS]);\n this.updateSeparatorSize(resizeHanlder);\n currentBar.appendChild(resizeHanlder);\n };\n Splitter.prototype.getHeight = function (target) {\n var height = this.height;\n height = target.style.height !== '' && this.height === '100%' ? target.style.height : this.height;\n return height;\n };\n Splitter.prototype.getWidth = function (target) {\n var width = this.width;\n width = target.style.width !== '' && this.width === '100%' ? target.style.width : this.width;\n return width;\n };\n Splitter.prototype.setDimension = function (height, width) {\n setStyleAttribute(this.element, { 'height': height, 'width': width });\n };\n Splitter.prototype.updateCollapseIcons = function (index, arrow1, arrow2) {\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].collapsible)) {\n if (this.paneSettings[index].collapsible) {\n removeClass([arrow2], [HIDE_ICON]);\n }\n else {\n addClass([arrow2], [HIDE_ICON]);\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if ((this.paneSettings[index + 1].collapsible)) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n }\n }\n }\n };\n Splitter.prototype.updateIconClass = function () {\n if (this.orientation === 'Horizontal') {\n this.leftArrow = ARROW_LEFT;\n this.rightArrow = ARROW_RIGHT;\n }\n else {\n this.leftArrow = ARROW_UP;\n this.rightArrow = ARROW_DOWN;\n }\n };\n Splitter.prototype.createSeparator = function (i) {\n var separator = this.createElement('div');\n this.allBars.push(separator);\n var arrow1 = this.createElement('button');\n var arrow2 = this.createElement('button');\n arrow1.setAttribute('tabindex', '-1');\n arrow2.setAttribute('tabindex', '-1');\n arrow1.setAttribute('aria-label', 'Toggle navigation');\n arrow2.setAttribute('aria-label', 'Toggle navigation');\n arrow1.setAttribute('type', 'button');\n arrow2.setAttribute('type', 'button');\n var size = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n var proxy = null || this;\n if (this.orientation === 'Horizontal') {\n this.updateIconClass();\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_LEFT, HIDE_ICON]);\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_RIGHT, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_H_BAR]);\n separator.style.width = size;\n }\n else {\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_DOWN, HIDE_ICON]);\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_UP, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_V_BAR]);\n this.updateIconClass();\n separator.style.height = size;\n }\n this.addMouseActions(separator);\n separator.appendChild(arrow2);\n this.addResizeHandler(separator);\n separator.appendChild(arrow1);\n this.updateCollapseIcons(i, arrow1, arrow2);\n separator.setAttribute('tabindex', '-1');\n separator.setAttribute('aria-hidden', 'true');\n if (this.enableReversePanes) {\n separator.setAttribute('dir', 'ltr');\n }\n else {\n separator.removeAttribute('dir');\n }\n separator.addEventListener('focus', function () {\n separator.classList.add(SPLIT_BAR_ACTIVE);\n proxy.currentSeparator = separator;\n proxy.getPaneDetails();\n });\n separator.addEventListener('blur', function () {\n separator.classList.remove(SPLIT_BAR_ACTIVE);\n });\n return separator;\n };\n Splitter.prototype.updateResizablePanes = function (index) {\n this.getPaneDetails();\n if (this.isResizable()) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n };\n Splitter.prototype.addSeparator = function (target) {\n var childCount = this.allPanes.length;\n var clonedEle = target.children;\n var separator;\n for (var i = 0; i < childCount; i++) {\n if (i < childCount - 1) {\n separator = this.createSeparator(i);\n setStyleAttribute(separator, { 'order': (i * 2) + 1 });\n this.separatorOrder.push((i * 2) + 1);\n clonedEle[i].parentNode.appendChild(separator);\n this.currentSeparator = separator;\n separator.setAttribute('role', 'separator');\n separator.setAttribute('aria-valuenow', i.toString());\n if (!isNullOrUndefined(this.orientation)) {\n separator.setAttribute('aria-orientation', this.orientation.toLowerCase());\n }\n this.wireClickEvents();\n if (!isNullOrUndefined(separator)) {\n if (this.isResizable()) {\n EventHandler.add(separator, 'mousedown', this.onMouseDown, this);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(separator, eventName, this.onMouseDown, this);\n separator.classList.add(RESIZABLE_BAR);\n this.updateResizablePanes(i);\n }\n else {\n addClass([select('.' + RESIZE_BAR, separator)], HIDE_HANDLER);\n }\n }\n }\n else {\n if (separator) {\n addClass([separator], LAST_BAR);\n }\n if (childCount > 1) {\n this.updateResizablePanes(i);\n }\n }\n }\n if (Browser.info.name === 'msie') {\n var allBar = this.element.querySelectorAll('.e-splitter .e-resize-handler');\n for (var i = 0; i < allBar.length; i++) {\n var sepSize = isNullOrUndefined(this.separatorSize) ? 1 : this.separatorSize;\n allBar[i].style.paddingLeft = sepSize / 2 + 'px';\n allBar[i].style.paddingRight = sepSize / 2 + 'px';\n }\n }\n };\n Splitter.prototype.isResizable = function () {\n var resizable = false;\n if ((!isNullOrUndefined(this.paneSettings[this.getPreviousPaneIndex()]) &&\n this.paneSettings[this.getPreviousPaneIndex()].resizable &&\n !isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()]) &&\n this.paneSettings[this.getNextPaneIndex()].resizable) ||\n isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()])) {\n resizable = true;\n }\n return resizable;\n };\n Splitter.prototype.addMouseActions = function (separator) {\n var _this = this;\n var sTout;\n var hoverTimeOut;\n separator.addEventListener('mouseenter', function () {\n /* istanbul ignore next */\n sTout = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n }, _this.iconsDelay);\n });\n separator.addEventListener('mouseleave', function () {\n clearTimeout(sTout);\n removeClass([separator], [SPLIT_BAR_HOVER]);\n });\n separator.addEventListener('mouseout', function () {\n clearTimeout(hoverTimeOut);\n });\n separator.addEventListener('mouseover', function () {\n /* istanbul ignore next */\n hoverTimeOut = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n });\n });\n };\n Splitter.prototype.getEventType = function (e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n };\n Splitter.prototype.updateCurrentSeparator = function (target) {\n this.currentSeparator = this.isSeparator(target) ? target.parentElement : target;\n };\n Splitter.prototype.isSeparator = function (target) {\n return (target.classList.contains(SPLIT_BAR) ? false : true);\n };\n Splitter.prototype.isMouseEvent = function (e) {\n var isMouse = false;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType) &&\n this.getEventType(e.pointerType) === 'mouse')) {\n isMouse = true;\n }\n return isMouse;\n };\n Splitter.prototype.updateCursorPosition = function (e, type) {\n if (this.isMouseEvent(e)) {\n this.changeCoordinates({ x: e.pageX, y: e.pageY }, type);\n }\n else {\n var eventType = Browser.info.name !== 'msie' ? e.touches[0] : e;\n this.changeCoordinates({ x: eventType.pageX, y: eventType.pageY }, type);\n }\n };\n Splitter.prototype.changeCoordinates = function (coordinates, type) {\n if (type === 'previous') {\n this.previousCoordinates = coordinates;\n }\n else {\n this.currentCoordinates = coordinates;\n }\n };\n Splitter.prototype.reportWindowSize = function () {\n var _this = this;\n var paneCount = this.allPanes.length;\n if (!document.body.contains(this.element)) {\n document.defaultView.removeEventListener('resize', this.onReportWindowSize);\n return;\n }\n for (var i = 0; i < paneCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n if (paneCount - 1 === i) {\n var staticPaneCount = this.element.querySelectorAll('.' + STATIC_PANE).length;\n if (staticPaneCount === paneCount) {\n if (this.allPanes[i].style.flexBasis === '') {\n removeClass([this.allPanes[i]], STATIC_PANE);\n }\n }\n }\n }\n if (paneCount > 0) {\n setTimeout(function () {\n _this.updateSplitterSize(true);\n }, 200);\n }\n };\n Splitter.prototype.updateSplitterSize = function (iswindowResize) {\n var totalWidth = 0;\n var flexPaneIndexes = [];\n var flexCount = 0;\n var children = this.element.children;\n for (var i = 0, len = children.length; i < len; i++) {\n totalWidth += this.orientation === 'Horizontal' ? children[i].offsetWidth :\n children[i].offsetHeight;\n }\n for (var j = 0, len = this.allBars.length; j < len; j++) {\n totalWidth += this.orientation === 'Horizontal' ? parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) :\n parseInt(getComputedStyle(this.allBars[j]).marginTop, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginBottom, 10);\n }\n var diff = this.orientation === 'Horizontal' ? this.element.offsetWidth -\n ((this.border * 2) + totalWidth) :\n this.element.offsetHeight - ((this.border * 2) + totalWidth);\n for (var i = 0, len = this.allPanes.length; i < len; i++) {\n if (this.allPanes[i].innerText === '' ? !(this.paneSettings[i].size) || !(this.allPanes[i].innerText === '')\n : !(this.paneSettings[i].size) && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n }\n var avgDiffWidth = diff / flexPaneIndexes.length;\n for (var j = 0, len = flexPaneIndexes.length; j < len; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = this.orientation === 'Horizontal' ?\n (this.allPanes[flexPaneIndexes[j]].offsetWidth + avgDiffWidth) + 'px' :\n (this.allPanes[flexPaneIndexes[j]].offsetHeight + avgDiffWidth) + 'px';\n }\n }\n if (this.allPanes.length === 2 && iswindowResize) {\n var paneCount = this.allPanes.length;\n var minValue = void 0;\n var paneMinRange = void 0;\n var paneIndex = 0;\n var updatePane = void 0;\n var flexPane = void 0;\n for (var i = 0; i < paneCount; i++) {\n if (!isNullOrUndefined(this.paneSettings[i].min)) {\n paneMinRange = this.convertPixelToNumber((this.paneSettings[i].min).toString());\n if (this.paneSettings[i].min.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(this.paneSettings[i].min);\n }\n minValue = this.convertPixelToNumber((paneMinRange).toString());\n if ((this.orientation === 'Horizontal' ? this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight) < minValue) {\n if (i === paneIndex) {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i + 1];\n }\n else {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i - 1];\n }\n var sizeDiff = minValue - (this.orientation === 'Horizontal' ?\n this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight);\n var isPercent = updatePane.style.flexBasis.indexOf('%') > -1;\n var updatePaneOffset = this.orientation === 'Horizontal' ? updatePane.offsetWidth : updatePane.offsetHeight;\n if (!isNullOrUndefined(updatePane) && updatePane.style.flexBasis !== '' && updatePane.classList.contains(STATIC_PANE)) {\n updatePane.style.flexBasis = isPercent ? this.convertPixelToPercentage(updatePaneOffset + sizeDiff) + '%'\n : (updatePaneOffset + sizeDiff) + 'px';\n }\n var flexPaneOffset = this.orientation === 'Horizontal' ? flexPane.offsetWidth : flexPane.offsetHeight;\n if (!isNullOrUndefined(flexPane) && flexPane.style.flexBasis !== '' && !flexPane.classList.contains(STATIC_PANE)) {\n flexPane.style.flexBasis = flexPane.style.flexBasis.indexOf('%') > -1 ?\n this.convertPixelToPercentage(flexPaneOffset - sizeDiff) + '%' : (flexPaneOffset - sizeDiff) + 'px';\n }\n }\n }\n }\n }\n };\n Splitter.prototype.wireResizeEvents = function () {\n document.addEventListener('mousemove', this.onMouseMoveHandler, true);\n document.addEventListener('mouseup', this.onMouseUpHandler, true);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.addEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.addEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.unwireResizeEvents = function () {\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.removeEventListener('mousemove', this.onMouseMoveHandler, true);\n document.removeEventListener('mouseup', this.onMouseUpHandler, true);\n document.removeEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.removeEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.wireClickEvents = function () {\n EventHandler.add(this.currentSeparator, 'touchstart click', this.clickHandler, this);\n };\n Splitter.prototype.clickHandler = function (e) {\n if (!e.target.classList.contains(NAVIGATE_ARROW)) {\n var hoverBars = selectAll('.' + ROOT + ' > .' + SPLIT_BAR + '.' + SPLIT_BAR_HOVER);\n if (hoverBars.length > 0) {\n removeClass(hoverBars, SPLIT_BAR_HOVER);\n }\n e.target.classList.add(SPLIT_BAR_HOVER);\n }\n this.splitterDetails(e);\n var icon = e.target;\n if (icon.classList.contains(ARROW_LEFT) || icon.classList.contains(ARROW_RIGHT) ||\n icon.classList.contains(ARROW_DOWN) || icon.classList.contains(ARROW_UP)) {\n if (!this.nextPane.classList.contains(PANE_HIDDEN) && !this.previousPane.classList.contains(PANE_HIDDEN)) {\n this.collapseAction(e);\n }\n else {\n this.expandAction(e);\n }\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.expandAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.expandFlag) {\n this.trigger('beforeExpand', eventArgs, function (beforeExpandArgs) {\n if (!beforeExpandArgs.cancel) {\n _this.expandPane(e);\n }\n var expandEventArgs = _this.afterAction(e);\n _this.trigger('expanded', expandEventArgs);\n });\n }\n else {\n this.expandPane(e);\n }\n };\n Splitter.prototype.getIcon = function (e) {\n var targetClass = e.target.className.split(' ').filter(function (className) {\n return className !== NAVIGATE_ARROW && className !== HIDE_ICON;\n });\n return targetClass[0];\n };\n Splitter.prototype.expandPane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (!this.previousPane.classList.contains(COLLAPSE_PANE) &&\n this.previousPane.classList.contains(STATIC_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.nextPane.classList.contains(EXPAND_PANE) && this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) && !(collapseCount === this.allPanes.length - 2));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.nextPane : this.previousPane;\n var expandPane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPaneIndex = isLeftOrUp ? this.nextPaneIndex : this.prevPaneIndex;\n removeClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'false');\n // cCount is calculated after removing the COLLAPSE_PANE\n var cCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n if (cCount > 0) {\n if (!expandPane.classList.contains(COLLAPSE_PANE)) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n else if (cCount === 0) {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n removeClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'false');\n }\n }\n }\n if (this.expandFlag) {\n this.updatePaneSettings(expandPaneIndex, false);\n }\n this.updateIconsOnExpand(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.previousPane.classList.remove(EXPAND_PANE);\n this.previousPane.setAttribute('aria-expanded', 'false');\n this.previousPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.updateFlexGrow = function () {\n var collapseCount = 0;\n for (var j = 0; j < this.element.children.length; j++) {\n if (this.element.children[j].classList.contains(COLLAPSE_PANE)) {\n collapseCount = collapseCount + 1;\n }\n }\n var visiblePane = collapseCount === this.allPanes.length - 2;\n var panes = this.allPanes;\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.flexGrow = '';\n if (visiblePane && this.allPanes[i].classList.contains(COLLAPSE_PANE) && this.paneSettings[i].size &&\n i !== this.allPanes.length - 1) {\n panes[i].style.flexGrow = '';\n }\n if (panes[i].classList.contains(EXPAND_PANE)) {\n panes[i].style.flexGrow = '1';\n }\n else if (panes[i].classList.contains(COLLAPSE_PANE)) {\n panes[i].style.flexGrow = '0';\n }\n }\n };\n Splitter.prototype.hideTargetBarIcon = function (targetBar, targetArrow) {\n addClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.showTargetBarIcon = function (targetBar, targetArrow) {\n removeClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.updateIconsOnCollapse = function (e, targetIcon) {\n this.splitterProperty();\n var removeIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ? this.currentBarIndex - 1\n : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n if (this.splitInstance.prevPaneCollapsed || this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.resizableModel(this.currentBarIndex, false);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 1) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n this.resizableModel(otherBarIndex, false);\n }\n else if (collapsecount === 2) {\n this.hideBarIcons(otherBar);\n this.resizableModel(otherBarIndex, false);\n }\n if (!this.paneSettings[otherPrevPaneIndex].collapsible ||\n !this.paneSettings[otherNextPaneIndex].collapsible) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n }\n }\n }\n else {\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n if (!isNullOrUndefined(otherBar)) {\n this.resizableModel(otherBarIndex, true);\n }\n if (!this.paneSettings[this.prevPaneIndex].collapsible || !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n this.hideTargetBarIcon(this.currentSeparator, removeIcon);\n }\n else {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n }\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n }\n }\n };\n Splitter.prototype.collapseAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.collapseFlag) {\n this.collapsePane(e);\n }\n else {\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n _this.collapsePane(e);\n var collapseEventArgs = _this.afterAction(e);\n _this.trigger('collapsed', collapseEventArgs);\n }\n });\n }\n };\n Splitter.prototype.collapsePane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (this.previousPane.classList.contains(STATIC_PANE) &&\n !this.previousPane.classList.contains(COLLAPSE_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(COLLAPSE_PANE) &&\n !(collapseCount === this.allPanes.length - 2)) || (this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.previousPane.classList.contains(STATIC_PANE) && this.nextPane.classList.contains(STATIC_PANE));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPane = isLeftOrUp ? this.nextPane : this.previousPane;\n var collapsePaneIndex = isLeftOrUp ? this.prevPaneIndex : this.nextPaneIndex;\n removeClass([collapsePane], EXPAND_PANE);\n collapsePane.setAttribute('aria-expanded', 'false');\n addClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'true');\n var isFlexPane = collapsePane.style.flexBasis === '';\n if (isFlexPane) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n else {\n var isFlexPaneHidden = true;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n if (this.allPanes[i].style.flexBasis === '' && !this.allPanes[i].classList.contains(COLLAPSE_PANE)\n && !this.allPanes[i].classList.contains(EXPAND_PANE)) {\n addClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'true');\n isFlexPaneHidden = false;\n break;\n }\n }\n }\n if (isFlexPaneHidden) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n if (!this.collapseFlag) {\n this.updatePaneSettings(collapsePaneIndex, true);\n }\n this.updateIconsOnCollapse(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.nextPane.classList.remove(EXPAND_PANE);\n this.nextPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.removeStaticPanes = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n }\n };\n Splitter.prototype.beforeAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n cancel: false\n };\n return eventArgs;\n };\n Splitter.prototype.updatePaneSettings = function (index, collapsed) {\n var paneValues = this.paneSettings;\n paneValues[index].collapsed = collapsed;\n this.setProperties({ 'paneSettings': paneValues }, true);\n };\n Splitter.prototype.splitterProperty = function () {\n this.splitInstance = {\n currentBarIndex: this.currentBarIndex,\n nextPaneCollapsible: this.nextPane.classList.contains(COLLAPSIBLE),\n prevPaneCollapsible: this.previousPane.classList.contains(COLLAPSIBLE),\n prevPaneExpanded: this.previousPane.classList.contains(EXPAND_PANE),\n nextPaneExpanded: this.nextPane.classList.contains(EXPAND_PANE),\n nextPaneCollapsed: this.nextPane.classList.contains(COLLAPSE_PANE),\n prevPaneCollapsed: this.previousPane.classList.contains(COLLAPSE_PANE),\n nextPaneIndex: this.getNextPaneIndex(),\n prevPaneIndex: this.getPreviousPaneIndex(),\n nextPaneNextEle: this.nextPane.nextElementSibling,\n prevPanePreEle: this.previousPane.previousElementSibling\n };\n };\n Splitter.prototype.showCurrentBarIcons = function () {\n removeClass([select('.' + this.arrow, this.currentSeparator)], HIDE_ICON);\n };\n Splitter.prototype.hideBarIcons = function (bar) {\n addClass([select('.' + this.arrow, bar)], HIDE_ICON);\n };\n Splitter.prototype.getCollapseCount = function (prevPaneIndex, nextPaneIndex) {\n var collapsecount = 0;\n if (this.allPanes[prevPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n if (this.allPanes[nextPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n return collapsecount;\n };\n Splitter.prototype.checkResizableProp = function (prevPaneIndex, nextPaneIndex) {\n if (this.paneSettings[prevPaneIndex].resizable && this.paneSettings[nextPaneIndex].resizable) {\n return true;\n }\n else {\n return false;\n }\n };\n Splitter.prototype.updateIconsOnExpand = function (e, targetIcon) {\n this.splitterProperty();\n var showIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ?\n this.currentBarIndex - 1 : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n // prevPane ! collapsed && nextPane ! collapsed\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.showCurrentBarIcons();\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 0) {\n this.showTargetBarIcon(otherBar, targetIcon);\n this.showTargetBarIcon(otherBar, showIcon);\n if (this.checkResizableProp(otherPrevPaneIndex, otherNextPaneIndex)) {\n this.resizableModel(otherBarIndex, true);\n }\n }\n else if (collapsecount === 1) {\n this.hideBarIcons(otherBar);\n // If condition Edge case in flexible cases\n if (this.allPanes[otherPrevPaneIndex].classList.contains(EXPAND_PANE) ||\n this.allPanes[otherNextPaneIndex].classList.contains(EXPAND_PANE)) {\n this.showTargetBarIcon(otherBar, showIcon);\n }\n else {\n // Common case\n this.showTargetBarIcon(otherBar, targetIcon);\n }\n this.resizableModel(otherBarIndex, false);\n }\n }\n }\n }\n else {\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.showTargetBarIcon(this.currentSeparator, showIcon);\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n }\n else {\n if (!this.paneSettings[this.prevPaneIndex].collapsible && !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n }\n };\n Splitter.prototype.afterAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator\n };\n return eventArgs;\n };\n Splitter.prototype.currentIndex = function (e) {\n this.currentBarIndex = this.getOrderIndex(parseInt(e.target.parentElement.style.order, 10), 'splitbar');\n };\n Splitter.prototype.getSeparatorIndex = function (target) {\n var array = [].slice.call(this.allBars);\n array = this.enableReversePanes ? array.reverse() : array;\n return array.indexOf(target);\n };\n Splitter.prototype.getPrevBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar - 1)];\n return prevbar;\n };\n Splitter.prototype.getNextBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar + 1)];\n return prevbar;\n };\n Splitter.prototype.updateBars = function (index) {\n this.prevBar = this.getPrevBar(index);\n this.nextBar = this.getNextBar(index);\n };\n Splitter.prototype.splitterDetails = function (e) {\n if (this.orientation === 'Horizontal') {\n this.arrow = e.target.classList.contains(ARROW_LEFT) ? ARROW_RIGHT : ARROW_LEFT;\n }\n else {\n this.arrow = e.target.classList.contains(ARROW_UP) ? ARROW_DOWN : ARROW_UP;\n }\n this.updateCurrentSeparator(e.target);\n this.currentIndex(e);\n this.updateBars(this.currentBarIndex);\n this.getPaneDetails();\n };\n Splitter.prototype.triggerResizing = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n paneSize: [this.prePaneDimenson, this.nextPaneDimension],\n separator: this.currentSeparator\n };\n this.trigger('resizing', eventArgs);\n };\n Splitter.prototype.onMouseDown = function (e) {\n var _this = this;\n e.preventDefault();\n var target = e.target;\n if (target.classList.contains(NAVIGATE_ARROW)) {\n return;\n }\n this.updateCurrentSeparator(target);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.updateCursorPosition(e, 'previous');\n this.getPaneDetails();\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.getPreviousPaneIndex(), this.getNextPaneIndex()],\n separator: this.currentSeparator,\n cancel: false\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'none';\n }\n this.trigger('resizeStart', eventArgs, function (resizeStartArgs) {\n if (!resizeStartArgs.cancel) {\n _this.wireResizeEvents();\n _this.checkPaneSize(e);\n }\n });\n };\n Splitter.prototype.updatePaneFlexBasis = function (pane) {\n var previous;\n if (pane.style.flexBasis.indexOf('%') > 0) {\n previous = this.removePercentageUnit(pane.style.flexBasis);\n }\n else {\n if (pane.style.flexBasis !== '') {\n previous = this.convertPixelToPercentage(this.convertPixelToNumber(pane.style.flexBasis));\n }\n else {\n var offset = (this.orientation === 'Horizontal') ? (pane.offsetWidth) : (pane.offsetHeight);\n previous = this.convertPixelToPercentage(offset);\n }\n }\n return previous;\n };\n Splitter.prototype.removePercentageUnit = function (value) {\n return parseFloat(value.slice(0, value.indexOf('%')));\n };\n Splitter.prototype.convertPercentageToPixel = function (value, targetElement) {\n var percentage = value.toString();\n var convertedValue;\n if (percentage.indexOf('%') > -1) {\n convertedValue = parseFloat(percentage.slice(0, percentage.indexOf('%')));\n var offsetValue = void 0;\n if (!isNullOrUndefined(targetElement)) {\n offsetValue = this.panesDimensions[this.allPanes.indexOf(targetElement)];\n }\n else {\n offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n }\n convertedValue = Math.ceil(offsetValue * (convertedValue / 100));\n }\n else {\n convertedValue = parseInt(percentage, 10);\n }\n return convertedValue;\n };\n Splitter.prototype.convertPixelToPercentage = function (value) {\n var offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return (value / offsetValue) * 100;\n };\n Splitter.prototype.convertPixelToNumber = function (value) {\n value = value.toString();\n if (value.indexOf('p') > -1) {\n return parseFloat(value.slice(0, value.indexOf('p')));\n }\n else {\n return parseFloat(value);\n }\n };\n Splitter.prototype.calcDragPosition = function (rectValue, offsetValue) {\n var separatorPosition = this.orientation === 'Horizontal' ? (this.currentCoordinates.x - rectValue) :\n (this.currentCoordinates.y - rectValue);\n var separator;\n separator = separatorPosition / offsetValue;\n separator = (separator > 1) ? 1 : (separator < 0) ? 0 : separator;\n return separator * offsetValue;\n };\n Splitter.prototype.getSeparatorPosition = function (e) {\n this.updateCursorPosition(e, 'current');\n var rectBound = (this.orientation === 'Horizontal') ? this.element.getBoundingClientRect().left + window.scrollX :\n this.element.getBoundingClientRect().top + window.scrollY;\n var offSet = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return this.calcDragPosition(rectBound, offSet);\n };\n Splitter.prototype.getMinMax = function (paneIndex, target, selection) {\n var defaultVal = selection === 'min' ? 0 : null;\n // eslint-disable-next-line\n var paneValue = null;\n if (selection === 'min') {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneValue = this.paneSettings[paneIndex].min;\n }\n }\n else {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneValue = this.paneSettings[paneIndex].max;\n }\n }\n if (this.paneSettings.length > 0 && !isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(paneValue)) {\n if (paneValue.indexOf('%') > 0) {\n paneValue = this.convertPercentageToPixel(paneValue).toString();\n }\n return this.convertPixelToNumber(paneValue);\n }\n else {\n return defaultVal;\n }\n };\n Splitter.prototype.getPreviousPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) + 1 :\n parseInt(this.currentSeparator.style.order, 10) - 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getNextPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) - 1 :\n parseInt(this.currentSeparator.style.order, 10) + 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getPaneDetails = function () {\n var prevPane = null;\n var nextPane = null;\n this.order = parseInt(this.currentSeparator.style.order, 10);\n if (this.allPanes.length > 1) {\n prevPane = this.getPrevPane(this.order);\n nextPane = this.getNextPane(this.order);\n }\n if (prevPane && nextPane) {\n this.previousPane = prevPane;\n this.nextPane = nextPane;\n this.prevPaneIndex = this.getPreviousPaneIndex();\n this.nextPaneIndex = this.getNextPaneIndex();\n }\n else {\n return;\n }\n };\n Splitter.prototype.getPaneHeight = function (pane) {\n return ((this.orientation === 'Horizontal') ? pane.offsetWidth.toString() :\n pane.offsetHeight.toString());\n };\n Splitter.prototype.isValidSize = function (paneIndex) {\n var isValid = false;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].size) &&\n this.paneSettings[paneIndex].size.indexOf('%') > -1) {\n isValid = true;\n }\n return isValid;\n };\n Splitter.prototype.getPaneDimensions = function () {\n this.previousPaneHeightWidth = (this.previousPane.style.flexBasis === '') ? this.getPaneHeight(this.previousPane) :\n this.previousPane.style.flexBasis;\n this.nextPaneHeightWidth = (this.nextPane.style.flexBasis === '') ? this.getPaneHeight(this.nextPane) :\n this.nextPane.style.flexBasis;\n if (this.isValidSize(this.prevPaneIndex)) {\n this.previousPaneHeightWidth = this.convertPercentageToPixel(this.previousPaneHeightWidth).toString();\n this.updatePrePaneInPercentage = true;\n }\n if (this.isValidSize(this.nextPaneIndex)) {\n this.nextPaneHeightWidth = this.convertPercentageToPixel(this.nextPaneHeightWidth).toString();\n this.updateNextPaneInPercentage = true;\n }\n this.prePaneDimenson = this.convertPixelToNumber(this.previousPaneHeightWidth.toString());\n this.nextPaneDimension = this.convertPixelToNumber(this.nextPaneHeightWidth.toString());\n };\n Splitter.prototype.checkCoordinates = function (pageX, pageY) {\n var coordinatesChanged = true;\n if ((pageX === this.previousCoordinates.x && pageY === this.previousCoordinates.y)) {\n coordinatesChanged = false;\n }\n return coordinatesChanged;\n };\n Splitter.prototype.isCursorMoved = function (e) {\n var cursorMoved = true;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType)) &&\n this.getEventType(e.pointerType) === 'mouse') {\n cursorMoved = this.checkCoordinates(e.pageX, e.pageY);\n }\n else {\n cursorMoved = (Browser.info.name !== 'msie') ?\n this.checkCoordinates(e.touches[0].pageX, e.touches[0].pageY) :\n this.checkCoordinates(e.pageX, e.pageY);\n }\n return cursorMoved;\n };\n Splitter.prototype.getBorder = function () {\n this.border = 0;\n var border = this.orientation === 'Horizontal' ? ((this.element.offsetWidth - this.element.clientWidth) / 2) :\n (this.element.offsetHeight - this.element.clientHeight) / 2;\n this.border = Browser.info.name !== 'chrome' ? this.border : border;\n };\n Splitter.prototype.onMouseMove = function (e) {\n if (!this.isCursorMoved(e)) {\n return;\n }\n this.getPaneDetails();\n this.getPaneDimensions();\n this.triggerResizing(e);\n var left = this.validateDraggedPosition(this.getSeparatorPosition(e), this.prePaneDimenson, this.nextPaneDimension);\n var separatorNewPosition;\n this.getBorder();\n if (this.orientation === 'Horizontal') {\n separatorNewPosition = (this.element.getBoundingClientRect().left + left) -\n this.currentSeparator.getBoundingClientRect().left + this.border;\n }\n else {\n separatorNewPosition = (this.element.getBoundingClientRect().top + left) -\n this.currentSeparator.getBoundingClientRect().top + this.border;\n }\n this.nextPaneHeightWidth =\n (typeof (this.nextPaneHeightWidth) === 'string' && this.nextPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.nextPaneHeightWidth) : parseInt(this.nextPaneHeightWidth, 10);\n this.previousPaneHeightWidth =\n (typeof (this.previousPaneHeightWidth) === 'string' && this.previousPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.previousPaneHeightWidth) : parseInt(this.previousPaneHeightWidth, 10);\n this.prevPaneCurrentWidth = separatorNewPosition + this.previousPaneHeightWidth;\n this.nextPaneCurrentWidth = this.nextPaneHeightWidth - separatorNewPosition;\n this.validateMinMaxValues();\n if (this.nextPaneCurrentWidth < 0) {\n this.nextPaneCurrentWidth = 0;\n }\n /* istanbul ignore next */\n if (this.prevPaneCurrentWidth < 0) {\n this.prevPaneCurrentWidth = 0;\n }\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) > this.totalWidth) {\n if (this.nextPaneCurrentWidth < this.prevPaneCurrentWidth) {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n else {\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n }\n /* istanbul ignore next */\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) < this.totalWidth) {\n var difference = this.totalWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth));\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + difference;\n }\n this.calculateCurrentDimensions();\n this.addStaticPaneClass();\n var flexPaneCount = 0;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (this.paneSettings[i].size === '') {\n flexPaneCount = flexPaneCount + 1;\n }\n else if (this.allPanes[i].style.flexBasis !== '') {\n this.paneSettings[i].size = this.allPanes[i].style.flexBasis;\n }\n }\n var allFlexiblePanes = flexPaneCount === this.allPanes.length;\n // Two flexible Pane Case.\n if (this.previousPane.style.flexBasis === '' && this.nextPane.style.flexBasis === '' && !allFlexiblePanes) {\n var middlePaneIndex = this.allPanes.length % this.allBars.length;\n if (this.prevPaneIndex === middlePaneIndex) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n else if (this.nextPaneIndex === middlePaneIndex) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n }\n else {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n } // All panes are flexible\n else if (allFlexiblePanes) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n } // Two Panesa are Static Pane\n else {\n if (this.previousPane.style.flexBasis !== '' && this.previousPane.classList.contains(STATIC_PANE)) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n }\n if (this.nextPane.style.flexBasis !== '' && this.nextPane.classList.contains(STATIC_PANE)) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n }\n }\n var isStaticPanes = this.previousPane.style.flexBasis !== '' && this.nextPane.style.flexBasis !== '';\n if (!(this.allPanes.length > 2) && isStaticPanes) {\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.validateMinRange = function (paneIndex, paneCurrentWidth) {\n var paneMinRange = null;\n var paneMinDimensions;\n var difference = 0;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneMinRange = this.paneSettings[paneIndex].min.toString();\n }\n if (!isNullOrUndefined(paneMinRange)) {\n if (paneMinRange.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(paneMinRange).toString();\n }\n paneMinDimensions = this.convertPixelToNumber(paneMinRange);\n if (paneCurrentWidth < paneMinDimensions) {\n difference = (paneCurrentWidth - paneMinDimensions) <= 0 ? 0 :\n (paneCurrentWidth - paneMinDimensions);\n this.totalWidth = this.totalWidth - difference;\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMinDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMaxRange = function (paneIndex, paneCurrentWidth) {\n var paneMaxRange = null;\n var paneMaxDimensions;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneMaxRange = this.paneSettings[paneIndex].max.toString();\n }\n if (!isNullOrUndefined(paneMaxRange)) {\n if (paneMaxRange.indexOf('%') > 0) {\n paneMaxRange = this.convertPercentageToPixel(paneMaxRange).toString();\n }\n paneMaxDimensions = this.convertPixelToNumber(paneMaxRange);\n if (paneCurrentWidth > paneMaxDimensions) {\n this.totalWidth = this.totalWidth - (paneCurrentWidth - paneMaxDimensions);\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMaxDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMinMaxValues = function () {\n //validate previous pane minimum range\n this.prevPaneCurrentWidth = this.validateMinRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // Validate next pane minimum range\n this.nextPaneCurrentWidth = this.validateMinRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n // validate previous pane maximum range\n this.prevPaneCurrentWidth = this.validateMaxRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // validate next pane maximum range\n this.nextPaneCurrentWidth = this.validateMaxRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n };\n Splitter.prototype.equatePaneWidths = function () {\n var difference;\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) > this.totalPercent) {\n difference = (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) - this.totalPercent;\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - (difference / 2) + '%';\n }\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) < this.totalPercent) {\n difference = this.totalPercent - (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth);\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + (difference / 2) + '%';\n }\n };\n Splitter.prototype.calculateCurrentDimensions = function () {\n if (this.updatePrePaneInPercentage || this.updateNextPaneInPercentage) {\n this.prevPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.prevPaneCurrentWidth)\n * 10) / 10));\n this.nextPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.nextPaneCurrentWidth)\n * 10) / 10));\n if (this.prevPaneCurrentWidth === 0) {\n this.nextPaneCurrentWidth = this.totalPercent;\n }\n if (this.nextPaneCurrentWidth === 0) {\n this.prevPaneCurrentWidth = this.totalPercent;\n }\n if (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth !== this.totalPercent) {\n this.equatePaneWidths();\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + '%';\n }\n this.prevPaneCurrentWidth = (this.updatePrePaneInPercentage) ? this.prevPaneCurrentWidth :\n this.convertPercentageToPixel(this.prevPaneCurrentWidth) + 'px';\n this.nextPaneCurrentWidth = (this.updateNextPaneInPercentage) ? this.nextPaneCurrentWidth :\n this.convertPercentageToPixel(this.nextPaneCurrentWidth) + 'px';\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + 'px';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + 'px';\n }\n };\n Splitter.prototype.addStaticPaneClass = function () {\n if (!this.previousPane.classList.contains(STATIC_PANE) && !(this.previousPane.style.flexBasis === '') && !this.previousPane.classList.contains(EXPAND_PANE)) {\n this.previousPane.classList.add(STATIC_PANE);\n }\n if (!this.nextPane.classList.contains(STATIC_PANE) && !(this.nextPane.style.flexBasis === '') && !this.nextPane.classList.contains(EXPAND_PANE)) {\n this.nextPane.classList.add(STATIC_PANE);\n }\n };\n Splitter.prototype.validateDraggedPosition = function (draggedPos, prevPaneHeightWidth, nextPaneHeightWidth) {\n var separatorTopLeft = (this.orientation === 'Horizontal') ? this.currentSeparator.offsetLeft :\n this.currentSeparator.offsetTop;\n var prePaneRange = separatorTopLeft - prevPaneHeightWidth;\n var nextPaneRange = nextPaneHeightWidth + separatorTopLeft;\n var pane1MinSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'min');\n var pane2MinSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'min');\n var pane1MaxSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'max');\n var pane2MaxSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'max');\n var validatedSize = draggedPos;\n if (draggedPos > nextPaneRange - pane2MinSize) {\n validatedSize = nextPaneRange - pane2MinSize;\n }\n else if (draggedPos < prePaneRange + pane1MinSize) {\n validatedSize = prePaneRange + pane1MinSize;\n }\n if (!isNullOrUndefined(pane1MaxSize)) {\n if (draggedPos > prePaneRange + pane1MaxSize) {\n validatedSize = prePaneRange + pane1MaxSize;\n }\n }\n else if (!isNullOrUndefined(pane2MaxSize)) {\n if (draggedPos < nextPaneRange - pane2MaxSize) {\n validatedSize = nextPaneRange - pane2MaxSize;\n }\n }\n return validatedSize;\n };\n Splitter.prototype.onMouseUp = function (e) {\n removeClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.unwireResizeEvents();\n var eventArgs = {\n event: e,\n element: this.element,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n paneSize: [this.prePaneDimenson, this.nextPaneDimension]\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'auto';\n }\n this.trigger('resizeStop', eventArgs);\n if (this.enablePersistence) {\n var paneValues = this.paneSettings;\n paneValues[this.getPreviousPaneIndex()].size = this.allPanes[this.getPreviousPaneIndex()].style.flexBasis;\n paneValues[this.getNextPaneIndex()].size = this.allPanes[this.getNextPaneIndex()].style.flexBasis;\n this.setProperties({ 'paneSettings': paneValues }, true);\n }\n };\n Splitter.prototype.panesDimension = function (index, child) {\n var childCount = child.length;\n var size;\n parseInt(this.getHeight(this.element), 10);\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].size)) {\n size = this.paneSettings[index].size;\n if (index < childCount) {\n setStyleAttribute(child[index], { 'flex-basis': size, 'order': index * 2 });\n if (index < childCount - 1 && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n else if (!this.sizeFlag) {\n child[index].style.flexBasis = null;\n }\n if ((index === childCount - 1) && this.sizeFlag && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n }\n }\n else {\n this.sizeFlag = true;\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n }\n else {\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n this.paneOrder.push(index * 2);\n };\n Splitter.prototype.setTemplate = function (template, toElement) {\n toElement.innerHTML = '';\n template = typeof (template) === 'string' ? this.sanitizeHelper(template) : template;\n this.templateCompile(toElement, template);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n // eslint-disable-next-line\n Splitter.prototype.templateCompile = function (ele, cnt) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n var tempEle = this.createElement('div');\n this.compileElement(tempEle, cnt, 'content');\n if (tempEle.childNodes.length !== 0) {\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\n ele.appendChild(childEle);\n });\n }\n };\n Splitter.prototype.compileElement = function (ele, val, prop) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (typeof (val) === 'string') {\n if (val[0] === '.' || val[0] === '#') {\n var eleVal = document.querySelector(val);\n if (!isNullOrUndefined(eleVal)) {\n this.templateElement.push(eleVal);\n if (eleVal.style.display === 'none') {\n eleVal.style.removeProperty('display');\n }\n if (eleVal.getAttribute('style') === '') {\n eleVal.removeAttribute('style');\n }\n ele.appendChild(eleVal);\n return;\n }\n else {\n val = val.trim();\n }\n }\n else {\n val = val.trim();\n }\n }\n var templateFn;\n if (!isNullOrUndefined(val.outerHTML)) {\n templateFn = compile(val.outerHTML);\n }\n else {\n templateFn = compile(val);\n }\n var templateFUN;\n if (!isNullOrUndefined(templateFn)) {\n templateFUN = templateFn({}, this, prop, this.element.id + 'content' + this.allPanes.length.toString(), true);\n }\n if (!isNullOrUndefined(templateFn) && templateFUN && templateFUN.length > 0) {\n [].slice.call(templateFUN).forEach(function (el) {\n ele.appendChild(el);\n });\n }\n };\n Splitter.prototype.paneCollapsible = function (pane, index) {\n // eslint-disable-next-line\n this.paneSettings[index].collapsible ? addClass([pane], COLLAPSIBLE) : removeClass([pane], COLLAPSIBLE);\n };\n Splitter.prototype.createSplitPane = function (target) {\n var childCount = target.children.length;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (childCount < this.paneSettings.length) {\n var childElement = this.createElement('div');\n this.element.appendChild(childElement);\n childCount = childCount + 1;\n }\n }\n childCount = target.children.length;\n var child = [].slice.call(target.children);\n this.sizeFlag = false;\n if (childCount > 0) {\n for (var i = 0; i < childCount; i++) {\n // To accept only div and span element as pane\n if (child[i].nodeName === 'DIV' || child[i].nodeName === 'SPAN') {\n this.allPanes.push(child[i]);\n if (this.orientation === 'Horizontal') {\n addClass([child[i]], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n else {\n addClass([child[i]], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && !isNullOrUndefined(this.paneSettings[i].content)) {\n this.setTemplate(this.paneSettings[i].content, child[i]);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && this.paneSettings[i].cssClass) {\n this.setCssClass(child[i], this.paneSettings[i].cssClass);\n }\n if (!isNullOrUndefined(this.paneSettings[i])) {\n this.paneCollapsible(child[i], i);\n }\n }\n }\n }\n };\n /**\n * expands corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be expanded at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.expand = function (index) {\n this.collapsedOnchange(index);\n this.updatePaneSettings(index, false);\n };\n /**\n * collapses corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be collapsed at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.collapse = function (index) {\n this.isCollapsed(index);\n this.updatePaneSettings(index, true);\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Splitter.prototype.destroy = function () {\n if (!this.isDestroyed) {\n _super.prototype.destroy.call(this);\n EventHandler.remove(document, 'touchstart click', this.onDocumentClick);\n EventHandler.remove(this.element, 'keydown', this.onMove);\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize, true);\n while (this.element.attributes.length > 0) {\n this.element.removeAttribute(this.element.attributes[0].name);\n }\n for (var i = 0; i < this.wrapper.attributes.length; i++) {\n this.element.setAttribute(this.wrapper.attributes[i].name, this.wrapper.attributes[i].value);\n }\n if (this.refreshing) {\n addClass([this.element], ['e-control', 'e-lib', ROOT]);\n this.allBars = [];\n this.allPanes = [];\n }\n this.restoreElem();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n var separators = this.element.querySelectorAll('.e-split-bar');\n if (separators.length > 0) {\n for (var i = 0; i < separators.length; i++) {\n EventHandler.remove(separators[i], 'touchstart', this.clickHandler);\n EventHandler.remove(separators[i], 'touchstart', this.onMouseDown);\n EventHandler.remove(separators[i], 'click', this.clickHandler);\n EventHandler.remove(separators[i], 'mousedown', this.onMouseDown);\n separators[i].parentNode.removeChild(separators[i]); // Use parentNode for broader compatibility\n }\n }\n var panes = this.element.querySelectorAll('.e-pane');\n if (panes.length > 0) {\n for (var i = 0; i < panes.length; i++) {\n panes[i].classList.remove(SPLIT_H_PANE, SPLIT_V_PANE, STATIC_PANE, SCROLL_PANE, PANE, RESIZABLE_PANE, HIDE_HANDLER, COLLAPSIBLE, EXPAND_PANE, PANE_HIDDEN);\n while (panes[i].attributes.length > 0) {\n panes[i].removeAttribute(panes[i].attributes[0].name);\n }\n }\n }\n this.allBars = [];\n this.allBars = null;\n this.allPanes = [];\n this.allPanes = null;\n this.previousPane = null;\n this.nextPane = null;\n this.currentSeparator = null;\n this.wrapper = null;\n this.prevBar = null;\n this.nextBar = null;\n this.templateElement = null;\n }\n };\n Splitter.prototype.restoreElem = function () {\n if (this.templateElement.length > 0) {\n for (var i = 0; i < this.templateElement.length; i++) {\n this.templateElement[i].style.display = 'none';\n document.body.appendChild(this.templateElement[i]);\n }\n }\n };\n Splitter.prototype.addPaneClass = function (pane) {\n if (this.orientation === 'Horizontal') {\n addClass([pane], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n }\n else {\n addClass([pane], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n }\n return pane;\n };\n Splitter.prototype.removePaneOrders = function (paneClass) {\n var childNodes = this.element.childNodes;\n var panes = [];\n for (var i = 0; childNodes.length < 0; i++) {\n if (childNodes[i].classList.contains(paneClass)) {\n panes.push(childNodes[i]);\n }\n }\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.removeProperty('order');\n }\n };\n Splitter.prototype.setPaneOrder = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n this.panesDimension(i, this.allPanes);\n }\n };\n Splitter.prototype.removeSeparator = function () {\n for (var i = 0; i < this.allBars.length; i++) {\n detach(this.allBars[i]);\n }\n this.allBars = [];\n };\n Splitter.prototype.updatePanes = function () {\n this.setPaneOrder();\n this.removeSeparator();\n this.addSeparator(this.element);\n };\n /**\n * Allows you to add a pane dynamically to the specified index position by passing the pane properties.\n *\n * @param { PanePropertiesModel } paneProperties - Specifies the pane’s properties that apply to new pane.\n * @param { number } index - Specifies the index where the pane will be inserted.\n * @returns {void}\n */\n Splitter.prototype.addPane = function (paneProperties, index) {\n var newPane = this.createElement('div');\n newPane = this.addPaneClass(newPane);\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var paneDetails = {\n size: isNullOrUndefined(paneProperties.size) ? '' : paneProperties.size,\n min: isNullOrUndefined(paneProperties.min) ? null : paneProperties.min,\n max: isNullOrUndefined(paneProperties.max) ? null : paneProperties.max,\n content: isNullOrUndefined(paneProperties.content) ? '' : paneProperties.content,\n resizable: isNullOrUndefined(paneProperties.resizable) ? true : paneProperties.resizable,\n collapsible: isNullOrUndefined(paneProperties.collapsible) ? false : paneProperties.collapsible,\n collapsed: isNullOrUndefined(paneProperties.collapsed) ? false : paneProperties.collapsed,\n cssClass: isNullOrUndefined(paneProperties.cssClass) ? '' : paneProperties.cssClass\n };\n this.paneSettings.splice(index, 0, paneDetails);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.orientation === 'Horizontal') {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_H_PANE)[index]);\n this.removePaneOrders(SPLIT_H_PANE);\n }\n else {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_V_PANE)[index]);\n this.removePaneOrders(SPLIT_V_PANE);\n }\n this.allPanes.splice(index, 0, newPane);\n this.updatePanes();\n this.setTemplate(this.paneSettings[index].content, newPane);\n this.setCssClass(this.allPanes[index], paneProperties.cssClass);\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n };\n /**\n * Allows you to remove the specified pane dynamically by passing its index value.\n *\n * @param { number } index - Specifies the index value to remove the corresponding pane.\n * @returns {void}\n */\n Splitter.prototype.removePane = function (index) {\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var elementClass = (this.orientation === 'Horizontal') ? SPLIT_H_PANE : SPLIT_V_PANE;\n if (isNullOrUndefined(this.element.querySelectorAll('.' + elementClass)[index])) {\n return;\n }\n detach(this.element.querySelectorAll('.' + elementClass)[index]);\n this.allPanes.splice(index, 1);\n this.removePaneOrders(elementClass);\n this.updatePanes();\n this.paneSettings.splice(index, 1);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.allPanes.length > 0) {\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n }\n };\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"height\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enableReversePanes\", void 0);\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enablePersistence\", void 0);\n __decorate([\n Collection([], PaneProperties)\n ], Splitter.prototype, \"paneSettings\", void 0);\n __decorate([\n Property('Horizontal')\n ], Splitter.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Splitter.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enabled\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Splitter.prototype, \"separatorSize\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeCollapse\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeExpand\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"collapsed\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"expanded\", void 0);\n Splitter = __decorate([\n NotifyPropertyChanges\n ], Splitter);\n return Splitter;\n}(Component));\nexport { Splitter };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Property, NotifyPropertyChanges, isUndefined } from '@syncfusion/ej2-base';\nimport { Collection, Draggable, isNullOrUndefined, append, setValue } from '@syncfusion/ej2-base';\nimport { Event, formatUnit, ChildProperty, compile, closest, SanitizeHtmlHelper, getValue } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, addClass, detach, removeClass, EventHandler, Browser, extend } from '@syncfusion/ej2-base';\n// constant class definitions\nvar preventSelect = 'e-prevent';\nvar dragging = 'e-dragging';\nvar dragRestrict = 'e-drag-restrict';\nvar drag = 'e-drag';\nvar resize = 'e-resize';\nvar resizeicon = 'e-dl-icon';\nvar responsive = 'e-responsive';\nvar east = 'e-east';\nvar west = 'e-west';\nvar north = 'e-north';\nvar south = 'e-south';\nvar single = 'e-single';\nvar double = 'e-double';\nvar northEast = 'e-north-east';\nvar southEast = 'e-south-east';\nvar northWest = 'e-north-west';\nvar southWest = 'e-south-west';\nvar panel = 'e-panel';\nvar panelContent = 'e-panel-content';\nvar panelContainer = 'e-panel-container';\nvar disable = 'e-disabled';\nvar header = 'e-panel-header';\nvar panelTransition = 'e-panel-transition';\n/**\n * Defines the panel of the DashboardLayout component.\n */\nvar Panel = /** @class */ (function (_super) {\n __extends(Panel, _super);\n function Panel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Panel.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], Panel.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Panel.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Panel.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Panel.prototype, \"enabled\", void 0);\n __decorate([\n Property(0)\n ], Panel.prototype, \"row\", void 0);\n __decorate([\n Property(0)\n ], Panel.prototype, \"col\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"sizeX\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"sizeY\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"minSizeY\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"minSizeX\", void 0);\n __decorate([\n Property(null)\n ], Panel.prototype, \"maxSizeY\", void 0);\n __decorate([\n Property(null)\n ], Panel.prototype, \"maxSizeX\", void 0);\n __decorate([\n Property(1000)\n ], Panel.prototype, \"zIndex\", void 0);\n return Panel;\n}(ChildProperty));\nexport { Panel };\n/**\n * The DashboardLayout is a grid structured layout control, that helps to create a dashboard with panels.\n * Panels hold the UI components or data to be visualized with flexible options like resize, reorder, drag-n-drop, remove and add,\n * that allows users to easily place the panels at a desired position within the grid layout.\n * ```html\n * <div id=\"default-layout\">\n * ```\n * ```typescript\n * <script>\n * let dashBoardObject : DashboardLayout = new DashboardLayout();\n * dashBoardObject.appendTo('#default-layout');\n * </script>\n * ```\n */\nvar DashboardLayout = /** @class */ (function (_super) {\n __extends(DashboardLayout, _super);\n function DashboardLayout(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.rows = 1;\n _this.panelID = 0;\n _this.movePanelCalled = false;\n _this.resizeCalled = false;\n _this.mOffX = 0;\n _this.mOffY = 0;\n _this.maxTop = 9999;\n _this.maxRows = 100;\n _this.mouseX = 0;\n _this.mouseY = 0;\n _this.minTop = 0;\n _this.minLeft = 0;\n _this.isInlineRendering = false;\n _this.removeAllCalled = false;\n // to check whether removePanel is executed in mobile device\n _this.isPanelRemoved = false;\n // to maintain sizeY in mobile device\n _this.panelsSizeY = 0;\n _this.resizeHeight = false;\n _this.eventVar = false;\n setValue('mergePersistData', _this.mergePersistPanelData, _this);\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n */\n DashboardLayout.prototype.preRender = function () {\n this.panelCollection = [];\n this.sortedArray = [];\n this.gridPanelCollection = [];\n this.overlapElement = [];\n this.overlapElementClone = [];\n this.overlapSubElementClone = [];\n this.collisionChecker = {};\n this.dragCollection = [];\n this.elementRef = { top: '', left: '', height: '', width: '' };\n this.dimensions = [];\n this.allItems = [];\n this.oldRowCol = {};\n this.availableClasses = [];\n this.setOldRowCol();\n this.calculateCellSize();\n this.contentTemplateChild = [].slice.call(this.element.children);\n };\n DashboardLayout.prototype.setOldRowCol = function () {\n for (var i = 0; i < this.panels.length; i++) {\n if (!this.panels[i].id) {\n this.panelPropertyChange(this.panels[i], { id: 'layout_' + this.panelID.toString() });\n this.panelID = this.panelID + 1;\n }\n this.oldRowCol[this.panels[i].id] = { row: this.panels[i].row, col: this.panels[i].col };\n }\n };\n DashboardLayout.prototype.createPanelElement = function (cssClass, idValue) {\n var ele = this.createElement('div');\n if (cssClass && cssClass.length > 0) {\n addClass([ele], cssClass);\n }\n if (idValue) {\n ele.setAttribute('id', idValue);\n }\n return ele;\n };\n /**\n * To Initialize the control rendering.\n *\n * @returns void\n * @private\n */\n DashboardLayout.prototype.render = function () {\n this.element.setAttribute('role', 'list');\n this.initialize();\n this.isRenderComplete = true;\n if (this.showGridLines && !this.checkMediaQuery()) {\n this.initGridLines();\n }\n this.updateDragArea();\n this.renderComplete();\n this.renderReactTemplates();\n };\n DashboardLayout.prototype.initGridLines = function () {\n this.table = document.createElement('table');\n var tbody = document.createElement('tbody');\n this.table.classList.add('e-dashboard-gridline-table');\n this.table.setAttribute('role', 'presentation');\n for (var i = 0; i < this.maxRow(); i++) {\n var tr = document.createElement('tr');\n for (var j = 0; j < this.columns; j++) {\n var td = document.createElement('td');\n td.classList.add('e-dashboard-gridline');\n this.setAttributes({ value: { row: i.toString(), col: j.toString(), sizeX: '1', sizeY: '1' } }, td);\n this.setPanelPosition(td, i, j);\n this.setHeightAndWidth(td, { row: i, col: j, sizeX: 1, sizeY: 1 });\n tr.appendChild(td);\n }\n tbody.appendChild(tr);\n }\n this.table.appendChild(tbody);\n this.element.appendChild(this.table);\n this.renderReactTemplates();\n };\n DashboardLayout.prototype.initialize = function () {\n this.updateRowHeight();\n if (this.element.childElementCount > 0 && this.element.querySelectorAll('.e-panel').length > 0) {\n var panelElements = [];\n this.setProperties({ panels: [] }, true);\n this.isInlineRendering = true;\n for (var i = 0; i < this.element.querySelectorAll('.e-panel').length; i++) {\n panelElements.push((this.element.querySelectorAll('.e-panel')[i]));\n }\n for (var i = 0; i < panelElements.length; i++) {\n var panelElement = panelElements[i];\n if (this.enableRtl) {\n addClass([panelElement], 'e-rtl');\n }\n this.getInlinePanels(panelElement);\n this.maxCol();\n this.maxRow();\n }\n for (var i = 0; i < this.panels.length; i++) {\n var panelElement = this.element.querySelector('#' + this.panels[i].id);\n this.setMinMaxValues(this.panels[i]);\n if (this.maxColumnValue < this.panels[i].col ||\n this.maxColumnValue < (this.panels[i].col + this.panels[i].sizeX)) {\n var colValue = this.maxColumnValue - this.panels[i].sizeX;\n this.panelPropertyChange(this.panels[i], { col: colValue < 0 ? 0 : colValue });\n }\n this.setXYAttributes(panelElement, this.panels[i]);\n var panel_1 = this.renderPanels(panelElement, this.panels[i], this.panels[i].id, false);\n this.panelCollection.push(panel_1);\n this.setHeightAndWidth(panelElement, this.panels[i]);\n this.tempObject = this;\n if (this.mediaQuery && !window.matchMedia('(' + this.mediaQuery + ')').matches) {\n this.setPanelPosition(panelElement, this.panels[i].row, this.panels[i].col);\n this.mainElement = panelElement;\n this.updatePanelLayout(panelElement, this.panels[i]);\n this.mainElement = null;\n }\n this.setClasses([panelElement]);\n }\n this.updateOldRowColumn();\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n }\n else {\n this.renderDashBoardCells(this.panels);\n }\n if (this.allowDragging && (this.mediaQuery ? !window.matchMedia('(' + this.mediaQuery + ')').matches : true)) {\n this.enableDraggingContent(this.panelCollection);\n }\n this.sortedPanel();\n this.bindEvents();\n this.updatePanels();\n this.updateCloneArrayObject();\n this.checkColumnValue = this.maxColumnValue;\n if (!(this.checkMediaQuery())) {\n this.panelResponsiveUpdate();\n }\n this.setEnableRtl();\n };\n DashboardLayout.prototype.checkMediaQuery = function () {\n return (this.mediaQuery && window.matchMedia('(' + this.mediaQuery + ')').matches);\n };\n DashboardLayout.prototype.calculateCellSize = function () {\n this.cellSize = [];\n if ((this.checkMediaQuery())) {\n this.cellSize[1] = this.element.parentElement\n && ((this.element.parentElement.offsetWidth)) / this.cellAspectRatio;\n }\n else {\n this.cellSize[0] = this.element.parentElement &&\n ((this.element.parentElement.offsetWidth));\n if (!isNullOrUndefined(this.cellSpacing)) {\n this.cellSize[0] = this.element.parentElement\n && ((this.element.parentElement.offsetWidth - ((this.maxCol() - 1) * this.cellSpacing[0]))\n / (this.maxCol()));\n }\n this.cellSize[1] = this.cellSize[0] / this.cellAspectRatio;\n }\n };\n DashboardLayout.prototype.maxRow = function (recheck) {\n var maxRow = 1;\n if (this.rows > 1 && isNullOrUndefined(recheck)) {\n maxRow = this.rows;\n return maxRow;\n }\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i].sizeY + this.panels[i].row > maxRow) {\n maxRow = this.panels[i].sizeY + this.panels[i].row;\n }\n }\n if (this.panels.length === 0) {\n maxRow = this.columns;\n }\n return maxRow;\n };\n DashboardLayout.prototype.maxCol = function () {\n var maxCol = 1;\n maxCol = this.columns;\n this.maxColumnValue = maxCol;\n return maxCol;\n };\n DashboardLayout.prototype.updateOldRowColumn = function () {\n for (var i = 0; i < this.panels.length; i++) {\n var id = this.panels[i].id;\n if (this.element.querySelector('[id=\\'' + id + '\\']')) {\n var row = parseInt(this.element.querySelector('[id=\\'' + id + '\\']').getAttribute('data-row'), 10);\n var col = parseInt(this.element.querySelector('[id=\\'' + id + '\\']').getAttribute('data-col'), 10);\n this.oldRowCol[this.panels[i].id] = { row: row, col: col };\n }\n else {\n continue;\n }\n }\n };\n DashboardLayout.prototype.createSubElement = function (cssClass, idValue, className) {\n var element = this.createElement('div');\n if (className) {\n addClass([element], [className]);\n }\n if (cssClass && cssClass.length > 0) {\n addClass([element], cssClass);\n }\n if (idValue) {\n element.setAttribute('id', idValue);\n }\n return element;\n };\n DashboardLayout.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return compile(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (error) {\n var sanitizedValue = SanitizeHtmlHelper.sanitize(template);\n return compile((this.enableHtmlSanitizer && typeof (template) === 'string') ? sanitizedValue : template);\n }\n }\n return undefined;\n };\n DashboardLayout.prototype.renderTemplate = function (content, appendElement, type, isStringTemplate, prop) {\n var templateFn = this.templateParser(content);\n var templateElements = [];\n if ((content[0] === '.' || content[0] === '#') &&\n document.querySelector(content).tagName !== 'SCRIPT') {\n var eleVal = document.querySelector(content);\n if (!isNullOrUndefined(eleVal)) {\n if (eleVal.style.display === 'none') {\n eleVal.style.removeProperty('display');\n }\n if (eleVal.getAttribute('style') === '') {\n eleVal.removeAttribute('style');\n }\n appendElement.appendChild(eleVal);\n return;\n }\n else {\n content = content.trim();\n }\n }\n else {\n var compilerFn = templateFn({}, this, prop, type, isStringTemplate, null, appendElement);\n if (compilerFn) {\n for (var _i = 0, compilerFn_1 = compilerFn; _i < compilerFn_1.length; _i++) {\n var item = compilerFn_1[_i];\n templateElements.push(item);\n }\n append([].slice.call(templateElements), appendElement);\n }\n }\n };\n DashboardLayout.prototype.renderPanels = function (cellElement, panelModel, panelId, isStringTemplate) {\n addClass([cellElement], [panel, panelTransition]);\n cellElement.setAttribute('role', 'listitem');\n if (this.allowDragging) {\n cellElement.setAttribute('aria-grabbed', 'false');\n }\n var cssClass = panelModel.cssClass ? panelModel.cssClass.split(' ') : null;\n this.panelContent = cellElement.querySelector('.e-panel-container') ?\n cellElement.querySelector('.e-panel-container') :\n this.createSubElement(cssClass, cellElement.id + '_content', panelContainer);\n cellElement.appendChild(this.panelContent);\n if (!panelModel.enabled) {\n this.disablePanel(cellElement);\n }\n if (panelModel.header) {\n var headerTemplateElement = cellElement.querySelector('.e-panel-header') ?\n cellElement.querySelector('.e-panel-header') : this.createSubElement([], cellElement.id + 'template', '');\n addClass([headerTemplateElement], [header]);\n if (!cellElement.querySelector('.e-panel-header')) {\n var id = this.element.id + 'HeaderTemplate' + panelId;\n this.renderTemplate(panelModel.header, headerTemplateElement, id, isStringTemplate, 'header');\n this.panelContent.appendChild(headerTemplateElement);\n this.renderReactTemplates();\n }\n }\n if (panelModel.content) {\n var cssClass_1 = panelModel.cssClass ? panelModel.cssClass.split(' ') : null;\n this.panelBody = cellElement.querySelector('.e-panel-content') ? cellElement.querySelector('.e-panel-content') :\n this.createSubElement(cssClass_1, cellElement.id + '_body', panelContent);\n var headerHeight = this.panelContent.querySelector('.e-panel-header') ?\n window.getComputedStyle(this.panelContent.querySelector('.e-panel-header')).height : '0px';\n var contentHeightValue = 'calc( 100% - ' + headerHeight + ')';\n setStyle(this.panelBody, { height: contentHeightValue });\n if (!cellElement.querySelector('.e-panel-content')) {\n var id = this.element.id + 'ContentTemplate' + panelId;\n this.renderTemplate(panelModel.content, this.panelBody, id, isStringTemplate, 'content');\n this.panelContent.appendChild(this.panelBody);\n this.renderReactTemplates();\n }\n }\n return cellElement;\n };\n DashboardLayout.prototype.disablePanel = function (panelElement) {\n addClass([panelElement], [disable]);\n };\n DashboardLayout.prototype.getInlinePanels = function (panelElement) {\n var model = {\n sizeX: panelElement.hasAttribute('data-sizex') ? parseInt(panelElement.getAttribute('data-sizex'), 10) : 1,\n sizeY: panelElement.hasAttribute('data-sizey') ? parseInt(panelElement.getAttribute('data-sizey'), 10) : 1,\n minSizeX: panelElement.hasAttribute('data-minsizex') ? parseInt(panelElement.getAttribute('data-minsizex'), 10) : 1,\n minSizeY: panelElement.hasAttribute('data-minsizey') ? parseInt(panelElement.getAttribute('data-minsizey'), 10) : 1,\n maxSizeX: panelElement.hasAttribute('data-maxsizex') ? parseInt(panelElement.getAttribute('data-maxsizex'), 10) : null,\n maxSizeY: panelElement.hasAttribute('data-maxsizey') ? parseInt(panelElement.getAttribute('data-maxsizey'), 10) : null,\n row: panelElement.hasAttribute('data-row') ? parseInt(panelElement.getAttribute('data-row'), 10) : 0,\n col: panelElement.hasAttribute('data-col') ? parseInt(panelElement.getAttribute('data-col'), 10) : 0,\n id: panelElement.getAttribute('id'),\n zIndex: panelElement.hasAttribute('data-zindex') ? parseInt(panelElement.getAttribute('data-zIndex'), 10) : 1000,\n header: panelElement.querySelector('.e-panel-header') && '.e-panel-header',\n content: panelElement.querySelector('.e-panel-content') && '.e-panel-content'\n };\n if (!model.id) {\n model.id = 'layout_' + this.panelID.toString();\n panelElement.setAttribute('id', model.id);\n this.panelID = this.panelID + 1;\n }\n if (isUndefined(model.enabled)) {\n model.enabled = true;\n }\n panelElement.style.zIndex = '' + model.zIndex;\n var panelProp = new Panel(this, 'panels', model, true);\n this.panels.push(panelProp);\n this.oldRowCol[model.id] = { row: model.row, col: model.col };\n };\n DashboardLayout.prototype.resizeEvents = function () {\n if (this.allowResizing) {\n var panelElements = this.element.querySelectorAll('.e-panel .e-panel-container .e-resize');\n for (var i = 0; i < panelElements.length; i++) {\n var eventName = (Browser.info.name === 'msie') ? 'mousedown pointerdown' : 'mousedown';\n EventHandler.add(panelElements[i], eventName, this.downResizeHandler, this);\n if (Browser.info.name !== 'msie') {\n EventHandler.add(panelElements[i], 'touchstart', this.touchDownResizeHandler, this);\n }\n }\n }\n };\n DashboardLayout.prototype.bindEvents = function () {\n this.refreshListener = this.refresh.bind(this);\n EventHandler.add(window, 'resize', this.refreshListener);\n this.resizeEvents();\n };\n DashboardLayout.prototype.downResizeHandler = function (e) {\n var el = closest((e.currentTarget), '.e-panel');\n for (var i = 0; this.panels.length > i; i++) {\n if (this.panels[i].enabled && this.panels[i].id === el.id) {\n this.downHandler(e);\n this.lastMouseX = e.pageX;\n this.lastMouseY = e.pageY;\n var moveEventName = (Browser.info.name === 'msie') ? 'mousemove pointermove' : 'mousemove';\n var upEventName = (Browser.info.name === 'msie') ? 'mouseup pointerup' : 'mouseup';\n if (!this.isMouseMoveBound) {\n EventHandler.add(document, moveEventName, this.moveResizeHandler, this);\n this.isMouseMoveBound = true;\n }\n if (!this.isMouseUpBound) {\n EventHandler.add(document, upEventName, this.upResizeHandler, this);\n this.isMouseUpBound = true;\n }\n }\n }\n };\n DashboardLayout.prototype.downHandler = function (e) {\n this.resizeCalled = false;\n this.panelsInitialModel = this.cloneModels(this.panels);\n var el = closest((e.currentTarget), '.e-panel');\n var args = { event: e, element: el, isInteracted: true };\n this.trigger('resizeStart', args);\n this.downTarget = e.currentTarget;\n this.shadowEle = document.createElement('div');\n this.shadowEle.classList.add('e-holder');\n addClass([this.element], [preventSelect]);\n this.element.appendChild(this.shadowEle);\n this.renderReactTemplates();\n this.elementX = parseFloat(el.style.left);\n this.elementY = parseFloat(el.style.top);\n this.elementWidth = el.offsetWidth;\n this.elementHeight = el.offsetHeight;\n this.originalWidth = this.getCellInstance(el.id).sizeX;\n this.originalHeight = this.getCellInstance(el.id).sizeY;\n this.previousRow = this.getCellInstance(el.id).row;\n };\n DashboardLayout.prototype.touchDownResizeHandler = function (e) {\n this.downHandler(e);\n this.lastMouseX = e.changedTouches[0].pageX;\n this.lastMouseY = e.changedTouches[0].pageY;\n if (!this.isMouseMoveBound) {\n EventHandler.add(document, 'touchmove', this.touchMoveResizeHandler, this);\n this.isMouseMoveBound = true;\n }\n if (!this.isMouseUpBound) {\n EventHandler.add(document, 'touchend', this.upResizeHandler, this);\n this.isMouseUpBound = true;\n }\n };\n DashboardLayout.prototype.getCellSize = function () {\n return [this.cellSize[0], this.cellSize[1]];\n };\n DashboardLayout.prototype.updateMaxTopLeft = function (e) {\n this.moveTarget = this.downTarget;\n var el = closest((this.moveTarget), '.e-panel');\n var args = { event: e, element: el, isInteracted: true };\n this.trigger('resize', args);\n };\n DashboardLayout.prototype.updateResizeElement = function (el) {\n this.maxLeft = this.element.offsetWidth - 1;\n this.maxTop = this.cellSize[1] * this.maxRows - 1;\n removeClass([el], 'e-panel-transition');\n addClass([el], [dragging]);\n var handleArray = [east, west, north, south, southEast, northEast, northWest, southWest];\n for (var i = 0; i < this.moveTarget.classList.length; i++) {\n if (handleArray.indexOf(this.moveTarget.classList[i]) !== -1) {\n this.handleClass = (this.moveTarget.classList[i]);\n }\n }\n };\n DashboardLayout.prototype.moveResizeHandler = function (e) {\n this.updateMaxTopLeft(e);\n var el = closest((this.moveTarget), '.e-panel');\n if (this.lastMouseX === e.pageX || this.lastMouseY === e.pageY) {\n return;\n }\n this.updateResizeElement(el);\n var panelModel = this.getCellInstance(el.getAttribute('id'));\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n var diffY = this.mouseY - this.lastMouseY + this.mOffY;\n var diffX = this.mouseX - this.lastMouseX + this.mOffX;\n this.mOffX = this.mOffY = 0;\n this.lastMouseY = this.mouseY;\n this.lastMouseX = this.mouseX;\n this.resizingPanel(el, panelModel, diffX, diffY);\n };\n DashboardLayout.prototype.touchMoveResizeHandler = function (e) {\n this.updateMaxTopLeft(e);\n var el = closest((this.moveTarget), '.e-panel');\n if (this.lastMouseX === e.changedTouches[0].pageX || this.lastMouseY === e.changedTouches[0].pageY) {\n return;\n }\n this.updateResizeElement(el);\n var panelModel = this.getCellInstance(el.getAttribute('id'));\n this.mouseX = e.changedTouches[0].pageX;\n this.mouseY = e.changedTouches[0].pageY;\n var diffX = this.mouseX - this.lastMouseX + this.mOffX;\n var diffY = this.mouseY - this.lastMouseY + this.mOffY;\n this.mOffX = this.mOffY = 0;\n this.lastMouseX = this.mouseX;\n this.lastMouseY = this.mouseY;\n this.resizingPanel(el, panelModel, diffX, diffY);\n };\n /* istanbul ignore next */\n DashboardLayout.prototype.resizingPanel = function (el, panelModel, currentX, currentY) {\n var oldSizeX = this.getCellInstance(el.id).sizeX;\n var oldSizeY = this.getCellInstance(el.id).sizeY;\n var dY = currentY;\n var dX = currentX;\n if (this.handleClass.indexOf('north') >= 0) {\n if (this.elementHeight - dY < this.getMinHeight(panelModel)) {\n currentY = this.elementHeight - this.getMinHeight(panelModel);\n this.mOffY = dY - currentY;\n }\n else if (panelModel.maxSizeY && this.elementHeight - dY > this.getMaxHeight(panelModel)) {\n currentY = this.elementHeight - this.getMaxHeight(panelModel);\n this.mOffY = dY - currentY;\n }\n else if (this.elementY + dY < this.minTop) {\n currentY = this.minTop - this.elementY;\n this.mOffY = dY - currentY;\n }\n this.elementY += currentY;\n this.elementHeight -= currentY;\n }\n if (this.handleClass.indexOf('south') >= 0) {\n if (this.elementHeight + dY < this.getMinHeight(panelModel)) {\n currentY = this.getMinHeight(panelModel) - this.elementHeight;\n this.mOffY = dY - currentY;\n }\n else if (panelModel.maxSizeY && this.elementHeight + dY > this.getMaxHeight(panelModel)) {\n currentY = this.getMaxHeight(panelModel) - this.elementHeight;\n this.mOffY = dY - currentY;\n }\n this.elementHeight += currentY;\n }\n if (this.handleClass.indexOf('west') >= 0) {\n if (this.elementWidth - dX < this.getMinWidth(panelModel)) {\n currentX = this.elementWidth - this.getMinWidth(panelModel);\n this.mOffX = dX - currentX;\n }\n else if (panelModel.maxSizeX && this.elementWidth - dX > this.getMaxWidth(panelModel)) {\n currentX = this.elementWidth - this.getMaxWidth(panelModel);\n this.mOffX = dX - currentX;\n }\n else if (this.elementX + dX < this.minLeft) {\n currentX = this.minLeft - this.elementX;\n this.mOffX = dX - currentX;\n }\n this.elementX += currentX;\n this.elementWidth -= currentX;\n }\n if (this.handleClass.indexOf('east') >= 0) {\n if (this.elementWidth + dX < this.getMinWidth(panelModel)) {\n currentX = this.getMinWidth(panelModel) - this.elementWidth;\n this.mOffX = dX - currentX;\n }\n else if (panelModel.maxSizeX && this.elementWidth + dX > this.getMaxWidth(panelModel)) {\n currentX = this.getMaxWidth(panelModel) - this.elementWidth;\n this.mOffX = dX - currentX;\n }\n var initialWidth = this.elementWidth;\n this.elementWidth += currentX;\n var newSizeX = this.pixelsToColumns(this.elementWidth - (panelModel.sizeX) * this.cellSpacing[1], true);\n if (this.columns < panelModel.col + newSizeX) {\n this.elementWidth = initialWidth;\n }\n }\n el.style.top = this.elementY + 'px';\n el.style.left = this.elementX + 'px';\n el.style.width = this.elementWidth + 'px';\n el.style.height = this.elementHeight + 'px';\n var item = this.getResizeRowColumn(panelModel);\n if (item.col + item.sizeX > this.columns) {\n this.panelPropertyChange(item, { sizeX: item.sizeX - 1 });\n }\n this.shadowEle.style.top = ((item.row * this.getCellSize()[1] + (item.row * this.cellSpacing[1]))) + 'px';\n if (this.handleClass.indexOf('west') >= 0) {\n this.shadowEle.style.left = ((item.col * this.getCellSize()[0]) + ((item.col - 1) * this.cellSpacing[0])) + 'px';\n }\n else {\n this.shadowEle.style.left = ((item.col * this.getCellSize()[0]) + ((item.col) * this.cellSpacing[0])) + 'px';\n }\n this.shadowEle.style.height = ((item.sizeY * (this.getCellSize()[1] + (this.cellSpacing[1])))) + 'px';\n this.shadowEle.style.width = ((item.sizeX * (this.getCellSize()[0] + (this.cellSpacing[0])))) + 'px';\n if (oldSizeX !== item.sizeX || oldSizeY !== item.sizeY) {\n oldSizeX = item.sizeX;\n oldSizeY = item.sizeY;\n var model = this.getCellInstance(el.id);\n var value = {\n attributes: {\n row: model.row.toString(),\n col: model.col.toString(),\n sizeX: model.sizeX.toString(),\n sizeY: model.sizeY.toString()\n }\n };\n this.setAttributes(value, el);\n this.mainElement = el;\n this.checkCollision = [];\n this.updatePanelLayout(el, this.getCellInstance(el.id));\n this.updateOldRowColumn();\n this.sortedPanel();\n }\n };\n DashboardLayout.prototype.upResizeHandler = function (e) {\n if (isNullOrUndefined(this.downTarget)) {\n return;\n }\n this.upTarget = this.downTarget;\n var el = closest((this.upTarget), '.e-panel');\n var args = { event: e, element: el, isInteracted: true };\n if (el) {\n addClass([el], 'e-panel-transition');\n var moveEventName = (Browser.info.name === 'msie') ? 'mousemove pointermove' : 'mousemove';\n var upEventName = (Browser.info.name === 'msie') ? 'mouseup pointerup' : 'mouseup';\n EventHandler.remove(document, moveEventName, this.moveResizeHandler);\n EventHandler.remove(document, upEventName, this.upResizeHandler);\n if (Browser.info.name !== 'msie') {\n EventHandler.remove(document, 'touchmove', this.touchMoveResizeHandler);\n EventHandler.remove(document, 'touchend', this.upResizeHandler);\n }\n this.isMouseUpBound = false;\n this.isMouseMoveBound = false;\n if (this.shadowEle) {\n detach(this.shadowEle);\n }\n this.shadowEle = null;\n var panelModel = this.getCellInstance(el.getAttribute('id'));\n this.setPanelPosition(el, panelModel.row, panelModel.col);\n this.setHeightAndWidth(el, panelModel);\n }\n removeClass([el], [dragging]);\n this.trigger('resizeStop', args);\n this.resizeCalled = false;\n this.lastMouseX = this.lastMouseY = undefined;\n this.mOffX = this.mOffY = 0;\n this.mainElement = null;\n if (this.allowFloating) {\n this.moveItemsUpwards();\n }\n this.updatePanels();\n this.updateCloneArrayObject();\n this.checkForChanges(true);\n };\n DashboardLayout.prototype.getResizeRowColumn = function (item) {\n var isChanged = false;\n var col = item.col;\n if (['e-west', 'e-south-west'].indexOf(this.handleClass) !== -1) {\n col = this.pixelsToColumns(this.elementX, false);\n }\n var row = item.row;\n if (['e-north'].indexOf(this.handleClass) !== -1) {\n row = this.pixelsToRows(this.elementY, false);\n if (this.previousRow !== row) {\n this.previousRow = row;\n isChanged = true;\n }\n }\n var sizeX = item.sizeX;\n if (['e-north', 'e-south'].indexOf(this.handleClass) === -1) {\n sizeX = this.pixelsToColumns(this.elementWidth - (sizeX) * this.cellSpacing[1], true);\n }\n var sizeY = item.sizeY;\n if (['e-east', 'e-west'].indexOf(this.handleClass) === -1) {\n if (this.handleClass === 'e-north' ? isChanged : true) {\n sizeY = this.pixelsToRows(this.elementHeight - (sizeY) * this.cellSpacing[0], true);\n }\n }\n if (item.col + sizeX > this.columns) {\n item.sizeX = sizeX - 1;\n }\n var canOccupy = row > -1 && col > -1 && sizeX + col <= this.maxCol() && sizeY + row <= this.maxRow();\n if (canOccupy && (this.collisions(row, col, sizeX, sizeY, this.getPanelBase(item.id)).length === 0)\n || this.allowPushing !== false) {\n this.panelPropertyChange(item, { row: row, col: col, sizeX: sizeX, sizeY: sizeY });\n }\n return item;\n };\n DashboardLayout.prototype.pixelsToColumns = function (pixels, isCeil) {\n if (isCeil) {\n return Math.ceil(pixels / this.cellSize[0]);\n }\n else {\n return Math.floor(pixels / (this.cellSize[0] + this.cellSpacing[0]));\n }\n };\n DashboardLayout.prototype.pixelsToRows = function (pixels, isCeil) {\n if (isCeil) {\n return Math.round(pixels / this.cellSize[1]);\n }\n else {\n return Math.round(pixels / (this.cellSize[1] + this.cellSpacing[0]));\n }\n };\n DashboardLayout.prototype.getMinWidth = function (item) {\n return (((item.minSizeX) * this.getCellSize()[0]) + (item.minSizeX - 1) * this.cellSpacing[0]);\n };\n DashboardLayout.prototype.getMaxWidth = function (item) {\n return (item.maxSizeX) * this.getCellSize()[0];\n };\n DashboardLayout.prototype.getMinHeight = function (item) {\n return (((item.minSizeY) * this.getCellSize()[1]) + (item.minSizeY - 1) * this.cellSpacing[1]);\n };\n DashboardLayout.prototype.getMaxHeight = function (item) {\n return (item.maxSizeY) * this.getCellSize()[1];\n };\n DashboardLayout.prototype.sortedPanel = function () {\n this.sortedArray = [];\n for (var i = 0, l = this.panelCollection.length; i < l; ++i) {\n this.sortItem(this.panelCollection[i]);\n }\n };\n DashboardLayout.prototype.moveItemsUpwards = function () {\n if (this.allowFloating === false) {\n return;\n }\n for (var rowIndex = 0, l = this.sortedArray.length; rowIndex < l; ++rowIndex) {\n var columns = this.sortedArray[rowIndex];\n if (!columns) {\n continue;\n }\n for (var colIndex = 0, len = columns.length; colIndex < len; ++colIndex) {\n var item = columns[colIndex];\n if (item) {\n this.moveItemUpwards(item);\n }\n }\n }\n this.updateGridLines();\n };\n DashboardLayout.prototype.moveItemUpwards = function (item) {\n if (this.allowFloating === false || item === this.mainElement) {\n return;\n }\n var colIndex = this.getCellInstance(item.id).col;\n var sizeY = parseInt(item.getAttribute('data-sizeY'), 10);\n var sizeX = parseInt(item.getAttribute('data-sizeX'), 10);\n var availableRow = null;\n var availableColumn = null;\n var rowIndex = parseInt(item.getAttribute('data-row'), 10) - 1;\n while (rowIndex > -1) {\n var items = this.collisions(rowIndex, colIndex, sizeX, sizeY, item);\n if (items.length !== 0) {\n break;\n }\n availableRow = rowIndex;\n availableColumn = colIndex;\n --rowIndex;\n }\n if (availableRow !== null) {\n this.sortItem(item, availableRow, availableColumn);\n }\n };\n DashboardLayout.prototype.sortItem = function (item, rowValue, columnValue) {\n this.overlapElement = [];\n var column = parseInt(item.getAttribute('data-col'), 10);\n var row = parseInt(item.getAttribute('data-row'), 10);\n if (!this.sortedArray[row]) {\n this.sortedArray[row] = [];\n }\n this.sortedArray[row][column] = item;\n if (item !== undefined && rowValue !== undefined && columnValue !== undefined) {\n if (this.oldRowCol[item.id] !== undefined && this.oldRowCol[item.id].row !== null &&\n typeof this.oldRowCol[item.id].col !== 'undefined') {\n {\n var oldRow = this.sortedArray[this.oldRowCol[item.id].row];\n if (this.oldRowCol[item.id] && oldRow[this.oldRowCol[item.id].col] === item) {\n delete oldRow[this.oldRowCol[item.id].col];\n this.updateOldRowColumn();\n this.sortedPanel();\n }\n }\n }\n this.oldRowCol[item.id].row = rowValue;\n this.oldRowCol[item.id].row = columnValue;\n if (!this.sortedArray[row]) {\n this.sortedArray[row] = [];\n }\n this.sortedArray[row][column] = item;\n if (this.allItems.indexOf(item) === -1) {\n this.allItems.push(item);\n }\n this.panelPropertyChange(this.getCellInstance(item.id), { row: rowValue, col: columnValue });\n var panelModel = this.getCellInstance(item.id);\n this.setAttributes({ value: { col: panelModel.col.toString(), row: panelModel.row.toString() } }, item);\n this.updateLayout(item, this.getCellInstance(item.id));\n }\n };\n DashboardLayout.prototype.updateLayout = function (element, panelModel) {\n this.setPanelPosition(element, panelModel.row, panelModel.col);\n this.setHeightAndWidth(element, panelModel);\n this.updateRowHeight();\n this.sortedPanel();\n };\n DashboardLayout.prototype.refresh = function () {\n this.panelsSizeY = 0;\n this.updateDragArea();\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n else {\n if (this.element.classList.contains(responsive)) {\n removeClass([this.element], [responsive]);\n var internalPanels = this.element.querySelectorAll(((this.element.id) ? '#' + this.element.id + ' > ' : '') + '.e-panel');\n for (var i = 0; i < internalPanels.length; i++) {\n var ele = internalPanels[i];\n var cellInstance = this.getCellInstance(ele.id);\n var row = parseInt(ele.getAttribute('data-row'), 10);\n var col = parseInt(ele.getAttribute('data-col'), 10);\n this.panelPropertyChange(cellInstance, { row: row, col: col });\n this.setHeightAndWidth(ele, this.getCellInstance(ele.id));\n this.setPanelPosition(ele, row, col);\n this.updateRowHeight();\n }\n }\n this.panelResponsiveUpdate();\n this.updateGridLines();\n }\n if (!isNullOrUndefined(this.panelCollection)) {\n this.removeResizeClasses(this.panelCollection);\n this.setClasses(this.panelCollection);\n }\n this.resizeEvents();\n if (!isNullOrUndefined(this.panelCollection)) {\n this.checkDragging(this.dragCollection);\n }\n };\n DashboardLayout.prototype.updateGridLines = function () {\n if (this.element.querySelector('.e-dashboard-gridline-table')) {\n if (this.table) {\n detach(this.table);\n }\n this.initGridLines();\n }\n };\n DashboardLayout.prototype.checkDragging = function (dragCollection) {\n if (this.checkMediaQuery() || !this.allowDragging) {\n for (var i = 0; i < dragCollection.length; i++) {\n dragCollection[i].destroy();\n }\n }\n else {\n for (var i = 0; i < dragCollection.length; i++) {\n dragCollection[i].destroy();\n }\n this.enableDraggingContent(this.panelCollection);\n }\n };\n DashboardLayout.prototype.sortPanels = function () {\n var model = [];\n var _loop_1 = function (row) {\n var _loop_2 = function (col) {\n this_1.panels.filter(function (panel) {\n if (panel.row === row && panel.col === col) {\n model.push(panel);\n }\n });\n };\n for (var col = 0; col < this_1.columns; col++) {\n _loop_2(col);\n }\n };\n var this_1 = this;\n for (var row = 0; row <= this.rows; row++) {\n _loop_1(row);\n }\n return model;\n };\n DashboardLayout.prototype.checkMediaQuerySizing = function () {\n addClass([this.element], [responsive]);\n var updatedPanel;\n if (this.isPanelRemoved && this.panels) {\n updatedPanel = this.panels;\n }\n else {\n updatedPanel = this.sortPanels();\n }\n this.updatedRows = updatedPanel.length;\n for (var i = 0; i < updatedPanel.length; i++) {\n var panelElement = document.getElementById(updatedPanel[i].id);\n var updatedHeight = void 0;\n if (panelElement) {\n setStyle(panelElement, { 'width': '100%' });\n panelElement.style.height = ' ' + ((this.element.parentElement\n && this.element.parentElement.offsetWidth / this.cellAspectRatio) * updatedPanel[i].sizeY) + 'px';\n if (updatedPanel[i].sizeY > 1) {\n updatedHeight = ((this.element.parentElement\n && this.element.parentElement.offsetWidth / this.cellAspectRatio) * updatedPanel[i].sizeY) +\n parseInt((Math.round(updatedPanel[i].sizeY / 2) * this.cellSpacing[1]).toString(), 10);\n panelElement.style.height = '' + updatedHeight + 'px';\n }\n this.resizeHeight = true;\n this.panelPropertyChange(updatedPanel[i], { row: i, col: 0 });\n this.setPanelPosition(panelElement, updatedPanel[i].row, updatedPanel[i].col);\n this.panelsSizeY = this.panelsSizeY + updatedPanel[i].sizeY;\n if (!isNullOrUndefined(this.panelCollection)) {\n this.setClasses(this.panelCollection);\n this.removeResizeClasses(this.panelCollection);\n }\n if (!isNullOrUndefined(this.dragCollection)) {\n this.checkDragging(this.dragCollection);\n }\n }\n }\n this.updateRowHeight();\n };\n DashboardLayout.prototype.panelResponsiveUpdate = function () {\n this.element.classList.add('e-responsive');\n this.calculateCellSize();\n for (var i = 0; i < this.element.querySelectorAll('.e-panel').length; i++) {\n var ele = this.element.querySelectorAll('.e-panel')[i];\n var panelModel = this.getCellInstance(ele.id);\n this.setHeightAndWidth(ele, panelModel);\n }\n for (var i = 0; i < this.panels.length; i++) {\n this.setPanelPosition(document.getElementById(this.panels[i].id), this.panels[i].row, this.panels[i].col);\n }\n this.updateRowHeight();\n };\n DashboardLayout.prototype.updateRowHeight = function () {\n this.getRowColumn();\n this.setHeightWidth();\n };\n DashboardLayout.prototype.setHeightWidth = function () {\n var heightValue;\n if (isNullOrUndefined(this.cellSpacing) || (this.panels.length === 0 && this.panelCollection &&\n this.panelCollection.length === 0)) {\n return;\n }\n if (this.checkMediaQuery()) {\n var entirePanelsY = 0;\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i].sizeY) {\n entirePanelsY += this.panels[i].sizeY;\n }\n }\n heightValue = ((entirePanelsY) *\n (this.element.parentElement && ((this.element.parentElement.offsetWidth)) / this.cellAspectRatio) +\n (entirePanelsY - 1) * this.cellSpacing[1]) + 'px';\n }\n else {\n heightValue = ((this.maxRow()) *\n (this.cellSize[0] / this.cellAspectRatio) + (this.maxRow() - 1) * this.cellSpacing[1]) + 'px';\n }\n setStyle(this.element, { 'height': heightValue });\n var widthValue = window.getComputedStyle(this.element).width;\n setStyle(this.element, { 'width': widthValue });\n };\n DashboardLayout.prototype.setEmptyLayoutHeight = function () {\n this.element.style.removeProperty('height');\n this.element.style.removeProperty('width');\n };\n DashboardLayout.prototype.setHeightAndWidth = function (panelElement, panelModel) {\n setStyle(panelElement, { 'height': formatUnit(this.setXYDimensions(panelModel)[0]) });\n setStyle(panelElement, { 'width': formatUnit(this.setXYDimensions(panelModel)[1]) });\n };\n DashboardLayout.prototype.renderCell = function (panel, isStringTemplate, index) {\n var cellElement;\n this.dimensions = this.setXYDimensions(panel);\n if (isUndefined(panel.enabled)) {\n panel.enabled = true;\n }\n if (this.contentTemplateChild.length > 0 && !isNullOrUndefined(index)) {\n cellElement = this.contentTemplateChild[index];\n if (panel.cssClass) {\n addClass([cellElement], [panel.cssClass]);\n }\n if (panel.id) {\n cellElement.setAttribute('id', panel.id);\n }\n }\n else {\n cellElement = this.createPanelElement(panel.cssClass ? panel.cssClass.split(' ') : null, panel.id);\n }\n cellElement.style.zIndex = '' + panel.zIndex;\n this.element.appendChild(cellElement);\n this.renderReactTemplates();\n var dashBoardCell = this.renderPanels(cellElement, panel, panel.id, isStringTemplate);\n this.panelCollection.push(dashBoardCell);\n this.setXYAttributes(cellElement, panel);\n this.setHeightAndWidth(cellElement, panel);\n return cellElement;\n };\n DashboardLayout.prototype.setPanelPosition = function (cellElement, row, col) {\n if (!cellElement) {\n return;\n }\n if (this.checkMediaQuery()) {\n this.calculateCellSize();\n }\n var heightValue = this.getCellSize()[1];\n var widthValue = this.getCellSize()[0];\n var left = col === 0 ? 0 : (((col) * ((widthValue) + this.cellSpacing[0])));\n var top = row === 0 ? 0 : (((row) * ((heightValue) + this.cellSpacing[1])));\n if (this.checkMediaQuery()) {\n top = row === 0 ? 0 : ((this.panelsSizeY) * ((heightValue) + this.cellSpacing[1]));\n }\n setStyle(cellElement, { 'left': left + 'px', 'top': top + 'px' });\n };\n DashboardLayout.prototype.getRowColumn = function () {\n this.rows = null;\n if (this.element.querySelectorAll('.e-panel').length > 0 && !this.updatedRows) {\n var panelElements = this.element.querySelectorAll('.e-panel');\n for (var i = 0; i < panelElements.length; i++) {\n var panelElement = panelElements[i];\n var rowValue = parseInt(panelElement.getAttribute('data-row'), 10);\n var xValue = parseInt(panelElement.getAttribute('data-sizeY'), 10);\n this.rows = Math.max(this.rows, (rowValue + xValue));\n }\n }\n else {\n if (this.updatedRows) {\n this.rows = this.updatedRows;\n this.updatedRows = null;\n }\n for (var i = 0; i < this.panels.length; i++) {\n this.rows = Math.max(this.rows, this.panels[i].row);\n }\n }\n };\n DashboardLayout.prototype.setMinMaxValues = function (panel) {\n if (!panel.sizeX || panel.sizeX < panel.minSizeX) {\n this.panelPropertyChange(panel, { sizeX: panel.minSizeX });\n }\n else if ((panel.maxSizeX && panel.sizeX > panel.maxSizeX)) {\n this.panelPropertyChange(panel, { sizeX: panel.maxSizeX });\n }\n else if (panel.sizeX > this.columns) {\n this.panelPropertyChange(panel, { sizeX: this.columns });\n }\n else {\n this.panelPropertyChange(panel, { sizeX: panel.sizeX });\n }\n if (!panel.sizeY || panel.sizeY < panel.minSizeY) {\n this.panelPropertyChange(panel, { sizeY: panel.minSizeY });\n }\n else if (panel.maxSizeY && panel.sizeY > panel.maxSizeY) {\n this.panelPropertyChange(panel, { sizeY: panel.maxSizeY });\n }\n else {\n this.panelPropertyChange(panel, { sizeY: panel.sizeY });\n }\n };\n DashboardLayout.prototype.checkMinMaxValues = function (panel) {\n if (panel.col + panel.sizeX > this.columns) {\n this.panelPropertyChange(panel, { sizeX: panel.sizeX + (this.columns - (panel.col + panel.sizeX)) });\n }\n };\n DashboardLayout.prototype.panelPropertyChange = function (panel, value) {\n panel.setProperties(value, true);\n };\n DashboardLayout.prototype.renderDashBoardCells = function (cells) {\n if (this.element.querySelectorAll('.e-panel').length > 0 || this.panels.length > 0) {\n for (var j = 0; j < cells.length; j++) {\n this.gridPanelCollection.push(cells[j]);\n this.setMinMaxValues(cells[j]);\n if (this.maxColumnValue < cells[j].col ||\n this.maxColumnValue < (cells[j].col + cells[j].sizeX)) {\n this.panelPropertyChange(cells[j], { col: this.maxColumnValue - cells[j].sizeX });\n }\n var cell = this.renderCell(cells[j], false, j);\n if (this.enableRtl) {\n addClass([cell], 'e-rtl');\n }\n this.element.appendChild(cell);\n this.renderReactTemplates();\n if (this.checkMediaQuery() && j === cells.length - 1) {\n this.checkMediaQuerySizing();\n }\n else {\n this.setPanelPosition(cell, cells[j].row, cells[j].col);\n this.mainElement = cell;\n this.updatePanelLayout(cell, cells[j]);\n this.mainElement = null;\n }\n }\n }\n this.setClasses(this.panelCollection);\n };\n DashboardLayout.prototype.collisions = function (row, col, sizeX, sizeY, ignore) {\n var items = [];\n if (!sizeX || !sizeY) {\n sizeX = sizeY = 1;\n }\n if (ignore && !(ignore instanceof Array)) {\n ignore = [ignore];\n }\n var item;\n for (var h = 0; h < sizeY; ++h) {\n for (var w = 0; w < sizeX; ++w) {\n item = this.getPanel(row + h, col + w, ignore);\n if (item && (!ignore || ignore.indexOf(this.element.querySelector('[id=\\'' + item.id + '\\']')) === -1) &&\n items.indexOf(this.element.querySelector('[id=\\'' + item.id + '\\']')) === -1) {\n items.push(this.element.querySelector('[id=\\'' + item.id + '\\']'));\n }\n }\n }\n return items;\n };\n DashboardLayout.prototype.rightWardsSpaceChecking = function (rowElements, col, ele) {\n var _this = this;\n var columns = [];\n var spacedColumns = [];\n rowElements.forEach(function (element) {\n var columnValue = parseInt(element.getAttribute('data-col'), 10);\n var sizeXValue = parseInt(element.getAttribute('data-sizeX'), 10);\n if (col < _this.columns && columnValue >= col) {\n if (sizeXValue > 1) {\n for (var i = columnValue; i < columnValue + sizeXValue; i++) {\n columns.push(i);\n }\n }\n else {\n columns.push(columnValue);\n }\n }\n });\n if (columns.length > 0) {\n for (var i = col + 1; i <= this.columns - 1; i++) {\n if (columns.indexOf(i) === -1 && i !== col) {\n if (spacedColumns.indexOf(i) === -1) {\n spacedColumns.push(i);\n }\n }\n }\n }\n var occupiedValues = this.getOccupiedColumns(ele);\n occupiedValues.forEach(function (colValue) {\n if (colValue > col && spacedColumns.indexOf(colValue) !== -1) {\n spacedColumns.splice(spacedColumns.indexOf(colValue), 1);\n }\n });\n var eleOccupiedValues = this.getOccupiedColumns(this.checkingElement);\n eleOccupiedValues.forEach(function (col) {\n if (col > parseInt(ele.getAttribute('data-col'), 10) && occupiedValues.indexOf(col) === -1 &&\n spacedColumns.indexOf(col) === -1) {\n spacedColumns.push(col);\n }\n });\n spacedColumns = spacedColumns.sort(function (next, previous) { return next - previous; });\n return spacedColumns;\n };\n DashboardLayout.prototype.getOccupiedColumns = function (element) {\n var occupiedItems = [];\n var sizeX = parseInt(element.getAttribute('data-sizeX'), 10);\n var col = parseInt(element.getAttribute('data-col'), 10);\n for (var i = col; (i < col + sizeX && i <= this.columns); i++) {\n occupiedItems.push(i);\n }\n return occupiedItems;\n };\n DashboardLayout.prototype.leftWardsSpaceChecking = function (rowElements, col, ele) {\n var _this = this;\n var spacedColumns = [];\n var columns = [];\n rowElements.forEach(function (element) {\n var colValue = parseInt(element.getAttribute('data-col'), 10);\n var xValue = parseInt(element.getAttribute('data-sizeX'), 10);\n if (col <= _this.columns && colValue <= col) {\n if (xValue > 1) {\n for (var i = colValue; i < colValue + xValue; i++) {\n columns.push(i);\n }\n }\n else {\n columns.push(colValue);\n }\n }\n });\n if (columns.length > 0) {\n for (var j = 0; j <= col; j++) {\n if (columns.indexOf(j) === -1 && j !== col) {\n if (spacedColumns.indexOf(j) === -1) {\n spacedColumns.push(j);\n }\n }\n }\n }\n var occupiedValues = this.getOccupiedColumns(ele);\n occupiedValues.forEach(function (colValue) {\n if (colValue < col && spacedColumns.indexOf(colValue) !== -1) {\n spacedColumns.splice(spacedColumns.indexOf(colValue), 1);\n }\n });\n var eleOccupiedValues = this.getOccupiedColumns(this.checkingElement);\n eleOccupiedValues.forEach(function (col) {\n if (col < parseInt(ele.getAttribute('data-col'), 10) && occupiedValues.indexOf(col) === -1 &&\n spacedColumns.indexOf(col) === -1) {\n spacedColumns.push(col);\n }\n });\n spacedColumns = spacedColumns.sort(function (next, prev) { return next - prev; });\n spacedColumns = spacedColumns.reverse();\n return spacedColumns;\n };\n DashboardLayout.prototype.adjustmentAvailable = function (row, col, sizeY, sizeX, ele) {\n this.leftAdjustable = undefined;\n this.rightAdjustable = undefined;\n var isAdjustable = false;\n var rightSpacing;\n var rowElement = [];\n this.topAdjustable = undefined;\n var eleSizeX = parseInt(ele.getAttribute('data-sizeX'), 10);\n var eleCol = parseInt(ele.getAttribute('data-col'), 10);\n rowElement = this.getRowElements(this.collisions(row, 0, this.columns, sizeY, []));\n if (rowElement.indexOf(ele) === -1) {\n rowElement.push(ele);\n }\n var leftSpacing = this.leftWardsSpaceChecking(rowElement, col, ele);\n if (leftSpacing.length > 0) {\n this.leftAdjustable = this.isLeftAdjustable(leftSpacing, ele, row, col, sizeX, sizeY);\n if (this.spacedColumnValue !== eleCol - this.getCellInstance(this.checkingElement.id).sizeX) {\n this.leftAdjustable = false;\n }\n if (this.leftAdjustable) {\n this.rightAdjustable = false;\n }\n else {\n this.leftAdjustable = false;\n rightSpacing = this.rightWardsSpaceChecking(rowElement, col, ele);\n this.rightAdjustable = rightSpacing.length > 0 ? this.isRightAdjustable(rightSpacing, ele, row, col, sizeX, sizeY) : false;\n if (this.spacedColumnValue !== eleSizeX + eleCol) {\n this.rightAdjustable = false;\n }\n if (!this.rightAdjustable) {\n this.rightAdjustable = false;\n }\n }\n }\n else {\n rightSpacing = this.rightWardsSpaceChecking(rowElement, col, ele);\n this.rightAdjustable = rightSpacing.length > 0 ? this.isRightAdjustable(rightSpacing, ele, row, col, sizeX, sizeY) : false;\n if (this.spacedColumnValue !== eleSizeX + eleCol) {\n this.rightAdjustable = false;\n }\n if (this.rightAdjustable) {\n this.leftAdjustable = false;\n }\n }\n if (!this.rightAdjustable && !this.leftAdjustable && row > 0) {\n var endRow = this.getCellInstance(ele.id).row;\n var topCheck = false;\n if (this.startRow !== endRow) {\n topCheck = true;\n }\n for (var rowValue = row; rowValue >= 0; rowValue--) {\n var element = (this.getCellInstance(ele.id).sizeY > 1 && topCheck) ? this.checkingElement : ele;\n if ((rowValue !== endRow) && (rowValue === endRow - sizeY) &&\n this.collisions(rowValue, col, sizeX, sizeY, element).length === 0) {\n topCheck = false;\n this.topAdjustable = true;\n this.spacedRowValue = isNullOrUndefined(this.spacedRowValue) ? rowValue : this.spacedRowValue;\n this.spacedColumnValue = col;\n }\n }\n }\n if (this.rightAdjustable || this.leftAdjustable || this.topAdjustable) {\n isAdjustable = true;\n if (isNullOrUndefined(this.spacedRowValue)) {\n this.spacedRowValue = row;\n }\n }\n return isAdjustable;\n };\n DashboardLayout.prototype.isXSpacingAvailable = function (spacing, sizeX) {\n var isSpaceAvailable = false;\n var subSpacingColumns = [];\n for (var i = 0; i < spacing.length; i++) {\n if (spacing[i + 1] - spacing[i] === 1 || spacing[i + 1] - spacing[i] === -1) {\n subSpacingColumns.push(spacing[i]);\n if (sizeX === 2) {\n subSpacingColumns.push(spacing[i + 1]);\n }\n if (i === spacing.length - 2) {\n subSpacingColumns.push(spacing[i + 1]);\n if (subSpacingColumns.length > sizeX) {\n subSpacingColumns.splice(-1);\n }\n }\n if (subSpacingColumns.length === sizeX) {\n isSpaceAvailable = true;\n this.spacedColumnValue = subSpacingColumns.sort(function (next, previous) { return next - previous; })[0];\n if (this.spacedColumnValue < 0) {\n this.spacedColumnValue = 1;\n }\n return isSpaceAvailable;\n }\n }\n else {\n subSpacingColumns = [];\n continue;\n }\n }\n return isSpaceAvailable;\n };\n DashboardLayout.prototype.getRowElements = function (base) {\n var rowElements = [];\n for (var i = 0; i < base.length; i++) {\n rowElements.push(base[i]);\n }\n return rowElements;\n };\n DashboardLayout.prototype.isLeftAdjustable = function (spaces, ele, row, col, sizeX, sizeY) {\n var isLeftAdjudtable;\n if (sizeX === 1 && sizeY === 1 && spaces.length > 0) {\n this.spacedColumnValue = spaces[0];\n isLeftAdjudtable = true;\n }\n else if (sizeX > 1 && sizeY === 1) {\n isLeftAdjudtable = this.isXSpacingAvailable(spaces, sizeX);\n }\n else if (sizeY > 1) {\n if (sizeX === 1) {\n var xAdjust = void 0;\n if (spaces.length >= 1) {\n xAdjust = true;\n }\n if (xAdjust) {\n for (var i = 0; i < spaces.length; i++) {\n var collisionValue = this.collisions(row, spaces[i], sizeX, sizeY, this.checkingElement);\n if (collisionValue.length === 0) {\n this.spacedColumnValue = spaces[i];\n isLeftAdjudtable = true;\n return isLeftAdjudtable;\n }\n else {\n isLeftAdjudtable = false;\n }\n }\n }\n }\n else {\n isLeftAdjudtable = this.replacable(spaces, sizeX, row, sizeY, ele);\n }\n }\n return isLeftAdjudtable;\n };\n DashboardLayout.prototype.isRightAdjustable = function (spacing, ele, row, col, sizeX, sizeY) {\n var isRightAdjudtable;\n if (sizeX === 1 && sizeY === 1 && spacing.length > 0) {\n this.spacedColumnValue = spacing[0];\n isRightAdjudtable = true;\n }\n else if (sizeX > 1 && sizeY === 1) {\n isRightAdjudtable = this.isXSpacingAvailable(spacing, sizeX);\n }\n else if (sizeY > 1) {\n if (sizeX === 1) {\n var xAdjust = void 0;\n if (spacing.length >= 1) {\n xAdjust = true;\n }\n if (xAdjust) {\n for (var i = 0; i < spacing.length; i++) {\n var collisionValue = this.collisions(row, spacing[i], sizeX, sizeY, this.checkingElement);\n for (var collision = 0; collision < collisionValue.length; collision++) {\n if (parseInt(ele.getAttribute('data-col'), 10) !== spacing[i]) {\n collisionValue.splice(collisionValue.indexOf(collisionValue[collision]), 1);\n }\n }\n if (collisionValue.length === 0) {\n isRightAdjudtable = true;\n this.spacedColumnValue = spacing[i];\n return isRightAdjudtable;\n }\n else {\n isRightAdjudtable = false;\n }\n }\n }\n }\n else {\n isRightAdjudtable = this.replacable(spacing, sizeX, row, sizeY, ele);\n }\n }\n return isRightAdjudtable;\n };\n DashboardLayout.prototype.replacable = function (spacing, sizeX, row, sizeY, ele) {\n var isRightAdjudtable;\n var updatedCollision = [];\n for (var j = 0; j < spacing.length; j++) {\n var xAdjust = this.isXSpacingAvailable(spacing, sizeX);\n if (xAdjust) {\n var exclusions = [];\n exclusions.push(this.checkingElement);\n exclusions.push(ele);\n if (updatedCollision.length === 0) {\n isRightAdjudtable = true;\n return isRightAdjudtable;\n }\n else {\n isRightAdjudtable = false;\n }\n }\n }\n return isRightAdjudtable;\n };\n DashboardLayout.prototype.sortCollisionItems = function (collisionItems) {\n var updatedCollision = [];\n var rowElements;\n var _loop_3 = function (row) {\n rowElements = [];\n collisionItems.forEach(function (element) {\n if (element && element.getAttribute('data-row') === row.toString()) {\n rowElements.push(element);\n }\n });\n var _loop_4 = function (column) {\n rowElements.forEach(function (item) {\n if (item && item.getAttribute('data-col') === column.toString()) {\n updatedCollision.push(item);\n }\n });\n };\n for (var column = this_2.columns - 1; column >= 0; column--) {\n _loop_4(column);\n }\n };\n var this_2 = this;\n for (var row = this.rows - 1; row >= 0; row--) {\n _loop_3(row);\n }\n return updatedCollision;\n };\n DashboardLayout.prototype.updatedModels = function (collisionItems, panelModel, ele) {\n var _this = this;\n var removeableElement = [];\n if (!this.mainElement) {\n this.sortedPanel();\n }\n collisionItems.forEach(function (element) {\n _this.checkingElement = element;\n var model = _this.getCellInstance(element.id);\n var adjust = !_this.adjustmentAvailable(model.row, model.col, model.sizeY, model.sizeX, ele);\n if (model.sizeX > 1 && adjust) {\n for (var rowValue = model.row; rowValue < panelModel.row + panelModel.sizeY; rowValue++) {\n var collisions = _this.collisions(rowValue, model.col, model.sizeX, model.sizeY, element);\n collisions.forEach(function (item) {\n if (collisionItems.indexOf(item) >= 0 && removeableElement.indexOf(item) === -1) {\n removeableElement.push(item);\n }\n });\n }\n }\n });\n removeableElement.forEach(function (item) {\n if (removeableElement.indexOf(item) >= 0) {\n collisionItems.splice(collisionItems.indexOf(item), 1);\n }\n });\n return collisionItems;\n };\n DashboardLayout.prototype.resetLayout = function (model) {\n var collisions = this.collisions(model.row, model.col, model.sizeX, model.sizeY, this.mainElement);\n if (!this.mainElement || this.addPanelCalled || this.resizeCalled || this.movePanelCalled) {\n return collisions;\n }\n if (this.mainElement && this.oldRowCol !== this.cloneObject) {\n for (var i = 0; i < this.panels.length; i++) {\n var element = this.element.querySelector('[id=\\'' + this.panels[i].id + '\\']');\n if (element === this.mainElement) {\n continue;\n }\n var rowValue = this.cloneObject[element.id].row;\n var colValue = this.cloneObject[element.id].col;\n this.setPanelPosition(element, rowValue, colValue);\n this.panelPropertyChange(this.getCellInstance(element.id), { row: rowValue, col: colValue });\n this.setAttributes({ value: { col: colValue.toString(), row: rowValue.toString() } }, element);\n this.updateOldRowColumn();\n }\n }\n this.sortedArray = this.cloneArray;\n collisions = this.collisions(model.row, model.col, model.sizeX, model.sizeY, this.mainElement);\n this.sortedPanel();\n this.updateOldRowColumn();\n if (this.checkCollision && this.checkCollision.length > 0 && collisions.indexOf(this.checkCollision[0]) === -1 &&\n this.cloneObject[this.checkCollision[0].id].row === model.row) {\n collisions.push(this.checkCollision[0]);\n }\n return collisions;\n };\n DashboardLayout.prototype.swapAvailability = function (collisions, element) {\n var available = true;\n var eleModel = this.getCellInstance(element.id);\n for (var count = 0; count < collisions.length; count++) {\n var collideModel = this.getCellInstance(collisions[count].id);\n for (var i = 1; i < eleModel.sizeY; i++) {\n var excludeEle = [];\n excludeEle.push(element);\n excludeEle.push(collisions[count]);\n var collision = this.collisions(eleModel.row + i, collideModel.col, collideModel.sizeX, collideModel.sizeY, excludeEle);\n if (collision.length > 0) {\n available = false;\n return false;\n }\n else {\n continue;\n }\n }\n }\n return available;\n };\n DashboardLayout.prototype.checkForSwapping = function (collisions, element) {\n if (Object.keys(this.cloneObject).length === 0 || !this.mainElement || collisions.length === 0) {\n return false;\n }\n var direction;\n var eleSwapRow = parseInt(collisions[0].getAttribute('data-row'), 10);\n if (this.startRow < eleSwapRow) {\n direction = 1;\n }\n else if (this.startRow > eleSwapRow) {\n direction = 0;\n }\n if (!this.swapAvailability(collisions, element)) {\n return false;\n }\n var isSwappable = false;\n for (var count1 = 0; count1 < collisions.length; count1++) {\n if (collisions.length >= 1 && this.cloneObject[this.mainElement.id] &&\n this.cloneObject[this.mainElement.id].row === this.oldRowCol[this.mainElement.id].row) {\n return false;\n }\n }\n var updatedRow = direction === 0 ?\n this.getCellInstance(this.mainElement.id).row + this.getCellInstance(this.mainElement.id).sizeY\n : this.startRow;\n for (var count = 0; count < collisions.length; count++) {\n var collideInstance = this.getCellInstance(collisions[count].id);\n var elementinstance = this.getCellInstance(element.id);\n var ignore = [];\n if (collideInstance.sizeY === 1 && ignore.indexOf(collisions[count]) === -1) {\n ignore.push(collisions[count]);\n }\n else if (collideInstance.sizeY > 1 && ignore.indexOf(collisions[count]) === -1) {\n if (direction === 1 && elementinstance.row === (this.cloneObject[collideInstance.id].row + collideInstance.sizeY - 1)) {\n ignore.push(collisions[count]);\n }\n else if (direction === 0 && elementinstance.row === (this.cloneObject[collideInstance.id].row)) {\n ignore.push(collisions[count]);\n }\n else {\n return false;\n }\n }\n if (collideInstance.sizeY <= elementinstance.sizeY && ignore.indexOf(collisions[count]) === -1) {\n ignore.push(collisions[count]);\n }\n ignore.push(this.mainElement);\n var swapCollision = this.collisions(updatedRow, collideInstance.col, collideInstance.sizeX, collideInstance.sizeY, ignore);\n if (swapCollision.length > 0) {\n isSwappable = false;\n return isSwappable;\n }\n else {\n if (count === collisions.length - 1) {\n isSwappable = true;\n }\n continue;\n }\n }\n return isSwappable;\n };\n DashboardLayout.prototype.swapItems = function (collisions, element, panelModel) {\n var _this = this;\n var direction;\n var swappedElements = [];\n swappedElements.push(element);\n var eleSwapRow = parseInt(collisions[0].getAttribute('data-row'), 10);\n if (this.startRow < eleSwapRow) {\n direction = 1;\n }\n else if (this.startRow > eleSwapRow) {\n direction = 0;\n }\n var collisionItemsRow = direction === 0 ? eleSwapRow + panelModel.sizeY : this.startRow;\n if (!this.movePanelCalled) {\n var collisionInstance = this.getCellInstance(collisions[0].id);\n this.panelPropertyChange(panelModel, { row: direction === 0 ? eleSwapRow : collisionItemsRow + collisionInstance.sizeY });\n }\n for (var count = 0; count < collisions.length; count++) {\n swappedElements.push(collisions[count]);\n this.setPanelPosition(collisions[count], collisionItemsRow, (this.getCellInstance(collisions[count].id)).col);\n this.panelPropertyChange(this.getCellInstance(collisions[count].id), { row: collisionItemsRow });\n collisions[count].setAttribute('data-row', collisionItemsRow.toString());\n }\n element.setAttribute('data-row', panelModel.row.toString());\n this.setPanelPosition(this.shadowEle, panelModel.row, panelModel.col);\n for (var i = 0; i < this.panels.length; i++) {\n this.oldRowCol[this.panels[i].id] = { row: this.panels[i].row, col: this.panels[i].col };\n }\n this.startRow = panelModel.row;\n this.updateOldRowColumn();\n swappedElements.forEach(function (item) {\n _this.cloneObject[item.id] = _this.oldRowCol[item.id];\n var itemModel = _this.getCellInstance(item.id);\n for (var i = 0; i < _this.sortedArray.length; i++) {\n if (!_this.sortedArray[i]) {\n continue;\n }\n for (var j = 0; j < _this.sortedArray[i].length; j++) {\n if (_this.sortedArray[i][j] === item) {\n _this.sortedArray[i][j] = undefined;\n }\n }\n }\n if (!_this.sortedArray[itemModel.row]) {\n _this.sortedArray[itemModel.row] = [];\n }\n _this.sortedArray[itemModel.row][itemModel.col] = item;\n _this.cloneArray = _this.sortedArray;\n });\n };\n DashboardLayout.prototype.updatePanelLayout = function (element, panelModel) {\n var _this = this;\n this.collisionChecker = {};\n var initialModel = [];\n var checkForAdjustment;\n var collisionModels = [];\n var swappingAvailable;\n if (this.mainElement && this.isRenderComplete) {\n initialModel = this.resetLayout(panelModel);\n }\n else {\n initialModel = this.collisions(panelModel.row, panelModel.col, panelModel.sizeX, panelModel.sizeY, element);\n }\n if (initialModel.length > 0) {\n initialModel = this.sortCollisionItems(initialModel);\n initialModel = this.updatedModels(initialModel, panelModel, element);\n swappingAvailable = !isNullOrUndefined(this.startRow) ? this.checkForSwapping(initialModel, element) : false;\n if (swappingAvailable) {\n this.swapItems(initialModel, element, panelModel);\n }\n else {\n for (var i = 0; i < initialModel.length; i++) {\n var model = this.getCellInstance(initialModel[i].id);\n this.checkingElement = initialModel[i];\n this.spacedRowValue = null;\n this.spacedColumnValue = null;\n checkForAdjustment = this.adjustmentAvailable(model.row, model.col, model.sizeY, model.sizeX, element);\n if (checkForAdjustment && !isNullOrUndefined(this.spacedColumnValue)) {\n this.setPanelPosition(initialModel[i], this.spacedRowValue, this.spacedColumnValue);\n this.oldRowCol[(initialModel[i].id)] = { row: this.spacedRowValue, col: this.spacedColumnValue };\n var value = {\n attributes: {\n row: this.spacedRowValue.toString(),\n col: this.spacedColumnValue.toString()\n }\n };\n this.setAttributes(value, initialModel[i]);\n this.panelPropertyChange(model, { col: this.spacedColumnValue, row: this.spacedRowValue });\n // updated the panel model array as inTopAdjustable case with floating enabled instead of dragging and extra row\n if (this.topAdjustable && this.allowFloating) {\n this.updatePanels();\n this.updateCloneArrayObject();\n }\n this.spacedRowValue = null;\n if (i < initialModel.length) {\n continue;\n }\n }\n else {\n collisionModels.push(initialModel[i]);\n }\n }\n }\n }\n if (collisionModels.length > 0) {\n collisionModels.forEach(function (item1) {\n if (_this.overlapElement.indexOf(item1) === -1) {\n _this.overlapElement.push(item1);\n }\n });\n if (this.overlapElement && this.overlapElement.indexOf(element) !== -1) {\n this.overlapElement.splice(this.overlapElement.indexOf(element), 1);\n }\n if (collisionModels.length > 0) {\n this.updateRowColumn(panelModel.row, this.overlapElement, element);\n this.checkForCompletePushing();\n }\n }\n if (!this.isSubValue) {\n this.sortedPanel();\n }\n this.updateRowHeight();\n this.updateGridLines();\n };\n DashboardLayout.prototype.checkForCompletePushing = function () {\n for (var i = 0; i < this.panels.length; i++) {\n if (this.collisionChecker[this.panels[i].id] && this.collisionChecker[this.panels[i].id] !== null) {\n this.overlapElement = [this.collisionChecker[this.panels[i].id].ele];\n var key = this.panels[i].id;\n this.updateRowColumn(this.collisionChecker[\"\" + key].row, this.overlapElement, this.collisionChecker[\"\" + key].srcEle);\n }\n }\n };\n DashboardLayout.prototype.updateCollisionChecked = function (item) {\n for (var count = 0; count < Object.keys(this.collisionChecker).length; count++) {\n this.collisionChecker[item.id] = null;\n }\n };\n DashboardLayout.prototype.updateRowColumn = function (row, ele, srcEle) {\n if (!srcEle) {\n return;\n }\n var eleSizeY = parseInt(srcEle.getAttribute('data-sizeY'), 10);\n var eleRow = parseInt(srcEle.getAttribute('data-row'), 10);\n this.overlapElementClone = this.overlapElement && !this.shouldRestrict ? this.overlapElement : this.overlapElement;\n for (var i = 0; i < this.overlapElementClone.length; i++) {\n if (this.overlapElementClone.length === 0) {\n return;\n }\n for (var i_1 = 0; i_1 < this.overlapElementClone.length; i_1++) {\n this.collisionChecker[this.overlapElementClone[i_1].id] = {\n ele: this.overlapElementClone[i_1],\n row: row,\n srcEle: srcEle\n };\n }\n var updatedRow = eleRow + eleSizeY;\n var collisionY = parseInt(this.overlapElementClone[i].getAttribute('data-sizeY'), 10);\n var collisionCol = parseInt(this.overlapElementClone[i].getAttribute('data-col'), 10);\n var collisionX = parseInt(this.overlapElementClone[i].getAttribute('data-sizeX'), 10);\n var colValue = void 0;\n var collisionModels = void 0;\n if (this.overlapSubElementClone.indexOf(srcEle) === -1) {\n this.overlapSubElementClone.push(srcEle);\n }\n if (this.overlapSubElementClone.indexOf(this.overlapElementClone[i]) === -1) {\n this.overlapSubElementClone.push(this.overlapElementClone[i]);\n }\n if (collisionY > 1 || collisionX > 1) {\n var overlapElementModel = this.getCellInstance(this.overlapElementClone[i].id);\n colValue = overlapElementModel.col;\n var ele_1 = document.getElementById(overlapElementModel.id);\n for (var k = overlapElementModel.row; k < eleRow + eleSizeY; k++) {\n this.isSubValue = true;\n this.panelPropertyChange(overlapElementModel, { row: overlapElementModel.row + 1 });\n ele_1.setAttribute('data-row', overlapElementModel.row.toString());\n this.setPanelPosition(ele_1, overlapElementModel.row, colValue);\n this.updateCollisionChecked(ele_1);\n this.oldRowCol[(ele_1.id)] = { row: overlapElementModel.row, col: colValue };\n var panelModel = this.getCellInstance(ele_1.id);\n this.panelPropertyChange(panelModel, { col: colValue, row: overlapElementModel.row });\n var eleRow_1 = parseInt(ele_1.getAttribute('data-row'), 10);\n var eleCol = parseInt(ele_1.getAttribute('data-col'), 10);\n var sizeX = parseInt(ele_1.getAttribute('data-sizeX'), 10);\n var sizeY = parseInt(ele_1.getAttribute('data-sizeY'), 10);\n var excludeElements = [];\n excludeElements.push(ele_1);\n excludeElements.push(srcEle);\n collisionModels = this.collisions(eleRow_1, eleCol, sizeX, sizeY, excludeElements);\n if (this.mainElement && collisionModels.indexOf(this.mainElement) !== -1) {\n collisionModels.splice(collisionModels.indexOf(this.mainElement), 1);\n }\n this.collisionPanel(collisionModels, eleCol, eleRow_1, ele_1);\n }\n this.isSubValue = false;\n }\n else {\n if (this.addPanelCalled) {\n this.addPanelCalled = false;\n }\n this.overlapElementClone[i].setAttribute('data-row', updatedRow.toString());\n var excludeEle = [];\n excludeEle.push(this.overlapElementClone[i]);\n excludeEle.push(srcEle);\n collisionModels = this.collisions(updatedRow, collisionCol, collisionX, collisionY, excludeEle);\n if (this.mainElement && collisionModels.indexOf(this.mainElement) !== -1) {\n collisionModels.splice(collisionModels.indexOf(this.mainElement), 1);\n }\n colValue = parseInt(this.overlapElementClone[i].getAttribute('data-col'), 10);\n this.setPanelPosition(this.overlapElementClone[i], updatedRow, colValue);\n this.updateCollisionChecked(this.overlapElementClone[i]);\n this.oldRowCol[(this.overlapElementClone[i].id)] = { row: updatedRow, col: colValue };\n var panelModel = this.getCellInstance(this.overlapElementClone[i].id);\n this.panelPropertyChange(panelModel, { col: colValue, row: updatedRow });\n this.collisionPanel(collisionModels, colValue, updatedRow, this.overlapElementClone[i]);\n }\n }\n };\n DashboardLayout.prototype.collisionPanel = function (collisionModels, colValue, updatedRow, clone) {\n var _this = this;\n var panelModel = this.getCellInstance(clone.id);\n this.panelPropertyChange(panelModel, { row: updatedRow, col: colValue });\n if (collisionModels.length > 0) {\n this.overlapElement = [];\n this.shouldRestrict = true;\n collisionModels.forEach(function (item1) {\n _this.overlapElement.push(item1);\n });\n var overlapElementRow1 = parseInt(clone.getAttribute('data-row'), 10);\n for (var m = 0; m < this.overlapElement.length; m++) {\n this.updateRowColumn(overlapElementRow1, this.overlapElement, clone);\n }\n this.shouldRestrict = false;\n }\n else {\n if (!this.addPanelCalled) {\n this.sortedPanel();\n }\n if (this.overlapSubElementClone.length > 0) {\n for (var p = 0; p < this.overlapSubElementClone.length; p++) {\n var rowVal = parseInt(this.overlapSubElementClone[p].getAttribute('data-row'), 10);\n var colValue_1 = parseInt(this.overlapSubElementClone[p].getAttribute('data-col'), 10);\n var sizeX = parseInt(this.overlapSubElementClone[p].getAttribute('data-sizeX'), 10);\n var sizeY = parseInt(this.overlapSubElementClone[p].getAttribute('data-sizeY'), 10);\n var collisionModels1 = this.collisions(rowVal, colValue_1, sizeX, sizeY, this.overlapSubElementClone);\n if (this.mainElement && collisionModels1.indexOf(this.mainElement) !== -1) {\n collisionModels1.splice(collisionModels1.indexOf(this.mainElement), 1);\n }\n collisionModels1.forEach(function (item1) {\n _this.overlapElement.push(item1);\n });\n if (collisionModels1.length > 0) {\n this.updateRowColumn(rowVal, this.overlapElement, this.overlapSubElementClone[p]);\n }\n }\n }\n this.overlapSubElementClone = [];\n }\n };\n DashboardLayout.prototype.removeResizeClasses = function (panelElements) {\n for (var i = 0; i < panelElements.length; i++) {\n var element = panelElements[i];\n var resizerElements = element.querySelectorAll('.e-resize');\n for (var i_2 = 0; i_2 < resizerElements.length; i_2++) {\n detach(resizerElements[i_2]);\n }\n }\n };\n DashboardLayout.prototype.ensureDrag = function () {\n this.checkDragging(this.dragCollection);\n var dragPanels = this.element.querySelectorAll('.' + drag);\n removeClass(dragPanels, [drag]);\n this.setClasses(this.panelCollection);\n };\n DashboardLayout.prototype.setClasses = function (panelCollection) {\n for (var i = 0; i < panelCollection.length; i++) {\n var element = panelCollection[i];\n var containerEle = panelCollection[i].querySelector('.e-panel-container');\n if (this.allowDragging) {\n if (this.draggableHandle && element.querySelectorAll(this.draggableHandle)[0]) {\n addClass([element.querySelectorAll(this.draggableHandle)[0]], [drag]);\n }\n else {\n addClass([element], [drag]);\n }\n }\n if (this.allowResizing &&\n this.mediaQuery ? !(this.checkMediaQuery()) : false) {\n this.setResizingClass(element, containerEle);\n }\n }\n };\n DashboardLayout.prototype.setResizingClass = function (ele, container) {\n this.availableClasses = this.resizableHandles;\n if (!ele.querySelector('.e-resize')) {\n for (var j = 0; j < this.availableClasses.length; j++) {\n var spanEle = this.createElement('span');\n var addClassValue = void 0;\n container.appendChild(spanEle);\n if (this.availableClasses[j] === 'e-east' || this.availableClasses[j] === 'e-west' ||\n this.availableClasses[j] === 'e-north' || this.availableClasses[j] === 'e-south') {\n addClassValue = single;\n }\n else {\n addClassValue = double;\n }\n addClass([spanEle], [addClassValue, this.availableClasses[j], resize, resizeicon]);\n }\n }\n };\n DashboardLayout.prototype.setXYAttributes = function (element, panelModel) {\n var value = {\n value: {\n sizeX: !isNullOrUndefined(panelModel.sizeX) ? panelModel.sizeX.toString() : undefined,\n sizeY: !isNullOrUndefined(panelModel.sizeY) ? panelModel.sizeY.toString() : undefined,\n minSizeX: !isNullOrUndefined(panelModel.minSizeX) ? panelModel.minSizeX.toString() : undefined,\n minSizeY: !isNullOrUndefined(panelModel.minSizeY) ? panelModel.minSizeY.toString() : undefined,\n maxSizeX: !isNullOrUndefined(panelModel.maxSizeX) ? panelModel.maxSizeX.toString() : undefined,\n maxSizeY: !isNullOrUndefined(panelModel.maxSizeY) ? panelModel.maxSizeY.toString() : undefined,\n row: !isNullOrUndefined(panelModel.row) ? panelModel.row.toString() : undefined,\n col: !isNullOrUndefined(panelModel.col) ? panelModel.col.toString() : undefined\n }\n };\n this.setAttributes(value, element);\n };\n DashboardLayout.prototype.setXYDimensions = function (panelModel) {\n var cellHeight = this.getCellSize()[1];\n var cellWidth = this.getCellSize()[0];\n var widthValue;\n var heigthValue;\n if (panelModel && typeof (cellWidth) === 'number' && typeof (panelModel.sizeX) === 'number' && panelModel.sizeX > 1) {\n widthValue = (panelModel.sizeX * cellWidth) + (panelModel.sizeX - 1) * this.cellSpacing[0];\n }\n else {\n widthValue = cellWidth;\n }\n if (panelModel && typeof (cellHeight) === 'number' && panelModel.sizeY > 1 && typeof (panelModel.sizeY) === 'number') {\n heigthValue = (panelModel.sizeY * cellHeight) + (panelModel.sizeY - 1) * this.cellSpacing[1];\n }\n else {\n heigthValue = formatUnit(cellHeight);\n }\n return [heigthValue, widthValue];\n };\n DashboardLayout.prototype.getRowColumnDragValues = function (args) {\n var value = [];\n var elementTop = parseFloat(args.element.style.top);\n var elementLeft = parseFloat(args.element.style.left);\n var row = Math.round(elementTop / (this.getCellSize()[1] + this.cellSpacing[1]));\n var col = Math.round(elementLeft / (this.getCellSize()[0] + +this.cellSpacing[0]));\n value = [row, col];\n return value;\n };\n DashboardLayout.prototype.checkForChanges = function (isInteracted, added, removed) {\n var changedPanels = [];\n if (this.removeAllCalled) {\n changedPanels = [];\n }\n else {\n for (var i = 0; i < this.panels.length; i++) {\n if (((!isNullOrUndefined(removed) ? (this.panels[i].id !== removed[0].id) : true)) &&\n (this.panels[i].row !== this.panelsInitialModel[i].row ||\n this.panels[i].col !== this.panelsInitialModel[i].col)) {\n changedPanels.push(this.panels[i]);\n }\n }\n }\n if (changedPanels.length > 0 || this.removeAllCalled) {\n var changedArgs = {\n changedPanels: changedPanels, isInteracted: isInteracted,\n addedPanels: !isNullOrUndefined(added) ? added : [], removedPanels: !isNullOrUndefined(removed) ? removed : []\n };\n this.trigger('change', changedArgs);\n }\n };\n DashboardLayout.prototype.enableDraggingContent = function (collections) {\n var _this = this;\n var _loop_5 = function (i) {\n var abortArray = ['.e-resize', '.' + dragRestrict];\n var cellElement = collections[i];\n {\n this_3.dragobj = new Draggable(cellElement, {\n preventDefault: false,\n clone: false,\n dragArea: this_3.element,\n isDragScroll: true,\n handle: this_3.draggableHandle ? this_3.draggableHandle : '.e-panel',\n abort: abortArray,\n dragStart: this_3.onDraggingStart.bind(this_3),\n dragStop: function (args) {\n _this.trigger('dragStop', args);\n if (isNullOrUndefined(args.cancel)) {\n args.cancel = false;\n }\n if (!(args.cancel)) {\n var model = _this.getCellInstance(_this.mainElement.id);\n if (_this.allowPushing &&\n _this.collisions(model.row, model.col, model.sizeX, model.sizeY, _this.mainElement).length > 0) {\n _this.setHolderPosition(args);\n _this.setPanelPosition(_this.mainElement, model.row, model.col);\n _this.updatePanelLayout(_this.mainElement, model);\n }\n else {\n _this.setPanelPosition(_this.mainElement, model.row, model.col);\n }\n _this.mainElement = null;\n var item = _this.getPanelBase(args);\n if (_this.shadowEle) {\n detach(_this.shadowEle);\n }\n removeClass([_this.element], [preventSelect]);\n removeClass([args.element], [dragging]);\n _this.shadowEle = null;\n args.element.classList.remove('e-dragging');\n var row = _this.getRowColumnDragValues(args)[0];\n var col = _this.getRowColumnDragValues(args)[1];\n var panelModel = _this.getCellInstance(args.element.id);\n if (_this.allowPushing &&\n _this.collisions(row, col, panelModel.sizeX, panelModel.sizeY, document.getElementById(item.id)).length === 0) {\n _this.panelPropertyChange(_this.getCellInstance(args.element.id), { row: row, col: col });\n _this.oldRowCol[args.element.id].row = row;\n _this.oldRowCol[args.element.id].col = col;\n _this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);\n _this.sortedPanel();\n }\n else {\n _this.panelPropertyChange(_this.getCellInstance(args.element.id), {\n row: _this.oldRowCol[args.element.id].row,\n col: _this.oldRowCol[args.element.id].col\n });\n args.element.setAttribute('data-col', _this.getCellInstance(args.element.id).col.toString());\n args.element.setAttribute('data-row', _this.getCellInstance(args.element.id).row.toString());\n _this.sortedPanel();\n }\n var panelInstance = _this.getCellInstance(args.element.id);\n _this.setPanelPosition(args.element, panelInstance.row, panelInstance.col);\n _this.updatePanels();\n _this.updateCloneArrayObject();\n _this.checkForChanges(true);\n _this.dragStopEventArgs = { event: args.event, element: args.element };\n _this.resizeEvents();\n _this.rows = _this.maxRow(true);\n _this.setHeightWidth();\n _this.updateDragArea();\n }\n else {\n var currentPanel = _this.getCellInstance(_this.mainElement.id);\n for (i = 0; i < _this.panels.length; i++) {\n if (_this.panels[i].id === currentPanel.id) {\n args.element.setAttribute('data-col', _this.panelsInitialModel[i].col.toString());\n args.element.setAttribute('data-row', _this.panelsInitialModel[i].row.toString());\n currentPanel.col = _this.panelsInitialModel[i].col;\n currentPanel.row = _this.panelsInitialModel[i].row;\n _this.setPanelPosition(_this.mainElement, _this.panelsInitialModel[i].row, _this.panelsInitialModel[i].col);\n _this.updatePanelLayout(_this.mainElement, currentPanel);\n }\n }\n if (_this.shadowEle) {\n detach(_this.shadowEle);\n }\n }\n },\n drag: function (args) {\n _this.draggedEventArgs = {\n event: args.event,\n element: args.element,\n target: closest((args.target), '.e-panel')\n };\n _this.trigger('drag', _this.draggedEventArgs);\n _this.onDragStart(args);\n }\n });\n if (this_3.dragCollection.indexOf(this_3.dragobj) === -1) {\n this_3.dragCollection.push(this_3.dragobj);\n }\n }\n out_i_1 = i;\n };\n var this_3 = this, out_i_1;\n for (var i = 0; i < collections.length; i++) {\n _loop_5(i);\n i = out_i_1;\n }\n };\n DashboardLayout.prototype.updatePanels = function () {\n this.moveItemsUpwards();\n this.updateOldRowColumn();\n this.sortedPanel();\n };\n DashboardLayout.prototype.updateDragArea = function () {\n this.dragCollection.forEach(function (dragobj) {\n dragobj.setDragArea();\n });\n };\n /**\n * Method to update the draggable handle when draggable panel elements are bound dynamically.\n *\n * @returns void\n *\n */\n DashboardLayout.prototype.refreshDraggableHandle = function () {\n if (this.dragCollection && this.dragCollection.length > 0) {\n for (var i = 0; i < this.dragCollection.length; i++) {\n this.dragCollection[i].destroy();\n EventHandler.clearEvents(this.dragCollection[i].element);\n }\n this.ensureDrag();\n }\n };\n DashboardLayout.prototype.updateRowsHeight = function (row, sizeY, addRows) {\n if (row + sizeY >= this.rows) {\n this.rows = this.rows + addRows;\n this.setHeightWidth();\n }\n };\n DashboardLayout.prototype.onDraggingStart = function (args) {\n var dragArgs = args;\n this.trigger('dragStart', dragArgs, function () {\n if (isNullOrUndefined(args.cancel)) {\n args.cancel = false;\n }\n });\n this.eventVar = args.cancel;\n if (!(args.cancel)) {\n this.panelsInitialModel = this.cloneModels(this.panels);\n this.mainElement = args.element;\n this.cloneObject = JSON.parse(JSON.stringify(this.cloneObject));\n var eleRowValue = this.startRow = parseInt(args.element.getAttribute('data-row'), 10);\n this.startCol = parseInt(args.element.getAttribute('data-col'), 10);\n var eleSizeY = parseInt(args.element.getAttribute('data-sizeY'), 10);\n this.updateRowsHeight(eleRowValue, eleSizeY, eleSizeY);\n this.updateDragArea();\n this.shadowEle = document.createElement('div');\n this.shadowEle.classList.add('e-holder', 'e-holder-transition');\n setStyle(this.shadowEle, { 'position': 'absolute' });\n addClass([this.element], [preventSelect]);\n addClass([args.element], [dragging]);\n this.element.appendChild(this.shadowEle);\n this.renderReactTemplates();\n this.shadowEle = document.querySelector('.e-holder');\n var panelValues = this.getCellInstance(args.element.id);\n var shadowSize = this.calculateShadowElementSize(panelValues.sizeX, panelValues.sizeY);\n this.shadowEle.style.height = shadowSize.height;\n this.shadowEle.style.width = shadowSize.width;\n var panelInstance = this.getCellInstance(args.element.id);\n this.setPanelPosition(this.shadowEle, panelInstance.row, panelInstance.col);\n }\n else {\n removeClass([this.element], [preventSelect]);\n removeClass([args.element], [dragging]);\n }\n };\n DashboardLayout.prototype.cloneModels = function (source, target) {\n if (target === undefined) {\n target = [];\n }\n for (var i = 0; i < source.length; i++) {\n if (!target[i]) {\n target[i] = {};\n }\n // eslint-disable-next-line guard-for-in\n for (var k in source[i]) {\n target[i][\"\" + k] = source[i][\"\" + k];\n }\n }\n return target;\n };\n DashboardLayout.prototype.onDragStart = function (args) {\n var endCol;\n var endRow;\n var dragCol;\n if (!this.eventVar) {\n var col = dragCol = this.getRowColumnDragValues(args)[1];\n var row = this.getRowColumnDragValues(args)[0];\n if (col < 0 || row < 0) {\n return;\n }\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n var panelModel = this.getCellInstance(args.element.id);\n this.updateRowsHeight(panelModel.row, panelModel.sizeY, 1);\n this.updateDragArea();\n if (this.allowPushing) {\n this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n endCol = this.oldRowCol[(args.element.id)].col;\n endRow = this.oldRowCol[(args.element.id)].row;\n this.oldRowCol[(args.element.id)] = { row: row, col: col };\n this.updateOldRowColumn();\n if (this.startCol !== endCol || this.startRow !== endRow) {\n this.setHolderPosition(args);\n if (this.startCol !== endCol) {\n this.startRow = endRow;\n }\n if (this.startRow !== endRow) {\n this.startCol = endCol;\n }\n if (this.allowPushing) {\n this.mainElement = args.element;\n var model = panelModel;\n this.checkCollision = this.collisions(model.row, model.col, model.sizeX, model.sizeY, args.element);\n if (panelModel.col >= 0 || panelModel.col >= this.checkColumnValue) {\n this.checkCollision = [];\n }\n this.updatePanelLayout(args.element, panelModel);\n this.moveItemsUpwards();\n }\n }\n }\n if (this.allowPushing !== false) {\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n }\n if (this.oldRowCol[args.element.id].row !== row || this.oldRowCol[args.element.id].col !== col) {\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);\n }\n if (this.startCol !== dragCol) {\n this.startCol = endCol;\n this.moveItemsUpwards();\n }\n if (!this.allowPushing) {\n this.setHolderPosition(args);\n }\n this.removeResizeClasses(this.panelCollection);\n this.setClasses(this.panelCollection);\n if (this.allowPushing === false) {\n return;\n }\n }\n else {\n this.dragobj.intDestroy(args.event);\n removeClass([this.element], [preventSelect]);\n removeClass([args.element], [dragging]);\n }\n };\n DashboardLayout.prototype.getPanelBase = function (args) {\n var item;\n for (var i = 0; i < this.panelCollection.length; i++) {\n if (this.panelCollection[i].id === ((args.element\n && args.element.id) || args)) {\n item = this.panelCollection[i];\n }\n }\n return item;\n };\n DashboardLayout.prototype.getPanel = function (row, column, excludeItems) {\n if (excludeItems && !(excludeItems instanceof Array)) {\n excludeItems = [excludeItems];\n }\n var sizeY = 1;\n while (row > -1) {\n var sizeX = 1;\n var col = column;\n while (col > -1) {\n var items = this.sortedArray[row];\n if (items) {\n var item = items[col];\n if (item && (!excludeItems ||\n excludeItems.indexOf(item) === -1) && parseInt(item.getAttribute('data-sizeX'), 10) >= sizeX\n && parseInt(item.getAttribute('data-sizeY'), 10) >= sizeY) {\n return item;\n }\n }\n ++sizeX;\n --col;\n }\n --row;\n ++sizeY;\n }\n return null;\n };\n DashboardLayout.prototype.setHolderPosition = function (args) {\n var sizeY = parseInt(args.element.getAttribute('data-sizeY'), 10);\n var col = parseInt(args.element.getAttribute('data-col'), 10);\n var row = parseInt(args.element.getAttribute('data-row'), 10);\n var sizeX = parseInt(args.element.getAttribute('data-sizeX'), 10);\n var widthValue = this.getCellSize()[0];\n var heightValue = this.getCellSize()[1];\n var top = row === 0 ? 0 : (((row) * (heightValue + this.cellSpacing[1])));\n var left = col === 0 ? 0 : (((col) * (widthValue + this.cellSpacing[0])));\n this.elementRef.top = this.shadowEle.style.top = top + 'px';\n this.elementRef.left = this.shadowEle.style.left = left + 'px';\n var shadowSize = this.calculateShadowElementSize(sizeX, sizeY);\n this.elementRef.height = this.shadowEle.style.height = shadowSize.height;\n this.elementRef.width = this.shadowEle.style.width = shadowSize.width;\n };\n DashboardLayout.prototype.calculateShadowElementSize = function (sizeX, sizeY) {\n return {\n width: (sizeX * this.cellSize[0]) + ((sizeX - 1) * this.cellSpacing[0]) + 'px',\n height: (sizeY * this.cellSize[1]) + ((sizeY - 1) * this.cellSpacing[1]) + 'px'\n };\n };\n DashboardLayout.prototype.getCellInstance = function (idValue) {\n var currentCellInstance;\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i].id === idValue) {\n currentCellInstance = this.panels[i];\n }\n }\n return currentCellInstance;\n };\n /**\n * Allows to add a panel to the Dashboardlayout.\n *\n * @param {panel} panel - Defines the panel element.\n *\n * @returns void\n * @deprecated\n */\n DashboardLayout.prototype.addPanel = function (panel) {\n this.panelsSizeY = 0;\n this.maxCol();\n if (!panel.minSizeX) {\n panel.minSizeX = 1;\n }\n if (!panel.minSizeY) {\n panel.minSizeY = 1;\n }\n if (!panel.id) {\n panel.id = 'layout_' + this.panelID.toString();\n this.panelID = this.panelID + 1;\n }\n var panelProp = new Panel(this, 'panels', panel, true);\n this.panels.push(panelProp);\n this.panelsInitialModel = this.cloneModels(this.panels);\n this.setMinMaxValues(panelProp);\n if (this.maxColumnValue < panelProp.col || this.maxColumnValue < (panelProp.col + panelProp.sizeX)) {\n this.panelPropertyChange(panelProp, { col: this.maxColumnValue - panelProp.sizeX });\n }\n var cell = this.renderCell(panelProp, true, null);\n this.oldRowCol[panelProp.id] = { row: panelProp.row, col: panelProp.col };\n this.cloneObject[panelProp.id] = { row: panelProp.row, col: panelProp.col };\n this.updateOldRowColumn();\n this.element.insertAdjacentElement('afterbegin', cell);\n this.addPanelCalled = true;\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n this.removeResizeClasses(this.panelCollection);\n }\n else {\n this.mainElement = cell;\n if (!this.checkCollision) {\n this.checkCollision = [];\n }\n this.setPanelPosition(cell, panelProp.row, panelProp.col);\n this.addPanelCalled = false;\n this.updatePanelLayout(cell, panelProp);\n }\n if (this.addPanelCalled) {\n this.addPanelCalled = false;\n }\n if (this.allowDragging &&\n this.mediaQuery ? !(this.checkMediaQuery()) : false) {\n this.enableDraggingContent([document.getElementById(panelProp.id)]);\n }\n this.setClasses([cell]);\n if (this.allowFloating) {\n this.mainElement = null;\n this.moveItemsUpwards();\n }\n this.updateOldRowColumn();\n this.sortedPanel();\n this.updateCloneArrayObject();\n if (this.allowResizing) {\n for (var i = 0; i < cell.querySelectorAll('.e-resize').length; i++) {\n var eventName = (Browser.info.name === 'msie') ? 'mousedown pointerdown' : 'mousedown';\n EventHandler.add(cell.querySelectorAll('.e-resize')[i], eventName, this.downResizeHandler, this);\n if (Browser.info.name !== 'msie') {\n EventHandler.add(cell.querySelectorAll('.e-resize')[i], 'touchstart', this.touchDownResizeHandler, this);\n }\n }\n }\n this.checkForChanges(false, [panelProp]);\n };\n /**\n * Allows to update a panel in the DashboardLayout.\n *\n * @param {panel} panel - Defines the panel element.\n *\n * @returns void\n * @deprecated\n */\n DashboardLayout.prototype.updatePanel = function (panel) {\n this.panelsSizeY = 0;\n if (!panel.id) {\n return;\n }\n var panelInstance = this.getCellInstance(panel.id);\n if (!panelInstance) {\n return;\n }\n this.maxCol();\n panel.col = (panel.col < 1) ? 0 : ((panel.col > this.columns)) ? this.columns - 1 : panel.col;\n if (isNullOrUndefined(panel.col)) {\n panel.col = panelInstance.col;\n }\n this.panelPropertyChange(panelInstance, panel);\n this.setMinMaxValues(panelInstance);\n var cell = document.getElementById(panel.id);\n this.mainElement = cell;\n var cssClass = panelInstance.cssClass ? panelInstance.cssClass.split(' ') : null;\n this.panelContent = cell.querySelector('.e-panel-container') ?\n cell.querySelector('.e-panel-container') :\n this.createSubElement(cssClass, cell.id + '_content', panelContainer);\n cell.appendChild(this.panelContent);\n if (panelInstance.header) {\n var headerTemplateElement = cell.querySelector('.e-panel-header') ?\n cell.querySelector('.e-panel-header') : this.createSubElement([], cell.id + 'template', '');\n addClass([headerTemplateElement], [header]);\n headerTemplateElement.innerHTML = '';\n var id = this.element.id + 'HeaderTemplate' + panelInstance.id;\n this.renderTemplate(panelInstance.header, headerTemplateElement, id, true, 'header');\n this.panelContent.appendChild(headerTemplateElement);\n this.renderReactTemplates();\n }\n else {\n if (cell.querySelector('.e-panel-header')) {\n detach(cell.querySelector('.e-panel-header'));\n }\n }\n if (panelInstance.content) {\n var cssClass_2 = panelInstance.cssClass ? panelInstance.cssClass.split(' ') : null;\n this.panelBody = cell.querySelector('.e-panel-content') ? cell.querySelector('.e-panel-content') :\n this.createSubElement(cssClass_2, cell.id + '_body', panelContent);\n this.panelBody.innerHTML = '';\n var headerHeight = this.panelContent.querySelector('.e-panel-header') ?\n window.getComputedStyle(this.panelContent.querySelector('.e-panel-header')).height : '0px';\n var contentHeightValue = 'calc( 100% - ' + headerHeight + ')';\n setStyle(this.panelBody, { height: contentHeightValue });\n var id = this.element.id + 'ContentTemplate' + panelInstance.id;\n this.renderTemplate(panelInstance.content, this.panelBody, id, true, 'content');\n this.panelContent.appendChild(this.panelBody);\n this.renderReactTemplates();\n }\n else {\n if (cell.querySelector('.e-panel-content')) {\n detach(cell.querySelector('.e-panel-content'));\n }\n }\n this.setXYAttributes(cell, panelInstance);\n this.setHeightAndWidth(cell, panelInstance);\n this.setPanelPosition(cell, panelInstance.row, panelInstance.col);\n this.updatePanelLayout(cell, panelInstance);\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n this.mainElement = null;\n this.updatePanels();\n this.updateCloneArrayObject();\n };\n DashboardLayout.prototype.updateCloneArrayObject = function () {\n this.cloneArray = this.sortedArray;\n this.cloneObject = JSON.parse(JSON.stringify(this.oldRowCol));\n };\n /**\n * Returns the panels object of the DashboardLayout.\n *\n * @returns [`PanelModel[]`](./panelModel)\n */\n DashboardLayout.prototype.serialize = function () {\n var cloneModel = this.cloneModels(this.panels);\n var customObject = [];\n for (var i = 0; i < cloneModel.length; i++) {\n customObject.push({\n id: cloneModel[i].id, row: cloneModel[i].row, col: cloneModel[i].col,\n sizeX: cloneModel[i].sizeX, sizeY: cloneModel[i].sizeY, minSizeX: cloneModel[i].minSizeX,\n minSizeY: cloneModel[i].minSizeY, maxSizeX: cloneModel[i].maxSizeX,\n maxSizeY: cloneModel[i].maxSizeY\n });\n }\n return (customObject);\n };\n /**\n * Removes all the panels from the DashboardLayout.\n */\n DashboardLayout.prototype.removeAll = function () {\n this.removeAllCalled = true;\n for (var i = 0; i < this.panelCollection.length; i++) {\n detach(this.panelCollection[i]);\n this.clearTemplate();\n }\n this.removeAllPanel();\n this.rows = 0;\n this.gridPanelCollection = [];\n this.setHeightWidth();\n this.sortedPanel();\n this.sortedArray = [];\n this.overlapElementClone = [];\n this.overlapElement = [];\n this.overlapSubElementClone = [];\n this.panelCollection = [];\n this.oldRowCol = {};\n this.cloneObject = {};\n var clonedPanels = this.cloneModels(this.panels);\n this.setProperties({ panels: [] }, true);\n this.updatePanels();\n this.updateCloneArrayObject();\n this.checkForChanges(false, null, clonedPanels);\n this.removeAllCalled = false;\n this.setEmptyLayoutHeight();\n };\n /**\n * Removes the panel from the DashboardLayout.\n *\n * @param {string} id - Defines the panel ID.\n *\n * @returns void\n */\n DashboardLayout.prototype.removePanel = function (id) {\n var _this = this;\n this.panelsSizeY = 0;\n this.panelsInitialModel = this.cloneModels(this.panels);\n var removedPanel;\n for (var i = 0; i < this.panelCollection.length; i++) {\n if (this.panelCollection[i].id === id) {\n detach(this.panelCollection[i]);\n this.panelCollection.splice(i, 1);\n }\n if (this.panels[i].id === id) {\n removedPanel = this.panels[i];\n this.panels.splice(i, 1);\n this.panelsInitialModel.splice(i, 1);\n this.updateOldRowColumn();\n this.sortedPanel();\n }\n }\n this.updatePanels();\n if (this.checkMediaQuery()) {\n this.isPanelRemoved = true;\n this.checkMediaQuerySizing();\n this.isPanelRemoved = false;\n }\n this.gridPanelCollection.forEach(function (item) {\n if (item.id === id) {\n _this.gridPanelCollection.splice(_this.gridPanelCollection.indexOf(item), 1);\n }\n });\n this.updateCloneArrayObject();\n this.checkForChanges(false, null, [removedPanel]);\n if (this.panels.length === 0 && this.panelCollection.length === 0) {\n this.setEmptyLayoutHeight();\n }\n };\n /**\n *Moves the panel in the DashboardLayout.\n *\n * @param {string} id - Defines the panel ID.\n *\n * @param {number} row - Defines the row of dashboard layout.\n *\n * @param {number} col - Defines the column of dashboard layout.\n *\n * @returns void\n */\n DashboardLayout.prototype.movePanel = function (id, row, col) {\n this.movePanelCalled = true;\n this.panelsInitialModel = this.cloneModels(this.panels);\n var panelInstance = this.getCellInstance(id);\n if ((isNaN(row) || row === null) || (isNaN(col) || col === null) || !panelInstance) {\n return;\n }\n if (col < 0) {\n col = 0;\n }\n else if (col > this.columns) {\n col = this.columns - panelInstance.sizeX;\n }\n this.panelPropertyChange(panelInstance, { row: row, col: col });\n var ele = document.getElementById(id);\n this.mainElement = ele;\n this.startRow = parseInt(ele.getAttribute('data-row'), 10);\n this.startCol = parseInt(ele.getAttribute('data-col'), 10);\n this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, ele);\n this.updateOldRowColumn();\n this.setPanelPosition(ele, row, col);\n this.updatePanelLayout(ele, panelInstance);\n this.updateRowHeight();\n this.updatePanels();\n this.updateCloneArrayObject();\n this.mainElement = null;\n if (this.allowFloating) {\n this.moveItemsUpwards();\n }\n this.movePanelCalled = false;\n this.checkForChanges(false);\n };\n DashboardLayout.prototype.setAttributes = function (value, ele) {\n for (var i = 0; i < Object.keys(value).length; i++) {\n if (Object.keys(value)) {\n if (value[Object.keys(value)[i]].col) {\n ele.setAttribute('data-col', value[Object.keys(value)[i]].col.toString());\n }\n if (value[Object.keys(value)[i]].row) {\n ele.setAttribute('data-row', value[Object.keys(value)[i]].row.toString());\n }\n if (value[Object.keys(value)[i]].sizeX) {\n ele.setAttribute('data-sizeX', value[Object.keys(value)[i]].sizeX.toString());\n }\n if (value[Object.keys(value)[i]].sizeY) {\n ele.setAttribute('data-sizeY', value[Object.keys(value)[i]].sizeY.toString());\n }\n if (value[Object.keys(value)[i]].minSizeX) {\n ele.setAttribute('data-minSizeX', value[Object.keys(value)[i]].minSizeX.toString());\n }\n if (value[Object.keys(value)[i]].minSizeY) {\n ele.setAttribute('data-minSizeY', value[Object.keys(value)[i]].minSizeY.toString());\n }\n if (value[Object.keys(value)[i]].maxSizeX) {\n ele.setAttribute('data-maxSizeY', value[Object.keys(value)[i]].maxSizeX.toString());\n }\n if (value[Object.keys(value)[i]].maxSizeY) {\n ele.setAttribute('data-maxSizeY', value[Object.keys(value)[i]].maxSizeY.toString());\n }\n }\n }\n };\n /**\n * Resize the panel in the DashboardLayout.\n *\n * @param {string} id - Defines the panel ID.\n *\n * @param {number} sizeX - Defines the sizeX of dashboard layout.\n *\n * @param {number} sizeY - Defines the sizeY of dashboard layout.\n */\n DashboardLayout.prototype.resizePanel = function (id, sizeX, sizeY) {\n this.panelsInitialModel = this.cloneModels(this.panels);\n var panelInstance = this.getCellInstance(id);\n this.resizeCalled = true;\n var ele = document.getElementById(id);\n var args = { event: null, element: ele, isInteracted: false };\n this.trigger('resizeStart', args);\n this.panelPropertyChange(panelInstance, { sizeX: sizeX, sizeY: sizeY });\n this.setMinMaxValues(panelInstance);\n this.checkMinMaxValues(panelInstance);\n this.mainElement = ele;\n this.setAttributes({ value: { sizeX: panelInstance.sizeX.toString(), sizeY: panelInstance.sizeY.toString() } }, ele);\n this.setHeightAndWidth(ele, panelInstance);\n this.updatePanelLayout(ele, panelInstance);\n this.updatePanels();\n this.updateRowHeight();\n this.resizeCalled = false;\n this.trigger('resizeStop', args);\n this.checkForChanges(false);\n };\n /**\n * Destroys the DashboardLayout component\n *\n * @returns void\n */\n DashboardLayout.prototype.destroy = function () {\n EventHandler.remove(window, 'resize', this.refreshListener);\n removeClass([this.element], ['e-dashboardlayout', 'e-lib', 'e-responsive', 'e-control']);\n this.element.removeAttribute('style');\n for (var i = 0; i < this.dragCollection.length; i++) {\n this.dragCollection[i].destroy();\n }\n this.removeAllPanel();\n this.panelCollection = null;\n this.checkCollision = null;\n this.mainElement = null;\n this.dragobj = null;\n this.dragStartArgs = null;\n this.dragStopEventArgs = null;\n this.draggedEventArgs = null;\n this.sortedArray = null;\n this.cloneArray = null;\n this.overlapElement = null;\n this.overlapElementClone = null;\n this.dragCollection = [];\n this.allItems = null;\n this.moveTarget = null;\n this.upTarget = null;\n this.downTarget = null;\n this.checkingElement = null;\n this.panelHeaderElement = null;\n this.panelContent = null;\n this.panelBody = null;\n this.table = null;\n _super.prototype.destroy.call(this);\n this.clearTemplate();\n this.renderReactTemplates();\n };\n DashboardLayout.prototype.removeAllPanel = function () {\n while (this.element.firstElementChild) {\n detach(this.element.firstElementChild);\n this.clearTemplate();\n }\n };\n DashboardLayout.prototype.setEnableRtl = function () {\n if (this.enableRtl === true) {\n addClass([this.element], 'e-rtl');\n }\n else {\n removeClass([this.element], 'e-rtl');\n }\n };\n /**\n * Called internally if any of the property value changed.\n * returns void\n *\n * @private\n */\n DashboardLayout.prototype.updateCellSizeAndSpacing = function () {\n this.panelResponsiveUpdate();\n this.setHeightWidth();\n this.getRowColumn();\n for (var i = 0; i < this.element.querySelectorAll('.e-panel').length; i++) {\n var ele = this.element.querySelectorAll('.e-panel')[i];\n var panelModel = this.getCellInstance(ele.id);\n this.setHeightAndWidth(ele, panelModel);\n this.setPanelPosition(ele, panelModel.row, panelModel.col);\n }\n };\n DashboardLayout.prototype.updatePanelsDynamically = function (panels) {\n this.removeAll();\n this.setProperties({ panels: panels }, true);\n this.setOldRowCol();\n if (this.table) {\n this.table.remove();\n }\n this.initialize();\n if (this.checkMediaQuery()) {\n this.refresh();\n }\n if (this.showGridLines) {\n this.initGridLines();\n }\n };\n DashboardLayout.prototype.checkForIDValues = function (panels) {\n var _this = this;\n if (!isNullOrUndefined(panels) && panels.length > 0) {\n this.panelID = 0;\n panels.forEach(function (panel) {\n if (!panel.id) {\n _this.panelPropertyChange(panel, { id: 'layout_' + _this.panelID.toString() });\n _this.panelID = _this.panelID + 1;\n }\n });\n }\n else {\n this.restrictDynamicUpdate = true;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * returns void\n *\n * @private\n */\n DashboardLayout.prototype.onPropertyChanged = function (newProp) {\n var _this = this;\n if (newProp.panels && newProp.panels.length > 0 && newProp.panels[0] instanceof Panel) {\n this.checkForIDValues(newProp.panels);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enableRtl':\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\n this.setEnableRtl();\n break;\n case 'mediaQuery':\n this.setProperties({ mediaQuery: newProp.mediaQuery }, true);\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n break;\n case 'allowDragging':\n this.setProperties({ allowDragging: newProp.allowDragging }, true);\n this.ensureDrag();\n break;\n case 'allowResizing':\n this.setProperties({ allowResizing: newProp.allowResizing }, true);\n if (this.allowResizing) {\n this.setClasses(this.panelCollection);\n this.resizeEvents();\n }\n else {\n var panelElements = this.element.querySelectorAll('.e-panel .e-panel-container .e-resize');\n for (var i = 0; i < panelElements.length; i++) {\n var eventName = (Browser.info.name === 'msie') ? 'mousedown pointerdown' : 'mousedown';\n var element = panelElements[i];\n EventHandler.remove(element, eventName, this.downResizeHandler);\n if (Browser.info.name !== 'msie') {\n EventHandler.remove(element, 'touchstart', this.touchDownResizeHandler);\n }\n }\n this.removeResizeClasses(this.panelCollection);\n }\n break;\n case 'cellSpacing':\n this.setProperties({ cellSpacing: newProp.cellSpacing }, true);\n if (!this.checkMediaQuery()) {\n this.updateCellSizeAndSpacing();\n this.updateGridLines();\n }\n break;\n case 'draggableHandle':\n this.setProperties({ draggableHandle: newProp.draggableHandle }, true);\n this.ensureDrag();\n break;\n case 'allowFloating':\n this.setProperties({ allowFloating: newProp.allowFloating }, true);\n this.moveItemsUpwards();\n break;\n case 'showGridLines':\n if (this.showGridLines) {\n this.setProperties({ showGridLines: newProp.showGridLines }, true);\n this.initGridLines();\n }\n else {\n if (this.table) {\n detach(this.table);\n }\n }\n break;\n case 'allowPushing':\n this.setProperties({ allowPushing: newProp.allowPushing }, true);\n break;\n case 'panels':\n if (!newProp.columns && !this.restrictDynamicUpdate && (newProp.panels[0] && newProp.panels.length > 0)) {\n this.isRenderComplete = false;\n this.updatePanelsDynamically(newProp.panels);\n this.isRenderComplete = true;\n }\n else if (!(newProp.panels[0] && newProp.panels.length)) {\n this.isRenderComplete = false;\n this.updatePanelsDynamically(this.panels);\n this.isRenderComplete = true;\n }\n else {\n this.restrictDynamicUpdate = false;\n }\n break;\n case 'columns':\n this.isRenderComplete = false;\n if (newProp.panels) {\n this.updatePanelsDynamically(newProp.panels);\n }\n this.setProperties({ columns: newProp.columns }, true);\n this.panelCollection = [];\n this.maxColumnValue = this.columns;\n this.calculateCellSize();\n this.panels.forEach(function (panel) {\n _this.setMinMaxValues(panel);\n if (_this.maxColumnValue < panel.col || _this.maxColumnValue < (panel.col + panel.sizeX)) {\n var colValue = _this.maxColumnValue - panel.sizeX;\n _this.panelPropertyChange(panel, { col: colValue < 0 ? 0 : colValue });\n _this.setXYAttributes(document.getElementById(panel.id), panel);\n }\n _this.setHeightAndWidth(document.getElementById(panel.id), panel);\n _this.panelCollection.push(document.getElementById(panel.id));\n _this.setPanelPosition(document.getElementById(panel.id), panel.row, panel.col);\n _this.mainElement = document.getElementById(panel.id);\n _this.updatePanelLayout(document.getElementById(panel.id), panel);\n _this.mainElement = null;\n });\n this.updatePanels();\n this.updateCloneArrayObject();\n this.isRenderComplete = true;\n this.updateGridLines();\n break;\n }\n }\n };\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns string\n * @private\n */\n DashboardLayout.prototype.getPersistData = function () {\n var keyEntity = ['panels'];\n return this.addOnPersist(keyEntity);\n };\n /* istanbul ignore next */\n DashboardLayout.prototype.mergePersistPanelData = function (persistedData) {\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNullOrUndefined(data) || (data === '')) || !isNullOrUndefined(persistedData)) {\n var dataObj = !isNullOrUndefined(persistedData) ? persistedData : JSON.parse(data);\n var keys = Object.keys(dataObj);\n this.isProtectedOnChange = true;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if ((typeof getValue(key, this) === 'object' && !isNullOrUndefined(getValue(key, this)))) {\n if (Array.isArray(getValue(key, this)) && key === 'panels') {\n this.mergePanels(dataObj[key], this[key]);\n this[key] = dataObj[key];\n }\n }\n }\n this.isProtectedOnChange = false;\n }\n };\n /* istanbul ignore next */\n DashboardLayout.prototype.mergePanels = function (sortedPanels, panels) {\n var storedColumns = sortedPanels;\n var _loop_6 = function (i) {\n this_4.checkForIDValues(panels);\n var localPanel = panels.filter(function (pan) { return pan.id === storedColumns[i].id; })[0];\n if (!isNullOrUndefined(localPanel)) {\n storedColumns[i] = extend(localPanel, storedColumns[i], {}, true);\n }\n };\n var this_4 = this;\n for (var i = 0; i < storedColumns.length; i++) {\n _loop_6(i);\n }\n };\n /**\n * Returns the current module name.\n *\n * @returns string\n *\n * @private\n */\n DashboardLayout.prototype.getModuleName = function () {\n return 'DashboardLayout';\n };\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"allowDragging\", void 0);\n __decorate([\n Property(false)\n ], DashboardLayout.prototype, \"allowResizing\", void 0);\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"allowPushing\", void 0);\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"allowFloating\", void 0);\n __decorate([\n Property(1)\n ], DashboardLayout.prototype, \"cellAspectRatio\", void 0);\n __decorate([\n Property([5, 5])\n ], DashboardLayout.prototype, \"cellSpacing\", void 0);\n __decorate([\n Property(1)\n ], DashboardLayout.prototype, \"columns\", void 0);\n __decorate([\n Property(false)\n ], DashboardLayout.prototype, \"showGridLines\", void 0);\n __decorate([\n Property(null)\n ], DashboardLayout.prototype, \"draggableHandle\", void 0);\n __decorate([\n Property('en-US')\n ], DashboardLayout.prototype, \"locale\", void 0);\n __decorate([\n Property('max-width: 600px')\n ], DashboardLayout.prototype, \"mediaQuery\", void 0);\n __decorate([\n Collection([], Panel)\n ], DashboardLayout.prototype, \"panels\", void 0);\n __decorate([\n Property(['e-south-east'])\n ], DashboardLayout.prototype, \"resizableHandles\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"resize\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"destroyed\", void 0);\n DashboardLayout = __decorate([\n NotifyPropertyChanges\n ], DashboardLayout);\n return DashboardLayout;\n}(Component));\nexport { DashboardLayout };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, ChildProperty, Collection, Event, NotifyPropertyChanges, Property, getUniqueID, attributes, select, compile, remove, removeClass, append, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar ITEMLISTCONTAINER = 'e-timeline-items';\nvar ITEMCONTAINER = 'e-timeline-item';\nvar OPPOSITECONTENT = 'e-opposite-content';\nvar DOTCONTAINER = 'e-dot-item';\nvar DOTCONTENT = 'e-dot';\nvar CONTENT = 'e-content';\nvar ITEMCONNECTOR = 'e-connector';\nvar VERTICAL = 'e-vertical';\nvar HORIZONTAL = 'e-horizontal';\nvar TIMELINEREVERSE = 'e-timeline-reverse';\nvar RTL = 'e-rtl';\nvar DISABLED = 'e-item-disabled';\nvar TEMPLATE = 'e-item-template';\n/**\n * Defines the orientation type of the Timeline.\n */\nexport var TimelineOrientation;\n(function (TimelineOrientation) {\n /**\n * Items are displayed horizontally.\n */\n TimelineOrientation[\"Horizontal\"] = \"Horizontal\";\n /**\n * Items are displayed vertically.\n */\n TimelineOrientation[\"Vertical\"] = \"Vertical\";\n})(TimelineOrientation || (TimelineOrientation = {}));\n/**\n * Specifies the alignment of item content within the Timeline.\n */\nexport var TimelineAlign;\n(function (TimelineAlign) {\n /**\n * Aligns item content to the top and opposite content to the bottom when the Timeline is in a horizontal orientation, or the content to the left and opposite content to the right when the Timeline is in a vertical orientation.\n */\n TimelineAlign[\"Before\"] = \"Before\";\n /**\n * Aligns item content to the bottom and opposite content to the top when the Timeline is in a horizontal orientation, or the content to the right and opposite content to the left when the Timeline is in a vertical orientation.\n */\n TimelineAlign[\"After\"] = \"After\";\n /**\n * Aligns item content alternatively, regardless of the Timeline's orientation.\n */\n TimelineAlign[\"Alternate\"] = \"Alternate\";\n /**\n * Aligns item content in alternate reverse, regardless of the Timeline's orientation.\n */\n TimelineAlign[\"AlternateReverse\"] = \"AlternateReverse\";\n})(TimelineAlign || (TimelineAlign = {}));\n/**\n * Specifies the items of the Timeline.\n */\nvar TimelineItem = /** @class */ (function (_super) {\n __extends(TimelineItem, _super);\n function TimelineItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"dotCss\", void 0);\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"oppositeContent\", void 0);\n __decorate([\n Property(false)\n ], TimelineItem.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"cssClass\", void 0);\n return TimelineItem;\n}(ChildProperty));\nexport { TimelineItem };\n/**\n * The Timeline component presents a series of events or activities in chronological order, allowing users to track the progression of time.\n *\n * ```html\n * <div id=\"timeline\"></div>\n * ```\n * ```typescript\n * <script>\n * let timelineObj: Timeline = new Timeline({items : [{}, {}, {}, {}, {}]});\n * timelineObj.appendTo('#timeline');\n * </script>\n * ```\n */\nvar Timeline = /** @class */ (function (_super) {\n __extends(Timeline, _super);\n /**\n * * Constructor for creating the Timeline component.\n *\n * @param {TimelineModel} options - Specifies the Timeline model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function Timeline(options, element) {\n return _super.call(this, options, element) || this;\n }\n Timeline.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Timeline.prototype.getModuleName = function () {\n return 'timeline';\n };\n /**\n * This method is abstract member of the Component<HTMLElement>.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n Timeline.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n Timeline.prototype.render = function () {\n attributes(this.element, { 'role': 'navigation', 'aria-label': this.element.id });\n this.timelineListEle = this.createElement('ol', { className: ITEMLISTCONTAINER });\n this.updateOrientation();\n this.updateCssClass(this.cssClass);\n this.updateAlign();\n this.updateReverse();\n this.updateRtl();\n this.updateTemplateFunction();\n this.renderItems();\n this.element.appendChild(this.timelineListEle);\n };\n Timeline.prototype.updateOrientation = function () {\n if (!(isNullOrUndefined(this.orientation))) {\n var orientation_1 = this.orientation.toLowerCase();\n if (orientation_1 === 'horizontal' || orientation_1 === 'vertical') {\n this.element.classList.remove(HORIZONTAL, VERTICAL);\n this.element.classList.add('e-' + orientation_1);\n }\n }\n };\n Timeline.prototype.updateCssClass = function (addCss, removeCss) {\n if (removeCss === void 0) { removeCss = ''; }\n var _a, _b;\n var cssClasses;\n if (removeCss) {\n cssClasses = removeCss.trim().split(' ');\n (_a = this.element.classList).remove.apply(_a, cssClasses);\n }\n if (addCss) {\n cssClasses = addCss.trim().split(' ');\n (_b = this.element.classList).add.apply(_b, cssClasses);\n }\n };\n Timeline.prototype.updateRtl = function () {\n this.element.classList[this.enableRtl ? 'add' : 'remove'](RTL);\n };\n Timeline.prototype.updateAlign = function () {\n if (!(isNullOrUndefined(this.align))) {\n var align = this.align.toLowerCase();\n if (align === 'before' || align === 'after' || align === 'alternate' || align === 'alternatereverse') {\n this.element.classList.remove('e-align-before', 'e-align-after', 'e-align-alternate', 'e-align-alternatereverse');\n this.element.classList.add('e-align-' + align);\n }\n }\n };\n Timeline.prototype.updateReverse = function () {\n this.element.classList[this.reverse ? 'add' : 'remove'](TIMELINEREVERSE);\n };\n Timeline.prototype.renderItems = function () {\n var _this = this;\n var _a;\n this.haveOneSidecontent();\n for (var index = 0; index < this.items.length; index++) {\n var item = this.items[parseInt(index.toString(), 10)];\n var timelineItem = this.createElement('li', { className: ITEMCONTAINER + ' ' + ITEMCONNECTOR });\n if (!this.template) {\n var oppositeTextEle = this.createElement('div', { className: OPPOSITECONTENT });\n if (item.oppositeContent) {\n this.updateItemContent(false, item, index, oppositeTextEle);\n }\n timelineItem.appendChild(oppositeTextEle);\n var dotContainer = this.createElement('div', { className: DOTCONTAINER });\n var dotEleCss = item.dotCss ? DOTCONTENT + ' ' + item.dotCss.trim() : DOTCONTENT;\n var dotEle = this.createElement('div', { className: dotEleCss });\n dotContainer.appendChild(dotEle);\n timelineItem.appendChild(dotContainer);\n var contentEle = this.createElement('div', { className: CONTENT });\n if (item.content) {\n this.updateItemContent(true, item, index, contentEle);\n }\n timelineItem.appendChild(contentEle);\n if (item.cssClass) {\n (_a = timelineItem.classList).add.apply(_a, item.cssClass.trim().split(' '));\n }\n if (item.disabled) {\n timelineItem.classList.add(DISABLED);\n }\n }\n else {\n this.renderItemContent(index, false, timelineItem);\n }\n var eventArgs = { element: timelineItem, index: index };\n this.trigger('beforeItemRender', eventArgs, function (args) { _this.timelineListEle.appendChild(args.element); });\n }\n };\n Timeline.prototype.haveOneSidecontent = function () {\n var haveContent = false;\n var haveOppContent = false;\n for (var index = 0; index < this.items.length; index++) {\n var item = this.items[parseInt(index.toString(), 10)];\n if (!haveContent) {\n (haveContent = item.content.length > 0 || !isNullOrUndefined(item.content));\n }\n if (!haveOppContent) {\n (haveOppContent = item.oppositeContent.length > 0 || !isNullOrUndefined(item.content));\n }\n }\n this.element.classList.remove('e-content-only', 'e-opposite-content-only');\n if (haveContent && !haveOppContent) {\n this.element.classList.add('e-content-only');\n }\n if (haveOppContent && !haveContent) {\n this.element.classList.add('e-opposite-content-only');\n }\n };\n Timeline.prototype.updateItemContent = function (isContent, item, index, contentEle) {\n var notCompile = !(this.isReact || this.isVue);\n var ctn = this.getTemplateFunction(isContent ? item.content : item.oppositeContent, notCompile);\n if (typeof ctn === 'string') {\n contentEle.innerText = ctn;\n }\n else {\n append(ctn({ item: item, itemIndex: index }, this), contentEle);\n }\n };\n Timeline.prototype.updateTemplateFunction = function () {\n this.templateFunction = this.template ? this.getTemplateFunction(this.template, false) : null;\n };\n Timeline.prototype.renderItemContent = function (index, isrerender, timelineItem) {\n var listItems = this.timelineListEle.querySelectorAll('li');\n if (isrerender) {\n this.removeItemContent(listItems[parseInt((index).toString(), 10)]);\n }\n if (this.template) {\n if (isrerender) {\n listItems[parseInt((index).toString(), 10)].classList.add(TEMPLATE);\n }\n else {\n timelineItem.classList.add(TEMPLATE);\n }\n var item = this.items[parseInt(index.toString(), 10)];\n append(this.templateFunction({ item: item, itemIndex: index }, this, 'timelineTemplate', (this.element.id + '_timelineTemplate'), this.isStringTemplate), isrerender ? listItems[parseInt((index).toString(), 10)] : timelineItem);\n }\n this.renderReactTemplates();\n };\n Timeline.prototype.removeItemContent = function (ele) {\n ele.classList.remove(TEMPLATE);\n var firstChild = ele.firstElementChild;\n for (var i = 0; i < ele.childElementCount; i++) {\n firstChild.remove();\n }\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @param {boolean} notCompile - Compile property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n Timeline.prototype.getTemplateFunction = function (template, notCompile) {\n if (notCompile === void 0) { notCompile = true; }\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n notCompile = false;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return notCompile ? content : compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n Timeline.prototype.removeItemElements = function () {\n var listItems = this.timelineListEle.querySelectorAll('li');\n for (var i = 0; i < listItems.length; i++) {\n remove(listItems[parseInt(i.toString(), 10)]);\n }\n };\n Timeline.prototype.updateElementClassArray = function () {\n var classArray = [RTL, 'e-align-before', 'e-align-after', 'e-outline', 'e-fill', 'e-align-alternate',\n 'e-align-alternatereverse', TIMELINEREVERSE, HORIZONTAL, VERTICAL];\n removeClass([this.element], classArray);\n };\n Timeline.prototype.updateContent = function () {\n if (this.isReact) {\n this.clearTemplate(['timelineTemplate']);\n }\n for (var i = 0; i < this.items.length; i++) {\n this.renderItemContent(i, true);\n }\n };\n Timeline.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n // unwires the events and detach the li elements\n this.removeItemElements();\n this.element.removeAttribute('role');\n this.element.removeAttribute('aria-label');\n this.clearTemplate();\n if (this.timelineListEle) {\n remove(this.timelineListEle);\n }\n this.timelineListEle = null;\n this.updateElementClassArray();\n };\n Timeline.prototype.updateItems = function (newProp, oldPropItems, index, item) {\n var _a, _b, _c, _d;\n var timelineItemElements = this.timelineListEle.querySelectorAll('li');\n var dotEle;\n var contentEle;\n var oppositeEle;\n switch (newProp) {\n case 'dotCss':\n dotEle = timelineItemElements[parseInt(index.toString(), 10)].querySelector('.' + DOTCONTENT);\n if (oldPropItems.dotCss !== '') {\n (_a = dotEle.classList).remove.apply(_a, oldPropItems.dotCss.trim().split(' '));\n }\n if (item.dotCss !== '') {\n (_b = dotEle.classList).add.apply(_b, this.items[parseInt(index.toString(), 10)].dotCss.trim().split(' '));\n }\n break;\n case 'content':\n contentEle = timelineItemElements[parseInt(index.toString(), 10)].querySelector('.' + CONTENT);\n contentEle.innerText = '';\n this.updateItemContent(true, item, index, contentEle);\n this.haveOneSidecontent();\n break;\n case 'oppositeContent':\n oppositeEle = timelineItemElements[parseInt(index.toString(), 10)].querySelector('.' + OPPOSITECONTENT);\n oppositeEle.innerText = '';\n this.updateItemContent(false, item, index, oppositeEle);\n this.haveOneSidecontent();\n break;\n case 'disabled':\n timelineItemElements[parseInt(index.toString(), 10)].classList[this.items[parseInt(index.toString(), 10)].disabled ? 'add' : 'remove'](DISABLED);\n break;\n case 'cssClass':\n if (oldPropItems.cssClass !== '') {\n (_c = timelineItemElements[parseInt(index.toString(), 10)].classList).remove.apply(_c, oldPropItems.cssClass.trim().split(' '));\n }\n if (item.cssClass !== '') {\n (_d = timelineItemElements[parseInt(index.toString(), 10)].classList).add.apply(_d, item.cssClass.trim().split(' '));\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {TimelineModel} newProp - Specifies new properties\n * @param {TimelineModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Timeline.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (Array.isArray(newProp.items)) {\n this.removeItemElements();\n this.renderItems();\n }\n else {\n var itemLength = Object.keys(newProp.items).length;\n for (var i = 0; i < itemLength; i++) {\n var itemPropLength = parseInt(Object.keys(newProp.items)[i], 10);\n for (var j = 0; j < Object.keys(newProp.items[itemPropLength]).length; j++) {\n var property = Object.keys(newProp.items[itemPropLength])[j];\n this.updateItems(property, oldProp.items[itemPropLength], itemPropLength, newProp.items[itemPropLength]);\n }\n }\n }\n break;\n case 'orientation':\n this.updateOrientation();\n break;\n case 'align':\n this.updateAlign();\n break;\n case 'enableRtl':\n this.updateRtl();\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'reverse':\n this.element.classList[this.reverse ? 'add' : 'remove'](TIMELINEREVERSE);\n break;\n case 'template':\n this.updateTemplateFunction();\n this.updateContent();\n break;\n }\n }\n };\n __decorate([\n Property(TimelineOrientation.Vertical)\n ], Timeline.prototype, \"orientation\", void 0);\n __decorate([\n Property(TimelineAlign.After)\n ], Timeline.prototype, \"align\", void 0);\n __decorate([\n Collection([], TimelineItem)\n ], Timeline.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], Timeline.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Timeline.prototype, \"reverse\", void 0);\n __decorate([\n Property('')\n ], Timeline.prototype, \"template\", void 0);\n __decorate([\n Event()\n ], Timeline.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Timeline.prototype, \"beforeItemRender\", void 0);\n Timeline = __decorate([\n NotifyPropertyChanges\n ], Timeline);\n return Timeline;\n}(Component));\nexport { Timeline };\n"],"names":["this","__extends","__decorate","setStyle","RTL","DISABLED"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-layouts.es5.js","sources":["../../src/splitter/splitter.js","../../src/dashboard-layout/dashboard-layout.js","../../src/timeline/timeline.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, setStyleAttribute, ChildProperty, compile } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, addClass, Collection, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, selectAll, removeClass, select, Browser, detach, formatUnit } from '@syncfusion/ej2-base';\nimport { SanitizeHtmlHelper, extend } from '@syncfusion/ej2-base';\nvar ROOT = 'e-splitter';\nvar HORIZONTAL_PANE = 'e-splitter-horizontal';\nvar VERTICAL_PANE = 'e-splitter-vertical';\nvar PANE = 'e-pane';\nvar SPLIT_H_PANE = 'e-pane-horizontal';\nvar SPLIT_V_PANE = 'e-pane-vertical';\nvar SPLIT_BAR = 'e-split-bar';\nvar SPLIT_H_BAR = 'e-split-bar-horizontal';\nvar SPLIT_V_BAR = 'e-split-bar-vertical';\nvar STATIC_PANE = 'e-static-pane';\nvar SCROLL_PANE = 'e-scrollable';\nvar RESIZE_BAR = 'e-resize-handler';\nvar RESIZABLE_BAR = 'e-resizable-split-bar';\nvar SPLIT_BAR_HOVER = 'e-split-bar-hover';\nvar SPLIT_BAR_ACTIVE = 'e-split-bar-active';\nvar HIDE_HANDLER = 'e-hide-handler';\nvar SPLIT_TOUCH = 'e-splitter-touch';\nvar DISABLED = 'e-disabled';\nvar RTL = 'e-rtl';\nvar E_ICONS = 'e-icons';\nvar COLLAPSIBLE = 'e-collapsible';\nvar NAVIGATE_ARROW = 'e-navigate-arrow';\nvar ARROW_RIGHT = 'e-arrow-right';\nvar ARROW_LEFT = 'e-arrow-left';\nvar ARROW_UP = 'e-arrow-up';\nvar ARROW_DOWN = 'e-arrow-down';\nvar HIDE_ICON = 'e-icon-hidden';\nvar EXPAND_PANE = 'e-expanded';\nvar COLLAPSE_PANE = 'e-collapsed';\nvar PANE_HIDDEN = 'e-pane-hidden';\nvar RESIZABLE_PANE = 'e-resizable';\nvar LAST_BAR = 'e-last-bar';\nvar BAR_SIZE_DEFAULT = 1;\n/**\n * Interface to configure pane properties such as its content, size, min, max, resizable, collapsed and collapsible.\n */\nvar PaneProperties = /** @class */ (function (_super) {\n __extends(PaneProperties, _super);\n function PaneProperties() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], PaneProperties.prototype, \"size\", void 0);\n __decorate([\n Property(false)\n ], PaneProperties.prototype, \"collapsible\", void 0);\n __decorate([\n Property(false)\n ], PaneProperties.prototype, \"collapsed\", void 0);\n __decorate([\n Property(true)\n ], PaneProperties.prototype, \"resizable\", void 0);\n __decorate([\n Property(null)\n ], PaneProperties.prototype, \"min\", void 0);\n __decorate([\n Property(null)\n ], PaneProperties.prototype, \"max\", void 0);\n __decorate([\n Property()\n ], PaneProperties.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], PaneProperties.prototype, \"cssClass\", void 0);\n return PaneProperties;\n}(ChildProperty));\nexport { PaneProperties };\n/**\n * Splitter is a layout user interface (UI) control that has resizable and collapsible split panes.\n * The container can be split into multiple panes, which are oriented horizontally or vertically.\n * The separator (divider) splits the panes and resizes and expands/collapses the panes.\n * The splitter is placed inside the split pane to make a nested layout user interface.\n *\n * ```html\n * <div id=\"splitter\">\n * <div> Left Pane </div>\n * <div> Center Pane </div>\n * <div> Right Pane </div>\n * </div>\n * ```\n * ```typescript\n * <script>\n * var splitterObj = new Splitter({ width: '300px', height: '200px'});\n * splitterObj.appendTo('#splitter');\n * </script>\n * ```\n */\nvar Splitter = /** @class */ (function (_super) {\n __extends(Splitter, _super);\n /**\n * Initializes a new instance of the Splitter class.\n *\n * @param options - Specifies Splitter model properties as options.\n * @param element - Specifies the element that is rendered as an Splitter.\n */\n function Splitter(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {SplitterModel} newProp - specifies the new property\n * @param {SplitterModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n Splitter.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'height':\n this.setSplitterSize(this.element, newProp.height, 'height');\n break;\n case 'width':\n this.setSplitterSize(this.element, newProp.width, 'width');\n break;\n case 'cssClass':\n this.setCssClass(this.element, newProp.cssClass);\n break;\n case 'enabled':\n this.isEnabled(this.enabled);\n break;\n case 'enableReversePanes':\n this.setReversePane();\n break;\n case 'separatorSize':\n this.setSeparatorSize(newProp.separatorSize);\n break;\n case 'orientation':\n this.changeOrientation(newProp.orientation);\n break;\n case 'paneSettings': {\n if (!(newProp.paneSettings instanceof Array && oldProp.paneSettings instanceof Array)) {\n var paneCounts = Object.keys(newProp.paneSettings);\n var isPaneContentChanged = paneCounts.some(function (count) {\n return !isNullOrUndefined(newProp.paneSettings[count].content);\n });\n if (this.isReact && isPaneContentChanged) {\n var cPaneCount = 0;\n for (var k = 0; k < this.paneSettings.length; k++) {\n if (typeof (this.paneSettings[k].content) === 'function') {\n cPaneCount = cPaneCount + 1;\n }\n }\n var hasAllContent = cPaneCount === this.paneSettings.length;\n if (hasAllContent) {\n this.clearTemplate();\n }\n }\n for (var i = 0; i < paneCounts.length; i++) {\n var index = parseInt(Object.keys(newProp.paneSettings)[i], 10);\n var changedPropsCount = Object.keys(newProp.paneSettings[index]).length;\n for (var j = 0; j < changedPropsCount; j++) {\n var property = Object.keys(newProp.paneSettings[index])[j];\n switch (property) {\n case 'content': {\n var newValue = Object(newProp.paneSettings[index])[\"\" + property];\n if (!isNullOrUndefined(newValue)) {\n this.allPanes[index].innerHTML = '';\n this.setTemplate(newValue, this.allPanes[index]);\n }\n break;\n }\n case 'resizable': {\n var newVal = Object(newProp.paneSettings[index])[\"\" + property];\n this.resizableModel(index, newVal);\n break;\n }\n case 'collapsible':\n this.collapsibleModelUpdate(index);\n break;\n case 'collapsed':\n if (newProp.paneSettings[index].collapsed) {\n this.isCollapsed(index);\n }\n else {\n this.collapsedOnchange(index);\n }\n break;\n case 'cssClass':\n this.setCssClass(this.allPanes[index], newProp.paneSettings[index].cssClass);\n break;\n case 'size': {\n var newValSize = Object(newProp.paneSettings[index])[\"\" + property];\n if (newValSize !== '' && !isNullOrUndefined(newValSize)) {\n this.updatePaneSize(newValSize, index);\n }\n break;\n }\n }\n }\n }\n }\n else {\n this.clearTemplate();\n this.destroyPaneSettings();\n this.allBars = [];\n this.allPanes = [];\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setRTL(this.enableRtl);\n this.isCollapsed();\n }\n break;\n }\n case 'enableRtl':\n this.setRTL(newProp.enableRtl);\n break;\n }\n }\n };\n Splitter.prototype.updatePaneSize = function (newValSize, index) {\n this.allPanes[index].style.flexBasis = newValSize;\n var flexPaneIndexes = [];\n var staticPaneWidth;\n var flexCount = 0;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.paneSettings[i].size && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n else if (this.paneSettings[i].size) {\n staticPaneWidth = this.orientation === 'Horizontal' ? this.allPanes[index].offsetWidth : this.allPanes[index].offsetHeight;\n }\n }\n staticPaneWidth = this.orientation === 'Horizontal' ? (this.allBars[0].offsetWidth * this.allBars.length) + staticPaneWidth :\n (this.allBars[0].offsetHeight * this.allBars.length) + staticPaneWidth;\n var flexPaneWidth = (this.orientation === 'Horizontal' ? this.element.offsetWidth : this.element.offsetHeight)\n - staticPaneWidth - (this.border * 2);\n var avgDiffWidth = flexPaneWidth / flexPaneIndexes.length;\n for (var j = 0; j < flexPaneIndexes.length; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = avgDiffWidth + 'px';\n }\n }\n this.allPanes[index].classList.add(STATIC_PANE);\n };\n Splitter.prototype.initializeValues = function () {\n this.allPanes = [];\n this.paneOrder = [];\n this.separatorOrder = [];\n this.allBars = [];\n this.previousCoordinates = {};\n this.currentCoordinates = {};\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n this.panesDimensions = [];\n this.border = 0;\n this.validDataAttributes = ['data-size', 'data-min', 'data-max', 'data-collapsible',\n 'data-resizable', 'data-content', 'data-collapsed'];\n this.validElementAttributes = ['data-orientation', 'data-width', 'data-height'];\n this.iconsDelay = 300;\n this.templateElement = [];\n this.collapseFlag = false;\n this.expandFlag = true;\n };\n Splitter.prototype.preRender = function () {\n this.initializeValues();\n this.onReportWindowSize = this.reportWindowSize.bind(this);\n this.onMouseMoveHandler = this.onMouseMove.bind(this);\n this.onMouseUpHandler = this.onMouseUp.bind(this);\n this.onTouchMoveHandler = this.onMouseMove.bind(this);\n this.onTouchEndHandler = this.onMouseUp.bind(this);\n this.wrapper = this.element.cloneNode(true);\n this.wrapperParent = this.element.parentElement;\n removeClass([this.wrapper], ['e-control', 'e-lib', ROOT]);\n var orientation = this.orientation === 'Horizontal' ? HORIZONTAL_PANE : VERTICAL_PANE;\n addClass([this.element], orientation);\n var name = Browser.info.name;\n var css = (name === 'msie') ? 'e-ie' : '';\n this.setCssClass(this.element, css);\n if (Browser.isDevice) {\n addClass([this.element], SPLIT_TOUCH);\n }\n };\n Splitter.prototype.getPersistData = function () {\n return this.addOnPersist(['paneSettings']);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - returns the string value\n * @private\n */\n Splitter.prototype.getModuleName = function () {\n return 'splitter';\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Splitter.prototype.render = function () {\n this.checkDataAttributes();\n this.setCssClass(this.element, this.cssClass);\n this.isEnabled(this.enabled);\n this.setDimension(this.getHeight(this.element), this.getWidth(this.element));\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setPaneSettings();\n this.setRTL(this.enableRtl);\n if (this.enableReversePanes) {\n this.setReversePane();\n }\n this.collapseFlag = true;\n this.isCollapsed();\n this.collapseFlag = false;\n EventHandler.add(document, 'touchstart click', this.onDocumentClick, this);\n this.renderComplete();\n this.element.ownerDocument.defaultView.addEventListener('resize', this.onReportWindowSize, true);\n EventHandler.add(this.element, 'keydown', this.onMove, this);\n };\n Splitter.prototype.onDocumentClick = function (e) {\n if (!e.target.classList.contains(SPLIT_BAR) && !isNullOrUndefined(this.currentSeparator)) {\n this.currentSeparator.classList.remove(SPLIT_BAR_HOVER);\n this.currentSeparator.classList.remove(SPLIT_BAR_ACTIVE);\n }\n };\n Splitter.prototype.checkPaneSize = function (e) {\n var prePaneSize = this.orientation === 'Horizontal' ? this.previousPane.offsetWidth : this.previousPane.offsetHeight;\n var nextPaneSize = this.orientation === 'Horizontal' ? this.nextPane.offsetWidth : this.nextPane.offsetHeight;\n var splitBarSize = isNullOrUndefined(this.separatorSize) ? BAR_SIZE_DEFAULT : this.separatorSize;\n if ((this.previousPane.style.flexBasis.indexOf('%') > 0 || this.previousPane.style.flexBasis.indexOf('p') > 0 || this.nextPane.style.flexBasis.indexOf('%') > 0)) {\n var previousFlexBasis = this.updatePaneFlexBasis(this.previousPane);\n var nextFlexBasis = this.updatePaneFlexBasis(this.nextPane);\n this.totalPercent = previousFlexBasis + nextFlexBasis;\n this.totalWidth = this.convertPercentageToPixel(this.totalPercent + '%');\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) <\n this.convertPercentageToPixel((nextFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis + 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis - 1) + '%';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) <\n this.convertPercentageToPixel((previousFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis - 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis + 1) + '%';\n }\n }\n }\n else {\n this.totalWidth = (this.orientation === 'Horizontal') ? this.previousPane.offsetWidth + this.nextPane.offsetWidth :\n this.previousPane.offsetHeight + this.nextPane.offsetHeight;\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) < (nextPaneSize + splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize + splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize < splitBarSize) ? '0px' :\n (nextPaneSize - splitBarSize) + 'px';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) < (prePaneSize - splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize < splitBarSize) ? '0px' :\n (prePaneSize - splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize + splitBarSize) + 'px';\n }\n }\n }\n };\n Splitter.prototype.onMove = function (event) {\n if (this.allPanes.length > 1) {\n var index = this.getSeparatorIndex(this.currentSeparator);\n var isPrevpaneCollapsed = this.previousPane.classList.contains(COLLAPSE_PANE);\n var isPrevpaneExpanded = this.previousPane.classList.contains(EXPAND_PANE);\n var isNextpaneCollapsed = this.nextPane.classList.contains(COLLAPSE_PANE);\n if (((this.orientation !== 'Horizontal' && event.keyCode === 38) || (this.orientation === 'Horizontal' &&\n event.keyCode === 39) ||\n (this.orientation === 'Horizontal' && event.keyCode === 37) || (this.orientation !== 'Horizontal' && event.keyCode === 40))\n && (!isPrevpaneExpanded && !isNextpaneCollapsed && !isPrevpaneCollapsed || (isPrevpaneExpanded) && !isNextpaneCollapsed) &&\n document.activeElement.classList.contains(SPLIT_BAR) && (this.paneSettings[index].resizable &&\n this.paneSettings[index + 1].resizable)) {\n event.preventDefault();\n this.checkPaneSize(event);\n this.triggerResizing(event);\n }\n else if (event.keyCode === 13 && this.paneSettings[index].collapsible &&\n document.activeElement.classList.contains(SPLIT_BAR) && this.currentSeparator.classList.contains(SPLIT_BAR_ACTIVE)) {\n if (!this.previousPane.classList.contains(COLLAPSE_PANE)) {\n this.collapse(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n else {\n this.expand(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n }\n }\n };\n Splitter.prototype.getMinInPixel = function (minValue) {\n if (isNullOrUndefined(minValue)) {\n return 0;\n }\n var paneMinRange = this.convertPixelToNumber(minValue.toString());\n if (minValue.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(minValue);\n }\n var min = this.convertPixelToNumber((paneMinRange).toString());\n return min;\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {string} returns the string\n * @hidden\n */\n Splitter.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNullOrUndefined(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n Splitter.prototype.checkDataAttributes = function () {\n var api;\n var value;\n // Element values\n for (var dataIndex = 0; dataIndex < this.validElementAttributes.length; dataIndex++) {\n value = this.element.getAttribute(this.validElementAttributes[dataIndex]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validElementAttributes[dataIndex]);\n // eslint-disable-next-line\n this[api] = value;\n }\n }\n // Pane values\n for (var paneIndex = 0; paneIndex < this.element.children.length; paneIndex++) {\n for (var dataAttr = 0; dataAttr < this.validDataAttributes.length; dataAttr++) {\n value = this.element.children[paneIndex].getAttribute(this.validDataAttributes[dataAttr]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validDataAttributes[dataAttr]);\n value = (api === 'collapsible' || api === 'resizable') ? (value === 'true') : value;\n if (isNullOrUndefined(this.paneSettings[paneIndex])) {\n this.paneSettings[paneIndex] = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsible: false,\n collapsed: false\n };\n }\n // eslint-disable-next-line\n var paneAPI = this.paneSettings[paneIndex][api];\n if (api === 'resizable' || api === 'collapsible' || api === 'collapsed') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n if (isNullOrUndefined(paneAPI) || paneAPI === '') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n }\n }\n }\n };\n Splitter.prototype.destroyPaneSettings = function () {\n [].slice.call(this.element.children).forEach(function (el) {\n detach(el);\n });\n this.restoreElem();\n };\n Splitter.prototype.setPaneSettings = function () {\n var childCount = this.allPanes.length;\n var paneCollection = [];\n var paneValue = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsed: false,\n collapsible: false,\n cssClass: ''\n };\n for (var i = 0; i < childCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i])) {\n paneCollection[i] = paneValue;\n }\n else {\n paneCollection[i] = this.paneSettings[i];\n }\n }\n this.setProperties({ 'paneSettings': paneCollection }, true);\n };\n Splitter.prototype.checkArrow = function (paneIndex, targetArrow) {\n return (this.allBars[paneIndex].querySelector('.' + NAVIGATE_ARROW + '.' + targetArrow));\n };\n Splitter.prototype.removeDataPrefix = function (attribute) {\n return attribute.slice(attribute.lastIndexOf('-') + 1);\n };\n Splitter.prototype.setRTL = function (rtl) {\n if (rtl) {\n addClass([this.element], RTL);\n }\n else {\n removeClass([this.element], RTL);\n }\n };\n Splitter.prototype.setReversePane = function () {\n this.allPanes = this.allPanes.reverse();\n this.allBars = this.allBars.reverse();\n addClass([this.allBars[this.allBars.length - 1]], LAST_BAR);\n removeClass([this.allBars[0]], LAST_BAR);\n this.setProperties({ 'paneSettings': this.paneSettings.reverse() }, true);\n if (this.enableReversePanes) {\n this.element.setAttribute('dir', 'rtl');\n }\n else {\n this.element.removeAttribute('dir');\n }\n };\n Splitter.prototype.setSplitterSize = function (element, size, property) {\n var style = property === 'width' ? { 'width': formatUnit(size) } : { 'height': formatUnit(size) };\n setStyleAttribute(element, style);\n };\n Splitter.prototype.getPanesDimensions = function () {\n for (var index = 0; index < this.allPanes.length; index++) {\n if (this.orientation === 'Horizontal') {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().width);\n }\n else {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().height);\n }\n }\n };\n Splitter.prototype.setCssClass = function (element, className) {\n if (className) {\n addClass([element], className.split(className.indexOf(',') > -1 ? ',' : ' '));\n }\n };\n Splitter.prototype.hideResizer = function (target) {\n addClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n };\n Splitter.prototype.showResizer = function (target) {\n if (!isNullOrUndefined(this.previousPane) && this.previousPane.classList.contains(RESIZABLE_PANE) &&\n !isNullOrUndefined(this.nextPane) && this.nextPane.classList.contains(RESIZABLE_PANE)) {\n removeClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n }\n };\n Splitter.prototype.resizableModel = function (index, newVal) {\n var paneIndex = (index === (this.allBars.length)) ? (index - 1) : index;\n var i = index;\n EventHandler.remove(this.allBars[paneIndex], 'mousedown', this.onMouseDown);\n if (newVal) {\n EventHandler.add(this.allBars[paneIndex], 'mousedown', this.onMouseDown, this);\n if (this.isResizable()) {\n this.showResizer(this.allBars[paneIndex]);\n removeClass([select('.' + RESIZE_BAR, this.allBars[paneIndex])], HIDE_HANDLER);\n this.allBars[paneIndex].classList.add(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.add(RESIZABLE_PANE);\n }\n this.updateResizablePanes(i);\n }\n }\n else {\n this.updateResizablePanes(i);\n this.hideResizer(this.allBars[paneIndex]);\n this.allBars[paneIndex].classList.remove(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.remove(RESIZABLE_PANE);\n }\n }\n };\n Splitter.prototype.collapsibleModelUpdate = function (index) {\n var paneIndex = index === (this.allBars.length) ? (index - 1) : index;\n var arrow2 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_LEFT) : this.checkArrow(paneIndex, ARROW_UP);\n var arrow1 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_RIGHT) : this.checkArrow(paneIndex, ARROW_DOWN);\n this.paneCollapsible(this.allPanes[index], index);\n this.updateCollapseIcons(paneIndex, arrow1, arrow2);\n };\n Splitter.prototype.collapseArrow = function (barIndex, arrow) {\n return selectAll('.' + arrow, this.allBars[barIndex])[0];\n };\n Splitter.prototype.updateIsCollapsed = function (index, collapseArrow, lastBarArrow) {\n if (!isNullOrUndefined(index)) {\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, lastBarArrow) : this.collapseArrow(barIndex, collapseArrow);\n }\n targetEle.click();\n }\n };\n Splitter.prototype.isCollapsed = function (index) {\n var _this = this;\n if (!isNullOrUndefined(index) && this.paneSettings[index].collapsed\n && isNullOrUndefined(this.allPanes[index].classList.contains(COLLAPSE_PANE))) {\n return;\n }\n this.expandFlag = false;\n if (!isNullOrUndefined(index)) {\n this.collapseFlag = true;\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, this.targetArrows().lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, this.targetArrows().lastBarArrow) :\n this.collapseArrow(barIndex, this.targetArrows().collapseArrow);\n }\n var event_1 = { target: targetEle };\n var eventArgs = this.beforeAction(event_1);\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n var collapsedindex = [];\n collapsedindex[0] = index;\n var j = 1;\n for (var i = 0; i < _this.allPanes.length; i++) {\n if (_this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n collapsedindex[j] = i;\n j++;\n }\n }\n collapsedindex = collapsedindex.sort();\n _this.updateIsCollapsed(index, _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n for (var i = 0; i < collapsedindex.length; i++) {\n if (!_this.allPanes[collapsedindex[i]].classList.contains(COLLAPSE_PANE)) {\n _this.updateIsCollapsed(collapsedindex[i], _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n }\n }\n for (var i = collapsedindex.length; i > 0; i--) {\n if (!_this.allPanes[collapsedindex[i - 1]].classList.contains(COLLAPSE_PANE)) {\n var targetArrow = _this.targetArrows();\n _this.updateIsCollapsed(collapsedindex[i - 1], targetArrow.collapseArrow, targetArrow.lastBarArrow);\n }\n }\n var collapseEventArgs = _this.afterAction(event_1);\n _this.trigger('collapsed', collapseEventArgs);\n _this.collapseFlag = false;\n }\n });\n }\n else {\n for (var m = 0; m < this.allPanes.length; m++) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed) {\n this.updateIsCollapsed(m, this.targetArrows().collapseArrow, this.targetArrows().lastBarArrow);\n }\n }\n for (var m = this.allPanes.length - 1; m >= 0; m--) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed &&\n !this.allPanes[m].classList.contains(COLLAPSE_PANE)) {\n var collapseArrow = this.orientation === 'Horizontal' ? ARROW_RIGHT : ARROW_DOWN;\n if (m !== 0) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n if (!this.nextPane.classList.contains(COLLAPSE_PANE)) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n }\n }\n }\n this.expandFlag = true;\n };\n Splitter.prototype.targetArrows = function () {\n this.splitterProperty();\n return {\n collapseArrow: (this.orientation === 'Horizontal') ? ARROW_LEFT : ARROW_UP,\n lastBarArrow: (this.orientation === 'Vertical') ? ARROW_DOWN : ARROW_RIGHT\n };\n };\n Splitter.prototype.collapsedOnchange = function (index) {\n if (!isNullOrUndefined(this.paneSettings[index]) && !isNullOrUndefined(this.paneSettings[index].collapsed)\n && this.allPanes[index].classList.contains(COLLAPSE_PANE)) {\n this.updateIsCollapsed(index, this.targetArrows().lastBarArrow, this.targetArrows().collapseArrow);\n }\n };\n Splitter.prototype.isEnabled = function (enabled) {\n if (enabled) {\n removeClass([this.element], DISABLED);\n }\n else {\n addClass([this.element], DISABLED);\n }\n };\n Splitter.prototype.setSeparatorSize = function (size) {\n var sizeValue = isNullOrUndefined(size) ? 'auto' : size + 'px';\n var separator = this.orientation === 'Horizontal' ? SPLIT_H_BAR : SPLIT_V_BAR;\n for (var index = 0; index < this.allBars.length; index++) {\n var splitBar = selectAll('.' + separator, this.element)[index];\n var resizeBar = selectAll('.' + RESIZE_BAR, splitBar)[0];\n if (this.orientation === 'Horizontal') {\n splitBar.style.width = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.width = sizeValue;\n }\n }\n else {\n splitBar.style.height = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.height = sizeValue;\n }\n }\n }\n };\n Splitter.prototype.changeOrientation = function (orientation) {\n var isVertical = orientation === 'Vertical';\n this.element.classList.remove(isVertical ? HORIZONTAL_PANE : VERTICAL_PANE);\n this.element.classList.add(isVertical ? VERTICAL_PANE : HORIZONTAL_PANE);\n for (var index = 0; index < this.allPanes.length; index++) {\n this.allPanes[index].classList.remove(isVertical ? SPLIT_H_PANE : SPLIT_V_PANE);\n this.allPanes[index].classList.add(isVertical ? SPLIT_V_PANE : SPLIT_H_PANE);\n }\n for (var index = 0; index < this.allBars.length; index++) {\n detach(this.allBars[index]);\n }\n this.allBars = [];\n this.addSeparator(this.element);\n };\n Splitter.prototype.checkSplitPane = function (currentBar, elementIndex) {\n var paneEle = this.collectPanes(currentBar.parentElement.children)[elementIndex];\n return paneEle;\n };\n Splitter.prototype.collectPanes = function (childNodes) {\n var elements = [];\n for (var i = 0; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(PANE)) {\n elements.push(childNodes[i]);\n }\n }\n return elements;\n };\n Splitter.prototype.getPrevPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order + 1) : this.getOrderPane(order - 1);\n };\n Splitter.prototype.getNextPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order - 1) : this.getOrderPane(order + 1);\n };\n Splitter.prototype.getOrderPane = function (order) {\n var pane;\n for (var i = 0; i < this.element.children.length; i++) {\n if (parseInt(this.element.children[i].style.order, 10) === order) {\n pane = this.element.children[i];\n }\n }\n return pane;\n };\n Splitter.prototype.getOrderIndex = function (order, type) {\n var index;\n var panes;\n if (type === 'pane') {\n panes = this.allPanes;\n }\n else {\n panes = this.allBars;\n }\n for (var i = 0; i < panes.length; i++) {\n if (parseInt(panes[i].style.order, 10) === order) {\n index = i;\n }\n }\n return index;\n };\n Splitter.prototype.updateSeparatorSize = function (resizeHanlder) {\n var sizeValue = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n if (this.orientation === 'Horizontal') {\n resizeHanlder.style.width = sizeValue;\n }\n else {\n resizeHanlder.style.height = sizeValue;\n }\n };\n Splitter.prototype.addResizeHandler = function (currentBar) {\n var resizeHanlder = this.createElement('div');\n addClass([resizeHanlder], [RESIZE_BAR, E_ICONS]);\n this.updateSeparatorSize(resizeHanlder);\n currentBar.appendChild(resizeHanlder);\n };\n Splitter.prototype.getHeight = function (target) {\n var height = this.height;\n height = target.style.height !== '' && this.height === '100%' ? target.style.height : this.height;\n return height;\n };\n Splitter.prototype.getWidth = function (target) {\n var width = this.width;\n width = target.style.width !== '' && this.width === '100%' ? target.style.width : this.width;\n return width;\n };\n Splitter.prototype.setDimension = function (height, width) {\n setStyleAttribute(this.element, { 'height': height, 'width': width });\n };\n Splitter.prototype.updateCollapseIcons = function (index, arrow1, arrow2) {\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].collapsible)) {\n if (this.paneSettings[index].collapsible) {\n removeClass([arrow2], [HIDE_ICON]);\n }\n else {\n addClass([arrow2], [HIDE_ICON]);\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if ((this.paneSettings[index + 1].collapsible)) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n }\n }\n }\n };\n Splitter.prototype.updateIconClass = function () {\n if (this.orientation === 'Horizontal') {\n this.leftArrow = ARROW_LEFT;\n this.rightArrow = ARROW_RIGHT;\n }\n else {\n this.leftArrow = ARROW_UP;\n this.rightArrow = ARROW_DOWN;\n }\n };\n Splitter.prototype.createSeparator = function (i) {\n var separator = this.createElement('div');\n this.allBars.push(separator);\n var arrow1 = this.createElement('button');\n var arrow2 = this.createElement('button');\n arrow1.setAttribute('tabindex', '-1');\n arrow2.setAttribute('tabindex', '-1');\n arrow1.setAttribute('aria-label', 'Toggle navigation');\n arrow2.setAttribute('aria-label', 'Toggle navigation');\n arrow1.setAttribute('type', 'button');\n arrow2.setAttribute('type', 'button');\n var size = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n var proxy = null || this;\n if (this.orientation === 'Horizontal') {\n this.updateIconClass();\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_LEFT, HIDE_ICON]);\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_RIGHT, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_H_BAR]);\n separator.style.width = size;\n }\n else {\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_DOWN, HIDE_ICON]);\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_UP, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_V_BAR]);\n this.updateIconClass();\n separator.style.height = size;\n }\n this.addMouseActions(separator);\n separator.appendChild(arrow2);\n this.addResizeHandler(separator);\n separator.appendChild(arrow1);\n this.updateCollapseIcons(i, arrow1, arrow2);\n separator.setAttribute('tabindex', '-1');\n separator.setAttribute('aria-hidden', 'true');\n if (this.enableReversePanes) {\n separator.setAttribute('dir', 'ltr');\n }\n else {\n separator.removeAttribute('dir');\n }\n separator.addEventListener('focus', function () {\n separator.classList.add(SPLIT_BAR_ACTIVE);\n proxy.currentSeparator = separator;\n proxy.getPaneDetails();\n });\n separator.addEventListener('blur', function () {\n separator.classList.remove(SPLIT_BAR_ACTIVE);\n });\n return separator;\n };\n Splitter.prototype.updateResizablePanes = function (index) {\n this.getPaneDetails();\n if (this.isResizable()) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n };\n Splitter.prototype.addSeparator = function (target) {\n var childCount = this.allPanes.length;\n var clonedEle = target.children;\n var separator;\n for (var i = 0; i < childCount; i++) {\n if (i < childCount - 1) {\n separator = this.createSeparator(i);\n setStyleAttribute(separator, { 'order': (i * 2) + 1 });\n this.separatorOrder.push((i * 2) + 1);\n clonedEle[i].parentNode.appendChild(separator);\n this.currentSeparator = separator;\n separator.setAttribute('role', 'separator');\n separator.setAttribute('aria-valuenow', i.toString());\n if (!isNullOrUndefined(this.orientation)) {\n separator.setAttribute('aria-orientation', this.orientation.toLowerCase());\n }\n this.wireClickEvents();\n if (!isNullOrUndefined(separator)) {\n if (this.isResizable()) {\n EventHandler.add(separator, 'mousedown', this.onMouseDown, this);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(separator, eventName, this.onMouseDown, this);\n separator.classList.add(RESIZABLE_BAR);\n this.updateResizablePanes(i);\n }\n else {\n addClass([select('.' + RESIZE_BAR, separator)], HIDE_HANDLER);\n }\n }\n }\n else {\n if (separator) {\n addClass([separator], LAST_BAR);\n }\n if (childCount > 1) {\n this.updateResizablePanes(i);\n }\n }\n }\n if (Browser.info.name === 'msie') {\n var allBar = this.element.querySelectorAll('.e-splitter .e-resize-handler');\n for (var i = 0; i < allBar.length; i++) {\n var sepSize = isNullOrUndefined(this.separatorSize) ? 1 : this.separatorSize;\n allBar[i].style.paddingLeft = sepSize / 2 + 'px';\n allBar[i].style.paddingRight = sepSize / 2 + 'px';\n }\n }\n };\n Splitter.prototype.isResizable = function () {\n var resizable = false;\n if ((!isNullOrUndefined(this.paneSettings[this.getPreviousPaneIndex()]) &&\n this.paneSettings[this.getPreviousPaneIndex()].resizable &&\n !isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()]) &&\n this.paneSettings[this.getNextPaneIndex()].resizable) ||\n isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()])) {\n resizable = true;\n }\n return resizable;\n };\n Splitter.prototype.addMouseActions = function (separator) {\n var _this = this;\n var sTout;\n var hoverTimeOut;\n separator.addEventListener('mouseenter', function () {\n /* istanbul ignore next */\n sTout = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n }, _this.iconsDelay);\n });\n separator.addEventListener('mouseleave', function () {\n clearTimeout(sTout);\n removeClass([separator], [SPLIT_BAR_HOVER]);\n });\n separator.addEventListener('mouseout', function () {\n clearTimeout(hoverTimeOut);\n });\n separator.addEventListener('mouseover', function () {\n /* istanbul ignore next */\n hoverTimeOut = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n });\n });\n };\n Splitter.prototype.getEventType = function (e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n };\n Splitter.prototype.updateCurrentSeparator = function (target) {\n this.currentSeparator = this.isSeparator(target) ? target.parentElement : target;\n };\n Splitter.prototype.isSeparator = function (target) {\n return (target.classList.contains(SPLIT_BAR) ? false : true);\n };\n Splitter.prototype.isMouseEvent = function (e) {\n var isMouse = false;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType) &&\n this.getEventType(e.pointerType) === 'mouse')) {\n isMouse = true;\n }\n return isMouse;\n };\n Splitter.prototype.updateCursorPosition = function (e, type) {\n if (this.isMouseEvent(e)) {\n this.changeCoordinates({ x: e.pageX, y: e.pageY }, type);\n }\n else {\n var eventType = Browser.info.name !== 'msie' ? e.touches[0] : e;\n this.changeCoordinates({ x: eventType.pageX, y: eventType.pageY }, type);\n }\n };\n Splitter.prototype.changeCoordinates = function (coordinates, type) {\n if (type === 'previous') {\n this.previousCoordinates = coordinates;\n }\n else {\n this.currentCoordinates = coordinates;\n }\n };\n Splitter.prototype.reportWindowSize = function () {\n var _this = this;\n var paneCount = this.allPanes.length;\n if (!document.body.contains(this.element)) {\n document.defaultView.removeEventListener('resize', this.onReportWindowSize);\n return;\n }\n for (var i = 0; i < paneCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n if (paneCount - 1 === i) {\n var staticPaneCount = this.element.querySelectorAll('.' + STATIC_PANE).length;\n if (staticPaneCount === paneCount) {\n if (this.allPanes[i].style.flexBasis === '') {\n removeClass([this.allPanes[i]], STATIC_PANE);\n }\n }\n }\n }\n if (paneCount > 0) {\n setTimeout(function () {\n _this.updateSplitterSize(true);\n }, 200);\n }\n };\n Splitter.prototype.updateSplitterSize = function (iswindowResize) {\n var totalWidth = 0;\n var flexPaneIndexes = [];\n var flexCount = 0;\n var children = this.element.children;\n for (var i = 0, len = children.length; i < len; i++) {\n totalWidth += this.orientation === 'Horizontal' ? children[i].offsetWidth :\n children[i].offsetHeight;\n }\n for (var j = 0, len = this.allBars.length; j < len; j++) {\n totalWidth += this.orientation === 'Horizontal' ? parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) :\n parseInt(getComputedStyle(this.allBars[j]).marginTop, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginBottom, 10);\n }\n var diff = this.orientation === 'Horizontal' ? this.element.offsetWidth -\n ((this.border * 2) + totalWidth) :\n this.element.offsetHeight - ((this.border * 2) + totalWidth);\n for (var i = 0, len = this.allPanes.length; i < len; i++) {\n if (this.allPanes[i].innerText === '' ? !(this.paneSettings[i].size) || !(this.allPanes[i].innerText === '')\n : !(this.paneSettings[i].size) && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n }\n var avgDiffWidth = diff / flexPaneIndexes.length;\n for (var j = 0, len = flexPaneIndexes.length; j < len; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = this.orientation === 'Horizontal' ?\n (this.allPanes[flexPaneIndexes[j]].offsetWidth + avgDiffWidth) + 'px' :\n (this.allPanes[flexPaneIndexes[j]].offsetHeight + avgDiffWidth) + 'px';\n }\n }\n if (this.allPanes.length === 2 && iswindowResize) {\n var paneCount = this.allPanes.length;\n var minValue = void 0;\n var paneMinRange = void 0;\n var paneIndex = 0;\n var updatePane = void 0;\n var flexPane = void 0;\n for (var i = 0; i < paneCount; i++) {\n if (!isNullOrUndefined(this.paneSettings[i].min)) {\n paneMinRange = this.convertPixelToNumber((this.paneSettings[i].min).toString());\n if (this.paneSettings[i].min.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(this.paneSettings[i].min);\n }\n minValue = this.convertPixelToNumber((paneMinRange).toString());\n if ((this.orientation === 'Horizontal' ? this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight) < minValue) {\n if (i === paneIndex) {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i + 1];\n }\n else {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i - 1];\n }\n var sizeDiff = minValue - (this.orientation === 'Horizontal' ?\n this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight);\n var isPercent = updatePane.style.flexBasis.indexOf('%') > -1;\n var updatePaneOffset = this.orientation === 'Horizontal' ? updatePane.offsetWidth : updatePane.offsetHeight;\n if (!isNullOrUndefined(updatePane) && updatePane.style.flexBasis !== '' && updatePane.classList.contains(STATIC_PANE)) {\n updatePane.style.flexBasis = isPercent ? this.convertPixelToPercentage(updatePaneOffset + sizeDiff) + '%'\n : (updatePaneOffset + sizeDiff) + 'px';\n }\n var flexPaneOffset = this.orientation === 'Horizontal' ? flexPane.offsetWidth : flexPane.offsetHeight;\n if (!isNullOrUndefined(flexPane) && flexPane.style.flexBasis !== '' && !flexPane.classList.contains(STATIC_PANE)) {\n flexPane.style.flexBasis = flexPane.style.flexBasis.indexOf('%') > -1 ?\n this.convertPixelToPercentage(flexPaneOffset - sizeDiff) + '%' : (flexPaneOffset - sizeDiff) + 'px';\n }\n }\n }\n }\n }\n };\n Splitter.prototype.wireResizeEvents = function () {\n document.addEventListener('mousemove', this.onMouseMoveHandler, true);\n document.addEventListener('mouseup', this.onMouseUpHandler, true);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.addEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.addEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.unwireResizeEvents = function () {\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.removeEventListener('mousemove', this.onMouseMoveHandler, true);\n document.removeEventListener('mouseup', this.onMouseUpHandler, true);\n document.removeEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.removeEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.wireClickEvents = function () {\n EventHandler.add(this.currentSeparator, 'touchstart click', this.clickHandler, this);\n };\n Splitter.prototype.clickHandler = function (e) {\n if (!e.target.classList.contains(NAVIGATE_ARROW)) {\n var hoverBars = selectAll('.' + ROOT + ' > .' + SPLIT_BAR + '.' + SPLIT_BAR_HOVER);\n if (hoverBars.length > 0) {\n removeClass(hoverBars, SPLIT_BAR_HOVER);\n }\n e.target.classList.add(SPLIT_BAR_HOVER);\n }\n this.splitterDetails(e);\n var icon = e.target;\n if (icon.classList.contains(ARROW_LEFT) || icon.classList.contains(ARROW_RIGHT) ||\n icon.classList.contains(ARROW_DOWN) || icon.classList.contains(ARROW_UP)) {\n if (!this.nextPane.classList.contains(PANE_HIDDEN) && !this.previousPane.classList.contains(PANE_HIDDEN)) {\n this.collapseAction(e);\n }\n else {\n this.expandAction(e);\n }\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.expandAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.expandFlag) {\n this.trigger('beforeExpand', eventArgs, function (beforeExpandArgs) {\n if (!beforeExpandArgs.cancel) {\n _this.expandPane(e);\n }\n var expandEventArgs = _this.afterAction(e);\n _this.trigger('expanded', expandEventArgs);\n });\n }\n else {\n this.expandPane(e);\n }\n };\n Splitter.prototype.getIcon = function (e) {\n var targetClass = e.target.className.split(' ').filter(function (className) {\n return className !== NAVIGATE_ARROW && className !== HIDE_ICON;\n });\n return targetClass[0];\n };\n Splitter.prototype.expandPane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (!this.previousPane.classList.contains(COLLAPSE_PANE) &&\n this.previousPane.classList.contains(STATIC_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.nextPane.classList.contains(EXPAND_PANE) && this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) && !(collapseCount === this.allPanes.length - 2));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.nextPane : this.previousPane;\n var expandPane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPaneIndex = isLeftOrUp ? this.nextPaneIndex : this.prevPaneIndex;\n removeClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'false');\n // cCount is calculated after removing the COLLAPSE_PANE\n var cCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n if (cCount > 0) {\n if (!expandPane.classList.contains(COLLAPSE_PANE)) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n else if (cCount === 0) {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n removeClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'false');\n }\n }\n }\n if (this.expandFlag) {\n this.updatePaneSettings(expandPaneIndex, false);\n }\n this.updateIconsOnExpand(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.previousPane.classList.remove(EXPAND_PANE);\n this.previousPane.setAttribute('aria-expanded', 'false');\n this.previousPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.updateFlexGrow = function () {\n var collapseCount = 0;\n for (var j = 0; j < this.element.children.length; j++) {\n if (this.element.children[j].classList.contains(COLLAPSE_PANE)) {\n collapseCount = collapseCount + 1;\n }\n }\n var visiblePane = collapseCount === this.allPanes.length - 2;\n var panes = this.allPanes;\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.flexGrow = '';\n if (visiblePane && this.allPanes[i].classList.contains(COLLAPSE_PANE) && this.paneSettings[i].size &&\n i !== this.allPanes.length - 1) {\n panes[i].style.flexGrow = '';\n }\n if (panes[i].classList.contains(EXPAND_PANE)) {\n panes[i].style.flexGrow = '1';\n }\n else if (panes[i].classList.contains(COLLAPSE_PANE)) {\n panes[i].style.flexGrow = '0';\n }\n }\n };\n Splitter.prototype.hideTargetBarIcon = function (targetBar, targetArrow) {\n addClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.showTargetBarIcon = function (targetBar, targetArrow) {\n removeClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.updateIconsOnCollapse = function (e, targetIcon) {\n this.splitterProperty();\n var removeIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ? this.currentBarIndex - 1\n : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n if (this.splitInstance.prevPaneCollapsed || this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.resizableModel(this.currentBarIndex, false);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 1) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n this.resizableModel(otherBarIndex, false);\n }\n else if (collapsecount === 2) {\n this.hideBarIcons(otherBar);\n this.resizableModel(otherBarIndex, false);\n }\n if (!this.paneSettings[otherPrevPaneIndex].collapsible ||\n !this.paneSettings[otherNextPaneIndex].collapsible) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n }\n }\n }\n else {\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n if (!isNullOrUndefined(otherBar)) {\n this.resizableModel(otherBarIndex, true);\n }\n if (!this.paneSettings[this.prevPaneIndex].collapsible || !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n this.hideTargetBarIcon(this.currentSeparator, removeIcon);\n }\n else {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n }\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n }\n }\n };\n Splitter.prototype.collapseAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.collapseFlag) {\n this.collapsePane(e);\n }\n else {\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n _this.collapsePane(e);\n var collapseEventArgs = _this.afterAction(e);\n _this.trigger('collapsed', collapseEventArgs);\n }\n });\n }\n };\n Splitter.prototype.collapsePane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (this.previousPane.classList.contains(STATIC_PANE) &&\n !this.previousPane.classList.contains(COLLAPSE_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(COLLAPSE_PANE) &&\n !(collapseCount === this.allPanes.length - 2)) || (this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.previousPane.classList.contains(STATIC_PANE) && this.nextPane.classList.contains(STATIC_PANE));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPane = isLeftOrUp ? this.nextPane : this.previousPane;\n var collapsePaneIndex = isLeftOrUp ? this.prevPaneIndex : this.nextPaneIndex;\n removeClass([collapsePane], EXPAND_PANE);\n collapsePane.setAttribute('aria-expanded', 'false');\n addClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'true');\n var isFlexPane = collapsePane.style.flexBasis === '';\n if (isFlexPane) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n else {\n var isFlexPaneHidden = true;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n if (this.allPanes[i].style.flexBasis === '' && !this.allPanes[i].classList.contains(COLLAPSE_PANE)\n && !this.allPanes[i].classList.contains(EXPAND_PANE)) {\n addClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'true');\n isFlexPaneHidden = false;\n break;\n }\n }\n }\n if (isFlexPaneHidden) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n if (!this.collapseFlag) {\n this.updatePaneSettings(collapsePaneIndex, true);\n }\n this.updateIconsOnCollapse(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.nextPane.classList.remove(EXPAND_PANE);\n this.nextPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.removeStaticPanes = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n }\n };\n Splitter.prototype.beforeAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n cancel: false\n };\n return eventArgs;\n };\n Splitter.prototype.updatePaneSettings = function (index, collapsed) {\n var paneValues = this.paneSettings;\n paneValues[index].collapsed = collapsed;\n this.setProperties({ 'paneSettings': paneValues }, true);\n };\n Splitter.prototype.splitterProperty = function () {\n this.splitInstance = {\n currentBarIndex: this.currentBarIndex,\n nextPaneCollapsible: this.nextPane.classList.contains(COLLAPSIBLE),\n prevPaneCollapsible: this.previousPane.classList.contains(COLLAPSIBLE),\n prevPaneExpanded: this.previousPane.classList.contains(EXPAND_PANE),\n nextPaneExpanded: this.nextPane.classList.contains(EXPAND_PANE),\n nextPaneCollapsed: this.nextPane.classList.contains(COLLAPSE_PANE),\n prevPaneCollapsed: this.previousPane.classList.contains(COLLAPSE_PANE),\n nextPaneIndex: this.getNextPaneIndex(),\n prevPaneIndex: this.getPreviousPaneIndex(),\n nextPaneNextEle: this.nextPane.nextElementSibling,\n prevPanePreEle: this.previousPane.previousElementSibling\n };\n };\n Splitter.prototype.showCurrentBarIcons = function () {\n removeClass([select('.' + this.arrow, this.currentSeparator)], HIDE_ICON);\n };\n Splitter.prototype.hideBarIcons = function (bar) {\n addClass([select('.' + this.arrow, bar)], HIDE_ICON);\n };\n Splitter.prototype.getCollapseCount = function (prevPaneIndex, nextPaneIndex) {\n var collapsecount = 0;\n if (this.allPanes[prevPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n if (this.allPanes[nextPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n return collapsecount;\n };\n Splitter.prototype.checkResizableProp = function (prevPaneIndex, nextPaneIndex) {\n if (this.paneSettings[prevPaneIndex].resizable && this.paneSettings[nextPaneIndex].resizable) {\n return true;\n }\n else {\n return false;\n }\n };\n Splitter.prototype.updateIconsOnExpand = function (e, targetIcon) {\n this.splitterProperty();\n var showIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ?\n this.currentBarIndex - 1 : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n // prevPane ! collapsed && nextPane ! collapsed\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.showCurrentBarIcons();\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 0) {\n this.showTargetBarIcon(otherBar, targetIcon);\n this.showTargetBarIcon(otherBar, showIcon);\n if (this.checkResizableProp(otherPrevPaneIndex, otherNextPaneIndex)) {\n this.resizableModel(otherBarIndex, true);\n }\n }\n else if (collapsecount === 1) {\n this.hideBarIcons(otherBar);\n // If condition Edge case in flexible cases\n if (this.allPanes[otherPrevPaneIndex].classList.contains(EXPAND_PANE) ||\n this.allPanes[otherNextPaneIndex].classList.contains(EXPAND_PANE)) {\n this.showTargetBarIcon(otherBar, showIcon);\n }\n else {\n // Common case\n this.showTargetBarIcon(otherBar, targetIcon);\n }\n this.resizableModel(otherBarIndex, false);\n }\n }\n }\n }\n else {\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.showTargetBarIcon(this.currentSeparator, showIcon);\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n }\n else {\n if (!this.paneSettings[this.prevPaneIndex].collapsible && !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n }\n };\n Splitter.prototype.afterAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator\n };\n return eventArgs;\n };\n Splitter.prototype.currentIndex = function (e) {\n this.currentBarIndex = this.getOrderIndex(parseInt(e.target.parentElement.style.order, 10), 'splitbar');\n };\n Splitter.prototype.getSeparatorIndex = function (target) {\n var array = [].slice.call(this.allBars);\n array = this.enableReversePanes ? array.reverse() : array;\n return array.indexOf(target);\n };\n Splitter.prototype.getPrevBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar - 1)];\n return prevbar;\n };\n Splitter.prototype.getNextBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar + 1)];\n return prevbar;\n };\n Splitter.prototype.updateBars = function (index) {\n this.prevBar = this.getPrevBar(index);\n this.nextBar = this.getNextBar(index);\n };\n Splitter.prototype.splitterDetails = function (e) {\n if (this.orientation === 'Horizontal') {\n this.arrow = e.target.classList.contains(ARROW_LEFT) ? ARROW_RIGHT : ARROW_LEFT;\n }\n else {\n this.arrow = e.target.classList.contains(ARROW_UP) ? ARROW_DOWN : ARROW_UP;\n }\n this.updateCurrentSeparator(e.target);\n this.currentIndex(e);\n this.updateBars(this.currentBarIndex);\n this.getPaneDetails();\n };\n Splitter.prototype.triggerResizing = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n paneSize: [this.prePaneDimenson, this.nextPaneDimension],\n separator: this.currentSeparator\n };\n this.trigger('resizing', eventArgs);\n };\n Splitter.prototype.onMouseDown = function (e) {\n var _this = this;\n e.preventDefault();\n var target = e.target;\n if (target.classList.contains(NAVIGATE_ARROW)) {\n return;\n }\n this.updateCurrentSeparator(target);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.updateCursorPosition(e, 'previous');\n this.getPaneDetails();\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.getPreviousPaneIndex(), this.getNextPaneIndex()],\n separator: this.currentSeparator,\n cancel: false\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'none';\n }\n this.trigger('resizeStart', eventArgs, function (resizeStartArgs) {\n if (!resizeStartArgs.cancel) {\n _this.wireResizeEvents();\n _this.checkPaneSize(e);\n }\n });\n };\n Splitter.prototype.updatePaneFlexBasis = function (pane) {\n var previous;\n if (pane.style.flexBasis.indexOf('%') > 0) {\n previous = this.removePercentageUnit(pane.style.flexBasis);\n }\n else {\n if (pane.style.flexBasis !== '') {\n previous = this.convertPixelToPercentage(this.convertPixelToNumber(pane.style.flexBasis));\n }\n else {\n var offset = (this.orientation === 'Horizontal') ? (pane.offsetWidth) : (pane.offsetHeight);\n previous = this.convertPixelToPercentage(offset);\n }\n }\n return previous;\n };\n Splitter.prototype.removePercentageUnit = function (value) {\n return parseFloat(value.slice(0, value.indexOf('%')));\n };\n Splitter.prototype.convertPercentageToPixel = function (value, targetElement) {\n var percentage = value.toString();\n var convertedValue;\n if (percentage.indexOf('%') > -1) {\n convertedValue = parseFloat(percentage.slice(0, percentage.indexOf('%')));\n var offsetValue = void 0;\n if (!isNullOrUndefined(targetElement)) {\n offsetValue = this.panesDimensions[this.allPanes.indexOf(targetElement)];\n }\n else {\n offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n }\n convertedValue = Math.ceil(offsetValue * (convertedValue / 100));\n }\n else {\n convertedValue = parseInt(percentage, 10);\n }\n return convertedValue;\n };\n Splitter.prototype.convertPixelToPercentage = function (value) {\n var offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return (value / offsetValue) * 100;\n };\n Splitter.prototype.convertPixelToNumber = function (value) {\n value = value.toString();\n if (value.indexOf('p') > -1) {\n return parseFloat(value.slice(0, value.indexOf('p')));\n }\n else {\n return parseFloat(value);\n }\n };\n Splitter.prototype.calcDragPosition = function (rectValue, offsetValue) {\n var separatorPosition = this.orientation === 'Horizontal' ? (this.currentCoordinates.x - rectValue) :\n (this.currentCoordinates.y - rectValue);\n var separator;\n separator = separatorPosition / offsetValue;\n separator = (separator > 1) ? 1 : (separator < 0) ? 0 : separator;\n return separator * offsetValue;\n };\n Splitter.prototype.getSeparatorPosition = function (e) {\n this.updateCursorPosition(e, 'current');\n var rectBound = (this.orientation === 'Horizontal') ? this.element.getBoundingClientRect().left + window.scrollX :\n this.element.getBoundingClientRect().top + window.scrollY;\n var offSet = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return this.calcDragPosition(rectBound, offSet);\n };\n Splitter.prototype.getMinMax = function (paneIndex, target, selection) {\n var defaultVal = selection === 'min' ? 0 : null;\n // eslint-disable-next-line\n var paneValue = null;\n if (selection === 'min') {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneValue = this.paneSettings[paneIndex].min;\n }\n }\n else {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneValue = this.paneSettings[paneIndex].max;\n }\n }\n if (this.paneSettings.length > 0 && !isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(paneValue)) {\n if (paneValue.indexOf('%') > 0) {\n paneValue = this.convertPercentageToPixel(paneValue).toString();\n }\n return this.convertPixelToNumber(paneValue);\n }\n else {\n return defaultVal;\n }\n };\n Splitter.prototype.getPreviousPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) + 1 :\n parseInt(this.currentSeparator.style.order, 10) - 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getNextPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) - 1 :\n parseInt(this.currentSeparator.style.order, 10) + 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getPaneDetails = function () {\n var prevPane = null;\n var nextPane = null;\n this.order = parseInt(this.currentSeparator.style.order, 10);\n if (this.allPanes.length > 1) {\n prevPane = this.getPrevPane(this.order);\n nextPane = this.getNextPane(this.order);\n }\n if (prevPane && nextPane) {\n this.previousPane = prevPane;\n this.nextPane = nextPane;\n this.prevPaneIndex = this.getPreviousPaneIndex();\n this.nextPaneIndex = this.getNextPaneIndex();\n }\n else {\n return;\n }\n };\n Splitter.prototype.getPaneHeight = function (pane) {\n return ((this.orientation === 'Horizontal') ? pane.offsetWidth.toString() :\n pane.offsetHeight.toString());\n };\n Splitter.prototype.isValidSize = function (paneIndex) {\n var isValid = false;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].size) &&\n this.paneSettings[paneIndex].size.indexOf('%') > -1) {\n isValid = true;\n }\n return isValid;\n };\n Splitter.prototype.getPaneDimensions = function () {\n this.previousPaneHeightWidth = (this.previousPane.style.flexBasis === '') ? this.getPaneHeight(this.previousPane) :\n this.previousPane.style.flexBasis;\n this.nextPaneHeightWidth = (this.nextPane.style.flexBasis === '') ? this.getPaneHeight(this.nextPane) :\n this.nextPane.style.flexBasis;\n if (this.isValidSize(this.prevPaneIndex)) {\n this.previousPaneHeightWidth = this.convertPercentageToPixel(this.previousPaneHeightWidth).toString();\n this.updatePrePaneInPercentage = true;\n }\n if (this.isValidSize(this.nextPaneIndex)) {\n this.nextPaneHeightWidth = this.convertPercentageToPixel(this.nextPaneHeightWidth).toString();\n this.updateNextPaneInPercentage = true;\n }\n this.prePaneDimenson = this.convertPixelToNumber(this.previousPaneHeightWidth.toString());\n this.nextPaneDimension = this.convertPixelToNumber(this.nextPaneHeightWidth.toString());\n };\n Splitter.prototype.checkCoordinates = function (pageX, pageY) {\n var coordinatesChanged = true;\n if ((pageX === this.previousCoordinates.x && pageY === this.previousCoordinates.y)) {\n coordinatesChanged = false;\n }\n return coordinatesChanged;\n };\n Splitter.prototype.isCursorMoved = function (e) {\n var cursorMoved = true;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType)) &&\n this.getEventType(e.pointerType) === 'mouse') {\n cursorMoved = this.checkCoordinates(e.pageX, e.pageY);\n }\n else {\n cursorMoved = (Browser.info.name !== 'msie') ?\n this.checkCoordinates(e.touches[0].pageX, e.touches[0].pageY) :\n this.checkCoordinates(e.pageX, e.pageY);\n }\n return cursorMoved;\n };\n Splitter.prototype.getBorder = function () {\n this.border = 0;\n var border = this.orientation === 'Horizontal' ? ((this.element.offsetWidth - this.element.clientWidth) / 2) :\n (this.element.offsetHeight - this.element.clientHeight) / 2;\n this.border = Browser.info.name !== 'chrome' ? this.border : border;\n };\n Splitter.prototype.onMouseMove = function (e) {\n if (!this.isCursorMoved(e)) {\n return;\n }\n this.getPaneDetails();\n this.getPaneDimensions();\n this.triggerResizing(e);\n var left = this.validateDraggedPosition(this.getSeparatorPosition(e), this.prePaneDimenson, this.nextPaneDimension);\n var separatorNewPosition;\n this.getBorder();\n if (this.orientation === 'Horizontal') {\n separatorNewPosition = (this.element.getBoundingClientRect().left + left) -\n this.currentSeparator.getBoundingClientRect().left + this.border;\n }\n else {\n separatorNewPosition = (this.element.getBoundingClientRect().top + left) -\n this.currentSeparator.getBoundingClientRect().top + this.border;\n }\n this.nextPaneHeightWidth =\n (typeof (this.nextPaneHeightWidth) === 'string' && this.nextPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.nextPaneHeightWidth) : parseInt(this.nextPaneHeightWidth, 10);\n this.previousPaneHeightWidth =\n (typeof (this.previousPaneHeightWidth) === 'string' && this.previousPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.previousPaneHeightWidth) : parseInt(this.previousPaneHeightWidth, 10);\n this.prevPaneCurrentWidth = separatorNewPosition + this.previousPaneHeightWidth;\n this.nextPaneCurrentWidth = this.nextPaneHeightWidth - separatorNewPosition;\n this.validateMinMaxValues();\n if (this.nextPaneCurrentWidth < 0) {\n this.nextPaneCurrentWidth = 0;\n }\n /* istanbul ignore next */\n if (this.prevPaneCurrentWidth < 0) {\n this.prevPaneCurrentWidth = 0;\n }\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) > this.totalWidth) {\n if (this.nextPaneCurrentWidth < this.prevPaneCurrentWidth) {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n else {\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n }\n /* istanbul ignore next */\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) < this.totalWidth) {\n var difference = this.totalWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth));\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + difference;\n }\n this.calculateCurrentDimensions();\n this.addStaticPaneClass();\n var flexPaneCount = 0;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (this.paneSettings[i].size === '') {\n flexPaneCount = flexPaneCount + 1;\n }\n else if (this.allPanes[i].style.flexBasis !== '') {\n this.paneSettings[i].size = this.allPanes[i].style.flexBasis;\n }\n }\n var allFlexiblePanes = flexPaneCount === this.allPanes.length;\n // Two flexible Pane Case.\n if (this.previousPane.style.flexBasis === '' && this.nextPane.style.flexBasis === '' && !allFlexiblePanes) {\n var middlePaneIndex = this.allPanes.length % this.allBars.length;\n if (this.prevPaneIndex === middlePaneIndex) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n else if (this.nextPaneIndex === middlePaneIndex) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n }\n else {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n } // All panes are flexible\n else if (allFlexiblePanes) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n } // Two Panesa are Static Pane\n else {\n if (this.previousPane.style.flexBasis !== '' && this.previousPane.classList.contains(STATIC_PANE)) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n }\n if (this.nextPane.style.flexBasis !== '' && this.nextPane.classList.contains(STATIC_PANE)) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n }\n }\n var isStaticPanes = this.previousPane.style.flexBasis !== '' && this.nextPane.style.flexBasis !== '';\n if (!(this.allPanes.length > 2) && isStaticPanes) {\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.validateMinRange = function (paneIndex, paneCurrentWidth) {\n var paneMinRange = null;\n var paneMinDimensions;\n var difference = 0;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneMinRange = this.paneSettings[paneIndex].min.toString();\n }\n if (!isNullOrUndefined(paneMinRange)) {\n if (paneMinRange.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(paneMinRange).toString();\n }\n paneMinDimensions = this.convertPixelToNumber(paneMinRange);\n if (paneCurrentWidth < paneMinDimensions) {\n difference = (paneCurrentWidth - paneMinDimensions) <= 0 ? 0 :\n (paneCurrentWidth - paneMinDimensions);\n this.totalWidth = this.totalWidth - difference;\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMinDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMaxRange = function (paneIndex, paneCurrentWidth) {\n var paneMaxRange = null;\n var paneMaxDimensions;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneMaxRange = this.paneSettings[paneIndex].max.toString();\n }\n if (!isNullOrUndefined(paneMaxRange)) {\n if (paneMaxRange.indexOf('%') > 0) {\n paneMaxRange = this.convertPercentageToPixel(paneMaxRange).toString();\n }\n paneMaxDimensions = this.convertPixelToNumber(paneMaxRange);\n if (paneCurrentWidth > paneMaxDimensions) {\n this.totalWidth = this.totalWidth - (paneCurrentWidth - paneMaxDimensions);\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMaxDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMinMaxValues = function () {\n //validate previous pane minimum range\n this.prevPaneCurrentWidth = this.validateMinRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // Validate next pane minimum range\n this.nextPaneCurrentWidth = this.validateMinRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n // validate previous pane maximum range\n this.prevPaneCurrentWidth = this.validateMaxRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // validate next pane maximum range\n this.nextPaneCurrentWidth = this.validateMaxRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n };\n Splitter.prototype.equatePaneWidths = function () {\n var difference;\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) > this.totalPercent) {\n difference = (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) - this.totalPercent;\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - (difference / 2) + '%';\n }\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) < this.totalPercent) {\n difference = this.totalPercent - (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth);\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + (difference / 2) + '%';\n }\n };\n Splitter.prototype.calculateCurrentDimensions = function () {\n if (this.updatePrePaneInPercentage || this.updateNextPaneInPercentage) {\n this.prevPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.prevPaneCurrentWidth)\n * 10) / 10));\n this.nextPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.nextPaneCurrentWidth)\n * 10) / 10));\n if (this.prevPaneCurrentWidth === 0) {\n this.nextPaneCurrentWidth = this.totalPercent;\n }\n if (this.nextPaneCurrentWidth === 0) {\n this.prevPaneCurrentWidth = this.totalPercent;\n }\n if (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth !== this.totalPercent) {\n this.equatePaneWidths();\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + '%';\n }\n this.prevPaneCurrentWidth = (this.updatePrePaneInPercentage) ? this.prevPaneCurrentWidth :\n this.convertPercentageToPixel(this.prevPaneCurrentWidth) + 'px';\n this.nextPaneCurrentWidth = (this.updateNextPaneInPercentage) ? this.nextPaneCurrentWidth :\n this.convertPercentageToPixel(this.nextPaneCurrentWidth) + 'px';\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + 'px';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + 'px';\n }\n };\n Splitter.prototype.addStaticPaneClass = function () {\n if (!this.previousPane.classList.contains(STATIC_PANE) && !(this.previousPane.style.flexBasis === '') && !this.previousPane.classList.contains(EXPAND_PANE)) {\n this.previousPane.classList.add(STATIC_PANE);\n }\n if (!this.nextPane.classList.contains(STATIC_PANE) && !(this.nextPane.style.flexBasis === '') && !this.nextPane.classList.contains(EXPAND_PANE)) {\n this.nextPane.classList.add(STATIC_PANE);\n }\n };\n Splitter.prototype.validateDraggedPosition = function (draggedPos, prevPaneHeightWidth, nextPaneHeightWidth) {\n var separatorTopLeft = (this.orientation === 'Horizontal') ? this.currentSeparator.offsetLeft :\n this.currentSeparator.offsetTop;\n var prePaneRange = separatorTopLeft - prevPaneHeightWidth;\n var nextPaneRange = nextPaneHeightWidth + separatorTopLeft;\n var pane1MinSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'min');\n var pane2MinSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'min');\n var pane1MaxSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'max');\n var pane2MaxSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'max');\n var validatedSize = draggedPos;\n if (draggedPos > nextPaneRange - pane2MinSize) {\n validatedSize = nextPaneRange - pane2MinSize;\n }\n else if (draggedPos < prePaneRange + pane1MinSize) {\n validatedSize = prePaneRange + pane1MinSize;\n }\n if (!isNullOrUndefined(pane1MaxSize)) {\n if (draggedPos > prePaneRange + pane1MaxSize) {\n validatedSize = prePaneRange + pane1MaxSize;\n }\n }\n else if (!isNullOrUndefined(pane2MaxSize)) {\n if (draggedPos < nextPaneRange - pane2MaxSize) {\n validatedSize = nextPaneRange - pane2MaxSize;\n }\n }\n return validatedSize;\n };\n Splitter.prototype.onMouseUp = function (e) {\n removeClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.unwireResizeEvents();\n var eventArgs = {\n event: e,\n element: this.element,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n paneSize: [this.prePaneDimenson, this.nextPaneDimension]\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'auto';\n }\n this.trigger('resizeStop', eventArgs);\n if (this.enablePersistence) {\n var paneValues = this.paneSettings;\n paneValues[this.getPreviousPaneIndex()].size = this.allPanes[this.getPreviousPaneIndex()].style.flexBasis;\n paneValues[this.getNextPaneIndex()].size = this.allPanes[this.getNextPaneIndex()].style.flexBasis;\n this.setProperties({ 'paneSettings': paneValues }, true);\n }\n };\n Splitter.prototype.panesDimension = function (index, child) {\n var childCount = child.length;\n var size;\n parseInt(this.getHeight(this.element), 10);\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].size)) {\n size = this.paneSettings[index].size;\n if (index < childCount) {\n setStyleAttribute(child[index], { 'flex-basis': size, 'order': index * 2 });\n if (index < childCount - 1 && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n else if (!this.sizeFlag) {\n child[index].style.flexBasis = null;\n }\n if ((index === childCount - 1) && this.sizeFlag && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n }\n }\n else {\n this.sizeFlag = true;\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n }\n else {\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n this.paneOrder.push(index * 2);\n };\n Splitter.prototype.setTemplate = function (template, toElement) {\n toElement.innerHTML = '';\n template = typeof (template) === 'string' ? this.sanitizeHelper(template) : template;\n this.templateCompile(toElement, template);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n // eslint-disable-next-line\n Splitter.prototype.templateCompile = function (ele, cnt) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n var tempEle = this.createElement('div');\n this.compileElement(tempEle, cnt, 'content');\n if (tempEle.childNodes.length !== 0) {\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\n ele.appendChild(childEle);\n });\n }\n };\n Splitter.prototype.compileElement = function (ele, val, prop) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (typeof (val) === 'string') {\n if (val[0] === '.' || val[0] === '#') {\n var eleVal = document.querySelector(val);\n if (!isNullOrUndefined(eleVal)) {\n this.templateElement.push(eleVal);\n if (eleVal.style.display === 'none') {\n eleVal.style.removeProperty('display');\n }\n if (eleVal.getAttribute('style') === '') {\n eleVal.removeAttribute('style');\n }\n ele.appendChild(eleVal);\n return;\n }\n else {\n val = val.trim();\n }\n }\n else {\n val = val.trim();\n }\n }\n var templateFn;\n if (!isNullOrUndefined(val.outerHTML)) {\n templateFn = compile(val.outerHTML);\n }\n else {\n templateFn = compile(val);\n }\n var templateFUN;\n if (!isNullOrUndefined(templateFn)) {\n templateFUN = templateFn({}, this, prop, this.element.id + 'content' + this.allPanes.length.toString(), true);\n }\n if (!isNullOrUndefined(templateFn) && templateFUN && templateFUN.length > 0) {\n [].slice.call(templateFUN).forEach(function (el) {\n ele.appendChild(el);\n });\n }\n };\n Splitter.prototype.paneCollapsible = function (pane, index) {\n // eslint-disable-next-line\n this.paneSettings[index].collapsible ? addClass([pane], COLLAPSIBLE) : removeClass([pane], COLLAPSIBLE);\n };\n Splitter.prototype.createSplitPane = function (target) {\n var childCount = target.children.length;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (childCount < this.paneSettings.length) {\n var childElement = this.createElement('div');\n this.element.appendChild(childElement);\n childCount = childCount + 1;\n }\n }\n childCount = target.children.length;\n var child = [].slice.call(target.children);\n this.sizeFlag = false;\n if (childCount > 0) {\n for (var i = 0; i < childCount; i++) {\n // To accept only div and span element as pane\n if (child[i].nodeName === 'DIV' || child[i].nodeName === 'SPAN') {\n this.allPanes.push(child[i]);\n if (this.orientation === 'Horizontal') {\n addClass([child[i]], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n else {\n addClass([child[i]], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && !isNullOrUndefined(this.paneSettings[i].content)) {\n this.setTemplate(this.paneSettings[i].content, child[i]);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && this.paneSettings[i].cssClass) {\n this.setCssClass(child[i], this.paneSettings[i].cssClass);\n }\n if (!isNullOrUndefined(this.paneSettings[i])) {\n this.paneCollapsible(child[i], i);\n }\n }\n }\n }\n };\n /**\n * expands corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be expanded at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.expand = function (index) {\n this.collapsedOnchange(index);\n this.updatePaneSettings(index, false);\n };\n /**\n * collapses corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be collapsed at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.collapse = function (index) {\n this.isCollapsed(index);\n this.updatePaneSettings(index, true);\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Splitter.prototype.destroy = function () {\n if (!this.isDestroyed) {\n _super.prototype.destroy.call(this);\n EventHandler.remove(document, 'touchstart click', this.onDocumentClick);\n EventHandler.remove(this.element, 'keydown', this.onMove);\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize, true);\n while (this.element.attributes.length > 0) {\n this.element.removeAttribute(this.element.attributes[0].name);\n }\n for (var i = 0; i < this.wrapper.attributes.length; i++) {\n this.element.setAttribute(this.wrapper.attributes[i].name, this.wrapper.attributes[i].value);\n }\n if (this.refreshing) {\n addClass([this.element], ['e-control', 'e-lib', ROOT]);\n this.allBars = [];\n this.allPanes = [];\n }\n this.restoreElem();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n var separators = this.element.querySelectorAll('.e-split-bar');\n if (separators.length > 0) {\n for (var i = 0; i < separators.length; i++) {\n EventHandler.remove(separators[i], 'touchstart', this.clickHandler);\n EventHandler.remove(separators[i], 'touchstart', this.onMouseDown);\n EventHandler.remove(separators[i], 'click', this.clickHandler);\n EventHandler.remove(separators[i], 'mousedown', this.onMouseDown);\n separators[i].parentNode.removeChild(separators[i]); // Use parentNode for broader compatibility\n }\n }\n var panes = this.element.querySelectorAll('.e-pane');\n if (panes.length > 0) {\n for (var i = 0; i < panes.length; i++) {\n panes[i].classList.remove(SPLIT_H_PANE, SPLIT_V_PANE, STATIC_PANE, SCROLL_PANE, PANE, RESIZABLE_PANE, HIDE_HANDLER, COLLAPSIBLE, EXPAND_PANE, PANE_HIDDEN);\n while (panes[i].attributes.length > 0) {\n panes[i].removeAttribute(panes[i].attributes[0].name);\n }\n }\n }\n this.allBars = [];\n this.allBars = null;\n this.allPanes = [];\n this.allPanes = null;\n this.previousPane = null;\n this.nextPane = null;\n this.currentSeparator = null;\n this.wrapper = null;\n this.prevBar = null;\n this.nextBar = null;\n this.templateElement = null;\n }\n };\n Splitter.prototype.restoreElem = function () {\n if (this.templateElement.length > 0) {\n for (var i = 0; i < this.templateElement.length; i++) {\n this.templateElement[i].style.display = 'none';\n document.body.appendChild(this.templateElement[i]);\n }\n }\n };\n Splitter.prototype.addPaneClass = function (pane) {\n if (this.orientation === 'Horizontal') {\n addClass([pane], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n }\n else {\n addClass([pane], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n }\n return pane;\n };\n Splitter.prototype.removePaneOrders = function (paneClass) {\n var childNodes = this.element.childNodes;\n var panes = [];\n for (var i = 0; childNodes.length < 0; i++) {\n if (childNodes[i].classList.contains(paneClass)) {\n panes.push(childNodes[i]);\n }\n }\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.removeProperty('order');\n }\n };\n Splitter.prototype.setPaneOrder = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n this.panesDimension(i, this.allPanes);\n }\n };\n Splitter.prototype.removeSeparator = function () {\n for (var i = 0; i < this.allBars.length; i++) {\n detach(this.allBars[i]);\n }\n this.allBars = [];\n };\n Splitter.prototype.updatePanes = function () {\n this.setPaneOrder();\n this.removeSeparator();\n this.addSeparator(this.element);\n };\n /**\n * Allows you to add a pane dynamically to the specified index position by passing the pane properties.\n *\n * @param { PanePropertiesModel } paneProperties - Specifies the pane’s properties that apply to new pane.\n * @param { number } index - Specifies the index where the pane will be inserted.\n * @returns {void}\n */\n Splitter.prototype.addPane = function (paneProperties, index) {\n var newPane = this.createElement('div');\n newPane = this.addPaneClass(newPane);\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var paneDetails = {\n size: isNullOrUndefined(paneProperties.size) ? '' : paneProperties.size,\n min: isNullOrUndefined(paneProperties.min) ? null : paneProperties.min,\n max: isNullOrUndefined(paneProperties.max) ? null : paneProperties.max,\n content: isNullOrUndefined(paneProperties.content) ? '' : paneProperties.content,\n resizable: isNullOrUndefined(paneProperties.resizable) ? true : paneProperties.resizable,\n collapsible: isNullOrUndefined(paneProperties.collapsible) ? false : paneProperties.collapsible,\n collapsed: isNullOrUndefined(paneProperties.collapsed) ? false : paneProperties.collapsed,\n cssClass: isNullOrUndefined(paneProperties.cssClass) ? '' : paneProperties.cssClass\n };\n this.paneSettings.splice(index, 0, paneDetails);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.orientation === 'Horizontal') {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_H_PANE)[index]);\n this.removePaneOrders(SPLIT_H_PANE);\n }\n else {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_V_PANE)[index]);\n this.removePaneOrders(SPLIT_V_PANE);\n }\n this.allPanes.splice(index, 0, newPane);\n this.updatePanes();\n this.setTemplate(this.paneSettings[index].content, newPane);\n this.setCssClass(this.allPanes[index], paneProperties.cssClass);\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n };\n /**\n * Allows you to remove the specified pane dynamically by passing its index value.\n *\n * @param { number } index - Specifies the index value to remove the corresponding pane.\n * @returns {void}\n */\n Splitter.prototype.removePane = function (index) {\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var elementClass = (this.orientation === 'Horizontal') ? SPLIT_H_PANE : SPLIT_V_PANE;\n if (isNullOrUndefined(this.element.querySelectorAll('.' + elementClass)[index])) {\n return;\n }\n detach(this.element.querySelectorAll('.' + elementClass)[index]);\n this.allPanes.splice(index, 1);\n this.removePaneOrders(elementClass);\n this.updatePanes();\n this.paneSettings.splice(index, 1);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.allPanes.length > 0) {\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n }\n };\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"height\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enableReversePanes\", void 0);\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enablePersistence\", void 0);\n __decorate([\n Collection([], PaneProperties)\n ], Splitter.prototype, \"paneSettings\", void 0);\n __decorate([\n Property('Horizontal')\n ], Splitter.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Splitter.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enabled\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Splitter.prototype, \"separatorSize\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeCollapse\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeExpand\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"collapsed\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"expanded\", void 0);\n Splitter = __decorate([\n NotifyPropertyChanges\n ], Splitter);\n return Splitter;\n}(Component));\nexport { Splitter };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Property, NotifyPropertyChanges, isUndefined } from '@syncfusion/ej2-base';\nimport { Collection, Draggable, isNullOrUndefined, append, setValue } from '@syncfusion/ej2-base';\nimport { Event, formatUnit, ChildProperty, compile, closest, SanitizeHtmlHelper, getValue } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, addClass, detach, removeClass, EventHandler, Browser, extend } from '@syncfusion/ej2-base';\n// constant class definitions\nvar preventSelect = 'e-prevent';\nvar dragging = 'e-dragging';\nvar dragRestrict = 'e-drag-restrict';\nvar drag = 'e-drag';\nvar resize = 'e-resize';\nvar resizeicon = 'e-dl-icon';\nvar responsive = 'e-responsive';\nvar east = 'e-east';\nvar west = 'e-west';\nvar north = 'e-north';\nvar south = 'e-south';\nvar single = 'e-single';\nvar double = 'e-double';\nvar northEast = 'e-north-east';\nvar southEast = 'e-south-east';\nvar northWest = 'e-north-west';\nvar southWest = 'e-south-west';\nvar panel = 'e-panel';\nvar panelContent = 'e-panel-content';\nvar panelContainer = 'e-panel-container';\nvar disable = 'e-disabled';\nvar header = 'e-panel-header';\nvar panelTransition = 'e-panel-transition';\n/**\n * Defines the panel of the DashboardLayout component.\n */\nvar Panel = /** @class */ (function (_super) {\n __extends(Panel, _super);\n function Panel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Panel.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], Panel.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Panel.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Panel.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Panel.prototype, \"enabled\", void 0);\n __decorate([\n Property(0)\n ], Panel.prototype, \"row\", void 0);\n __decorate([\n Property(0)\n ], Panel.prototype, \"col\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"sizeX\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"sizeY\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"minSizeY\", void 0);\n __decorate([\n Property(1)\n ], Panel.prototype, \"minSizeX\", void 0);\n __decorate([\n Property(null)\n ], Panel.prototype, \"maxSizeY\", void 0);\n __decorate([\n Property(null)\n ], Panel.prototype, \"maxSizeX\", void 0);\n __decorate([\n Property(1000)\n ], Panel.prototype, \"zIndex\", void 0);\n return Panel;\n}(ChildProperty));\nexport { Panel };\n/**\n * The DashboardLayout is a grid structured layout control, that helps to create a dashboard with panels.\n * Panels hold the UI components or data to be visualized with flexible options like resize, reorder, drag-n-drop, remove and add,\n * that allows users to easily place the panels at a desired position within the grid layout.\n * ```html\n * <div id=\"default-layout\">\n * ```\n * ```typescript\n * <script>\n * let dashBoardObject : DashboardLayout = new DashboardLayout();\n * dashBoardObject.appendTo('#default-layout');\n * </script>\n * ```\n */\nvar DashboardLayout = /** @class */ (function (_super) {\n __extends(DashboardLayout, _super);\n function DashboardLayout(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.rows = 1;\n _this.panelID = 0;\n _this.movePanelCalled = false;\n _this.resizeCalled = false;\n _this.mOffX = 0;\n _this.mOffY = 0;\n _this.maxTop = 9999;\n _this.maxRows = 100;\n _this.mouseX = 0;\n _this.mouseY = 0;\n _this.minTop = 0;\n _this.minLeft = 0;\n _this.isInlineRendering = false;\n _this.removeAllCalled = false;\n // to check whether removePanel is executed in mobile device\n _this.isPanelRemoved = false;\n // to maintain sizeY in mobile device\n _this.panelsSizeY = 0;\n _this.resizeHeight = false;\n _this.eventVar = false;\n setValue('mergePersistData', _this.mergePersistPanelData, _this);\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n */\n DashboardLayout.prototype.preRender = function () {\n this.panelCollection = [];\n this.sortedArray = [];\n this.gridPanelCollection = [];\n this.overlapElement = [];\n this.overlapElementClone = [];\n this.overlapSubElementClone = [];\n this.collisionChecker = {};\n this.dragCollection = [];\n this.elementRef = { top: '', left: '', height: '', width: '' };\n this.dimensions = [];\n this.allItems = [];\n this.oldRowCol = {};\n this.availableClasses = [];\n this.setOldRowCol();\n this.calculateCellSize();\n this.contentTemplateChild = [].slice.call(this.element.children);\n };\n DashboardLayout.prototype.setOldRowCol = function () {\n for (var i = 0; i < this.panels.length; i++) {\n if (!this.panels[i].id) {\n this.panelPropertyChange(this.panels[i], { id: 'layout_' + this.panelID.toString() });\n this.panelID = this.panelID + 1;\n }\n this.oldRowCol[this.panels[i].id] = { row: this.panels[i].row, col: this.panels[i].col };\n }\n };\n DashboardLayout.prototype.createPanelElement = function (cssClass, idValue) {\n var ele = this.createElement('div');\n if (cssClass && cssClass.length > 0) {\n addClass([ele], cssClass);\n }\n if (idValue) {\n ele.setAttribute('id', idValue);\n }\n return ele;\n };\n /**\n * To Initialize the control rendering.\n *\n * @returns void\n * @private\n */\n DashboardLayout.prototype.render = function () {\n this.element.setAttribute('role', 'list');\n this.initialize();\n this.isRenderComplete = true;\n if (this.showGridLines && !this.checkMediaQuery()) {\n this.initGridLines();\n }\n this.updateDragArea();\n this.renderComplete();\n this.renderReactTemplates();\n };\n DashboardLayout.prototype.initGridLines = function () {\n this.table = document.createElement('table');\n var tbody = document.createElement('tbody');\n this.table.classList.add('e-dashboard-gridline-table');\n this.table.setAttribute('role', 'presentation');\n for (var i = 0; i < this.maxRow(); i++) {\n var tr = document.createElement('tr');\n for (var j = 0; j < this.columns; j++) {\n var td = document.createElement('td');\n td.classList.add('e-dashboard-gridline');\n this.setAttributes({ value: { row: i.toString(), col: j.toString(), sizeX: '1', sizeY: '1' } }, td);\n this.setPanelPosition(td, i, j);\n this.setHeightAndWidth(td, { row: i, col: j, sizeX: 1, sizeY: 1 });\n tr.appendChild(td);\n }\n tbody.appendChild(tr);\n }\n this.table.appendChild(tbody);\n this.element.appendChild(this.table);\n this.renderReactTemplates();\n };\n DashboardLayout.prototype.initialize = function () {\n this.updateRowHeight();\n if (this.element.childElementCount > 0 && this.element.querySelectorAll('.e-panel').length > 0) {\n var panelElements = [];\n this.setProperties({ panels: [] }, true);\n this.isInlineRendering = true;\n for (var i = 0; i < this.element.querySelectorAll('.e-panel').length; i++) {\n panelElements.push((this.element.querySelectorAll('.e-panel')[i]));\n }\n for (var i = 0; i < panelElements.length; i++) {\n var panelElement = panelElements[i];\n if (this.enableRtl) {\n addClass([panelElement], 'e-rtl');\n }\n this.getInlinePanels(panelElement);\n this.maxCol();\n this.maxRow();\n }\n for (var i = 0; i < this.panels.length; i++) {\n var panelElement = this.element.querySelector('#' + this.panels[i].id);\n this.setMinMaxValues(this.panels[i]);\n if (this.maxColumnValue < this.panels[i].col ||\n this.maxColumnValue < (this.panels[i].col + this.panels[i].sizeX)) {\n var colValue = this.maxColumnValue - this.panels[i].sizeX;\n this.panelPropertyChange(this.panels[i], { col: colValue < 0 ? 0 : colValue });\n }\n this.setXYAttributes(panelElement, this.panels[i]);\n var panel_1 = this.renderPanels(panelElement, this.panels[i], this.panels[i].id, false);\n this.panelCollection.push(panel_1);\n this.setHeightAndWidth(panelElement, this.panels[i]);\n this.tempObject = this;\n if (this.mediaQuery && !window.matchMedia('(' + this.mediaQuery + ')').matches) {\n this.setPanelPosition(panelElement, this.panels[i].row, this.panels[i].col);\n this.mainElement = panelElement;\n this.updatePanelLayout(panelElement, this.panels[i]);\n this.mainElement = null;\n }\n this.setClasses([panelElement]);\n }\n this.updateOldRowColumn();\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n }\n else {\n this.renderDashBoardCells(this.panels);\n }\n if (this.allowDragging && (this.mediaQuery ? !window.matchMedia('(' + this.mediaQuery + ')').matches : true)) {\n this.enableDraggingContent(this.panelCollection);\n }\n this.sortedPanel();\n this.bindEvents();\n this.updatePanels();\n this.updateCloneArrayObject();\n this.checkColumnValue = this.maxColumnValue;\n if (!(this.checkMediaQuery())) {\n this.panelResponsiveUpdate();\n }\n this.setEnableRtl();\n };\n DashboardLayout.prototype.checkMediaQuery = function () {\n return (this.mediaQuery && window.matchMedia('(' + this.mediaQuery + ')').matches);\n };\n DashboardLayout.prototype.calculateCellSize = function () {\n this.cellSize = [];\n if ((this.checkMediaQuery())) {\n this.cellSize[1] = this.element.parentElement\n && ((this.element.parentElement.offsetWidth)) / this.cellAspectRatio;\n }\n else {\n this.cellSize[0] = this.element.parentElement &&\n ((this.element.parentElement.offsetWidth));\n if (!isNullOrUndefined(this.cellSpacing)) {\n this.cellSize[0] = this.element.parentElement\n && ((this.element.parentElement.offsetWidth - ((this.maxCol() - 1) * this.cellSpacing[0]))\n / (this.maxCol()));\n }\n this.cellSize[1] = this.cellSize[0] / this.cellAspectRatio;\n }\n };\n DashboardLayout.prototype.maxRow = function (recheck) {\n var maxRow = 1;\n if (this.rows > 1 && isNullOrUndefined(recheck)) {\n maxRow = this.rows;\n return maxRow;\n }\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i].sizeY + this.panels[i].row > maxRow) {\n maxRow = this.panels[i].sizeY + this.panels[i].row;\n }\n }\n if (this.panels.length === 0) {\n maxRow = this.columns;\n }\n return maxRow;\n };\n DashboardLayout.prototype.maxCol = function () {\n var maxCol = 1;\n maxCol = this.columns;\n this.maxColumnValue = maxCol;\n return maxCol;\n };\n DashboardLayout.prototype.updateOldRowColumn = function () {\n for (var i = 0; i < this.panels.length; i++) {\n var id = this.panels[i].id;\n if (this.element.querySelector('[id=\\'' + id + '\\']')) {\n var row = parseInt(this.element.querySelector('[id=\\'' + id + '\\']').getAttribute('data-row'), 10);\n var col = parseInt(this.element.querySelector('[id=\\'' + id + '\\']').getAttribute('data-col'), 10);\n this.oldRowCol[this.panels[i].id] = { row: row, col: col };\n }\n else {\n continue;\n }\n }\n };\n DashboardLayout.prototype.createSubElement = function (cssClass, idValue, className) {\n var element = this.createElement('div');\n if (className) {\n addClass([element], [className]);\n }\n if (cssClass && cssClass.length > 0) {\n addClass([element], cssClass);\n }\n if (idValue) {\n element.setAttribute('id', idValue);\n }\n return element;\n };\n DashboardLayout.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return compile(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (error) {\n var sanitizedValue = SanitizeHtmlHelper.sanitize(template);\n return compile((this.enableHtmlSanitizer && typeof (template) === 'string') ? sanitizedValue : template);\n }\n }\n return undefined;\n };\n DashboardLayout.prototype.renderTemplate = function (content, appendElement, type, isStringTemplate, prop) {\n var templateFn = this.templateParser(content);\n var templateElements = [];\n if ((content[0] === '.' || content[0] === '#') &&\n document.querySelector(content).tagName !== 'SCRIPT') {\n var eleVal = document.querySelector(content);\n if (!isNullOrUndefined(eleVal)) {\n if (eleVal.style.display === 'none') {\n eleVal.style.removeProperty('display');\n }\n if (eleVal.getAttribute('style') === '') {\n eleVal.removeAttribute('style');\n }\n appendElement.appendChild(eleVal);\n return;\n }\n else {\n content = content.trim();\n }\n }\n else {\n var compilerFn = templateFn({}, this, prop, type, isStringTemplate, null, appendElement);\n if (compilerFn) {\n for (var _i = 0, compilerFn_1 = compilerFn; _i < compilerFn_1.length; _i++) {\n var item = compilerFn_1[_i];\n templateElements.push(item);\n }\n append([].slice.call(templateElements), appendElement);\n }\n }\n };\n DashboardLayout.prototype.renderPanels = function (cellElement, panelModel, panelId, isStringTemplate) {\n addClass([cellElement], [panel, panelTransition]);\n cellElement.setAttribute('role', 'listitem');\n if (this.allowDragging) {\n cellElement.setAttribute('aria-grabbed', 'false');\n }\n var cssClass = panelModel.cssClass ? panelModel.cssClass.split(' ') : null;\n this.panelContent = cellElement.querySelector('.e-panel-container') ?\n cellElement.querySelector('.e-panel-container') :\n this.createSubElement(cssClass, cellElement.id + '_content', panelContainer);\n cellElement.appendChild(this.panelContent);\n if (!panelModel.enabled) {\n this.disablePanel(cellElement);\n }\n if (panelModel.header) {\n var headerTemplateElement = cellElement.querySelector('.e-panel-header') ?\n cellElement.querySelector('.e-panel-header') : this.createSubElement([], cellElement.id + 'template', '');\n addClass([headerTemplateElement], [header]);\n if (!cellElement.querySelector('.e-panel-header')) {\n var id = this.element.id + 'HeaderTemplate' + panelId;\n this.renderTemplate(panelModel.header, headerTemplateElement, id, isStringTemplate, 'header');\n this.panelContent.appendChild(headerTemplateElement);\n this.renderReactTemplates();\n }\n }\n if (panelModel.content) {\n var cssClass_1 = panelModel.cssClass ? panelModel.cssClass.split(' ') : null;\n this.panelBody = cellElement.querySelector('.e-panel-content') ? cellElement.querySelector('.e-panel-content') :\n this.createSubElement(cssClass_1, cellElement.id + '_body', panelContent);\n var headerHeight = this.panelContent.querySelector('.e-panel-header') ?\n window.getComputedStyle(this.panelContent.querySelector('.e-panel-header')).height : '0px';\n var contentHeightValue = 'calc( 100% - ' + headerHeight + ')';\n setStyle(this.panelBody, { height: contentHeightValue });\n if (!cellElement.querySelector('.e-panel-content')) {\n var id = this.element.id + 'ContentTemplate' + panelId;\n this.renderTemplate(panelModel.content, this.panelBody, id, isStringTemplate, 'content');\n this.panelContent.appendChild(this.panelBody);\n this.renderReactTemplates();\n }\n }\n return cellElement;\n };\n DashboardLayout.prototype.disablePanel = function (panelElement) {\n addClass([panelElement], [disable]);\n };\n DashboardLayout.prototype.getInlinePanels = function (panelElement) {\n var model = {\n sizeX: panelElement.hasAttribute('data-sizex') ? parseInt(panelElement.getAttribute('data-sizex'), 10) : 1,\n sizeY: panelElement.hasAttribute('data-sizey') ? parseInt(panelElement.getAttribute('data-sizey'), 10) : 1,\n minSizeX: panelElement.hasAttribute('data-minsizex') ? parseInt(panelElement.getAttribute('data-minsizex'), 10) : 1,\n minSizeY: panelElement.hasAttribute('data-minsizey') ? parseInt(panelElement.getAttribute('data-minsizey'), 10) : 1,\n maxSizeX: panelElement.hasAttribute('data-maxsizex') ? parseInt(panelElement.getAttribute('data-maxsizex'), 10) : null,\n maxSizeY: panelElement.hasAttribute('data-maxsizey') ? parseInt(panelElement.getAttribute('data-maxsizey'), 10) : null,\n row: panelElement.hasAttribute('data-row') ? parseInt(panelElement.getAttribute('data-row'), 10) : 0,\n col: panelElement.hasAttribute('data-col') ? parseInt(panelElement.getAttribute('data-col'), 10) : 0,\n id: panelElement.getAttribute('id'),\n zIndex: panelElement.hasAttribute('data-zindex') ? parseInt(panelElement.getAttribute('data-zIndex'), 10) : 1000,\n header: panelElement.querySelector('.e-panel-header') && '.e-panel-header',\n content: panelElement.querySelector('.e-panel-content') && '.e-panel-content'\n };\n if (!model.id) {\n model.id = 'layout_' + this.panelID.toString();\n panelElement.setAttribute('id', model.id);\n this.panelID = this.panelID + 1;\n }\n if (isUndefined(model.enabled)) {\n model.enabled = true;\n }\n panelElement.style.zIndex = '' + model.zIndex;\n var panelProp = new Panel(this, 'panels', model, true);\n this.panels.push(panelProp);\n this.oldRowCol[model.id] = { row: model.row, col: model.col };\n };\n DashboardLayout.prototype.resizeEvents = function () {\n if (this.allowResizing) {\n var panelElements = this.element.querySelectorAll('.e-panel .e-panel-container .e-resize');\n for (var i = 0; i < panelElements.length; i++) {\n var eventName = (Browser.info.name === 'msie') ? 'mousedown pointerdown' : 'mousedown';\n EventHandler.add(panelElements[i], eventName, this.downResizeHandler, this);\n if (Browser.info.name !== 'msie') {\n EventHandler.add(panelElements[i], 'touchstart', this.touchDownResizeHandler, this);\n }\n }\n }\n };\n DashboardLayout.prototype.bindEvents = function () {\n this.refreshListener = this.refresh.bind(this);\n EventHandler.add(window, 'resize', this.refreshListener);\n this.resizeEvents();\n };\n DashboardLayout.prototype.downResizeHandler = function (e) {\n var el = closest((e.currentTarget), '.e-panel');\n for (var i = 0; this.panels.length > i; i++) {\n if (this.panels[i].enabled && this.panels[i].id === el.id) {\n this.downHandler(e);\n this.lastMouseX = e.pageX;\n this.lastMouseY = e.pageY;\n var moveEventName = (Browser.info.name === 'msie') ? 'mousemove pointermove' : 'mousemove';\n var upEventName = (Browser.info.name === 'msie') ? 'mouseup pointerup' : 'mouseup';\n if (!this.isMouseMoveBound) {\n EventHandler.add(document, moveEventName, this.moveResizeHandler, this);\n this.isMouseMoveBound = true;\n }\n if (!this.isMouseUpBound) {\n EventHandler.add(document, upEventName, this.upResizeHandler, this);\n this.isMouseUpBound = true;\n }\n }\n }\n };\n DashboardLayout.prototype.downHandler = function (e) {\n this.resizeCalled = false;\n this.panelsInitialModel = this.cloneModels(this.panels);\n var el = closest((e.currentTarget), '.e-panel');\n var args = { event: e, element: el, isInteracted: true };\n this.trigger('resizeStart', args);\n this.downTarget = e.currentTarget;\n this.shadowEle = document.createElement('div');\n this.shadowEle.classList.add('e-holder');\n addClass([this.element], [preventSelect]);\n this.element.appendChild(this.shadowEle);\n this.renderReactTemplates();\n this.elementX = parseFloat(el.style.left);\n this.elementY = parseFloat(el.style.top);\n this.elementWidth = el.offsetWidth;\n this.elementHeight = el.offsetHeight;\n this.originalWidth = this.getCellInstance(el.id).sizeX;\n this.originalHeight = this.getCellInstance(el.id).sizeY;\n this.previousRow = this.getCellInstance(el.id).row;\n };\n DashboardLayout.prototype.touchDownResizeHandler = function (e) {\n this.downHandler(e);\n this.lastMouseX = e.changedTouches[0].pageX;\n this.lastMouseY = e.changedTouches[0].pageY;\n if (!this.isMouseMoveBound) {\n EventHandler.add(document, 'touchmove', this.touchMoveResizeHandler, this);\n this.isMouseMoveBound = true;\n }\n if (!this.isMouseUpBound) {\n EventHandler.add(document, 'touchend', this.upResizeHandler, this);\n this.isMouseUpBound = true;\n }\n };\n DashboardLayout.prototype.getCellSize = function () {\n return [this.cellSize[0], this.cellSize[1]];\n };\n DashboardLayout.prototype.updateMaxTopLeft = function (e) {\n this.moveTarget = this.downTarget;\n var el = closest((this.moveTarget), '.e-panel');\n var args = { event: e, element: el, isInteracted: true };\n this.trigger('resize', args);\n };\n DashboardLayout.prototype.updateResizeElement = function (el) {\n this.maxLeft = this.element.offsetWidth - 1;\n this.maxTop = this.cellSize[1] * this.maxRows - 1;\n removeClass([el], 'e-panel-transition');\n addClass([el], [dragging]);\n var handleArray = [east, west, north, south, southEast, northEast, northWest, southWest];\n for (var i = 0; i < this.moveTarget.classList.length; i++) {\n if (handleArray.indexOf(this.moveTarget.classList[i]) !== -1) {\n this.handleClass = (this.moveTarget.classList[i]);\n }\n }\n };\n DashboardLayout.prototype.moveResizeHandler = function (e) {\n this.updateMaxTopLeft(e);\n var el = closest((this.moveTarget), '.e-panel');\n if (this.lastMouseX === e.pageX || this.lastMouseY === e.pageY) {\n return;\n }\n this.updateResizeElement(el);\n var panelModel = this.getCellInstance(el.getAttribute('id'));\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n var diffY = this.mouseY - this.lastMouseY + this.mOffY;\n var diffX = this.mouseX - this.lastMouseX + this.mOffX;\n this.mOffX = this.mOffY = 0;\n this.lastMouseY = this.mouseY;\n this.lastMouseX = this.mouseX;\n this.resizingPanel(el, panelModel, diffX, diffY);\n };\n DashboardLayout.prototype.touchMoveResizeHandler = function (e) {\n this.updateMaxTopLeft(e);\n var el = closest((this.moveTarget), '.e-panel');\n if (this.lastMouseX === e.changedTouches[0].pageX || this.lastMouseY === e.changedTouches[0].pageY) {\n return;\n }\n this.updateResizeElement(el);\n var panelModel = this.getCellInstance(el.getAttribute('id'));\n this.mouseX = e.changedTouches[0].pageX;\n this.mouseY = e.changedTouches[0].pageY;\n var diffX = this.mouseX - this.lastMouseX + this.mOffX;\n var diffY = this.mouseY - this.lastMouseY + this.mOffY;\n this.mOffX = this.mOffY = 0;\n this.lastMouseX = this.mouseX;\n this.lastMouseY = this.mouseY;\n this.resizingPanel(el, panelModel, diffX, diffY);\n };\n /* istanbul ignore next */\n DashboardLayout.prototype.resizingPanel = function (el, panelModel, currentX, currentY) {\n var oldSizeX = this.getCellInstance(el.id).sizeX;\n var oldSizeY = this.getCellInstance(el.id).sizeY;\n var dY = currentY;\n var dX = currentX;\n if (this.handleClass.indexOf('north') >= 0) {\n if (this.elementHeight - dY < this.getMinHeight(panelModel)) {\n currentY = this.elementHeight - this.getMinHeight(panelModel);\n this.mOffY = dY - currentY;\n }\n else if (panelModel.maxSizeY && this.elementHeight - dY > this.getMaxHeight(panelModel)) {\n currentY = this.elementHeight - this.getMaxHeight(panelModel);\n this.mOffY = dY - currentY;\n }\n else if (this.elementY + dY < this.minTop) {\n currentY = this.minTop - this.elementY;\n this.mOffY = dY - currentY;\n }\n this.elementY += currentY;\n this.elementHeight -= currentY;\n }\n if (this.handleClass.indexOf('south') >= 0) {\n if (this.elementHeight + dY < this.getMinHeight(panelModel)) {\n currentY = this.getMinHeight(panelModel) - this.elementHeight;\n this.mOffY = dY - currentY;\n }\n else if (panelModel.maxSizeY && this.elementHeight + dY > this.getMaxHeight(panelModel)) {\n currentY = this.getMaxHeight(panelModel) - this.elementHeight;\n this.mOffY = dY - currentY;\n }\n this.elementHeight += currentY;\n }\n if (this.handleClass.indexOf('west') >= 0) {\n if (this.elementWidth - dX < this.getMinWidth(panelModel)) {\n currentX = this.elementWidth - this.getMinWidth(panelModel);\n this.mOffX = dX - currentX;\n }\n else if (panelModel.maxSizeX && this.elementWidth - dX > this.getMaxWidth(panelModel)) {\n currentX = this.elementWidth - this.getMaxWidth(panelModel);\n this.mOffX = dX - currentX;\n }\n else if (this.elementX + dX < this.minLeft) {\n currentX = this.minLeft - this.elementX;\n this.mOffX = dX - currentX;\n }\n this.elementX += currentX;\n this.elementWidth -= currentX;\n }\n if (this.handleClass.indexOf('east') >= 0) {\n if (this.elementWidth + dX < this.getMinWidth(panelModel)) {\n currentX = this.getMinWidth(panelModel) - this.elementWidth;\n this.mOffX = dX - currentX;\n }\n else if (panelModel.maxSizeX && this.elementWidth + dX > this.getMaxWidth(panelModel)) {\n currentX = this.getMaxWidth(panelModel) - this.elementWidth;\n this.mOffX = dX - currentX;\n }\n var initialWidth = this.elementWidth;\n this.elementWidth += currentX;\n var newSizeX = this.pixelsToColumns(this.elementWidth - (panelModel.sizeX) * this.cellSpacing[1], true);\n if (this.columns < panelModel.col + newSizeX) {\n this.elementWidth = initialWidth;\n }\n }\n el.style.top = this.elementY + 'px';\n el.style.left = this.elementX + 'px';\n el.style.width = this.elementWidth + 'px';\n el.style.height = this.elementHeight + 'px';\n var item = this.getResizeRowColumn(panelModel);\n if (item.col + item.sizeX > this.columns) {\n this.panelPropertyChange(item, { sizeX: item.sizeX - 1 });\n }\n this.shadowEle.style.top = ((item.row * this.getCellSize()[1] + (item.row * this.cellSpacing[1]))) + 'px';\n if (this.handleClass.indexOf('west') >= 0) {\n this.shadowEle.style.left = ((item.col * this.getCellSize()[0]) + ((item.col - 1) * this.cellSpacing[0])) + 'px';\n }\n else {\n this.shadowEle.style.left = ((item.col * this.getCellSize()[0]) + ((item.col) * this.cellSpacing[0])) + 'px';\n }\n this.shadowEle.style.height = ((item.sizeY * (this.getCellSize()[1] + (this.cellSpacing[1])))) + 'px';\n this.shadowEle.style.width = ((item.sizeX * (this.getCellSize()[0] + (this.cellSpacing[0])))) + 'px';\n if (oldSizeX !== item.sizeX || oldSizeY !== item.sizeY) {\n oldSizeX = item.sizeX;\n oldSizeY = item.sizeY;\n var model = this.getCellInstance(el.id);\n var value = {\n attributes: {\n row: model.row.toString(),\n col: model.col.toString(),\n sizeX: model.sizeX.toString(),\n sizeY: model.sizeY.toString()\n }\n };\n this.setAttributes(value, el);\n this.mainElement = el;\n this.checkCollision = [];\n this.updatePanelLayout(el, this.getCellInstance(el.id));\n this.updateOldRowColumn();\n this.sortedPanel();\n }\n };\n DashboardLayout.prototype.upResizeHandler = function (e) {\n if (isNullOrUndefined(this.downTarget)) {\n return;\n }\n this.upTarget = this.downTarget;\n var el = closest((this.upTarget), '.e-panel');\n var args = { event: e, element: el, isInteracted: true };\n if (el) {\n addClass([el], 'e-panel-transition');\n var moveEventName = (Browser.info.name === 'msie') ? 'mousemove pointermove' : 'mousemove';\n var upEventName = (Browser.info.name === 'msie') ? 'mouseup pointerup' : 'mouseup';\n EventHandler.remove(document, moveEventName, this.moveResizeHandler);\n EventHandler.remove(document, upEventName, this.upResizeHandler);\n if (Browser.info.name !== 'msie') {\n EventHandler.remove(document, 'touchmove', this.touchMoveResizeHandler);\n EventHandler.remove(document, 'touchend', this.upResizeHandler);\n }\n this.isMouseUpBound = false;\n this.isMouseMoveBound = false;\n if (this.shadowEle) {\n detach(this.shadowEle);\n }\n this.shadowEle = null;\n var panelModel = this.getCellInstance(el.getAttribute('id'));\n this.setPanelPosition(el, panelModel.row, panelModel.col);\n this.setHeightAndWidth(el, panelModel);\n }\n removeClass([el], [dragging]);\n args.panels = this.getChangingPanels();\n this.trigger('resizeStop', args);\n this.resizeCalled = false;\n this.lastMouseX = this.lastMouseY = undefined;\n this.mOffX = this.mOffY = 0;\n this.mainElement = null;\n if (this.allowFloating) {\n this.moveItemsUpwards();\n }\n this.updatePanels();\n this.updateCloneArrayObject();\n this.checkForChanges(true);\n };\n DashboardLayout.prototype.getChangingPanels = function () {\n if (!this.resizeCalled) {\n this.updatePanels();\n }\n return this.getChangedPanels();\n };\n DashboardLayout.prototype.getResizeRowColumn = function (item) {\n var isChanged = false;\n var col = item.col;\n if (['e-west', 'e-south-west'].indexOf(this.handleClass) !== -1) {\n col = this.pixelsToColumns(this.elementX, false);\n }\n var row = item.row;\n if (['e-north'].indexOf(this.handleClass) !== -1) {\n row = this.pixelsToRows(this.elementY, false);\n if (this.previousRow !== row) {\n this.previousRow = row;\n isChanged = true;\n }\n }\n var sizeX = item.sizeX;\n if (['e-north', 'e-south'].indexOf(this.handleClass) === -1) {\n sizeX = this.pixelsToColumns(this.elementWidth - (sizeX) * this.cellSpacing[1], true);\n }\n var sizeY = item.sizeY;\n if (['e-east', 'e-west'].indexOf(this.handleClass) === -1) {\n if (this.handleClass === 'e-north' ? isChanged : true) {\n sizeY = this.pixelsToRows(this.elementHeight - (sizeY) * this.cellSpacing[0], true);\n }\n }\n if (item.col + sizeX > this.columns) {\n item.sizeX = sizeX - 1;\n }\n var canOccupy = row > -1 && col > -1 && sizeX + col <= this.maxCol() && sizeY + row <= this.maxRow();\n if (canOccupy && (this.collisions(row, col, sizeX, sizeY, this.getPanelBase(item.id)).length === 0)\n || this.allowPushing !== false) {\n this.panelPropertyChange(item, { row: row, col: col, sizeX: sizeX, sizeY: sizeY });\n }\n return item;\n };\n DashboardLayout.prototype.pixelsToColumns = function (pixels, isCeil) {\n if (isCeil) {\n return Math.ceil(pixels / this.cellSize[0]);\n }\n else {\n return Math.floor(pixels / (this.cellSize[0] + this.cellSpacing[0]));\n }\n };\n DashboardLayout.prototype.pixelsToRows = function (pixels, isCeil) {\n if (isCeil) {\n return Math.round(pixels / this.cellSize[1]);\n }\n else {\n return Math.round(pixels / (this.cellSize[1] + this.cellSpacing[0]));\n }\n };\n DashboardLayout.prototype.getMinWidth = function (item) {\n return (((item.minSizeX) * this.getCellSize()[0]) + (item.minSizeX - 1) * this.cellSpacing[0]);\n };\n DashboardLayout.prototype.getMaxWidth = function (item) {\n return (item.maxSizeX) * this.getCellSize()[0];\n };\n DashboardLayout.prototype.getMinHeight = function (item) {\n return (((item.minSizeY) * this.getCellSize()[1]) + (item.minSizeY - 1) * this.cellSpacing[1]);\n };\n DashboardLayout.prototype.getMaxHeight = function (item) {\n return (item.maxSizeY) * this.getCellSize()[1];\n };\n DashboardLayout.prototype.sortedPanel = function () {\n this.sortedArray = [];\n for (var i = 0, l = this.panelCollection.length; i < l; ++i) {\n this.sortItem(this.panelCollection[i]);\n }\n };\n DashboardLayout.prototype.moveItemsUpwards = function () {\n if (this.allowFloating === false) {\n return;\n }\n for (var rowIndex = 0, l = this.sortedArray.length; rowIndex < l; ++rowIndex) {\n var columns = this.sortedArray[rowIndex];\n if (!columns) {\n continue;\n }\n for (var colIndex = 0, len = columns.length; colIndex < len; ++colIndex) {\n var item = columns[colIndex];\n if (item) {\n this.moveItemUpwards(item);\n }\n }\n }\n this.updateGridLines();\n };\n DashboardLayout.prototype.moveItemUpwards = function (item) {\n if (this.allowFloating === false || item === this.mainElement) {\n return;\n }\n var colIndex = this.getCellInstance(item.id).col;\n var sizeY = parseInt(item.getAttribute('data-sizeY'), 10);\n var sizeX = parseInt(item.getAttribute('data-sizeX'), 10);\n var availableRow = null;\n var availableColumn = null;\n var rowIndex = parseInt(item.getAttribute('data-row'), 10) - 1;\n while (rowIndex > -1) {\n var items = this.collisions(rowIndex, colIndex, sizeX, sizeY, item);\n if (items.length !== 0) {\n break;\n }\n availableRow = rowIndex;\n availableColumn = colIndex;\n --rowIndex;\n }\n if (availableRow !== null) {\n this.sortItem(item, availableRow, availableColumn);\n }\n };\n DashboardLayout.prototype.sortItem = function (item, rowValue, columnValue) {\n this.overlapElement = [];\n var column = parseInt(item.getAttribute('data-col'), 10);\n var row = parseInt(item.getAttribute('data-row'), 10);\n if (!this.sortedArray[row]) {\n this.sortedArray[row] = [];\n }\n this.sortedArray[row][column] = item;\n if (item !== undefined && rowValue !== undefined && columnValue !== undefined) {\n if (this.oldRowCol[item.id] !== undefined && this.oldRowCol[item.id].row !== null &&\n typeof this.oldRowCol[item.id].col !== 'undefined') {\n {\n var oldRow = this.sortedArray[this.oldRowCol[item.id].row];\n if (this.oldRowCol[item.id] && oldRow[this.oldRowCol[item.id].col] === item) {\n delete oldRow[this.oldRowCol[item.id].col];\n this.updateOldRowColumn();\n this.sortedPanel();\n }\n }\n }\n this.oldRowCol[item.id].row = rowValue;\n this.oldRowCol[item.id].row = columnValue;\n if (!this.sortedArray[row]) {\n this.sortedArray[row] = [];\n }\n this.sortedArray[row][column] = item;\n if (this.allItems.indexOf(item) === -1) {\n this.allItems.push(item);\n }\n this.panelPropertyChange(this.getCellInstance(item.id), { row: rowValue, col: columnValue });\n var panelModel = this.getCellInstance(item.id);\n this.setAttributes({ value: { col: panelModel.col.toString(), row: panelModel.row.toString() } }, item);\n this.updateLayout(item, this.getCellInstance(item.id));\n }\n };\n DashboardLayout.prototype.updateLayout = function (element, panelModel) {\n this.setPanelPosition(element, panelModel.row, panelModel.col);\n this.setHeightAndWidth(element, panelModel);\n this.updateRowHeight();\n this.sortedPanel();\n };\n DashboardLayout.prototype.refresh = function () {\n this.panelsSizeY = 0;\n this.updateDragArea();\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n else {\n if (this.element.classList.contains(responsive)) {\n removeClass([this.element], [responsive]);\n var internalPanels = this.element.querySelectorAll(((this.element.id) ? '#' + this.element.id + ' > ' : '') + '.e-panel');\n for (var i = 0; i < internalPanels.length; i++) {\n var ele = internalPanels[i];\n var cellInstance = this.getCellInstance(ele.id);\n var row = parseInt(ele.getAttribute('data-row'), 10);\n var col = parseInt(ele.getAttribute('data-col'), 10);\n this.panelPropertyChange(cellInstance, { row: row, col: col });\n this.setHeightAndWidth(ele, this.getCellInstance(ele.id));\n this.setPanelPosition(ele, row, col);\n this.updateRowHeight();\n }\n }\n this.panelResponsiveUpdate();\n this.updateGridLines();\n }\n if (!isNullOrUndefined(this.panelCollection)) {\n this.removeResizeClasses(this.panelCollection);\n this.setClasses(this.panelCollection);\n }\n this.resizeEvents();\n if (!isNullOrUndefined(this.panelCollection)) {\n this.checkDragging(this.dragCollection);\n }\n };\n DashboardLayout.prototype.updateGridLines = function () {\n if (this.element.querySelector('.e-dashboard-gridline-table')) {\n if (this.table) {\n detach(this.table);\n }\n this.initGridLines();\n }\n };\n DashboardLayout.prototype.checkDragging = function (dragCollection) {\n if (this.checkMediaQuery() || !this.allowDragging) {\n for (var i = 0; i < dragCollection.length; i++) {\n dragCollection[i].destroy();\n }\n }\n else {\n for (var i = 0; i < dragCollection.length; i++) {\n dragCollection[i].destroy();\n }\n this.enableDraggingContent(this.panelCollection);\n }\n };\n DashboardLayout.prototype.sortPanels = function () {\n var model = [];\n var _loop_1 = function (row) {\n var _loop_2 = function (col) {\n this_1.panels.filter(function (panel) {\n if (panel.row === row && panel.col === col) {\n model.push(panel);\n }\n });\n };\n for (var col = 0; col < this_1.columns; col++) {\n _loop_2(col);\n }\n };\n var this_1 = this;\n for (var row = 0; row <= this.rows; row++) {\n _loop_1(row);\n }\n return model;\n };\n DashboardLayout.prototype.checkMediaQuerySizing = function () {\n addClass([this.element], [responsive]);\n var updatedPanel;\n if (this.isPanelRemoved && this.panels) {\n updatedPanel = this.panels;\n }\n else {\n updatedPanel = this.sortPanels();\n }\n this.updatedRows = updatedPanel.length;\n for (var i = 0; i < updatedPanel.length; i++) {\n var panelElement = document.getElementById(updatedPanel[i].id);\n var updatedHeight = void 0;\n if (panelElement) {\n setStyle(panelElement, { 'width': '100%' });\n panelElement.style.height = ' ' + ((this.element.parentElement\n && this.element.parentElement.offsetWidth / this.cellAspectRatio) * updatedPanel[i].sizeY) + 'px';\n if (updatedPanel[i].sizeY > 1) {\n updatedHeight = ((this.element.parentElement\n && this.element.parentElement.offsetWidth / this.cellAspectRatio) * updatedPanel[i].sizeY) +\n parseInt((Math.round(updatedPanel[i].sizeY / 2) * this.cellSpacing[1]).toString(), 10);\n panelElement.style.height = '' + updatedHeight + 'px';\n }\n this.resizeHeight = true;\n this.panelPropertyChange(updatedPanel[i], { row: i, col: 0 });\n this.setPanelPosition(panelElement, updatedPanel[i].row, updatedPanel[i].col);\n this.panelsSizeY = this.panelsSizeY + updatedPanel[i].sizeY;\n if (!isNullOrUndefined(this.panelCollection)) {\n this.setClasses(this.panelCollection);\n this.removeResizeClasses(this.panelCollection);\n }\n if (!isNullOrUndefined(this.dragCollection)) {\n this.checkDragging(this.dragCollection);\n }\n }\n }\n this.updateRowHeight();\n };\n DashboardLayout.prototype.panelResponsiveUpdate = function () {\n this.element.classList.add('e-responsive');\n this.calculateCellSize();\n for (var i = 0; i < this.element.querySelectorAll('.e-panel').length; i++) {\n var ele = this.element.querySelectorAll('.e-panel')[i];\n var panelModel = this.getCellInstance(ele.id);\n this.setHeightAndWidth(ele, panelModel);\n }\n for (var i = 0; i < this.panels.length; i++) {\n this.setPanelPosition(document.getElementById(this.panels[i].id), this.panels[i].row, this.panels[i].col);\n }\n this.updateRowHeight();\n };\n DashboardLayout.prototype.updateRowHeight = function () {\n this.getRowColumn();\n this.setHeightWidth();\n };\n DashboardLayout.prototype.setHeightWidth = function () {\n var heightValue;\n if (isNullOrUndefined(this.cellSpacing) || (this.panels.length === 0 && this.panelCollection &&\n this.panelCollection.length === 0)) {\n return;\n }\n if (this.checkMediaQuery()) {\n var entirePanelsY = 0;\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i].sizeY) {\n entirePanelsY += this.panels[i].sizeY;\n }\n }\n heightValue = ((entirePanelsY) *\n (this.element.parentElement && ((this.element.parentElement.offsetWidth)) / this.cellAspectRatio) +\n (entirePanelsY - 1) * this.cellSpacing[1]) + 'px';\n }\n else {\n heightValue = ((this.maxRow()) *\n (this.cellSize[0] / this.cellAspectRatio) + (this.maxRow() - 1) * this.cellSpacing[1]) + 'px';\n }\n setStyle(this.element, { 'height': heightValue });\n var widthValue = window.getComputedStyle(this.element).width;\n setStyle(this.element, { 'width': widthValue });\n };\n DashboardLayout.prototype.setEmptyLayoutHeight = function () {\n this.element.style.removeProperty('height');\n this.element.style.removeProperty('width');\n };\n DashboardLayout.prototype.setHeightAndWidth = function (panelElement, panelModel) {\n setStyle(panelElement, { 'height': formatUnit(this.setXYDimensions(panelModel)[0]) });\n setStyle(panelElement, { 'width': formatUnit(this.setXYDimensions(panelModel)[1]) });\n };\n DashboardLayout.prototype.renderCell = function (panel, isStringTemplate, index) {\n var cellElement;\n this.dimensions = this.setXYDimensions(panel);\n if (isUndefined(panel.enabled)) {\n panel.enabled = true;\n }\n if (this.contentTemplateChild.length > 0 && !isNullOrUndefined(index)) {\n cellElement = this.contentTemplateChild[index];\n if (panel.cssClass) {\n addClass([cellElement], [panel.cssClass]);\n }\n if (panel.id) {\n cellElement.setAttribute('id', panel.id);\n }\n }\n else {\n cellElement = this.createPanelElement(panel.cssClass ? panel.cssClass.split(' ') : null, panel.id);\n }\n cellElement.style.zIndex = '' + panel.zIndex;\n this.element.appendChild(cellElement);\n this.renderReactTemplates();\n var dashBoardCell = this.renderPanels(cellElement, panel, panel.id, isStringTemplate);\n this.panelCollection.push(dashBoardCell);\n this.setXYAttributes(cellElement, panel);\n this.setHeightAndWidth(cellElement, panel);\n return cellElement;\n };\n DashboardLayout.prototype.setPanelPosition = function (cellElement, row, col) {\n if (!cellElement) {\n return;\n }\n if (this.checkMediaQuery()) {\n this.calculateCellSize();\n }\n var heightValue = this.getCellSize()[1];\n var widthValue = this.getCellSize()[0];\n var left = col === 0 ? 0 : (((col) * ((widthValue) + this.cellSpacing[0])));\n var top = row === 0 ? 0 : (((row) * ((heightValue) + this.cellSpacing[1])));\n if (this.checkMediaQuery()) {\n top = row === 0 ? 0 : ((this.panelsSizeY) * ((heightValue) + this.cellSpacing[1]));\n }\n setStyle(cellElement, { 'left': left + 'px', 'top': top + 'px' });\n };\n DashboardLayout.prototype.getRowColumn = function () {\n this.rows = null;\n if (this.element.querySelectorAll('.e-panel').length > 0 && !this.updatedRows) {\n var panelElements = this.element.querySelectorAll('.e-panel');\n for (var i = 0; i < panelElements.length; i++) {\n var panelElement = panelElements[i];\n var rowValue = parseInt(panelElement.getAttribute('data-row'), 10);\n var xValue = parseInt(panelElement.getAttribute('data-sizeY'), 10);\n this.rows = Math.max(this.rows, (rowValue + xValue));\n }\n }\n else {\n if (this.updatedRows) {\n this.rows = this.updatedRows;\n this.updatedRows = null;\n }\n for (var i = 0; i < this.panels.length; i++) {\n this.rows = Math.max(this.rows, this.panels[i].row);\n }\n }\n };\n DashboardLayout.prototype.setMinMaxValues = function (panel) {\n if (!panel.sizeX || panel.sizeX < panel.minSizeX) {\n this.panelPropertyChange(panel, { sizeX: panel.minSizeX });\n }\n else if ((panel.maxSizeX && panel.sizeX > panel.maxSizeX)) {\n this.panelPropertyChange(panel, { sizeX: panel.maxSizeX });\n }\n else if (panel.sizeX > this.columns) {\n this.panelPropertyChange(panel, { sizeX: this.columns });\n }\n else {\n this.panelPropertyChange(panel, { sizeX: panel.sizeX });\n }\n if (!panel.sizeY || panel.sizeY < panel.minSizeY) {\n this.panelPropertyChange(panel, { sizeY: panel.minSizeY });\n }\n else if (panel.maxSizeY && panel.sizeY > panel.maxSizeY) {\n this.panelPropertyChange(panel, { sizeY: panel.maxSizeY });\n }\n else {\n this.panelPropertyChange(panel, { sizeY: panel.sizeY });\n }\n };\n DashboardLayout.prototype.checkMinMaxValues = function (panel) {\n if (panel.col + panel.sizeX > this.columns) {\n this.panelPropertyChange(panel, { sizeX: panel.sizeX + (this.columns - (panel.col + panel.sizeX)) });\n }\n };\n DashboardLayout.prototype.panelPropertyChange = function (panel, value) {\n panel.setProperties(value, true);\n };\n DashboardLayout.prototype.renderDashBoardCells = function (cells) {\n if (this.element.querySelectorAll('.e-panel').length > 0 || this.panels.length > 0) {\n for (var j = 0; j < cells.length; j++) {\n this.gridPanelCollection.push(cells[j]);\n this.setMinMaxValues(cells[j]);\n if (this.maxColumnValue < cells[j].col ||\n this.maxColumnValue < (cells[j].col + cells[j].sizeX)) {\n this.panelPropertyChange(cells[j], { col: this.maxColumnValue - cells[j].sizeX });\n }\n var cell = this.renderCell(cells[j], false, j);\n if (this.enableRtl) {\n addClass([cell], 'e-rtl');\n }\n this.element.appendChild(cell);\n this.renderReactTemplates();\n if (this.checkMediaQuery() && j === cells.length - 1) {\n this.checkMediaQuerySizing();\n }\n else {\n this.setPanelPosition(cell, cells[j].row, cells[j].col);\n this.mainElement = cell;\n this.updatePanelLayout(cell, cells[j]);\n this.mainElement = null;\n }\n }\n }\n this.setClasses(this.panelCollection);\n };\n DashboardLayout.prototype.collisions = function (row, col, sizeX, sizeY, ignore) {\n var items = [];\n if (!sizeX || !sizeY) {\n sizeX = sizeY = 1;\n }\n if (ignore && !(ignore instanceof Array)) {\n ignore = [ignore];\n }\n var item;\n for (var h = 0; h < sizeY; ++h) {\n for (var w = 0; w < sizeX; ++w) {\n item = this.getPanel(row + h, col + w, ignore);\n if (item && (!ignore || ignore.indexOf(this.element.querySelector('[id=\\'' + item.id + '\\']')) === -1) &&\n items.indexOf(this.element.querySelector('[id=\\'' + item.id + '\\']')) === -1) {\n items.push(this.element.querySelector('[id=\\'' + item.id + '\\']'));\n }\n }\n }\n return items;\n };\n DashboardLayout.prototype.rightWardsSpaceChecking = function (rowElements, col, ele) {\n var _this = this;\n var columns = [];\n var spacedColumns = [];\n rowElements.forEach(function (element) {\n var columnValue = parseInt(element.getAttribute('data-col'), 10);\n var sizeXValue = parseInt(element.getAttribute('data-sizeX'), 10);\n if (col < _this.columns && columnValue >= col) {\n if (sizeXValue > 1) {\n for (var i = columnValue; i < columnValue + sizeXValue; i++) {\n columns.push(i);\n }\n }\n else {\n columns.push(columnValue);\n }\n }\n });\n if (columns.length > 0) {\n for (var i = col + 1; i <= this.columns - 1; i++) {\n if (columns.indexOf(i) === -1 && i !== col) {\n if (spacedColumns.indexOf(i) === -1) {\n spacedColumns.push(i);\n }\n }\n }\n }\n var occupiedValues = this.getOccupiedColumns(ele);\n occupiedValues.forEach(function (colValue) {\n if (colValue > col && spacedColumns.indexOf(colValue) !== -1) {\n spacedColumns.splice(spacedColumns.indexOf(colValue), 1);\n }\n });\n var eleOccupiedValues = this.getOccupiedColumns(this.checkingElement);\n eleOccupiedValues.forEach(function (col) {\n if (col > parseInt(ele.getAttribute('data-col'), 10) && occupiedValues.indexOf(col) === -1 &&\n spacedColumns.indexOf(col) === -1) {\n spacedColumns.push(col);\n }\n });\n spacedColumns = spacedColumns.sort(function (next, previous) { return next - previous; });\n return spacedColumns;\n };\n DashboardLayout.prototype.getOccupiedColumns = function (element) {\n var occupiedItems = [];\n var sizeX = parseInt(element.getAttribute('data-sizeX'), 10);\n var col = parseInt(element.getAttribute('data-col'), 10);\n for (var i = col; (i < col + sizeX && i <= this.columns); i++) {\n occupiedItems.push(i);\n }\n return occupiedItems;\n };\n DashboardLayout.prototype.leftWardsSpaceChecking = function (rowElements, col, ele) {\n var _this = this;\n var spacedColumns = [];\n var columns = [];\n rowElements.forEach(function (element) {\n var colValue = parseInt(element.getAttribute('data-col'), 10);\n var xValue = parseInt(element.getAttribute('data-sizeX'), 10);\n if (col <= _this.columns && colValue <= col) {\n if (xValue > 1) {\n for (var i = colValue; i < colValue + xValue; i++) {\n columns.push(i);\n }\n }\n else {\n columns.push(colValue);\n }\n }\n });\n if (columns.length > 0) {\n for (var j = 0; j <= col; j++) {\n if (columns.indexOf(j) === -1 && j !== col) {\n if (spacedColumns.indexOf(j) === -1) {\n spacedColumns.push(j);\n }\n }\n }\n }\n var occupiedValues = this.getOccupiedColumns(ele);\n occupiedValues.forEach(function (colValue) {\n if (colValue < col && spacedColumns.indexOf(colValue) !== -1) {\n spacedColumns.splice(spacedColumns.indexOf(colValue), 1);\n }\n });\n var eleOccupiedValues = this.getOccupiedColumns(this.checkingElement);\n eleOccupiedValues.forEach(function (col) {\n if (col < parseInt(ele.getAttribute('data-col'), 10) && occupiedValues.indexOf(col) === -1 &&\n spacedColumns.indexOf(col) === -1) {\n spacedColumns.push(col);\n }\n });\n spacedColumns = spacedColumns.sort(function (next, prev) { return next - prev; });\n spacedColumns = spacedColumns.reverse();\n return spacedColumns;\n };\n DashboardLayout.prototype.adjustmentAvailable = function (row, col, sizeY, sizeX, ele) {\n this.leftAdjustable = undefined;\n this.rightAdjustable = undefined;\n var isAdjustable = false;\n var rightSpacing;\n var rowElement = [];\n this.topAdjustable = undefined;\n var eleSizeX = parseInt(ele.getAttribute('data-sizeX'), 10);\n var eleCol = parseInt(ele.getAttribute('data-col'), 10);\n rowElement = this.getRowElements(this.collisions(row, 0, this.columns, sizeY, []));\n if (rowElement.indexOf(ele) === -1) {\n rowElement.push(ele);\n }\n var leftSpacing = this.leftWardsSpaceChecking(rowElement, col, ele);\n if (leftSpacing.length > 0) {\n this.leftAdjustable = this.isLeftAdjustable(leftSpacing, ele, row, col, sizeX, sizeY);\n if (this.spacedColumnValue !== eleCol - this.getCellInstance(this.checkingElement.id).sizeX) {\n this.leftAdjustable = false;\n }\n if (this.leftAdjustable) {\n this.rightAdjustable = false;\n }\n else {\n this.leftAdjustable = false;\n rightSpacing = this.rightWardsSpaceChecking(rowElement, col, ele);\n this.rightAdjustable = rightSpacing.length > 0 ? this.isRightAdjustable(rightSpacing, ele, row, col, sizeX, sizeY) : false;\n if (this.spacedColumnValue !== eleSizeX + eleCol) {\n this.rightAdjustable = false;\n }\n if (!this.rightAdjustable) {\n this.rightAdjustable = false;\n }\n }\n }\n else {\n rightSpacing = this.rightWardsSpaceChecking(rowElement, col, ele);\n this.rightAdjustable = rightSpacing.length > 0 ? this.isRightAdjustable(rightSpacing, ele, row, col, sizeX, sizeY) : false;\n if (this.spacedColumnValue !== eleSizeX + eleCol) {\n this.rightAdjustable = false;\n }\n if (this.rightAdjustable) {\n this.leftAdjustable = false;\n }\n }\n if (!this.rightAdjustable && !this.leftAdjustable && row > 0) {\n var endRow = this.getCellInstance(ele.id).row;\n var topCheck = false;\n if (this.startRow !== endRow) {\n topCheck = true;\n }\n for (var rowValue = row; rowValue >= 0; rowValue--) {\n var element = (this.getCellInstance(ele.id).sizeY > 1 && topCheck) ? this.checkingElement : ele;\n if ((rowValue !== endRow) && (rowValue === endRow - sizeY) &&\n this.collisions(rowValue, col, sizeX, sizeY, element).length === 0) {\n topCheck = false;\n this.topAdjustable = true;\n this.spacedRowValue = isNullOrUndefined(this.spacedRowValue) ? rowValue : this.spacedRowValue;\n this.spacedColumnValue = col;\n }\n }\n }\n if (this.rightAdjustable || this.leftAdjustable || this.topAdjustable) {\n isAdjustable = true;\n if (isNullOrUndefined(this.spacedRowValue)) {\n this.spacedRowValue = row;\n }\n }\n return isAdjustable;\n };\n DashboardLayout.prototype.isXSpacingAvailable = function (spacing, sizeX) {\n var isSpaceAvailable = false;\n var subSpacingColumns = [];\n for (var i = 0; i < spacing.length; i++) {\n if (spacing[i + 1] - spacing[i] === 1 || spacing[i + 1] - spacing[i] === -1) {\n subSpacingColumns.push(spacing[i]);\n if (sizeX === 2) {\n subSpacingColumns.push(spacing[i + 1]);\n }\n if (i === spacing.length - 2) {\n subSpacingColumns.push(spacing[i + 1]);\n if (subSpacingColumns.length > sizeX) {\n subSpacingColumns.splice(-1);\n }\n }\n if (subSpacingColumns.length === sizeX) {\n isSpaceAvailable = true;\n this.spacedColumnValue = subSpacingColumns.sort(function (next, previous) { return next - previous; })[0];\n if (this.spacedColumnValue < 0) {\n this.spacedColumnValue = 1;\n }\n return isSpaceAvailable;\n }\n }\n else {\n subSpacingColumns = [];\n continue;\n }\n }\n return isSpaceAvailable;\n };\n DashboardLayout.prototype.getRowElements = function (base) {\n var rowElements = [];\n for (var i = 0; i < base.length; i++) {\n rowElements.push(base[i]);\n }\n return rowElements;\n };\n DashboardLayout.prototype.isLeftAdjustable = function (spaces, ele, row, col, sizeX, sizeY) {\n var isLeftAdjudtable;\n if (sizeX === 1 && sizeY === 1 && spaces.length > 0) {\n this.spacedColumnValue = spaces[0];\n isLeftAdjudtable = true;\n }\n else if (sizeX > 1 && sizeY === 1) {\n isLeftAdjudtable = this.isXSpacingAvailable(spaces, sizeX);\n }\n else if (sizeY > 1) {\n if (sizeX === 1) {\n var xAdjust = void 0;\n if (spaces.length >= 1) {\n xAdjust = true;\n }\n if (xAdjust) {\n for (var i = 0; i < spaces.length; i++) {\n var collisionValue = this.collisions(row, spaces[i], sizeX, sizeY, this.checkingElement);\n if (collisionValue.length === 0) {\n this.spacedColumnValue = spaces[i];\n isLeftAdjudtable = true;\n return isLeftAdjudtable;\n }\n else {\n isLeftAdjudtable = false;\n }\n }\n }\n }\n else {\n isLeftAdjudtable = this.replacable(spaces, sizeX, row, sizeY, ele);\n }\n }\n return isLeftAdjudtable;\n };\n DashboardLayout.prototype.isRightAdjustable = function (spacing, ele, row, col, sizeX, sizeY) {\n var isRightAdjudtable;\n if (sizeX === 1 && sizeY === 1 && spacing.length > 0) {\n this.spacedColumnValue = spacing[0];\n isRightAdjudtable = true;\n }\n else if (sizeX > 1 && sizeY === 1) {\n isRightAdjudtable = this.isXSpacingAvailable(spacing, sizeX);\n }\n else if (sizeY > 1) {\n if (sizeX === 1) {\n var xAdjust = void 0;\n if (spacing.length >= 1) {\n xAdjust = true;\n }\n if (xAdjust) {\n for (var i = 0; i < spacing.length; i++) {\n var collisionValue = this.collisions(row, spacing[i], sizeX, sizeY, this.checkingElement);\n for (var collision = 0; collision < collisionValue.length; collision++) {\n if (parseInt(ele.getAttribute('data-col'), 10) !== spacing[i]) {\n collisionValue.splice(collisionValue.indexOf(collisionValue[collision]), 1);\n }\n }\n if (collisionValue.length === 0) {\n isRightAdjudtable = true;\n this.spacedColumnValue = spacing[i];\n return isRightAdjudtable;\n }\n else {\n isRightAdjudtable = false;\n }\n }\n }\n }\n else {\n isRightAdjudtable = this.replacable(spacing, sizeX, row, sizeY, ele);\n }\n }\n return isRightAdjudtable;\n };\n DashboardLayout.prototype.replacable = function (spacing, sizeX, row, sizeY, ele) {\n var isRightAdjudtable;\n var updatedCollision = [];\n for (var j = 0; j < spacing.length; j++) {\n var xAdjust = this.isXSpacingAvailable(spacing, sizeX);\n if (xAdjust) {\n var exclusions = [];\n exclusions.push(this.checkingElement);\n exclusions.push(ele);\n if (updatedCollision.length === 0) {\n isRightAdjudtable = true;\n return isRightAdjudtable;\n }\n else {\n isRightAdjudtable = false;\n }\n }\n }\n return isRightAdjudtable;\n };\n DashboardLayout.prototype.sortCollisionItems = function (collisionItems) {\n var updatedCollision = [];\n var rowElements;\n var _loop_3 = function (row) {\n rowElements = [];\n collisionItems.forEach(function (element) {\n if (element && element.getAttribute('data-row') === row.toString()) {\n rowElements.push(element);\n }\n });\n var _loop_4 = function (column) {\n rowElements.forEach(function (item) {\n if (item && item.getAttribute('data-col') === column.toString()) {\n updatedCollision.push(item);\n }\n });\n };\n for (var column = this_2.columns - 1; column >= 0; column--) {\n _loop_4(column);\n }\n };\n var this_2 = this;\n for (var row = this.rows - 1; row >= 0; row--) {\n _loop_3(row);\n }\n return updatedCollision;\n };\n DashboardLayout.prototype.updatedModels = function (collisionItems, panelModel, ele) {\n var _this = this;\n var removeableElement = [];\n if (!this.mainElement) {\n this.sortedPanel();\n }\n collisionItems.forEach(function (element) {\n _this.checkingElement = element;\n var model = _this.getCellInstance(element.id);\n var adjust = !_this.adjustmentAvailable(model.row, model.col, model.sizeY, model.sizeX, ele);\n if (model.sizeX > 1 && adjust) {\n for (var rowValue = model.row; rowValue < panelModel.row + panelModel.sizeY; rowValue++) {\n var collisions = _this.collisions(rowValue, model.col, model.sizeX, model.sizeY, element);\n collisions.forEach(function (item) {\n if (collisionItems.indexOf(item) >= 0 && removeableElement.indexOf(item) === -1) {\n removeableElement.push(item);\n }\n });\n }\n }\n });\n removeableElement.forEach(function (item) {\n if (removeableElement.indexOf(item) >= 0) {\n collisionItems.splice(collisionItems.indexOf(item), 1);\n }\n });\n return collisionItems;\n };\n DashboardLayout.prototype.resetLayout = function (model) {\n var collisions = this.collisions(model.row, model.col, model.sizeX, model.sizeY, this.mainElement);\n if (!this.mainElement || this.addPanelCalled || this.resizeCalled || this.movePanelCalled) {\n return collisions;\n }\n if (this.mainElement && this.oldRowCol !== this.cloneObject) {\n for (var i = 0; i < this.panels.length; i++) {\n var element = this.element.querySelector('[id=\\'' + this.panels[i].id + '\\']');\n if (element === this.mainElement) {\n continue;\n }\n var rowValue = this.cloneObject[element.id].row;\n var colValue = this.cloneObject[element.id].col;\n this.setPanelPosition(element, rowValue, colValue);\n this.panelPropertyChange(this.getCellInstance(element.id), { row: rowValue, col: colValue });\n this.setAttributes({ value: { col: colValue.toString(), row: rowValue.toString() } }, element);\n this.updateOldRowColumn();\n }\n }\n this.sortedArray = this.cloneArray;\n collisions = this.collisions(model.row, model.col, model.sizeX, model.sizeY, this.mainElement);\n this.sortedPanel();\n this.updateOldRowColumn();\n if (this.checkCollision && this.checkCollision.length > 0 && collisions.indexOf(this.checkCollision[0]) === -1 &&\n this.cloneObject[this.checkCollision[0].id].row === model.row) {\n collisions.push(this.checkCollision[0]);\n }\n return collisions;\n };\n DashboardLayout.prototype.swapAvailability = function (collisions, element) {\n var available = true;\n var eleModel = this.getCellInstance(element.id);\n for (var count = 0; count < collisions.length; count++) {\n var collideModel = this.getCellInstance(collisions[count].id);\n for (var i = 1; i < eleModel.sizeY; i++) {\n var excludeEle = [];\n excludeEle.push(element);\n excludeEle.push(collisions[count]);\n var collision = this.collisions(eleModel.row + i, collideModel.col, collideModel.sizeX, collideModel.sizeY, excludeEle);\n if (collision.length > 0) {\n available = false;\n return false;\n }\n else {\n continue;\n }\n }\n }\n return available;\n };\n DashboardLayout.prototype.checkForSwapping = function (collisions, element) {\n if (Object.keys(this.cloneObject).length === 0 || !this.mainElement || collisions.length === 0) {\n return false;\n }\n var direction;\n var eleSwapRow = parseInt(collisions[0].getAttribute('data-row'), 10);\n if (this.startRow < eleSwapRow) {\n direction = 1;\n }\n else if (this.startRow > eleSwapRow) {\n direction = 0;\n }\n if (!this.swapAvailability(collisions, element)) {\n return false;\n }\n var isSwappable = false;\n for (var count1 = 0; count1 < collisions.length; count1++) {\n if (collisions.length >= 1 && this.cloneObject[this.mainElement.id] &&\n this.cloneObject[this.mainElement.id].row === this.oldRowCol[this.mainElement.id].row) {\n return false;\n }\n }\n var updatedRow = direction === 0 ?\n this.getCellInstance(this.mainElement.id).row + this.getCellInstance(this.mainElement.id).sizeY\n : this.startRow;\n for (var count = 0; count < collisions.length; count++) {\n var collideInstance = this.getCellInstance(collisions[count].id);\n var elementinstance = this.getCellInstance(element.id);\n var ignore = [];\n if (collideInstance.sizeY === 1 && ignore.indexOf(collisions[count]) === -1) {\n ignore.push(collisions[count]);\n }\n else if (collideInstance.sizeY > 1 && ignore.indexOf(collisions[count]) === -1) {\n if (direction === 1 && elementinstance.row === (this.cloneObject[collideInstance.id].row + collideInstance.sizeY - 1)) {\n ignore.push(collisions[count]);\n }\n else if (direction === 0 && elementinstance.row === (this.cloneObject[collideInstance.id].row)) {\n ignore.push(collisions[count]);\n }\n else {\n return false;\n }\n }\n if (collideInstance.sizeY <= elementinstance.sizeY && ignore.indexOf(collisions[count]) === -1) {\n ignore.push(collisions[count]);\n }\n ignore.push(this.mainElement);\n var swapCollision = this.collisions(updatedRow, collideInstance.col, collideInstance.sizeX, collideInstance.sizeY, ignore);\n if (swapCollision.length > 0) {\n isSwappable = false;\n return isSwappable;\n }\n else {\n if (count === collisions.length - 1) {\n isSwappable = true;\n }\n continue;\n }\n }\n return isSwappable;\n };\n DashboardLayout.prototype.swapItems = function (collisions, element, panelModel) {\n var _this = this;\n var direction;\n var swappedElements = [];\n swappedElements.push(element);\n var eleSwapRow = parseInt(collisions[0].getAttribute('data-row'), 10);\n if (this.startRow < eleSwapRow) {\n direction = 1;\n }\n else if (this.startRow > eleSwapRow) {\n direction = 0;\n }\n var collisionItemsRow = direction === 0 ? eleSwapRow + panelModel.sizeY : this.startRow;\n if (!this.movePanelCalled) {\n var collisionInstance = this.getCellInstance(collisions[0].id);\n this.panelPropertyChange(panelModel, { row: direction === 0 ? eleSwapRow : collisionItemsRow + collisionInstance.sizeY });\n }\n for (var count = 0; count < collisions.length; count++) {\n swappedElements.push(collisions[count]);\n this.setPanelPosition(collisions[count], collisionItemsRow, (this.getCellInstance(collisions[count].id)).col);\n this.panelPropertyChange(this.getCellInstance(collisions[count].id), { row: collisionItemsRow });\n collisions[count].setAttribute('data-row', collisionItemsRow.toString());\n }\n element.setAttribute('data-row', panelModel.row.toString());\n this.setPanelPosition(this.shadowEle, panelModel.row, panelModel.col);\n for (var i = 0; i < this.panels.length; i++) {\n this.oldRowCol[this.panels[i].id] = { row: this.panels[i].row, col: this.panels[i].col };\n }\n this.startRow = panelModel.row;\n this.updateOldRowColumn();\n swappedElements.forEach(function (item) {\n _this.cloneObject[item.id] = _this.oldRowCol[item.id];\n var itemModel = _this.getCellInstance(item.id);\n for (var i = 0; i < _this.sortedArray.length; i++) {\n if (!_this.sortedArray[i]) {\n continue;\n }\n for (var j = 0; j < _this.sortedArray[i].length; j++) {\n if (_this.sortedArray[i][j] === item) {\n _this.sortedArray[i][j] = undefined;\n }\n }\n }\n if (!_this.sortedArray[itemModel.row]) {\n _this.sortedArray[itemModel.row] = [];\n }\n _this.sortedArray[itemModel.row][itemModel.col] = item;\n _this.cloneArray = _this.sortedArray;\n });\n };\n DashboardLayout.prototype.updatePanelLayout = function (element, panelModel) {\n var _this = this;\n this.collisionChecker = {};\n var initialModel = [];\n var checkForAdjustment;\n var collisionModels = [];\n var swappingAvailable;\n if (this.mainElement && this.isRenderComplete) {\n initialModel = this.resetLayout(panelModel);\n }\n else {\n initialModel = this.collisions(panelModel.row, panelModel.col, panelModel.sizeX, panelModel.sizeY, element);\n }\n if (initialModel.length > 0) {\n initialModel = this.sortCollisionItems(initialModel);\n initialModel = this.updatedModels(initialModel, panelModel, element);\n swappingAvailable = !isNullOrUndefined(this.startRow) ? this.checkForSwapping(initialModel, element) : false;\n if (swappingAvailable) {\n this.swapItems(initialModel, element, panelModel);\n }\n else {\n for (var i = 0; i < initialModel.length; i++) {\n var model = this.getCellInstance(initialModel[i].id);\n this.checkingElement = initialModel[i];\n this.spacedRowValue = null;\n this.spacedColumnValue = null;\n checkForAdjustment = this.adjustmentAvailable(model.row, model.col, model.sizeY, model.sizeX, element);\n if (checkForAdjustment && !isNullOrUndefined(this.spacedColumnValue)) {\n this.setPanelPosition(initialModel[i], this.spacedRowValue, this.spacedColumnValue);\n this.oldRowCol[(initialModel[i].id)] = { row: this.spacedRowValue, col: this.spacedColumnValue };\n var value = {\n attributes: {\n row: this.spacedRowValue.toString(),\n col: this.spacedColumnValue.toString()\n }\n };\n this.setAttributes(value, initialModel[i]);\n this.panelPropertyChange(model, { col: this.spacedColumnValue, row: this.spacedRowValue });\n // updated the panel model array as inTopAdjustable case with floating enabled instead of dragging and extra row\n if (this.topAdjustable && this.allowFloating) {\n this.updatePanels();\n this.updateCloneArrayObject();\n }\n this.spacedRowValue = null;\n if (i < initialModel.length) {\n continue;\n }\n }\n else {\n collisionModels.push(initialModel[i]);\n }\n }\n }\n }\n if (collisionModels.length > 0) {\n collisionModels.forEach(function (item1) {\n if (_this.overlapElement.indexOf(item1) === -1) {\n _this.overlapElement.push(item1);\n }\n });\n if (this.overlapElement && this.overlapElement.indexOf(element) !== -1) {\n this.overlapElement.splice(this.overlapElement.indexOf(element), 1);\n }\n if (collisionModels.length > 0) {\n this.updateRowColumn(panelModel.row, this.overlapElement, element);\n this.checkForCompletePushing();\n }\n }\n if (!this.isSubValue) {\n this.sortedPanel();\n }\n this.updateRowHeight();\n this.updateGridLines();\n };\n DashboardLayout.prototype.checkForCompletePushing = function () {\n for (var i = 0; i < this.panels.length; i++) {\n if (this.collisionChecker[this.panels[i].id] && this.collisionChecker[this.panels[i].id] !== null) {\n this.overlapElement = [this.collisionChecker[this.panels[i].id].ele];\n var key = this.panels[i].id;\n this.updateRowColumn(this.collisionChecker[\"\" + key].row, this.overlapElement, this.collisionChecker[\"\" + key].srcEle);\n }\n }\n };\n DashboardLayout.prototype.updateCollisionChecked = function (item) {\n for (var count = 0; count < Object.keys(this.collisionChecker).length; count++) {\n this.collisionChecker[item.id] = null;\n }\n };\n DashboardLayout.prototype.updateRowColumn = function (row, ele, srcEle) {\n if (!srcEle) {\n return;\n }\n var eleSizeY = parseInt(srcEle.getAttribute('data-sizeY'), 10);\n var eleRow = parseInt(srcEle.getAttribute('data-row'), 10);\n this.overlapElementClone = this.overlapElement && !this.shouldRestrict ? this.overlapElement : this.overlapElement;\n for (var i = 0; i < this.overlapElementClone.length; i++) {\n if (this.overlapElementClone.length === 0) {\n return;\n }\n for (var i_1 = 0; i_1 < this.overlapElementClone.length; i_1++) {\n this.collisionChecker[this.overlapElementClone[i_1].id] = {\n ele: this.overlapElementClone[i_1],\n row: row,\n srcEle: srcEle\n };\n }\n var updatedRow = eleRow + eleSizeY;\n var collisionY = parseInt(this.overlapElementClone[i].getAttribute('data-sizeY'), 10);\n var collisionCol = parseInt(this.overlapElementClone[i].getAttribute('data-col'), 10);\n var collisionX = parseInt(this.overlapElementClone[i].getAttribute('data-sizeX'), 10);\n var colValue = void 0;\n var collisionModels = void 0;\n if (this.overlapSubElementClone.indexOf(srcEle) === -1) {\n this.overlapSubElementClone.push(srcEle);\n }\n if (this.overlapSubElementClone.indexOf(this.overlapElementClone[i]) === -1) {\n this.overlapSubElementClone.push(this.overlapElementClone[i]);\n }\n if (collisionY > 1 || collisionX > 1) {\n var overlapElementModel = this.getCellInstance(this.overlapElementClone[i].id);\n colValue = overlapElementModel.col;\n var ele_1 = document.getElementById(overlapElementModel.id);\n for (var k = overlapElementModel.row; k < eleRow + eleSizeY; k++) {\n this.isSubValue = true;\n this.panelPropertyChange(overlapElementModel, { row: overlapElementModel.row + 1 });\n ele_1.setAttribute('data-row', overlapElementModel.row.toString());\n this.setPanelPosition(ele_1, overlapElementModel.row, colValue);\n this.updateCollisionChecked(ele_1);\n this.oldRowCol[(ele_1.id)] = { row: overlapElementModel.row, col: colValue };\n var panelModel = this.getCellInstance(ele_1.id);\n this.panelPropertyChange(panelModel, { col: colValue, row: overlapElementModel.row });\n var eleRow_1 = parseInt(ele_1.getAttribute('data-row'), 10);\n var eleCol = parseInt(ele_1.getAttribute('data-col'), 10);\n var sizeX = parseInt(ele_1.getAttribute('data-sizeX'), 10);\n var sizeY = parseInt(ele_1.getAttribute('data-sizeY'), 10);\n var excludeElements = [];\n excludeElements.push(ele_1);\n excludeElements.push(srcEle);\n collisionModels = this.collisions(eleRow_1, eleCol, sizeX, sizeY, excludeElements);\n if (this.mainElement && collisionModels.indexOf(this.mainElement) !== -1) {\n collisionModels.splice(collisionModels.indexOf(this.mainElement), 1);\n }\n this.collisionPanel(collisionModels, eleCol, eleRow_1, ele_1);\n }\n this.isSubValue = false;\n }\n else {\n if (this.addPanelCalled) {\n this.addPanelCalled = false;\n }\n this.overlapElementClone[i].setAttribute('data-row', updatedRow.toString());\n var excludeEle = [];\n excludeEle.push(this.overlapElementClone[i]);\n excludeEle.push(srcEle);\n collisionModels = this.collisions(updatedRow, collisionCol, collisionX, collisionY, excludeEle);\n if (this.mainElement && collisionModels.indexOf(this.mainElement) !== -1) {\n collisionModels.splice(collisionModels.indexOf(this.mainElement), 1);\n }\n colValue = parseInt(this.overlapElementClone[i].getAttribute('data-col'), 10);\n this.setPanelPosition(this.overlapElementClone[i], updatedRow, colValue);\n this.updateCollisionChecked(this.overlapElementClone[i]);\n this.oldRowCol[(this.overlapElementClone[i].id)] = { row: updatedRow, col: colValue };\n var panelModel = this.getCellInstance(this.overlapElementClone[i].id);\n this.panelPropertyChange(panelModel, { col: colValue, row: updatedRow });\n this.collisionPanel(collisionModels, colValue, updatedRow, this.overlapElementClone[i]);\n }\n }\n };\n DashboardLayout.prototype.collisionPanel = function (collisionModels, colValue, updatedRow, clone) {\n var _this = this;\n var panelModel = this.getCellInstance(clone.id);\n this.panelPropertyChange(panelModel, { row: updatedRow, col: colValue });\n if (collisionModels.length > 0) {\n this.overlapElement = [];\n this.shouldRestrict = true;\n collisionModels.forEach(function (item1) {\n _this.overlapElement.push(item1);\n });\n var overlapElementRow1 = parseInt(clone.getAttribute('data-row'), 10);\n for (var m = 0; m < this.overlapElement.length; m++) {\n this.updateRowColumn(overlapElementRow1, this.overlapElement, clone);\n }\n this.shouldRestrict = false;\n }\n else {\n if (!this.addPanelCalled) {\n this.sortedPanel();\n }\n if (this.overlapSubElementClone.length > 0) {\n for (var p = 0; p < this.overlapSubElementClone.length; p++) {\n var rowVal = parseInt(this.overlapSubElementClone[p].getAttribute('data-row'), 10);\n var colValue_1 = parseInt(this.overlapSubElementClone[p].getAttribute('data-col'), 10);\n var sizeX = parseInt(this.overlapSubElementClone[p].getAttribute('data-sizeX'), 10);\n var sizeY = parseInt(this.overlapSubElementClone[p].getAttribute('data-sizeY'), 10);\n var collisionModels1 = this.collisions(rowVal, colValue_1, sizeX, sizeY, this.overlapSubElementClone);\n if (this.mainElement && collisionModels1.indexOf(this.mainElement) !== -1) {\n collisionModels1.splice(collisionModels1.indexOf(this.mainElement), 1);\n }\n collisionModels1.forEach(function (item1) {\n _this.overlapElement.push(item1);\n });\n if (collisionModels1.length > 0) {\n this.updateRowColumn(rowVal, this.overlapElement, this.overlapSubElementClone[p]);\n }\n }\n }\n this.overlapSubElementClone = [];\n }\n };\n DashboardLayout.prototype.removeResizeClasses = function (panelElements) {\n for (var i = 0; i < panelElements.length; i++) {\n var element = panelElements[i];\n var resizerElements = element.querySelectorAll('.e-resize');\n for (var i_2 = 0; i_2 < resizerElements.length; i_2++) {\n detach(resizerElements[i_2]);\n }\n }\n };\n DashboardLayout.prototype.ensureDrag = function () {\n this.checkDragging(this.dragCollection);\n var dragPanels = this.element.querySelectorAll('.' + drag);\n removeClass(dragPanels, [drag]);\n this.setClasses(this.panelCollection);\n };\n DashboardLayout.prototype.setClasses = function (panelCollection) {\n for (var i = 0; i < panelCollection.length; i++) {\n var element = panelCollection[i];\n var containerEle = panelCollection[i].querySelector('.e-panel-container');\n if (this.allowDragging) {\n if (this.draggableHandle && element.querySelectorAll(this.draggableHandle)[0]) {\n addClass([element.querySelectorAll(this.draggableHandle)[0]], [drag]);\n }\n else {\n addClass([element], [drag]);\n }\n }\n if (this.allowResizing &&\n this.mediaQuery ? !(this.checkMediaQuery()) : false) {\n this.setResizingClass(element, containerEle);\n }\n }\n };\n DashboardLayout.prototype.setResizingClass = function (ele, container) {\n this.availableClasses = this.resizableHandles;\n if (!ele.querySelector('.e-resize')) {\n for (var j = 0; j < this.availableClasses.length; j++) {\n var spanEle = this.createElement('span');\n var addClassValue = void 0;\n container.appendChild(spanEle);\n if (this.availableClasses[j] === 'e-east' || this.availableClasses[j] === 'e-west' ||\n this.availableClasses[j] === 'e-north' || this.availableClasses[j] === 'e-south') {\n addClassValue = single;\n }\n else {\n addClassValue = double;\n }\n addClass([spanEle], [addClassValue, this.availableClasses[j], resize, resizeicon]);\n }\n }\n };\n DashboardLayout.prototype.setXYAttributes = function (element, panelModel) {\n var value = {\n value: {\n sizeX: !isNullOrUndefined(panelModel.sizeX) ? panelModel.sizeX.toString() : undefined,\n sizeY: !isNullOrUndefined(panelModel.sizeY) ? panelModel.sizeY.toString() : undefined,\n minSizeX: !isNullOrUndefined(panelModel.minSizeX) ? panelModel.minSizeX.toString() : undefined,\n minSizeY: !isNullOrUndefined(panelModel.minSizeY) ? panelModel.minSizeY.toString() : undefined,\n maxSizeX: !isNullOrUndefined(panelModel.maxSizeX) ? panelModel.maxSizeX.toString() : undefined,\n maxSizeY: !isNullOrUndefined(panelModel.maxSizeY) ? panelModel.maxSizeY.toString() : undefined,\n row: !isNullOrUndefined(panelModel.row) ? panelModel.row.toString() : undefined,\n col: !isNullOrUndefined(panelModel.col) ? panelModel.col.toString() : undefined\n }\n };\n this.setAttributes(value, element);\n };\n DashboardLayout.prototype.setXYDimensions = function (panelModel) {\n var cellHeight = this.getCellSize()[1];\n var cellWidth = this.getCellSize()[0];\n var widthValue;\n var heigthValue;\n if (panelModel && typeof (cellWidth) === 'number' && typeof (panelModel.sizeX) === 'number' && panelModel.sizeX > 1) {\n widthValue = (panelModel.sizeX * cellWidth) + (panelModel.sizeX - 1) * this.cellSpacing[0];\n }\n else {\n widthValue = cellWidth;\n }\n if (panelModel && typeof (cellHeight) === 'number' && panelModel.sizeY > 1 && typeof (panelModel.sizeY) === 'number') {\n heigthValue = (panelModel.sizeY * cellHeight) + (panelModel.sizeY - 1) * this.cellSpacing[1];\n }\n else {\n heigthValue = formatUnit(cellHeight);\n }\n return [heigthValue, widthValue];\n };\n DashboardLayout.prototype.getRowColumnDragValues = function (args) {\n var value = [];\n var elementTop = parseFloat(args.element.style.top);\n var elementLeft = parseFloat(args.element.style.left);\n var row = Math.round(elementTop / (this.getCellSize()[1] + this.cellSpacing[1]));\n var col = Math.round(elementLeft / (this.getCellSize()[0] + +this.cellSpacing[0]));\n value = [row, col];\n return value;\n };\n DashboardLayout.prototype.checkForChanges = function (isInteracted, added, removed) {\n var changedPanels = this.getChangedPanels(removed);\n if (changedPanels.length > 0 || this.removeAllCalled) {\n var changedArgs = {\n changedPanels: changedPanels, isInteracted: isInteracted,\n addedPanels: !isNullOrUndefined(added) ? added : [], removedPanels: !isNullOrUndefined(removed) ? removed : []\n };\n this.trigger('change', changedArgs);\n }\n };\n DashboardLayout.prototype.getChangedPanels = function (removed) {\n var changedPanels = [];\n if (this.removeAllCalled) {\n changedPanels = [];\n }\n else {\n for (var i = 0; i < this.panels.length; i++) {\n if (((!isNullOrUndefined(removed) ? (this.panels[i].id !== removed[0].id) : true)) &&\n (this.panels[i].row !== this.panelsInitialModel[i].row ||\n this.panels[i].col !== this.panelsInitialModel[i].col)) {\n changedPanels.push(this.panels[i]);\n }\n }\n }\n return changedPanels;\n };\n DashboardLayout.prototype.enableDraggingContent = function (collections) {\n var _this = this;\n var _loop_5 = function (i) {\n var abortArray = ['.e-resize', '.' + dragRestrict];\n var cellElement = collections[i];\n {\n this_3.dragobj = new Draggable(cellElement, {\n preventDefault: false,\n clone: false,\n dragArea: this_3.element,\n isDragScroll: true,\n handle: this_3.draggableHandle ? this_3.draggableHandle : '.e-panel',\n abort: abortArray,\n dragStart: this_3.onDraggingStart.bind(this_3),\n dragStop: function (args) {\n var dragStopArgs = args;\n dragStopArgs.panels = _this.getChangingPanels();\n _this.trigger('dragStop', dragStopArgs);\n if (isNullOrUndefined(args.cancel)) {\n args.cancel = false;\n }\n if (!(args.cancel)) {\n var model = _this.getCellInstance(_this.mainElement.id);\n if (_this.allowPushing &&\n _this.collisions(model.row, model.col, model.sizeX, model.sizeY, _this.mainElement).length > 0) {\n _this.setHolderPosition(args);\n _this.setPanelPosition(_this.mainElement, model.row, model.col);\n _this.updatePanelLayout(_this.mainElement, model);\n }\n else {\n _this.setPanelPosition(_this.mainElement, model.row, model.col);\n }\n _this.mainElement = null;\n var item = _this.getPanelBase(args);\n if (_this.shadowEle) {\n detach(_this.shadowEle);\n }\n removeClass([_this.element], [preventSelect]);\n removeClass([args.element], [dragging]);\n _this.shadowEle = null;\n args.element.classList.remove('e-dragging');\n var row = _this.getRowColumnDragValues(args)[0];\n var col = _this.getRowColumnDragValues(args)[1];\n var panelModel = _this.getCellInstance(args.element.id);\n if (_this.allowPushing &&\n _this.collisions(row, col, panelModel.sizeX, panelModel.sizeY, document.getElementById(item.id)).length === 0) {\n _this.panelPropertyChange(_this.getCellInstance(args.element.id), { row: row, col: col });\n _this.oldRowCol[args.element.id].row = row;\n _this.oldRowCol[args.element.id].col = col;\n _this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);\n _this.sortedPanel();\n }\n else {\n _this.panelPropertyChange(_this.getCellInstance(args.element.id), {\n row: _this.oldRowCol[args.element.id].row,\n col: _this.oldRowCol[args.element.id].col\n });\n args.element.setAttribute('data-col', _this.getCellInstance(args.element.id).col.toString());\n args.element.setAttribute('data-row', _this.getCellInstance(args.element.id).row.toString());\n _this.sortedPanel();\n }\n var panelInstance = _this.getCellInstance(args.element.id);\n _this.setPanelPosition(args.element, panelInstance.row, panelInstance.col);\n _this.updatePanels();\n _this.updateCloneArrayObject();\n _this.checkForChanges(true);\n _this.dragStopEventArgs = { event: args.event, element: args.element };\n _this.resizeEvents();\n _this.rows = _this.maxRow(true);\n _this.setHeightWidth();\n _this.updateDragArea();\n }\n else {\n var currentPanel = _this.getCellInstance(_this.mainElement.id);\n for (i = 0; i < _this.panels.length; i++) {\n if (_this.panels[i].id === currentPanel.id) {\n args.element.setAttribute('data-col', _this.panelsInitialModel[i].col.toString());\n args.element.setAttribute('data-row', _this.panelsInitialModel[i].row.toString());\n currentPanel.col = _this.panelsInitialModel[i].col;\n currentPanel.row = _this.panelsInitialModel[i].row;\n _this.setPanelPosition(_this.mainElement, _this.panelsInitialModel[i].row, _this.panelsInitialModel[i].col);\n _this.updatePanelLayout(_this.mainElement, currentPanel);\n }\n }\n if (_this.shadowEle) {\n detach(_this.shadowEle);\n }\n }\n },\n drag: function (args) {\n _this.draggedEventArgs = {\n event: args.event,\n element: args.element,\n target: closest((args.target), '.e-panel')\n };\n _this.trigger('drag', _this.draggedEventArgs);\n _this.onDragStart(args);\n }\n });\n if (this_3.dragCollection.indexOf(this_3.dragobj) === -1) {\n this_3.dragCollection.push(this_3.dragobj);\n }\n }\n out_i_1 = i;\n };\n var this_3 = this, out_i_1;\n for (var i = 0; i < collections.length; i++) {\n _loop_5(i);\n i = out_i_1;\n }\n };\n DashboardLayout.prototype.updatePanels = function () {\n this.moveItemsUpwards();\n this.updateOldRowColumn();\n this.sortedPanel();\n };\n DashboardLayout.prototype.updateDragArea = function () {\n this.dragCollection.forEach(function (dragobj) {\n dragobj.setDragArea();\n });\n };\n /**\n * Method to update the draggable handle when draggable panel elements are bound dynamically.\n *\n * @returns void\n *\n */\n DashboardLayout.prototype.refreshDraggableHandle = function () {\n if (this.dragCollection && this.dragCollection.length > 0) {\n for (var i = 0; i < this.dragCollection.length; i++) {\n this.dragCollection[i].destroy();\n EventHandler.clearEvents(this.dragCollection[i].element);\n }\n this.ensureDrag();\n }\n };\n DashboardLayout.prototype.updateRowsHeight = function (row, sizeY, addRows) {\n if (row + sizeY >= this.rows) {\n this.rows = this.rows + addRows;\n this.setHeightWidth();\n }\n };\n DashboardLayout.prototype.onDraggingStart = function (args) {\n var dragArgs = args;\n this.trigger('dragStart', dragArgs, function () {\n if (isNullOrUndefined(args.cancel)) {\n args.cancel = false;\n }\n });\n this.eventVar = args.cancel;\n if (!(args.cancel)) {\n this.panelsInitialModel = this.cloneModels(this.panels);\n this.mainElement = args.element;\n this.cloneObject = JSON.parse(JSON.stringify(this.cloneObject));\n var eleRowValue = this.startRow = parseInt(args.element.getAttribute('data-row'), 10);\n this.startCol = parseInt(args.element.getAttribute('data-col'), 10);\n var eleSizeY = parseInt(args.element.getAttribute('data-sizeY'), 10);\n this.updateRowsHeight(eleRowValue, eleSizeY, eleSizeY);\n this.updateDragArea();\n this.shadowEle = document.createElement('div');\n this.shadowEle.classList.add('e-holder', 'e-holder-transition');\n setStyle(this.shadowEle, { 'position': 'absolute' });\n addClass([this.element], [preventSelect]);\n addClass([args.element], [dragging]);\n this.element.appendChild(this.shadowEle);\n this.renderReactTemplates();\n this.shadowEle = document.querySelector('.e-holder');\n var panelValues = this.getCellInstance(args.element.id);\n var shadowSize = this.calculateShadowElementSize(panelValues.sizeX, panelValues.sizeY);\n this.shadowEle.style.height = shadowSize.height;\n this.shadowEle.style.width = shadowSize.width;\n var panelInstance = this.getCellInstance(args.element.id);\n this.setPanelPosition(this.shadowEle, panelInstance.row, panelInstance.col);\n }\n else {\n removeClass([this.element], [preventSelect]);\n removeClass([args.element], [dragging]);\n }\n };\n DashboardLayout.prototype.cloneModels = function (source, target) {\n if (target === undefined) {\n target = [];\n }\n for (var i = 0; i < source.length; i++) {\n if (!target[i]) {\n target[i] = {};\n }\n // eslint-disable-next-line guard-for-in\n for (var k in source[i]) {\n target[i][\"\" + k] = source[i][\"\" + k];\n }\n }\n return target;\n };\n DashboardLayout.prototype.onDragStart = function (args) {\n var endCol;\n var endRow;\n var dragCol;\n if (!this.eventVar) {\n var col = dragCol = this.getRowColumnDragValues(args)[1];\n var row = this.getRowColumnDragValues(args)[0];\n if (col < 0 || row < 0) {\n return;\n }\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n var panelModel = this.getCellInstance(args.element.id);\n this.updateRowsHeight(panelModel.row, panelModel.sizeY, 1);\n this.updateDragArea();\n if (this.allowPushing) {\n this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n endCol = this.oldRowCol[(args.element.id)].col;\n endRow = this.oldRowCol[(args.element.id)].row;\n this.oldRowCol[(args.element.id)] = { row: row, col: col };\n this.updateOldRowColumn();\n if (this.startCol !== endCol || this.startRow !== endRow) {\n this.setHolderPosition(args);\n if (this.startCol !== endCol) {\n this.startRow = endRow;\n }\n if (this.startRow !== endRow) {\n this.startCol = endCol;\n }\n if (this.allowPushing) {\n this.mainElement = args.element;\n var model = panelModel;\n this.checkCollision = this.collisions(model.row, model.col, model.sizeX, model.sizeY, args.element);\n if (panelModel.col >= 0 || panelModel.col >= this.checkColumnValue) {\n this.checkCollision = [];\n }\n this.updatePanelLayout(args.element, panelModel);\n this.moveItemsUpwards();\n }\n }\n }\n if (this.allowPushing !== false) {\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n }\n if (this.oldRowCol[args.element.id].row !== row || this.oldRowCol[args.element.id].col !== col) {\n this.panelPropertyChange(this.getCellInstance(args.element.id), { row: row, col: col });\n this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, args.element);\n }\n if (this.startCol !== dragCol) {\n this.startCol = endCol;\n this.moveItemsUpwards();\n }\n if (!this.allowPushing) {\n this.setHolderPosition(args);\n }\n this.removeResizeClasses(this.panelCollection);\n this.setClasses(this.panelCollection);\n if (this.allowPushing === false) {\n return;\n }\n }\n else {\n this.dragobj.intDestroy(args.event);\n removeClass([this.element], [preventSelect]);\n removeClass([args.element], [dragging]);\n }\n };\n DashboardLayout.prototype.getPanelBase = function (args) {\n var item;\n for (var i = 0; i < this.panelCollection.length; i++) {\n if (this.panelCollection[i].id === ((args.element\n && args.element.id) || args)) {\n item = this.panelCollection[i];\n }\n }\n return item;\n };\n DashboardLayout.prototype.getPanel = function (row, column, excludeItems) {\n if (excludeItems && !(excludeItems instanceof Array)) {\n excludeItems = [excludeItems];\n }\n var sizeY = 1;\n while (row > -1) {\n var sizeX = 1;\n var col = column;\n while (col > -1) {\n var items = this.sortedArray[row];\n if (items) {\n var item = items[col];\n if (item && (!excludeItems ||\n excludeItems.indexOf(item) === -1) && parseInt(item.getAttribute('data-sizeX'), 10) >= sizeX\n && parseInt(item.getAttribute('data-sizeY'), 10) >= sizeY) {\n return item;\n }\n }\n ++sizeX;\n --col;\n }\n --row;\n ++sizeY;\n }\n return null;\n };\n DashboardLayout.prototype.setHolderPosition = function (args) {\n var sizeY = parseInt(args.element.getAttribute('data-sizeY'), 10);\n var col = parseInt(args.element.getAttribute('data-col'), 10);\n var row = parseInt(args.element.getAttribute('data-row'), 10);\n var sizeX = parseInt(args.element.getAttribute('data-sizeX'), 10);\n var widthValue = this.getCellSize()[0];\n var heightValue = this.getCellSize()[1];\n var top = row === 0 ? 0 : (((row) * (heightValue + this.cellSpacing[1])));\n var left = col === 0 ? 0 : (((col) * (widthValue + this.cellSpacing[0])));\n this.elementRef.top = this.shadowEle.style.top = top + 'px';\n this.elementRef.left = this.shadowEle.style.left = left + 'px';\n var shadowSize = this.calculateShadowElementSize(sizeX, sizeY);\n this.elementRef.height = this.shadowEle.style.height = shadowSize.height;\n this.elementRef.width = this.shadowEle.style.width = shadowSize.width;\n };\n DashboardLayout.prototype.calculateShadowElementSize = function (sizeX, sizeY) {\n return {\n width: (sizeX * this.cellSize[0]) + ((sizeX - 1) * this.cellSpacing[0]) + 'px',\n height: (sizeY * this.cellSize[1]) + ((sizeY - 1) * this.cellSpacing[1]) + 'px'\n };\n };\n DashboardLayout.prototype.getCellInstance = function (idValue) {\n var currentCellInstance;\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i].id === idValue) {\n currentCellInstance = this.panels[i];\n }\n }\n return currentCellInstance;\n };\n /**\n * Allows to add a panel to the Dashboardlayout.\n *\n * @param {panel} panel - Defines the panel element.\n *\n * @returns void\n * @deprecated\n */\n DashboardLayout.prototype.addPanel = function (panel) {\n this.panelsSizeY = 0;\n this.maxCol();\n if (!panel.minSizeX) {\n panel.minSizeX = 1;\n }\n if (!panel.minSizeY) {\n panel.minSizeY = 1;\n }\n if (!panel.id) {\n panel.id = 'layout_' + this.panelID.toString();\n this.panelID = this.panelID + 1;\n }\n var panelProp = new Panel(this, 'panels', panel, true);\n this.panels.push(panelProp);\n this.panelsInitialModel = this.cloneModels(this.panels);\n this.setMinMaxValues(panelProp);\n if (this.maxColumnValue < panelProp.col || this.maxColumnValue < (panelProp.col + panelProp.sizeX)) {\n this.panelPropertyChange(panelProp, { col: this.maxColumnValue - panelProp.sizeX });\n }\n var cell = this.renderCell(panelProp, true, null);\n this.oldRowCol[panelProp.id] = { row: panelProp.row, col: panelProp.col };\n this.cloneObject[panelProp.id] = { row: panelProp.row, col: panelProp.col };\n this.updateOldRowColumn();\n this.element.insertAdjacentElement('afterbegin', cell);\n this.addPanelCalled = true;\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n this.removeResizeClasses(this.panelCollection);\n }\n else {\n this.mainElement = cell;\n if (!this.checkCollision) {\n this.checkCollision = [];\n }\n this.setPanelPosition(cell, panelProp.row, panelProp.col);\n this.addPanelCalled = false;\n this.updatePanelLayout(cell, panelProp);\n }\n if (this.addPanelCalled) {\n this.addPanelCalled = false;\n }\n if (this.allowDragging &&\n this.mediaQuery ? !(this.checkMediaQuery()) : false) {\n this.enableDraggingContent([document.getElementById(panelProp.id)]);\n }\n this.setClasses([cell]);\n if (this.allowFloating) {\n this.mainElement = null;\n this.moveItemsUpwards();\n }\n this.updateOldRowColumn();\n this.sortedPanel();\n this.updateCloneArrayObject();\n if (this.allowResizing) {\n for (var i = 0; i < cell.querySelectorAll('.e-resize').length; i++) {\n var eventName = (Browser.info.name === 'msie') ? 'mousedown pointerdown' : 'mousedown';\n EventHandler.add(cell.querySelectorAll('.e-resize')[i], eventName, this.downResizeHandler, this);\n if (Browser.info.name !== 'msie') {\n EventHandler.add(cell.querySelectorAll('.e-resize')[i], 'touchstart', this.touchDownResizeHandler, this);\n }\n }\n }\n this.checkForChanges(false, [panelProp]);\n };\n /**\n * Allows to update a panel in the DashboardLayout.\n *\n * @param {panel} panel - Defines the panel element.\n *\n * @returns void\n * @deprecated\n */\n DashboardLayout.prototype.updatePanel = function (panel) {\n this.panelsSizeY = 0;\n if (!panel.id) {\n return;\n }\n var panelInstance = this.getCellInstance(panel.id);\n if (!panelInstance) {\n return;\n }\n this.maxCol();\n panel.col = (panel.col < 1) ? 0 : ((panel.col > this.columns)) ? this.columns - 1 : panel.col;\n if (isNullOrUndefined(panel.col)) {\n panel.col = panelInstance.col;\n }\n this.panelPropertyChange(panelInstance, panel);\n this.setMinMaxValues(panelInstance);\n var cell = document.getElementById(panel.id);\n this.mainElement = cell;\n var cssClass = panelInstance.cssClass ? panelInstance.cssClass.split(' ') : null;\n this.panelContent = cell.querySelector('.e-panel-container') ?\n cell.querySelector('.e-panel-container') :\n this.createSubElement(cssClass, cell.id + '_content', panelContainer);\n cell.appendChild(this.panelContent);\n if (panelInstance.header) {\n var headerTemplateElement = cell.querySelector('.e-panel-header') ?\n cell.querySelector('.e-panel-header') : this.createSubElement([], cell.id + 'template', '');\n addClass([headerTemplateElement], [header]);\n headerTemplateElement.innerHTML = '';\n var id = this.element.id + 'HeaderTemplate' + panelInstance.id;\n this.renderTemplate(panelInstance.header, headerTemplateElement, id, true, 'header');\n this.panelContent.appendChild(headerTemplateElement);\n this.renderReactTemplates();\n }\n else {\n if (cell.querySelector('.e-panel-header')) {\n detach(cell.querySelector('.e-panel-header'));\n }\n }\n if (panelInstance.content) {\n var cssClass_2 = panelInstance.cssClass ? panelInstance.cssClass.split(' ') : null;\n this.panelBody = cell.querySelector('.e-panel-content') ? cell.querySelector('.e-panel-content') :\n this.createSubElement(cssClass_2, cell.id + '_body', panelContent);\n this.panelBody.innerHTML = '';\n var headerHeight = this.panelContent.querySelector('.e-panel-header') ?\n window.getComputedStyle(this.panelContent.querySelector('.e-panel-header')).height : '0px';\n var contentHeightValue = 'calc( 100% - ' + headerHeight + ')';\n setStyle(this.panelBody, { height: contentHeightValue });\n var id = this.element.id + 'ContentTemplate' + panelInstance.id;\n this.renderTemplate(panelInstance.content, this.panelBody, id, true, 'content');\n this.panelContent.appendChild(this.panelBody);\n this.renderReactTemplates();\n }\n else {\n if (cell.querySelector('.e-panel-content')) {\n detach(cell.querySelector('.e-panel-content'));\n }\n }\n this.setXYAttributes(cell, panelInstance);\n this.setHeightAndWidth(cell, panelInstance);\n this.setPanelPosition(cell, panelInstance.row, panelInstance.col);\n this.updatePanelLayout(cell, panelInstance);\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n this.mainElement = null;\n this.updatePanels();\n this.updateCloneArrayObject();\n };\n DashboardLayout.prototype.updateCloneArrayObject = function () {\n this.cloneArray = this.sortedArray;\n this.cloneObject = JSON.parse(JSON.stringify(this.oldRowCol));\n };\n /**\n * Returns the panels object of the DashboardLayout.\n *\n * @returns [`PanelModel[]`](./panelModel)\n */\n DashboardLayout.prototype.serialize = function () {\n var cloneModel = this.cloneModels(this.panels);\n var customObject = [];\n for (var i = 0; i < cloneModel.length; i++) {\n customObject.push({\n id: cloneModel[i].id, row: cloneModel[i].row, col: cloneModel[i].col,\n sizeX: cloneModel[i].sizeX, sizeY: cloneModel[i].sizeY, minSizeX: cloneModel[i].minSizeX,\n minSizeY: cloneModel[i].minSizeY, maxSizeX: cloneModel[i].maxSizeX,\n maxSizeY: cloneModel[i].maxSizeY\n });\n }\n return (customObject);\n };\n /**\n * Removes all the panels from the DashboardLayout.\n */\n DashboardLayout.prototype.removeAll = function () {\n this.removeAllCalled = true;\n for (var i = 0; i < this.panelCollection.length; i++) {\n detach(this.panelCollection[i]);\n this.clearTemplate();\n }\n this.removeAllPanel();\n this.rows = 0;\n this.gridPanelCollection = [];\n this.setHeightWidth();\n this.sortedPanel();\n this.sortedArray = [];\n this.overlapElementClone = [];\n this.overlapElement = [];\n this.overlapSubElementClone = [];\n this.panelCollection = [];\n this.oldRowCol = {};\n this.cloneObject = {};\n var clonedPanels = this.cloneModels(this.panels);\n this.setProperties({ panels: [] }, true);\n this.updatePanels();\n this.updateCloneArrayObject();\n this.checkForChanges(false, null, clonedPanels);\n this.removeAllCalled = false;\n this.setEmptyLayoutHeight();\n };\n /**\n * Removes the panel from the DashboardLayout.\n *\n * @param {string} id - Defines the panel ID.\n *\n * @returns void\n */\n DashboardLayout.prototype.removePanel = function (id) {\n var _this = this;\n this.panelsSizeY = 0;\n this.panelsInitialModel = this.cloneModels(this.panels);\n var removedPanel;\n for (var i = 0; i < this.panelCollection.length; i++) {\n if (this.panelCollection[i].id === id) {\n detach(this.panelCollection[i]);\n this.panelCollection.splice(i, 1);\n }\n if (this.panels[i].id === id) {\n removedPanel = this.panels[i];\n this.panels.splice(i, 1);\n this.panelsInitialModel.splice(i, 1);\n this.updateOldRowColumn();\n this.sortedPanel();\n }\n }\n this.updatePanels();\n if (this.checkMediaQuery()) {\n this.isPanelRemoved = true;\n this.checkMediaQuerySizing();\n this.isPanelRemoved = false;\n }\n this.gridPanelCollection.forEach(function (item) {\n if (item.id === id) {\n _this.gridPanelCollection.splice(_this.gridPanelCollection.indexOf(item), 1);\n }\n });\n this.updateCloneArrayObject();\n this.checkForChanges(false, null, [removedPanel]);\n if (this.panels.length === 0 && this.panelCollection.length === 0) {\n this.setEmptyLayoutHeight();\n }\n };\n /**\n *Moves the panel in the DashboardLayout.\n *\n * @param {string} id - Defines the panel ID.\n *\n * @param {number} row - Defines the row of dashboard layout.\n *\n * @param {number} col - Defines the column of dashboard layout.\n *\n * @returns void\n */\n DashboardLayout.prototype.movePanel = function (id, row, col) {\n this.movePanelCalled = true;\n this.panelsInitialModel = this.cloneModels(this.panels);\n var panelInstance = this.getCellInstance(id);\n if ((isNaN(row) || row === null) || (isNaN(col) || col === null) || !panelInstance) {\n return;\n }\n if (col < 0) {\n col = 0;\n }\n else if (col > this.columns) {\n col = this.columns - panelInstance.sizeX;\n }\n this.panelPropertyChange(panelInstance, { row: row, col: col });\n var ele = document.getElementById(id);\n this.mainElement = ele;\n this.startRow = parseInt(ele.getAttribute('data-row'), 10);\n this.startCol = parseInt(ele.getAttribute('data-col'), 10);\n this.setAttributes({ value: { col: col.toString(), row: row.toString() } }, ele);\n this.updateOldRowColumn();\n this.setPanelPosition(ele, row, col);\n this.updatePanelLayout(ele, panelInstance);\n this.updateRowHeight();\n this.updatePanels();\n this.updateCloneArrayObject();\n this.mainElement = null;\n if (this.allowFloating) {\n this.moveItemsUpwards();\n }\n this.movePanelCalled = false;\n this.checkForChanges(false);\n };\n DashboardLayout.prototype.setAttributes = function (value, ele) {\n for (var i = 0; i < Object.keys(value).length; i++) {\n if (Object.keys(value)) {\n if (value[Object.keys(value)[i]].col) {\n ele.setAttribute('data-col', value[Object.keys(value)[i]].col.toString());\n }\n if (value[Object.keys(value)[i]].row) {\n ele.setAttribute('data-row', value[Object.keys(value)[i]].row.toString());\n }\n if (value[Object.keys(value)[i]].sizeX) {\n ele.setAttribute('data-sizeX', value[Object.keys(value)[i]].sizeX.toString());\n }\n if (value[Object.keys(value)[i]].sizeY) {\n ele.setAttribute('data-sizeY', value[Object.keys(value)[i]].sizeY.toString());\n }\n if (value[Object.keys(value)[i]].minSizeX) {\n ele.setAttribute('data-minSizeX', value[Object.keys(value)[i]].minSizeX.toString());\n }\n if (value[Object.keys(value)[i]].minSizeY) {\n ele.setAttribute('data-minSizeY', value[Object.keys(value)[i]].minSizeY.toString());\n }\n if (value[Object.keys(value)[i]].maxSizeX) {\n ele.setAttribute('data-maxSizeY', value[Object.keys(value)[i]].maxSizeX.toString());\n }\n if (value[Object.keys(value)[i]].maxSizeY) {\n ele.setAttribute('data-maxSizeY', value[Object.keys(value)[i]].maxSizeY.toString());\n }\n }\n }\n };\n /**\n * Resize the panel in the DashboardLayout.\n *\n * @param {string} id - Defines the panel ID.\n *\n * @param {number} sizeX - Defines the sizeX of dashboard layout.\n *\n * @param {number} sizeY - Defines the sizeY of dashboard layout.\n */\n DashboardLayout.prototype.resizePanel = function (id, sizeX, sizeY) {\n this.panelsInitialModel = this.cloneModels(this.panels);\n var panelInstance = this.getCellInstance(id);\n this.resizeCalled = true;\n var ele = document.getElementById(id);\n var args = { event: null, element: ele, isInteracted: false };\n this.trigger('resizeStart', args);\n this.panelPropertyChange(panelInstance, { sizeX: sizeX, sizeY: sizeY });\n this.setMinMaxValues(panelInstance);\n this.checkMinMaxValues(panelInstance);\n this.mainElement = ele;\n this.setAttributes({ value: { sizeX: panelInstance.sizeX.toString(), sizeY: panelInstance.sizeY.toString() } }, ele);\n this.setHeightAndWidth(ele, panelInstance);\n this.updatePanelLayout(ele, panelInstance);\n this.updatePanels();\n this.updateRowHeight();\n args.panels = this.getChangingPanels();\n this.resizeCalled = false;\n this.trigger('resizeStop', args);\n this.checkForChanges(false);\n };\n /**\n * Destroys the DashboardLayout component\n *\n * @returns void\n */\n DashboardLayout.prototype.destroy = function () {\n EventHandler.remove(window, 'resize', this.refreshListener);\n removeClass([this.element], ['e-dashboardlayout', 'e-lib', 'e-responsive', 'e-control']);\n this.element.removeAttribute('style');\n for (var i = 0; i < this.dragCollection.length; i++) {\n this.dragCollection[i].destroy();\n }\n this.removeAllPanel();\n this.panelCollection = null;\n this.checkCollision = null;\n this.mainElement = null;\n this.dragobj = null;\n this.dragStartArgs = null;\n this.dragStopEventArgs = null;\n this.draggedEventArgs = null;\n this.sortedArray = null;\n this.cloneArray = null;\n this.overlapElement = null;\n this.overlapElementClone = null;\n this.dragCollection = [];\n this.allItems = null;\n this.moveTarget = null;\n this.upTarget = null;\n this.downTarget = null;\n this.checkingElement = null;\n this.panelHeaderElement = null;\n this.panelContent = null;\n this.panelBody = null;\n this.table = null;\n _super.prototype.destroy.call(this);\n this.clearTemplate();\n this.renderReactTemplates();\n };\n DashboardLayout.prototype.removeAllPanel = function () {\n while (this.element.firstElementChild) {\n detach(this.element.firstElementChild);\n this.clearTemplate();\n }\n };\n DashboardLayout.prototype.setEnableRtl = function () {\n if (this.enableRtl === true) {\n addClass([this.element], 'e-rtl');\n }\n else {\n removeClass([this.element], 'e-rtl');\n }\n };\n /**\n * Called internally if any of the property value changed.\n * returns void\n *\n * @private\n */\n DashboardLayout.prototype.updateCellSizeAndSpacing = function () {\n this.panelResponsiveUpdate();\n this.setHeightWidth();\n this.getRowColumn();\n for (var i = 0; i < this.element.querySelectorAll('.e-panel').length; i++) {\n var ele = this.element.querySelectorAll('.e-panel')[i];\n var panelModel = this.getCellInstance(ele.id);\n this.setHeightAndWidth(ele, panelModel);\n this.setPanelPosition(ele, panelModel.row, panelModel.col);\n }\n };\n DashboardLayout.prototype.updatePanelsDynamically = function (panels) {\n this.removeAll();\n this.setProperties({ panels: panels }, true);\n this.setOldRowCol();\n if (this.table) {\n this.table.remove();\n }\n this.initialize();\n if (this.checkMediaQuery()) {\n this.refresh();\n }\n if (this.showGridLines) {\n this.initGridLines();\n }\n };\n DashboardLayout.prototype.checkForIDValues = function (panels) {\n var _this = this;\n if (!isNullOrUndefined(panels) && panels.length > 0) {\n this.panelID = 0;\n panels.forEach(function (panel) {\n if (!panel.id) {\n _this.panelPropertyChange(panel, { id: 'layout_' + _this.panelID.toString() });\n _this.panelID = _this.panelID + 1;\n }\n });\n }\n else {\n this.restrictDynamicUpdate = true;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * returns void\n *\n * @private\n */\n DashboardLayout.prototype.onPropertyChanged = function (newProp) {\n var _this = this;\n if (newProp.panels && newProp.panels.length > 0 && newProp.panels[0] instanceof Panel) {\n this.checkForIDValues(newProp.panels);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enableRtl':\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\n this.setEnableRtl();\n break;\n case 'mediaQuery':\n this.setProperties({ mediaQuery: newProp.mediaQuery }, true);\n if (this.checkMediaQuery()) {\n this.checkMediaQuerySizing();\n }\n break;\n case 'allowDragging':\n this.setProperties({ allowDragging: newProp.allowDragging }, true);\n this.ensureDrag();\n break;\n case 'allowResizing':\n this.setProperties({ allowResizing: newProp.allowResizing }, true);\n if (this.allowResizing) {\n this.setClasses(this.panelCollection);\n this.resizeEvents();\n }\n else {\n var panelElements = this.element.querySelectorAll('.e-panel .e-panel-container .e-resize');\n for (var i = 0; i < panelElements.length; i++) {\n var eventName = (Browser.info.name === 'msie') ? 'mousedown pointerdown' : 'mousedown';\n var element = panelElements[i];\n EventHandler.remove(element, eventName, this.downResizeHandler);\n if (Browser.info.name !== 'msie') {\n EventHandler.remove(element, 'touchstart', this.touchDownResizeHandler);\n }\n }\n this.removeResizeClasses(this.panelCollection);\n }\n break;\n case 'cellSpacing':\n this.setProperties({ cellSpacing: newProp.cellSpacing }, true);\n if (!this.checkMediaQuery()) {\n this.updateCellSizeAndSpacing();\n this.updateGridLines();\n }\n break;\n case 'draggableHandle':\n this.setProperties({ draggableHandle: newProp.draggableHandle }, true);\n this.ensureDrag();\n break;\n case 'allowFloating':\n this.setProperties({ allowFloating: newProp.allowFloating }, true);\n this.moveItemsUpwards();\n break;\n case 'showGridLines':\n if (this.showGridLines) {\n this.setProperties({ showGridLines: newProp.showGridLines }, true);\n this.initGridLines();\n }\n else {\n if (this.table) {\n detach(this.table);\n }\n }\n break;\n case 'allowPushing':\n this.setProperties({ allowPushing: newProp.allowPushing }, true);\n break;\n case 'panels':\n if (!newProp.columns && !this.restrictDynamicUpdate && (newProp.panels[0] && newProp.panels.length > 0)) {\n this.isRenderComplete = false;\n this.updatePanelsDynamically(newProp.panels);\n this.isRenderComplete = true;\n }\n else if (!(newProp.panels[0] && newProp.panels.length)) {\n this.isRenderComplete = false;\n this.updatePanelsDynamically(this.panels);\n this.isRenderComplete = true;\n }\n else {\n this.restrictDynamicUpdate = false;\n }\n break;\n case 'columns':\n this.isRenderComplete = false;\n if (newProp.panels) {\n this.updatePanelsDynamically(newProp.panels);\n }\n this.setProperties({ columns: newProp.columns }, true);\n this.panelCollection = [];\n this.maxColumnValue = this.columns;\n this.calculateCellSize();\n this.panels.forEach(function (panel) {\n _this.setMinMaxValues(panel);\n if (_this.maxColumnValue < panel.col || _this.maxColumnValue < (panel.col + panel.sizeX)) {\n var colValue = _this.maxColumnValue - panel.sizeX;\n _this.panelPropertyChange(panel, { col: colValue < 0 ? 0 : colValue });\n _this.setXYAttributes(document.getElementById(panel.id), panel);\n }\n _this.setHeightAndWidth(document.getElementById(panel.id), panel);\n _this.panelCollection.push(document.getElementById(panel.id));\n _this.setPanelPosition(document.getElementById(panel.id), panel.row, panel.col);\n _this.mainElement = document.getElementById(panel.id);\n _this.updatePanelLayout(document.getElementById(panel.id), panel);\n _this.mainElement = null;\n });\n this.updatePanels();\n this.updateCloneArrayObject();\n this.isRenderComplete = true;\n this.updateGridLines();\n break;\n }\n }\n };\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns string\n * @private\n */\n DashboardLayout.prototype.getPersistData = function () {\n var keyEntity = ['panels'];\n return this.addOnPersist(keyEntity);\n };\n /* istanbul ignore next */\n DashboardLayout.prototype.mergePersistPanelData = function (persistedData) {\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNullOrUndefined(data) || (data === '')) || !isNullOrUndefined(persistedData)) {\n var dataObj = !isNullOrUndefined(persistedData) ? persistedData : JSON.parse(data);\n var keys = Object.keys(dataObj);\n this.isProtectedOnChange = true;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if ((typeof getValue(key, this) === 'object' && !isNullOrUndefined(getValue(key, this)))) {\n if (Array.isArray(getValue(key, this)) && key === 'panels') {\n this.mergePanels(dataObj[key], this[key]);\n this[key] = dataObj[key];\n }\n }\n }\n this.isProtectedOnChange = false;\n }\n };\n /* istanbul ignore next */\n DashboardLayout.prototype.mergePanels = function (sortedPanels, panels) {\n var storedColumns = sortedPanels;\n var _loop_6 = function (i) {\n this_4.checkForIDValues(panels);\n var localPanel = panels.filter(function (pan) { return pan.id === storedColumns[i].id; })[0];\n if (!isNullOrUndefined(localPanel)) {\n storedColumns[i] = extend(localPanel, storedColumns[i], {}, true);\n }\n };\n var this_4 = this;\n for (var i = 0; i < storedColumns.length; i++) {\n _loop_6(i);\n }\n };\n /**\n * Returns the current module name.\n *\n * @returns string\n *\n * @private\n */\n DashboardLayout.prototype.getModuleName = function () {\n return 'DashboardLayout';\n };\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"allowDragging\", void 0);\n __decorate([\n Property(false)\n ], DashboardLayout.prototype, \"allowResizing\", void 0);\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"allowPushing\", void 0);\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(true)\n ], DashboardLayout.prototype, \"allowFloating\", void 0);\n __decorate([\n Property(1)\n ], DashboardLayout.prototype, \"cellAspectRatio\", void 0);\n __decorate([\n Property([5, 5])\n ], DashboardLayout.prototype, \"cellSpacing\", void 0);\n __decorate([\n Property(1)\n ], DashboardLayout.prototype, \"columns\", void 0);\n __decorate([\n Property(false)\n ], DashboardLayout.prototype, \"showGridLines\", void 0);\n __decorate([\n Property(null)\n ], DashboardLayout.prototype, \"draggableHandle\", void 0);\n __decorate([\n Property('en-US')\n ], DashboardLayout.prototype, \"locale\", void 0);\n __decorate([\n Property('max-width: 600px')\n ], DashboardLayout.prototype, \"mediaQuery\", void 0);\n __decorate([\n Collection([], Panel)\n ], DashboardLayout.prototype, \"panels\", void 0);\n __decorate([\n Property(['e-south-east'])\n ], DashboardLayout.prototype, \"resizableHandles\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"resize\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DashboardLayout.prototype, \"destroyed\", void 0);\n DashboardLayout = __decorate([\n NotifyPropertyChanges\n ], DashboardLayout);\n return DashboardLayout;\n}(Component));\nexport { DashboardLayout };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, ChildProperty, Collection, Event, NotifyPropertyChanges, Property, getUniqueID, attributes, select, compile, remove, removeClass, append, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar ITEMLISTCONTAINER = 'e-timeline-items';\nvar ITEMCONTAINER = 'e-timeline-item';\nvar OPPOSITECONTENT = 'e-opposite-content';\nvar DOTCONTAINER = 'e-dot-item';\nvar DOTCONTENT = 'e-dot';\nvar CONTENT = 'e-content';\nvar ITEMCONNECTOR = 'e-connector';\nvar VERTICAL = 'e-vertical';\nvar HORIZONTAL = 'e-horizontal';\nvar TIMELINEREVERSE = 'e-timeline-reverse';\nvar RTL = 'e-rtl';\nvar DISABLED = 'e-item-disabled';\nvar TEMPLATE = 'e-item-template';\n/**\n * Defines the orientation type of the Timeline.\n */\nexport var TimelineOrientation;\n(function (TimelineOrientation) {\n /**\n * Items are displayed horizontally.\n */\n TimelineOrientation[\"Horizontal\"] = \"Horizontal\";\n /**\n * Items are displayed vertically.\n */\n TimelineOrientation[\"Vertical\"] = \"Vertical\";\n})(TimelineOrientation || (TimelineOrientation = {}));\n/**\n * Specifies the alignment of item content within the Timeline.\n */\nexport var TimelineAlign;\n(function (TimelineAlign) {\n /**\n * Aligns item content to the top and opposite content to the bottom when the Timeline is in a horizontal orientation, or the content to the left and opposite content to the right when the Timeline is in a vertical orientation.\n */\n TimelineAlign[\"Before\"] = \"Before\";\n /**\n * Aligns item content to the bottom and opposite content to the top when the Timeline is in a horizontal orientation, or the content to the right and opposite content to the left when the Timeline is in a vertical orientation.\n */\n TimelineAlign[\"After\"] = \"After\";\n /**\n * Aligns item content alternatively, regardless of the Timeline's orientation.\n */\n TimelineAlign[\"Alternate\"] = \"Alternate\";\n /**\n * Aligns item content in alternate reverse, regardless of the Timeline's orientation.\n */\n TimelineAlign[\"AlternateReverse\"] = \"AlternateReverse\";\n})(TimelineAlign || (TimelineAlign = {}));\n/**\n * Specifies the items of the Timeline.\n */\nvar TimelineItem = /** @class */ (function (_super) {\n __extends(TimelineItem, _super);\n function TimelineItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"dotCss\", void 0);\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"oppositeContent\", void 0);\n __decorate([\n Property(false)\n ], TimelineItem.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], TimelineItem.prototype, \"cssClass\", void 0);\n return TimelineItem;\n}(ChildProperty));\nexport { TimelineItem };\n/**\n * The Timeline component presents a series of events or activities in chronological order, allowing users to track the progression of time.\n *\n * ```html\n * <div id=\"timeline\"></div>\n * ```\n * ```typescript\n * <script>\n * let timelineObj: Timeline = new Timeline({items : [{}, {}, {}, {}, {}]});\n * timelineObj.appendTo('#timeline');\n * </script>\n * ```\n */\nvar Timeline = /** @class */ (function (_super) {\n __extends(Timeline, _super);\n /**\n * * Constructor for creating the Timeline component.\n *\n * @param {TimelineModel} options - Specifies the Timeline model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function Timeline(options, element) {\n return _super.call(this, options, element) || this;\n }\n Timeline.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Timeline.prototype.getModuleName = function () {\n return 'timeline';\n };\n /**\n * This method is abstract member of the Component<HTMLElement>.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n Timeline.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n Timeline.prototype.render = function () {\n attributes(this.element, { 'role': 'navigation', 'aria-label': this.element.id });\n this.timelineListEle = this.createElement('ol', { className: ITEMLISTCONTAINER });\n this.updateOrientation();\n this.updateCssClass(this.cssClass);\n this.updateAlign();\n this.updateReverse();\n this.updateRtl();\n this.updateTemplateFunction();\n this.renderItems();\n this.element.appendChild(this.timelineListEle);\n };\n Timeline.prototype.updateOrientation = function () {\n if (!(isNullOrUndefined(this.orientation))) {\n var orientation_1 = this.orientation.toLowerCase();\n if (orientation_1 === 'horizontal' || orientation_1 === 'vertical') {\n this.element.classList.remove(HORIZONTAL, VERTICAL);\n this.element.classList.add('e-' + orientation_1);\n }\n }\n };\n Timeline.prototype.updateCssClass = function (addCss, removeCss) {\n if (removeCss === void 0) { removeCss = ''; }\n var _a, _b;\n var cssClasses;\n if (removeCss) {\n cssClasses = removeCss.trim().split(' ');\n (_a = this.element.classList).remove.apply(_a, cssClasses);\n }\n if (addCss) {\n cssClasses = addCss.trim().split(' ');\n (_b = this.element.classList).add.apply(_b, cssClasses);\n }\n };\n Timeline.prototype.updateRtl = function () {\n this.element.classList[this.enableRtl ? 'add' : 'remove'](RTL);\n };\n Timeline.prototype.updateAlign = function () {\n if (!(isNullOrUndefined(this.align))) {\n var align = this.align.toLowerCase();\n if (align === 'before' || align === 'after' || align === 'alternate' || align === 'alternatereverse') {\n this.element.classList.remove('e-align-before', 'e-align-after', 'e-align-alternate', 'e-align-alternatereverse');\n this.element.classList.add('e-align-' + align);\n }\n }\n };\n Timeline.prototype.updateReverse = function () {\n this.element.classList[this.reverse ? 'add' : 'remove'](TIMELINEREVERSE);\n };\n Timeline.prototype.renderItems = function () {\n var _this = this;\n var _a;\n this.haveOneSidecontent();\n for (var index = 0; index < this.items.length; index++) {\n var item = this.items[parseInt(index.toString(), 10)];\n var timelineItem = this.createElement('li', { className: ITEMCONTAINER + ' ' + ITEMCONNECTOR });\n if (!this.template) {\n var oppositeTextEle = this.createElement('div', { className: OPPOSITECONTENT });\n if (item.oppositeContent) {\n this.updateItemContent(false, item, index, oppositeTextEle);\n }\n timelineItem.appendChild(oppositeTextEle);\n var dotContainer = this.createElement('div', { className: DOTCONTAINER });\n var dotEleCss = item.dotCss ? DOTCONTENT + ' ' + item.dotCss.trim() : DOTCONTENT;\n var dotEle = this.createElement('div', { className: dotEleCss });\n dotContainer.appendChild(dotEle);\n timelineItem.appendChild(dotContainer);\n var contentEle = this.createElement('div', { className: CONTENT });\n if (item.content) {\n this.updateItemContent(true, item, index, contentEle);\n }\n timelineItem.appendChild(contentEle);\n if (item.cssClass) {\n (_a = timelineItem.classList).add.apply(_a, item.cssClass.trim().split(' '));\n }\n if (item.disabled) {\n timelineItem.classList.add(DISABLED);\n }\n }\n else {\n this.renderItemContent(index, false, timelineItem);\n }\n var eventArgs = { element: timelineItem, index: index };\n this.trigger('beforeItemRender', eventArgs, function (args) { _this.timelineListEle.appendChild(args.element); });\n }\n };\n Timeline.prototype.haveOneSidecontent = function () {\n var haveContent = false;\n var haveOppContent = false;\n for (var index = 0; index < this.items.length; index++) {\n var item = this.items[parseInt(index.toString(), 10)];\n if (!haveContent) {\n (haveContent = item.content.length > 0 || !isNullOrUndefined(item.content));\n }\n if (!haveOppContent) {\n (haveOppContent = item.oppositeContent.length > 0 || !isNullOrUndefined(item.content));\n }\n }\n this.element.classList.remove('e-content-only', 'e-opposite-content-only');\n if (haveContent && !haveOppContent) {\n this.element.classList.add('e-content-only');\n }\n if (haveOppContent && !haveContent) {\n this.element.classList.add('e-opposite-content-only');\n }\n };\n Timeline.prototype.updateItemContent = function (isContent, item, index, contentEle) {\n var notCompile = !(this.isReact || this.isVue);\n var ctn = this.getTemplateFunction(isContent ? item.content : item.oppositeContent, notCompile);\n if (typeof ctn === 'string') {\n contentEle.innerText = ctn;\n }\n else {\n append(ctn({ item: item, itemIndex: index }, this), contentEle);\n }\n };\n Timeline.prototype.updateTemplateFunction = function () {\n this.templateFunction = this.template ? this.getTemplateFunction(this.template, false) : null;\n };\n Timeline.prototype.renderItemContent = function (index, isrerender, timelineItem) {\n var listItems = this.timelineListEle.querySelectorAll('li');\n if (isrerender) {\n this.removeItemContent(listItems[parseInt((index).toString(), 10)]);\n }\n if (this.template) {\n if (isrerender) {\n listItems[parseInt((index).toString(), 10)].classList.add(TEMPLATE);\n }\n else {\n timelineItem.classList.add(TEMPLATE);\n }\n var item = this.items[parseInt(index.toString(), 10)];\n append(this.templateFunction({ item: item, itemIndex: index }, this, 'timelineTemplate', (this.element.id + '_timelineTemplate'), this.isStringTemplate), isrerender ? listItems[parseInt((index).toString(), 10)] : timelineItem);\n }\n this.renderReactTemplates();\n };\n Timeline.prototype.removeItemContent = function (ele) {\n ele.classList.remove(TEMPLATE);\n var firstChild = ele.firstElementChild;\n for (var i = 0; i < ele.childElementCount; i++) {\n firstChild.remove();\n }\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @param {boolean} notCompile - Compile property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n Timeline.prototype.getTemplateFunction = function (template, notCompile) {\n if (notCompile === void 0) { notCompile = true; }\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n notCompile = false;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return notCompile ? content : compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n Timeline.prototype.removeItemElements = function () {\n var listItems = this.timelineListEle.querySelectorAll('li');\n for (var i = 0; i < listItems.length; i++) {\n remove(listItems[parseInt(i.toString(), 10)]);\n }\n };\n Timeline.prototype.updateElementClassArray = function () {\n var classArray = [RTL, 'e-align-before', 'e-align-after', 'e-outline', 'e-fill', 'e-align-alternate',\n 'e-align-alternatereverse', TIMELINEREVERSE, HORIZONTAL, VERTICAL];\n removeClass([this.element], classArray);\n };\n Timeline.prototype.updateContent = function () {\n if (this.isReact) {\n this.clearTemplate(['timelineTemplate']);\n }\n for (var i = 0; i < this.items.length; i++) {\n this.renderItemContent(i, true);\n }\n };\n Timeline.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n // unwires the events and detach the li elements\n this.removeItemElements();\n this.element.removeAttribute('role');\n this.element.removeAttribute('aria-label');\n this.clearTemplate();\n if (this.timelineListEle) {\n remove(this.timelineListEle);\n }\n this.timelineListEle = null;\n this.updateElementClassArray();\n };\n Timeline.prototype.updateItems = function (newProp, oldPropItems, index, item) {\n var _a, _b, _c, _d;\n var timelineItemElements = this.timelineListEle.querySelectorAll('li');\n var dotEle;\n var contentEle;\n var oppositeEle;\n switch (newProp) {\n case 'dotCss':\n dotEle = timelineItemElements[parseInt(index.toString(), 10)].querySelector('.' + DOTCONTENT);\n if (oldPropItems.dotCss !== '') {\n (_a = dotEle.classList).remove.apply(_a, oldPropItems.dotCss.trim().split(' '));\n }\n if (item.dotCss !== '') {\n (_b = dotEle.classList).add.apply(_b, this.items[parseInt(index.toString(), 10)].dotCss.trim().split(' '));\n }\n break;\n case 'content':\n contentEle = timelineItemElements[parseInt(index.toString(), 10)].querySelector('.' + CONTENT);\n contentEle.innerText = '';\n this.updateItemContent(true, item, index, contentEle);\n this.haveOneSidecontent();\n break;\n case 'oppositeContent':\n oppositeEle = timelineItemElements[parseInt(index.toString(), 10)].querySelector('.' + OPPOSITECONTENT);\n oppositeEle.innerText = '';\n this.updateItemContent(false, item, index, oppositeEle);\n this.haveOneSidecontent();\n break;\n case 'disabled':\n timelineItemElements[parseInt(index.toString(), 10)].classList[this.items[parseInt(index.toString(), 10)].disabled ? 'add' : 'remove'](DISABLED);\n break;\n case 'cssClass':\n if (oldPropItems.cssClass !== '') {\n (_c = timelineItemElements[parseInt(index.toString(), 10)].classList).remove.apply(_c, oldPropItems.cssClass.trim().split(' '));\n }\n if (item.cssClass !== '') {\n (_d = timelineItemElements[parseInt(index.toString(), 10)].classList).add.apply(_d, item.cssClass.trim().split(' '));\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {TimelineModel} newProp - Specifies new properties\n * @param {TimelineModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Timeline.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (Array.isArray(newProp.items)) {\n this.removeItemElements();\n this.renderItems();\n }\n else {\n var itemLength = Object.keys(newProp.items).length;\n for (var i = 0; i < itemLength; i++) {\n var itemPropLength = parseInt(Object.keys(newProp.items)[i], 10);\n for (var j = 0; j < Object.keys(newProp.items[itemPropLength]).length; j++) {\n var property = Object.keys(newProp.items[itemPropLength])[j];\n this.updateItems(property, oldProp.items[itemPropLength], itemPropLength, newProp.items[itemPropLength]);\n }\n }\n }\n break;\n case 'orientation':\n this.updateOrientation();\n break;\n case 'align':\n this.updateAlign();\n break;\n case 'enableRtl':\n this.updateRtl();\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'reverse':\n this.element.classList[this.reverse ? 'add' : 'remove'](TIMELINEREVERSE);\n break;\n case 'template':\n this.updateTemplateFunction();\n this.updateContent();\n break;\n }\n }\n };\n __decorate([\n Property(TimelineOrientation.Vertical)\n ], Timeline.prototype, \"orientation\", void 0);\n __decorate([\n Property(TimelineAlign.After)\n ], Timeline.prototype, \"align\", void 0);\n __decorate([\n Collection([], TimelineItem)\n ], Timeline.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], Timeline.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Timeline.prototype, \"reverse\", void 0);\n __decorate([\n Property('')\n ], Timeline.prototype, \"template\", void 0);\n __decorate([\n Event()\n ], Timeline.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Timeline.prototype, \"beforeItemRender\", void 0);\n Timeline = __decorate([\n NotifyPropertyChanges\n ], Timeline);\n return Timeline;\n}(Component));\nexport { Timeline };\n"],"names":["this","__extends","__decorate","setStyle","RTL","DISABLED"],"mappings":"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"}