%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.190.156.13
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/main.ui.grid/templates/.default/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/main.ui.grid/templates/.default/script.js.map
{"version":3,"file":"script.js","sources":["src/js/action-panel.js","src/js/baseclass.js","src/js/cols-sortable.js","src/js/data.js","src/js/dropdown.js","src/js/dropdown-manager.js","src/js/element.js","src/js/fader.js","src/js/gridupdater.js","src/js/image-field.js","src/js/inline-editor.js","src/js/loader.js","src/js/manager.js","src/js/message.js","src/js/observer.js","src/js/pagesize.js","src/js/pagination.js","src/js/pin-header.js","src/js/pin-panel.js","src/js/resize.js","src/js/row.js","src/js/rows.js","src/js/rows-sortable.js","src/js/settings.js","src/js/settings-window.js","src/js/settings-window-column.js","src/js/useroptions.js","src/js/utils.js","src/js/realtime.js","src/js/cell-actions.js","src/js/cell-action-state.js","src/js/counters.js","src/js/label.js","src/js/grid.js"],"sourcesContent":[";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.ActionPanel\n\t *\n\t * @param {BX.Main.grid} parent\n\t * @param {object} actions List of available actions Bitrix\\Main\\Grid\\Panel\\Actions::getList()\n\t * @param {string} actions.CREATE\n\t * @param {string} actions.SEND\n\t * @param {string} actions.ACTIVATE\n\t * @param {string} actions.SHOW\n\t * @param {string} actions.HIDE\n\t * @param {string} actions.REMOVE\n\t * @param {string} actions.CALLBACK\n\t * @param {string} actions.INLINE_EDIT\n\t * @param {string} actions.HIDE_ALL_EXPECT\n\t * @param {string} actions.SHOW_ALL\n\t * @param {string} actions.RESET_CONTROLS\n\t *\n\t * @param {object} types List of available control types\n\t * of the actions panel Bitrix\\Main\\Grid\\Panel\\Types::getList()\n\t * @param {string} types.DROPDOWN\n\t * @param {string} types.CHECKBOX\n\t * @param {string} types.TEXT\n\t * @param {string} types.BUTTON\n\t * @param {string} types.LINK\n\t * @param {string} types.CUSTOM\n\t * @param {string} types.HIDDEN\n\t *\n\t * @constructor\n\t */\n\tBX.Grid.ActionPanel = function(parent, actions, types)\n\t{\n\t\tthis.parent = null;\n\t\tthis.rel = {};\n\t\tthis.actions = null;\n\t\tthis.types = null;\n\t\tthis.lastActivated = [];\n\t\tthis.init(parent, actions, types);\n\t\tthis.button = [];\n\t\tthis.elements = [];\n\t\tthis.buttonOnChange = [];\n\t\tthis.buttonData = {};\n\t};\n\n\tBX.Grid.ActionPanel.prototype = {\n\t\tinit: function(parent, actions, types)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.actions = eval(actions);\n\t\t\tthis.types = eval(types);\n\n\t\t\tBX.addCustomEvent(window, 'Dropdown::change', BX.proxy(this._dropdownEventHandle, this));\n\n\t\t\tBX.addCustomEvent(window, 'Dropdown::load', BX.proxy(this._dropdownEventHandle, this));\n\n\t\t\tvar panel = this.getPanel();\n\t\t\tBX.bind(panel, 'change', BX.delegate(this._checkboxChange, this));\n\t\t\tBX.bind(panel, 'click', BX.delegate(this._clickOnButton, this));\n\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this._gridUpdatedEventHandle, this));\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tBX.removeCustomEvent(window, 'Dropdown::change', BX.proxy(this._dropdownEventHandle, this));\n\t\t\tBX.removeCustomEvent(window, 'Dropdown::load', BX.proxy(this._dropdownEventHandle, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this._gridUpdatedEventHandle, this));\n\t\t},\n\n\t\t_gridUpdatedEventHandle: function()\n\t\t{\n\t\t\tvar cancelButton = BX('grid_cancel_button');\n\t\t\tcancelButton && BX.fireEvent(BX.firstChild(cancelButton), 'click');\n\t\t},\n\n\t\t_dropdownEventHandle: function(id, event, item, dataItem)\n\t\t{\n\t\t\tthis.isPanelControl(BX(id)) && this._dropdownChange(id, event, item, dataItem);\n\t\t},\n\n\t\tresetForAllCheckbox: function()\n\t\t{\n\t\t\tvar checkbox = this.getForAllCheckbox();\n\n\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t{\n\t\t\t\tcheckbox.checked = null;\n\t\t\t}\n\t\t},\n\n\t\tgetForAllCheckbox: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classForAllCheckbox'), true);\n\t\t},\n\n\t\tgetPanel: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classActionPanel'), true);\n\t\t},\n\n\t\tgetApplyButton: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classPanelApplyButton'), true);\n\t\t},\n\n\t\tisPanelControl: function(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classPanelControl'));\n\t\t},\n\n\t\tgetTextInputs: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getPanel(), 'input[type=\"text\"]');\n\t\t},\n\n\t\tgetHiddenInputs: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getPanel(), 'input[type=\"hidden\"]');\n\t\t},\n\n\t\tgetSelects: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getPanel(), 'select');\n\t\t},\n\n\t\tgetDropdowns: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classDropdown'));\n\t\t},\n\n\t\tgetCheckboxes: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classPanelCheckbox'));\n\t\t},\n\n\t\tgetButtons: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classPanelButton'));\n\t\t},\n\n\t\tisDropdown: function(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classDropdown'));\n\t\t},\n\n\t\tisCheckbox: function(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classPanelCheckbox'));\n\t\t},\n\n\t\tisTextInput: function(node)\n\t\t{\n\t\t\treturn node.type === 'text';\n\t\t},\n\n\t\tisHiddenInput: function(node)\n\t\t{\n\t\t\treturn node.type === 'hidden';\n\t\t},\n\n\t\tisSelect: function(node)\n\t\t{\n\t\t\treturn node.tagName === 'SELECT';\n\t\t},\n\n\t\tcreateDropdown: function(data, relative)\n\t\t{\n\t\t\tvar container = this.createContainer(data.ID, relative, {});\n\t\t\tvar dropdown = BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-dropdown main-grid-panel-control',\n\t\t\t\t\tid: data.ID + '_control'\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: data.NAME,\n\t\t\t\t\t'data-name': data.NAME,\n\t\t\t\t\t'data-items': JSON.stringify(data.ITEMS),\n\t\t\t\t\t'data-value': data.ITEMS[0].VALUE,\n\t\t\t\t\t'data-popup-position': 'fixed'\n\t\t\t\t},\n\t\t\t\tchildren: [BX.create('span', {\n\t\t\t\t\tprops: {className: 'main-dropdown-inner'},\n\t\t\t\t\thtml: data.ITEMS[0].NAME\n\t\t\t\t})]\n\t\t\t});\n\n\t\t\tcontainer.appendChild(dropdown);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateCheckbox: function(data, relative)\n\t\t{\n\t\t\tvar checkbox = this.createContainer(data.ID, relative, {});\n\n\t\t\tvar inner = BX.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-checkbox-container'\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar titleSpan = BX.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-control-panel-content-title'\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar input = BX.create('input', {\n\t\t\t\tprops: {\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tclassName: this.parent.settings.get('classPanelCheckbox') + ' main-grid-checkbox',\n\t\t\t\t\tid: data.ID + '_control'\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tvalue: data.VALUE || '',\n\t\t\t\t\ttitle: data.TITLE || '',\n\t\t\t\t\tname: data.NAME || '',\n\t\t\t\t\t'data-onchange': JSON.stringify(data.ONCHANGE)\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tinput.checked = data.CHECKED || null;\n\n\t\t\tcheckbox.appendChild(inner);\n\t\t\tcheckbox.appendChild(titleSpan);\n\n\t\t\tinner.appendChild(input);\n\n\t\t\tinner.appendChild(BX.create('label', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-checkbox'\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tfor: data.ID + '_control',\n\t\t\t\t\ttitle: data.TITLE\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\ttitleSpan.appendChild(BX.create('label', {\n\t\t\t\tattrs: {\n\t\t\t\t\tfor: data.ID + '_control',\n\t\t\t\t\ttitle: data.TITLE\n\t\t\t\t},\n\t\t\t\thtml: data.LABEL\n\t\t\t}));\n\n\t\t\treturn checkbox;\n\t\t},\n\n\t\t/**\n\t\t * @param {object} data\n\t\t * @param {object} data.ID\n\t\t * @param {object} data.TITLE\n\t\t * @param {object} data.PLACEHOLDER\n\t\t * @param {object} data.ONCHANGE\n\t\t * @param {string} relative\n\t\t * @returns {*}\n\t\t */\n\t\tcreateText: function(data, relative)\n\t\t{\n\t\t\tvar container = this.createContainer(data.ID, relative, {});\n\t\t\tvar title = BX.type.isNotEmptyString(data[\"TITLE\"]) ? data[\"TITLE\"] : \"\";\n\t\t\tif(title !== \"\")\n\t\t\t{\n\t\t\t\tcontainer.appendChild(\n\t\t\t\t\tBX.create(\n\t\t\t\t\t\t'label',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tattrs: { title: title, for: data.ID + '_control' },\n\t\t\t\t\t\t\ttext: title\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tcontainer.appendChild(\n\t\t\t\tBX.create(\n\t\t\t\t\t'input',\n\t\t\t\t\t{\n\t\t\t\t\t\tprops:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclassName: 'main-grid-control-panel-input-text main-grid-panel-control',\n\t\t\t\t\t\t\t\tid: data.ID + '_control'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\tattrs:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: data.NAME,\n\t\t\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\t\t\tplaceholder: data.PLACEHOLDER || '',\n\t\t\t\t\t\t\t\tvalue: data.VALUE || '',\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t'data-onchange': JSON.stringify(data.ONCHANGE || [])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateHidden: function(data, relative)\n\t\t{\n\t\t\tvar container = this.createContainer(\n\t\t\t\tdata.ID,\n\t\t\t\trelative,\n\t\t\t\t{ CLASS: 'main-grid-panel-hidden-control-container' }\n\t\t\t);\n\t\t\tcontainer.appendChild(\n\t\t\t\tBX.create(\n\t\t\t\t\t'input',\n\t\t\t\t\t{\n\t\t\t\t\t\tprops:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: data.ID + '_control',\n\t\t\t\t\t\t\t\ttype: 'hidden'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\tattrs:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: data.NAME,\n\t\t\t\t\t\t\t\tvalue: data.VALUE || ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateButton: function(data, relative)\n\t\t{\n\t\t\tthis.buttonOnChange = (data.ONCHANGE || []);\n\t\t\tthis.buttonData = data;\n\n\t\t\tthis.button = this.createButtonNode(data);\n\n\t\t\tBX.removeCustomEvent(window, 'Grid::unselectRow', BX.proxy(this.prepareButton, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::selectRow', BX.proxy(this.prepareButton, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::allRowsSelected', BX.proxy(this.prepareButton, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this.prepareButton, this));\n\n\t\t\tif (\n\t\t\t\tthis.buttonData.SETTINGS\n\t\t\t\t&& data.ID === this.buttonData.SETTINGS.buttonId\n\t\t\t)\n\t\t\t{\n\t\t\t\tBX.addCustomEvent(window, 'Grid::unselectRow', BX.proxy(this.prepareButton, this));\n\t\t\t\tBX.addCustomEvent(window, 'Grid::selectRow', BX.proxy(this.prepareButton, this));\n\t\t\t\tBX.addCustomEvent(window, 'Grid::allRowsSelected', BX.proxy(this.prepareButton, this));\n\t\t\t\tBX.addCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this.prepareButton, this));\n\t\t\t}\n\n\t\t\tthis.prepareButton();\n\n\t\t\tlet container = this.createContainer(data.ID, relative, {});\n\t\t\tcontainer.appendChild(this.button);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateButtonNode: function(data)\n\t\t{\n\t\t\treturn BX.create('button', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-buttons' + (data.CLASS ? ' ' + data.CLASS : ''),\n\t\t\t\t\tid: data.ID + '_control',\n\t\t\t\t\ttitle: BX.type.isNotEmptyString(data.TITLE) ? data.TITLE : ''\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: data.NAME || ''\n\t\t\t\t},\n\t\t\t\thtml: data.TEXT\n\t\t\t});\n\t\t},\n\n\t\tprepareButton: function()\n\t\t{\n\t\t\tif (this.isSetButtonDisabled())\n\t\t\t{\n\t\t\t\tBX.Dom.attr(this.button, 'data-onchange', []);\n\t\t\t\tBX.Dom.addClass(this.button, 'ui-btn ui-btn-disabled');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.attr(this.button, 'data-onchange', this.buttonOnChange);\n\t\t\t\tBX.Dom.removeClass(this.button, 'ui-btn ui-btn-disabled');\n\t\t\t}\n\t\t},\n\n\t\tisSetButtonDisabled: function()\n\t\t{\n\t\t\treturn !!(this.buttonData.SETTINGS\n\t\t\t\t&& this.buttonData.SETTINGS.minSelectedRows\n\t\t\t\t&& (this.getSelectedIds().length < this.buttonData.SETTINGS.minSelectedRows));\n\t\t},\n\n\t\t/**\n\t\t * @param {object} data\n\t\t * @param {object} data.ID\n\t\t * @param {object} data.TITLE\n\t\t * @param {object} data.PLACEHOLDER\n\t\t * @param {object} data.ONCHANGE\n\t\t * @param {object} data.CLASS\n\t\t * @param {object} data.HREF\n\t\t * @param {string} relative\n\t\t * @returns {*}\n\t\t */\n\t\tcreateLink: function(data, relative)\n\t\t{\n\t\t\tvar container = this.createContainer(data.ID, relative, {});\n\t\t\tvar link = BX.create('a', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-link' + (data.CLASS ? ' ' + data.CLASS : ''),\n\t\t\t\t\tid: data.ID + '_control'\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\thref: data.HREF || '',\n\t\t\t\t\t'data-onchange': JSON.stringify(data.ONCHANGE || [])\n\t\t\t\t},\n\t\t\t\thtml: data.TEXT\n\t\t\t});\n\n\t\t\tcontainer.appendChild(link);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateCustom: function(data, relative)\n\t\t{\n\t\t\tvar container = this.createContainer(\n\t\t\t\tdata.ID,\n\t\t\t\trelative,\n\t\t\t\t{ CLASS: 'main-grid-panel-hidden-control-container' }\n\t\t\t);\n\n\t\t\tvar custom = BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-panel-custom' + (data.CLASS ? ' ' + data.CLASS : '')\n\t\t\t\t},\n\t\t\t\thtml: data.VALUE\n\t\t\t});\n\n\t\t\tcontainer.appendChild(custom);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateContainer: function(id, relative, options)\n\t\t{\n\t\t\tid = id.replace('_control', '');\n\t\t\trelative = relative.replace('_control', '');\n\t\t\toptions = options || {};\n\n\t\t\treturn BX.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: this.parent.settings.get('classPanelControlContainer') + (options.CLASS ? ' ' + options.CLASS : ''),\n\t\t\t\t\tid: id\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\t'data-relative': relative\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tremoveItemsRelativeCurrent: function(node)\n\t\t{\n\t\t\tvar element = node;\n\t\t\tvar relative = [node.id];\n\t\t\tvar result = [];\n\t\t\tvar dataRelative;\n\n\t\t\twhile (element) {\n\t\t\t\tdataRelative = BX.data(element, 'relative');\n\n\t\t\t\tif (relative.includes(dataRelative))\n\t\t\t\t{\n\t\t\t\t\trelative.push(element.id);\n\t\t\t\t\tresult.push(element);\n\t\t\t\t}\n\n\t\t\t\telement = element.nextElementSibling;\n\t\t\t}\n\n\t\t\tresult.forEach(function(current) {\n\t\t\t\tBX.remove(current);\n\t\t\t});\n\t\t},\n\n\n\t\tvalidateData: function(data)\n\t\t{\n\t\t\treturn (\n\t\t\t\t('ONCHANGE' in data) &&\n\t\t\t\tBX.type.isArray(data.ONCHANGE)\n\t\t\t);\n\t\t},\n\n\t\tactivateControl: function(id)\n\t\t{\n\t\t\tvar element = BX(id);\n\n\t\t\tif (BX.type.isDomNode(element))\n\t\t\t{\n\t\t\t\tBX.removeClass(element, this.parent.settings.get('classDisable'));\n\t\t\t\telement.disabled = null;\n\t\t\t}\n\t\t},\n\n\t\tdeactivateControl: function(id)\n\t\t{\n\t\t\tvar element = BX(id);\n\n\t\t\tif (BX.type.isDomNode(element))\n\t\t\t{\n\t\t\t\tBX.addClass(element, this.parent.settings.get('classDisable'));\n\t\t\t\telement.disabled = true;\n\t\t\t}\n\t\t},\n\n\t\tshowControl: function(id)\n\t\t{\n\t\t\tvar control = BX(id);\n\t\t\tcontrol && BX.show(control);\n\t\t},\n\n\t\thideControl: function(id)\n\t\t{\n\t\t\tvar control = BX(id);\n\t\t\tcontrol && BX.hide(control);\n\t\t},\n\n\n\t\tvalidateActionObject: function(action)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.type.isPlainObject(action) && ('ACTION' in action) && BX.type.isNotEmptyString(action.ACTION) && (\n\t\t\t\t\taction.ACTION === this.actions.RESET_CONTROLS ||\n\t\t\t\t\t('DATA' in action) && BX.type.isArray(action.DATA)\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\n\t\tvalidateControlObject: function(controlObject)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.type.isPlainObject(controlObject) &&\n\t\t\t\t('TYPE' in controlObject) &&\n\t\t\t\t('ID' in controlObject)\n\t\t\t);\n\t\t},\n\n\t\tcreateDate: function(data, relative)\n\t\t{\n\t\t\tvar container = this.createContainer(data.ID, relative, {});\n\t\t\tvar date = BX.decl({\n\t\t\t\tblock: 'main-ui-date',\n\t\t\t\tmix: ['main-grid-panel-date'],\n\t\t\t\tcalendarButton: true,\n\t\t\t\tvalueDelete: true,\n\t\t\t\tplaceholder: 'PLACEHOLDER' in data ? data.PLACEHOLDER : '',\n\t\t\t\tname: 'NAME' in data ? data.NAME + '_from' : '',\n\t\t\t\ttabindex: 'TABINDEX' in data ? data.TABINDEX : '',\n\t\t\t\tvalue: 'VALUE' in data ? data.VALUE : '',\n\t\t\t\tenableTime: 'TIME' in data ? (data.TIME ? 'true' : 'false') : 'false'\n\t\t\t});\n\n\t\t\tcontainer.appendChild(date);\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateControl: function(controlObject, relativeId)\n\t\t{\n\t\t\tvar newElement = null;\n\t\t\tswitch (controlObject.TYPE)\n\t\t\t{\n\t\t\t\tcase this.types.DROPDOWN :\n\t\t\t\t\tnewElement = this.createDropdown(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.CHECKBOX :\n\t\t\t\t\tnewElement = this.createCheckbox(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.TEXT :\n\t\t\t\t\tnewElement = this.createText(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.HIDDEN :\n\t\t\t\t\tnewElement = this.createHidden(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.BUTTON :\n\t\t\t\t\tnewElement = this.createButton(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.LINK :\n\t\t\t\t\tnewElement = this.createLink(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.CUSTOM :\n\t\t\t\t\tnewElement = this.createCustom(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.DATE :\n\t\t\t\t\tnewElement = this.createDate(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn newElement;\n\t\t},\n\n\t\tonChangeHandler: function(container, actions, isPseudo)\n\t\t{\n\t\t\tvar newElement, callback;\n\t\t\tvar self = this;\n\n\t\t\tif (BX.type.isDomNode(container) && BX.type.isArray(actions))\n\t\t\t{\n\t\t\t\tactions.forEach(function(action) {\n\t\t\t\t\tif (self.validateActionObject(action))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (action.ACTION === self.actions.CREATE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.removeItemsRelativeCurrent(container);\n\t\t\t\t\t\t\taction.DATA.reverse();\n\n\t\t\t\t\t\t\taction.DATA.forEach(function(controlObject) {\n\t\t\t\t\t\t\t\tif (self.validateControlObject(controlObject))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tnewElement = self.createControl(controlObject, container.id || BX.data(container, 'relative'));\n\n\t\t\t\t\t\t\t\t\tif (BX.type.isDomNode(newElement))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.insertAfter(newElement, container);\n\n\t\t\t\t\t\t\t\t\t\tif (('ONCHANGE' in controlObject) &&\n\t\t\t\t\t\t\t\t\t\t\tcontrolObject.TYPE === self.types.CHECKBOX &&\n\t\t\t\t\t\t\t\t\t\t\t('CHECKED' in controlObject) &&\n\t\t\t\t\t\t\t\t\t\t\tcontrolObject.CHECKED)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tself.onChangeHandler(newElement, controlObject.ONCHANGE);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (controlObject.TYPE === self.types.DROPDOWN &&\n\t\t\t\t\t\t\t\t\t\t\tBX.type.isArray(controlObject.ITEMS) &&\n\t\t\t\t\t\t\t\t\t\t\tcontrolObject.ITEMS.length &&\n\t\t\t\t\t\t\t\t\t\t\t('ONCHANGE' in controlObject.ITEMS[0]) &&\n\t\t\t\t\t\t\t\t\t\t\tBX.type.isArray(controlObject.ITEMS[0].ONCHANGE))\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tself.onChangeHandler(newElement, controlObject.ITEMS[0].ONCHANGE);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.ACTIVATE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.removeItemsRelativeCurrent(container);\n\n\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taction.DATA.forEach(function(currentId) {\n\t\t\t\t\t\t\t\t\tself.lastActivated.push(currentId.ID);\n\t\t\t\t\t\t\t\t\tself.activateControl(currentId.ID);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.SHOW)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taction.DATA.forEach(function(showCurrent) {\n\t\t\t\t\t\t\t\t\tself.showControl(showCurrent.ID);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.HIDE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taction.DATA.forEach(function(hideCurrent) {\n\t\t\t\t\t\t\t\t\tself.hideControl(hideCurrent.ID);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.HIDE_ALL_EXPECT)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t(self.getControls() || []).forEach(function(current) {\n\t\t\t\t\t\t\t\t\tif (!action.DATA.some(function(el) { return el.ID === current.id}))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tself.hideControl(current.id);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.SHOW_ALL)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t(self.getControls() || []).forEach(function(current) {\n\t\t\t\t\t\t\t\tself.showControl(current.id);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.REMOVE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taction.DATA.forEach(function(removeCurrent) {\n\t\t\t\t\t\t\t\t\tBX.remove(BX(removeCurrent.ID));\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.CALLBACK)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.confirmDialog(action, BX.delegate(function() {\n\t\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\taction.DATA.forEach(\n\t\t\t\t\t\t\t\t\t\tfunction(currentCallback)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tif (currentCallback.JS.indexOf('Grid.') !== -1)\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcallback = currentCallback.JS.replace('Grid', 'self.parent');\n\t\t\t\t\t\t\t\t\t\t\t\tcallback = callback.replace('()', '');\n\t\t\t\t\t\t\t\t\t\t\t\tcallback += '.apply(self.parent, [container])';\n\t\t\t\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\teval(callback); // jshint ignore:line\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcatch(err)\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error(err);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if(BX.type.isNotEmptyString(currentCallback.JS))\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\teval(currentCallback.JS);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcatch(err)\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error(err);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.RESET_CONTROLS)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.removeItemsRelativeCurrent(container);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (!isPseudo)\n\t\t\t\t{\n\t\t\t\t\tthis.removeItemsRelativeCurrent(container);\n\t\t\t\t}\n\n\t\t\t\tself.lastActivated.forEach(function(current) {\n\t\t\t\t\tself.deactivateControl(current);\n\t\t\t\t});\n\n\t\t\t\tself.lastActivated = [];\n\t\t\t}\n\t\t},\n\n\t\tconfirmDialog: function(action, then, cancel)\n\t\t{\n\t\t\tthis.parent.confirmDialog(action, then, cancel);\n\t\t},\n\n\t\t/**\n\t\t * Dropdown value change handler\n\t\t * @param {string} id Dropdown id\n\t\t * @param {object} event\n\t\t * @param item\n\t\t * @param {object} dataItem\n\t\t * @param {object} dataItem.ONCHANGE\n\t\t * @param {boolean} dataItem.PSEUDO\n\t\t * @private\n\t\t */\n\t\t_dropdownChange: function(id, event, item, dataItem)\n\t\t{\n\t\t\tvar dropdown = BX(id);\n\t\t\tvar container = dropdown.parentNode;\n\t\t\tvar onChange = dataItem && ('ONCHANGE' in dataItem) ? dataItem.ONCHANGE : null;\n\t\t\tvar isPseudo = dataItem && ('PSEUDO' in dataItem && dataItem.PSEUDO !== false);\n\n\t\t\tthis.onChangeHandler(container, onChange, isPseudo);\n\t\t},\n\n\t\t_checkboxChange: function(event)\n\t\t{\n\t\t\tvar onChange;\n\n\t\t\ttry {\n\t\t\t\tonChange = eval(BX.data(event.target, 'onchange'));\n\t\t\t} catch(err) {\n\t\t\t\tonChange = null;\n\t\t\t}\n\n\t\t\tthis.onChangeHandler(\n\t\t\t\tBX.findParent(event.target, {\n\t\t\t\t\tclassName: this.parent.settings.get('classPanelContainer')\n\t\t\t\t}, true, false),\n\t\t\t\tevent.target.checked || event.target.id.indexOf('actallrows_') !== -1 ? onChange : null\n\t\t\t);\n\t\t},\n\n\t\t_clickOnButton: function(event)\n\t\t{\n\t\t\tvar onChange;\n\n\t\t\tif (this.isButton(event.target))\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\ttry {\n\t\t\t\t\tonChange = eval(BX.data(event.target, 'onchange'));\n\t\t\t\t} catch(err) {\n\t\t\t\t\tonChange = null;\n\t\t\t\t}\n\n\t\t\t\tthis.onChangeHandler(\n\t\t\t\t\tBX.findParent(event.target, {\n\t\t\t\t\t\tclassName: this.parent.settings.get('classPanelContainer')\n\t\t\t\t\t}, true, false),\n\t\t\t\t\tonChange\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\tisButton: function(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classPanelButton'));\n\t\t},\n\n\t\tgetSelectedIds: function()\n\t\t{\n\t\t\tvar rows = this.parent.getRows().getSelected().filter(function(row) { return row.isShown(); });\n\n\t\t\treturn rows.map(function(current) {\n\t\t\t\treturn current.getId();\n\t\t\t});\n\t\t},\n\n\t\tgetControls: function()\n\t\t{\n\t\t\treturn BX.findChild(this.getPanel(), {\n\t\t\t\tclassName: this.parent.settings.get('classPanelControlContainer')\n\t\t\t}, true, true);\n\t\t},\n\n\t\tgetValues: function()\n\t\t{\n\t\t\tvar data = {};\n\t\t\tvar self = this;\n\t\t\tvar controls = [].concat(\n\t\t\t\tthis.getDropdowns(),\n\t\t\t\tthis.getTextInputs(),\n\t\t\t\tthis.getHiddenInputs(),\n\t\t\t\tthis.getSelects(),\n\t\t\t\tthis.getCheckboxes(),\n\t\t\t\tthis.getButtons()\n\t\t\t);\n\n\t\t\t(controls || []).forEach(function(current) {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tif (self.isDropdown(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tvar dropdownValue = BX.data(current, 'value');\n\t\t\t\t\t\tdropdownValue = (dropdownValue !== null && dropdownValue !== undefined) ? dropdownValue : '';\n\t\t\t\t\t\tdata[BX.data(current, 'name')] = dropdownValue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isSelect(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[current.getAttribute('name')] = current.options[current.selectedIndex].value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isCheckbox(current) && current.checked)\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[current.getAttribute('name')] = current.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isTextInput(current) || self.isHiddenInput(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[current.getAttribute('name')] = current.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isButton(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tvar name = BX.data(current, 'name');\n\t\t\t\t\t\tvar value = BX.data(current, 'value');\n\t\t\t\t\t\tvalue = (value !== null && value !== undefined) ? value : '';\n\n\t\t\t\t\t\tif (name)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata[name] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn data;\n\t\t}\n\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * Base class\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.BaseClass = function(parent)\n\t{\n\t\tthis.parent = parent;\n\t};\n\n\tBX.Grid.BaseClass.prototype = {\n\t\tgetParent: function()\n\t\t{\n\t\t\treturn this.parent;\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.ColsSortable\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.ColsSortable = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.dragItem = null;\n\t\tthis.targetItem = null;\n\t\tthis.rowsList = null;\n\t\tthis.colsList = null;\n\t\tthis.dragRect = null;\n\t\tthis.offset = null;\n\t\tthis.startDragOffset = null;\n\t\tthis.dragColumn = null;\n\t\tthis.targetColumn = null;\n\t\tthis.isDrag = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.ColsSortable.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.colsList = this.getColsList();\n\t\t\tthis.rowsList = this.getRowsList();\n\n\t\t\tif (!this.inited)\n\t\t\t{\n\t\t\t\tthis.inited = true;\n\t\t\t\tBX.addCustomEvent('Grid::updated', BX.proxy(this.reinit, this));\n\t\t\t\tBX.addCustomEvent('Grid::headerUpdated', BX.proxy(this.reinit, this));\n\t\t\t}\n\n\t\t\tthis.registerObjects();\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tBX.removeCustomEvent('Grid::updated', BX.proxy(this.reinit, this));\n\t\t\tthis.unregisterObjects();\n\t\t},\n\n\t\treinit: function()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t\tthis.reset();\n\t\t\tthis.init(this.parent);\n\t\t},\n\n\t\treset: function()\n\t\t{\n\t\t\tthis.dragItem = null;\n\t\t\tthis.targetItem = null;\n\t\t\tthis.rowsList = null;\n\t\t\tthis.colsList = null;\n\t\t\tthis.dragRect = null;\n\t\t\tthis.offset = null;\n\t\t\tthis.startDragOffset = null;\n\t\t\tthis.dragColumn = null;\n\t\t\tthis.targetColumn = null;\n\t\t\tthis.isDrag = null;\n\t\t\tthis.fixedTableColsList = null;\n\t\t},\n\n\t\tisActive: function()\n\t\t{\n\t\t\treturn this.isDrag;\n\t\t},\n\n\t\tregisterObjects: function()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t\tthis.getColsList().forEach(this.register, this);\n\t\t\tthis.getFixedHeaderColsList().forEach(this.register, this);\n\t\t},\n\n\t\tunregisterObjects: function()\n\t\t{\n\t\t\tthis.getColsList().forEach(this.unregister, this);\n\t\t\tthis.getFixedHeaderColsList().forEach(this.unregister, this);\n\t\t},\n\n\t\tunregister: function(column)\n\t\t{\n\t\t\tjsDD.unregisterObject(column);\n\t\t},\n\n\t\tregister: function(column)\n\t\t{\n\t\t\tcolumn.onbxdragstart = BX.proxy(this._onDragStart, this);\n\t\t\tcolumn.onbxdrag = BX.proxy(this._onDrag, this);\n\t\t\tcolumn.onbxdragstop = BX.proxy(this._onDragEnd, this);\n\t\t\tjsDD.registerObject(column);\n\t\t},\n\n\t\tgetColsList: function()\n\t\t{\n\t\t\tif (!this.colsList)\n\t\t\t{\n\t\t\t\tthis.colsList = BX.Grid.Utils.getByTag(this.parent.getRows().getHeadFirstChild().getNode(), 'th');\n\t\t\t\tthis.colsList = this.colsList.filter(function(current) {\n\t\t\t\t\treturn !this.isStatic(current);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.colsList;\n\t\t},\n\n\t\tgetFixedHeaderColsList: function()\n\t\t{\n\t\t\tif (!this.fixedTableColsList && this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.fixedTableColsList = BX.Grid.Utils.getByTag(this.parent.getPinHeader().getFixedTable(), 'th');\n\t\t\t\tthis.fixedTableColsList = this.fixedTableColsList.filter(function(current) {\n\t\t\t\t\treturn !this.isStatic(current);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.fixedTableColsList || [];\n\t\t},\n\n\t\tgetRowsList: function()\n\t\t{\n\t\t\tvar rowsList = this.parent.getRows().getSourceRows();\n\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\trowsList = rowsList.concat(BX.Grid.Utils.getByTag(this.parent.getPinHeader().getFixedTable(), 'tr'));\n\t\t\t}\n\n\t\t\treturn rowsList;\n\t\t},\n\n\t\tisStatic: function(item)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(item, this.parent.settings.get('classCellStatic')) &&\n\t\t\t\t!BX.hasClass(item, 'main-grid-fixed-column')\n\t\t\t);\n\t\t},\n\n\t\tgetDragOffset: function()\n\t\t{\n\t\t\tvar offset = this.parent.getScrollContainer().scrollLeft - this.startScrollOffset;\n\t\t\treturn ((jsDD.x - this.startDragOffset - this.dragRect.left) + offset);\n\t\t},\n\n\t\tgetColumn: function(cell)\n\t\t{\n\t\t\tvar column = [];\n\n\t\t\tif (cell instanceof HTMLTableCellElement)\n\t\t\t{\n\t\t\t\tcolumn = this.rowsList.map(function(row) {\n\t\t\t\t\treturn row.cells[cell.cellIndex];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn column;\n\t\t},\n\n\t\t_onDragStart: function()\n\t\t{\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER') && this.parent.getPinHeader().isPinned())\n\t\t\t{\n\t\t\t\tthis.colsList = this.getFixedHeaderColsList();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.colsList = this.getColsList();\n\t\t\t}\n\n\t\t\tthis.startScrollOffset = this.parent.getScrollContainer().scrollLeft;\n\t\t\tthis.isDrag = true;\n\t\t\tthis.dragItem = jsDD.current_node;\n\t\t\tthis.dragRect = this.dragItem.getBoundingClientRect();\n\t\t\tthis.offset = Math.ceil(this.dragRect.width);\n\t\t\tthis.startDragOffset = jsDD.start_x - this.dragRect.left;\n\t\t\tthis.dragColumn = this.getColumn(this.dragItem);\n\t\t\tthis.dragIndex = BX.Grid.Utils.getIndex(this.colsList, this.dragItem);\n\t\t\tthis.parent.preventSortableClick = true;\n\t\t},\n\n\t\tisDragToRight: function(node, index)\n\t\t{\n\t\t\tvar nodeClientRect = node.getBoundingClientRect();\n\t\t\tvar nodeCenter = Math.ceil(nodeClientRect.left + (nodeClientRect.width / 2) + BX.scrollLeft(window));\n\t\t\tvar dragIndex = this.dragIndex;\n\t\t\tvar x = jsDD.x;\n\n\t\t\treturn index > dragIndex && x > nodeCenter;\n\t\t},\n\n\t\tisDragToLeft: function(node, index)\n\t\t{\n\t\t\tvar nodeClientRect = node.getBoundingClientRect();\n\t\t\tvar nodeCenter = Math.ceil(nodeClientRect.left + (nodeClientRect.width / 2) + BX.scrollLeft(window));\n\t\t\tvar dragIndex = this.dragIndex;\n\t\t\tvar x = jsDD.x;\n\n\t\t\treturn index < dragIndex && x < nodeCenter;\n\t\t},\n\n\t\tisDragToBack: function(node, index)\n\t\t{\n\t\t\tvar nodeClientRect = node.getBoundingClientRect();\n\t\t\tvar nodeCenter = Math.ceil(nodeClientRect.left + (nodeClientRect.width / 2) + BX.scrollLeft(window));\n\t\t\tvar dragIndex = this.dragIndex;\n\t\t\tvar x = jsDD.x;\n\n\t\t\treturn (index > dragIndex && x < nodeCenter) || (index < dragIndex && x > nodeCenter);\n\t\t},\n\n\n\t\tisMovedToRight: function(node)\n\t\t{\n\t\t\treturn node.style.transform === 'translate3d('+(-this.offset)+'px, 0px, 0px)';\n\t\t},\n\n\t\tisMovedToLeft: function(node)\n\t\t{\n\t\t\treturn node.style.transform === 'translate3d('+(this.offset)+'px, 0px, 0px)';\n\t\t},\n\n\t\tisMoved: function(node)\n\t\t{\n\t\t\treturn (node.style.transform !== 'translate3d(0px, 0px, 0px)' && node.style.transform !== '');\n\t\t},\n\n\t\t/**\n\t\t * Moves grid column by offset\n\t\t * @param {array} column - Array cells of column\n\t\t * @param {int} offset - Pixels offset\n\t\t * @param {int} [transition = 300] - Transition duration in milliseconds\n\t\t */\n\t\tmoveColumn: function(column, offset, transition)\n\t\t{\n\t\t\ttransition = BX.type.isNumber(transition) ? transition : 300;\n\t\t\tBX.Grid.Utils.styleForEach(column, {\n\t\t\t\t'transition': transition+'ms',\n\t\t\t\t'transform': 'translate3d('+offset+'px, 0px, 0px)'\n\t\t\t});\n\t\t},\n\n\t\t_onDrag: function()\n\t\t{\n\t\t\tthis.dragOffset = this.getDragOffset();\n\t\t\tthis.targetItem = this.targetItem || this.dragItem;\n\t\t\tthis.targetColumn = this.targetColumn || this.dragColumn;\n\n\t\t\tvar leftOffset = -this.offset;\n\t\t\tvar rightOffset = this.offset;\n\t\t\tvar defaultOffset = 0;\n\t\t\tvar dragTransitionDuration = 0;\n\n\t\t\tthis.moveColumn(this.dragColumn, this.dragOffset, dragTransitionDuration);\n\n\t\t\t[].forEach.call(this.colsList, function(current, index) {\n\t\t\t\tif (current && !current.classList.contains('main-grid-cell-static'))\n\t\t\t\t{\n\t\t\t\t\tif (this.isDragToRight(current, index) && !this.isMovedToRight(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetColumn = this.getColumn(current);\n\t\t\t\t\t\tthis.moveColumn(this.targetColumn, leftOffset);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToLeft(current, index) && !this.isMovedToLeft(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetColumn = this.getColumn(current);\n\t\t\t\t\t\tthis.moveColumn(this.targetColumn, rightOffset);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToBack(current, index) && this.isMoved(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetColumn = this.getColumn(current);\n\t\t\t\t\t\tthis.moveColumn(this.targetColumn, defaultOffset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\t_onDragEnd: function()\n\t\t{\n\t\t\t[].forEach.call(this.dragColumn, function(current, index) {\n\t\t\t\tBX.Grid.Utils.collectionSort(current, this.targetColumn[index]);\n\t\t\t}, this);\n\n\t\t\tthis.rowsList.forEach(function(current) {\n\t\t\t\tBX.Grid.Utils.styleForEach(current.cells, {\n\t\t\t\t\ttransition: '',\n\t\t\t\t\ttransform: ''\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tthis.reinit();\n\n\t\t\tvar columns = this.colsList.map(function(current) {\n\t\t\t\treturn BX.data(current, 'name');\n\t\t\t});\n\n\t\t\tthis.parent.getUserOptions().setColumns(columns);\n\t\t\tBX.onCustomEvent(this.parent.getContainer(), 'Grid::columnMoved', [this.parent]);\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tthis.parent.preventSortableClick = false;\n\t\t\t}.bind(this), 10);\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tvar originalUpdatePageData = window.parent.BX.ajax.UpdatePageData;\n\n\tfunction disableBxAjaxUpdatePageData()\n\t{\n\t\twindow.parent.BX.ajax.UpdatePageData = function() {};\n\t}\n\n\tfunction enableBxAjaxUpdatePageData()\n\t{\n\t\twindow.parent.BX.ajax.UpdatePageData = originalUpdatePageData;\n\t}\n\n\t/**\n\t * Works with requests and server response\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Data = function(parent)\n\t{\n\t\tthis.parent = parent;\n\t\tthis.reset();\n\t};\n\n\n\t/**\n\t * Reset to default values\n\t * @private\n\t */\n\tBX.Grid.Data.prototype.reset = function()\n\t{\n\t\tthis.response = null;\n\t\tthis.xhr = null;\n\t\tthis.headRows = null;\n\t\tthis.bodyRows = null;\n\t\tthis.footRows = null;\n\t\tthis.moreButton = null;\n\t\tthis.pagination = null;\n\t\tthis.counterDisplayed = null;\n\t\tthis.counterSelected = null;\n\t\tthis.counterTotal = null;\n\t\tthis.limit = null;\n\t\tthis.actionPanel = null;\n\t\tthis.rowsByParentId = {};\n\t\tthis.rowById = {};\n\t\tthis.isValidResponse = null;\n\t};\n\n\n\t/**\n\t * Gets filter\n\t * @return {BX.Main.Filter}\n\t */\n\tBX.Grid.Data.prototype.getParent = function()\n\t{\n\t\treturn this.parent;\n\t};\n\n\n\t/**\n\t * Validates server response\n\t * @return {boolean}\n\t */\n\tBX.Grid.Data.prototype.validateResponse = function()\n\t{\n\t\tif (!BX.type.isBoolean(this.isValidResponse))\n\t\t{\n\t\t\tthis.isValidResponse = !!this.getResponse() && !!BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classContainer'), true);\n\t\t}\n\n\t\treturn this.isValidResponse;\n\t};\n\n\n\t/**\n\t * Send request\n\t * @param {string} [url]\n\t * @param {string} [method]\n\t * @param {object} [data]\n\t * @param {string} [action]\n\t * @param {function} [then]\n\t * @param {function} [error]\n\t */\n\tBX.Grid.Data.prototype.request = function(url, method, data, action, then, error)\n\t{\n\t\tif(!BX.type.isString(url))\n\t\t{\n\t\t\turl = \"\";\n\t\t}\n\t\tif(!BX.type.isNotEmptyString(method))\n\t\t{\n\t\t\tmethod = \"GET\";\n\t\t}\n\n\t\tif(!BX.type.isPlainObject(data))\n\t\t{\n\t\t\tdata = {};\n\t\t}\n\n\t\tvar eventArgs =\n\t\t\t{\n\t\t\t\tgridId: this.parent.getId(),\n\t\t\t\turl: url,\n\t\t\t\tmethod: method,\n\t\t\t\tdata: data\n\t\t\t};\n\n\t\tthis.parent.disableCheckAllCheckboxes();\n\t\tBX.onCustomEvent(\n\t\t\twindow,\n\t\t\t\"Grid::beforeRequest\",\n\t\t\t[this, eventArgs]\n\t\t);\n\n\t\tif(eventArgs.hasOwnProperty(\"cancelRequest\") && eventArgs.cancelRequest === true)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\turl = eventArgs.url;\n\n\t\tif (!BX.type.isNotEmptyString(url))\n\t\t{\n\t\t\turl = this.parent.baseUrl;\n\t\t}\n\n\t\turl = BX.Grid.Utils.addUrlParams(url, { sessid: BX.bitrix_sessid(), internal: 'true', grid_id: this.parent.getId() });\n\n\t\tif ('apply_filter' in data && data.apply_filter === 'Y')\n\t\t{\n\t\t\turl = BX.Grid.Utils.addUrlParams(url, {apply_filter: 'Y'});\n\t\t}\n\t\telse\n\t\t{\n\t\t\turl = BX.util.remove_url_param(url, 'apply_filter');\n\t\t}\n\n\t\tif ('clear_nav' in data && data.clear_nav === 'Y')\n\t\t{\n\t\t\turl = BX.Grid.Utils.addUrlParams(url, {clear_nav: 'Y'});\n\t\t}\n\t\telse\n\t\t{\n\t\t\turl = BX.util.remove_url_param(url, 'clear_nav');\n\t\t}\n\n\t\turl = BX.Grid.Utils.addUrlParams(url, {grid_action: action || 'showpage'});\n\n\t\tmethod = eventArgs.method;\n\t\tdata = eventArgs.data;\n\n\t\tthis.reset();\n\n\t\tvar self = this;\n\n\t\tsetTimeout(function() {\n\t\t\tvar formData = BX.Http.Data.convertObjectToFormData(data);\n\n\t\t\tdisableBxAjaxUpdatePageData();\n\n\t\t\tvar xhr = BX.ajax({\n\t\t\t\turl: BX.Grid.Utils.ajaxUrl(url, self.getParent().getAjaxId()),\n\t\t\t\tdata: formData,\n\t\t\t\tmethod: method,\n\t\t\t\tdataType: 'html',\n\t\t\t\theaders: [\n\t\t\t\t\t{name: 'X-Ajax-Grid-UID', value: self.getParent().getAjaxId()},\n\t\t\t\t\t{name: 'X-Ajax-Grid-Req', value: JSON.stringify({action: action || 'showpage'})}\n\t\t\t\t],\n\t\t\t\tprocessData: true,\n\t\t\t\tscriptsRunFirst: false,\n\t\t\t\tstart: false,\n\t\t\t\tpreparePost: false,\n\t\t\t\tonsuccess: function(response) {\n\t\t\t\t\tself.response = BX.create('div', {html: response});\n\t\t\t\t\tself.response = self.response.querySelector('#'+self.parent.getContainerId());\n\t\t\t\t\tself.xhr = xhr;\n\n\t\t\t\t\tif (self.parent.getParam('HANDLE_RESPONSE_ERRORS'))\n\t\t\t\t\t{\n\t\t\t\t\t\tvar res;\n\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tres = JSON.parse(response);\n\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\tres = {messages: []};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (res.messages.length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.parent.arParams['MESSAGES'] = res.messages;\n\t\t\t\t\t\t\tself.parent.messages.show();\n\n\t\t\t\t\t\t\tself.parent.tableUnfade();\n\n\t\t\t\t\t\t\tif (BX.type.isFunction(error))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.delegate(error, self)(xhr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (BX.type.isFunction(then))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.enableCheckAllCheckboxes();\n\t\t\t\t\t\tBX.delegate(then, self)(response, xhr);\n\t\t\t\t\t}\n\n\t\t\t\t\tenableBxAjaxUpdatePageData();\n\t\t\t\t},\n\t\t\t\tonerror: function(err) {\n\t\t\t\t\tself.error = error;\n\t\t\t\t\tself.xhr = xhr;\n\n\t\t\t\t\tif (BX.type.isFunction(error))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.enableCheckAllCheckboxes();\n\t\t\t\t\t\tBX.delegate(error, self)(xhr, err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\txhr.send(formData);\n\t\t}, 0);\n\t};\n\n\n\t/**\n\t * Gets server response\n\t * @return {?Element}\n\t */\n\tBX.Grid.Data.prototype.getResponse = function()\n\t{\n\t\treturn this.response;\n\t};\n\n\n\t/**\n\t * Gets head rows of grid from server response\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getHeadRows = function()\n\t{\n\t\tif (!this.headRows)\n\t\t{\n\t\t\tthis.headRows = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classHeadRow'));\n\t\t}\n\n\t\treturn this.headRows;\n\t};\n\n\n\t/**\n\t * Gets body rows of grid form server request\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getBodyRows = function()\n\t{\n\t\tif (!this.bodyRows)\n\t\t{\n\t\t\tthis.bodyRows = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classBodyRow'));\n\t\t}\n\n\t\treturn this.bodyRows;\n\t};\n\n\n\t/**\n\t * Gets rows by parent id\n\t * @param {string|number} id\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getRowsByParentId = function(id)\n\t{\n\t\tif (!(id in this.rowsByParentId))\n\t\t{\n\t\t\tthis.rowsByParentId[id] = BX.Grid.Utils.getBySelector(\n\t\t\t\tthis.getResponse(),\n\t\t\t\t'.'+this.getParent().settings.get('classBodyRow')+'[data-parent-id=\"'+id+'\"]'\n\t\t\t);\n\t\t}\n\n\t\treturn this.rowsByParentId[id];\n\t};\n\n\n\t/**\n\t * Gets row by row id\n\t * @param {string|number} id\n\t * @return {?HTMLTableRowElement}\n\t */\n\tBX.Grid.Data.prototype.getRowById = function(id)\n\t{\n\t\tif (!(id in this.rowById))\n\t\t{\n\t\t\tthis.rowById[id] = BX.Grid.Utils.getBySelector(\n\t\t\t\tthis.getResponse(),\n\t\t\t\t'.'+this.getParent().settings.get('classBodyRow')+'[data-id=\"'+id+'\"]',\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\n\t\treturn this.rowById[id];\n\t};\n\n\n\t/**\n\t * Gets tfoot rows of grid from request\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getFootRows = function()\n\t{\n\t\tif (!this.footRows)\n\t\t{\n\t\t\tthis.footRows = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classFootRow'));\n\t\t}\n\n\t\treturn this.footRows;\n\t};\n\n\n\t/**\n\t * Gets more button from request\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getMoreButton = function()\n\t{\n\t\tif (!this.moreButton)\n\t\t{\n\t\t\tthis.moreButton = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classMoreButton'),\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\n\t\treturn this.moreButton;\n\t};\n\n\n\t/**\n\t * Gets pagination of grid from request\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getPagination = function()\n\t{\n\t\tif (!this.pagination)\n\t\t{\n\t\t\tthis.pagination = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classPagination'),\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tif (BX.type.isDomNode(this.pagination))\n\t\t\t{\n\t\t\t\tthis.pagination = BX.firstChild(this.pagination);\n\t\t\t}\n\t\t}\n\n\t\treturn this.pagination;\n\t};\n\n\n\t/**\n\t * Gets counter of displayed rows\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getCounterDisplayed = function()\n\t{\n\t\tif (!this.counterDisplayed)\n\t\t{\n\t\t\tthis.counterDisplayed = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classCounterDisplayed'),\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\n\t\treturn this.counterDisplayed;\n\t};\n\n\n\t/**\n\t * Gets counter of selected rows\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getCounterSelected = function()\n\t{\n\t\tif (!this.counterSelected)\n\t\t{\n\t\t\tthis.counterSelected = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classCounterSelected'),\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\n\t\treturn this.counterSelected;\n\t};\n\n\n\t/**\n\t * Gets counter of total rows count\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getCounterTotal = function()\n\t{\n\t\tif (!BX.type.isDomNode(this.counterTotal))\n\t\t{\n\t\t\tvar selector = '.'+this.getParent().settings.get('classCounterTotal')+' .'+this.getParent().settings.get('classPanelCellContent');\n\t\t\tthis.counterTotal = BX.Grid.Utils.getBySelector(this.getResponse(), selector, true);\n\t\t}\n\n\t\treturn this.counterTotal;\n\t};\n\n\n\t/**\n\t * Gets dropdown of pagesize\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getLimit = function()\n\t{\n\t\tif (!this.limit)\n\t\t{\n\t\t\tthis.limit = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classPageSize'), true);\n\t\t}\n\n\t\treturn this.limit;\n\t};\n\n\n\t/**\n\t * Gets dropdown of pagesize\n\t * @alias BX.Grid.Data.prototype.getLimit\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getPageSize = function()\n\t{\n\t\treturn this.getLimit();\n\t};\n\n\n\t/**\n\t * Gets action panel of grid\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getActionPanel = function()\n\t{\n\t\tif (!this.actionPanel)\n\t\t{\n\t\t\tthis.actionPanel = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classActionPanel'),\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\n\t\treturn this.actionPanel;\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\n\t/**\n\t * BX.Main.dropdown\n\t * @param dropdown\n\t */\n\tBX.Main.dropdown = function(dropdown)\n\t{\n\t\tthis.id = null;\n\t\tthis.dropdown = null;\n\t\tthis.items = null;\n\t\tthis.value = null;\n\t\tthis.menuId = null;\n\t\tthis.menu = null;\n\t\tthis.menuItems = null;\n\t\tthis.dataItems = 'items';\n\t\tthis.dataValue = 'value';\n\t\tthis.dataPseudo = 'pseudo';\n\t\tthis.dropdownItemClass = 'main-dropdown-item';\n\t\tthis.activeClass = 'main-dropdown-active';\n\t\tthis.selectedClass = 'main-dropdown-item-selected';\n\t\tthis.notSelectedClass = 'main-dropdown-item-not-selected';\n\t\tthis.lockedClass = 'main-dropdown-item-locked';\n\t\tthis.menuItemClass = 'menu-popup-item';\n\t\tthis.init(dropdown);\n\t};\n\n\tBX.Main.dropdown.prototype = {\n\t\tinit: function(dropdown)\n\t\t{\n\t\t\tthis.id = dropdown.id;\n\t\t\tthis.dropdown = dropdown;\n\t\t\tthis.items = this.getItems();\n\t\t\tthis.value = this.getValue();\n\t\t\tthis.menuId = this.getMenuId();\n\t\t\tthis.menu = this.createMenu();\n\t\t\tthis.menu.popupWindow.show();\n\t\t\tthis.adjustPosition();\n\n\t\t\tBX.bind(this.dropdown, 'click', BX.delegate(this.showMenu, this));\n\t\t},\n\n\t\tgetMenuId: function()\n\t\t{\n\t\t\treturn this.id + '_menu';\n\t\t},\n\n\t\tgetItems: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tvar str = BX.data(this.dropdown, this.dataItems);\n\t\t\t\tresult = eval(str);\n\t\t\t} catch (err) {\n\t\t\t\tresult = [];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetValue: function()\n\t\t{\n\t\t\treturn BX.data(this.dropdown, this.dataValue);\n\t\t},\n\n\t\tprepareMenuItems: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tvar attrs, subItem;\n\t\t\tvar currentValue = this.getValue();\n\n\t\t\tfunction prepareItems(items)\n\t\t\t{\n\t\t\t\tvar isHtmlEntity = self.dropdown.dataset['htmlEntity'] === 'true';\n\t\t\t\treturn items.map(function(item) {\n\t\t\t\t\tattrs = {};\n\t\t\t\t\tattrs['data-'+self.dataValue] = item.VALUE;\n\t\t\t\t\tattrs['data-'+self.dataPseudo] = 'PSEUDO' in item && item.PSEUDO ? 'true' : 'false';\n\n\t\t\t\t\tsubItem = BX.create('div', {children: [\n\t\t\t\t\t\tBX.create('span', {\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\tclassName: self.dropdownItemClass\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tattrs: attrs,\n\t\t\t\t\t\t\thtml: isHtmlEntity ? item.NAME: null,\n\t\t\t\t\t\t\ttext: isHtmlEntity ? null: item.NAME\n\t\t\t\t\t\t})\n\t\t\t\t\t]});\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\thtml: subItem.innerHTML,\n\t\t\t\t\t\tclassName: currentValue === item.VALUE ? self.selectedClass : self.notSelectedClass,\n\t\t\t\t\t\tdelimiter: item.DELIMITER,\n\t\t\t\t\t\titems: 'ITEMS' in item ? prepareItems(item.ITEMS) : null\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst items = prepareItems(this.getItems());\n\t\t\tBX.onCustomEvent(window, 'Dropdown::onPrepareItems', [this.id, this.menuId, items])\n\t\t\treturn items;\n\t\t},\n\n\t\tcreateMenu: function()\n\t\t{\n\t\t\tvar self = this;\n\n\t\t\treturn BX.PopupMenu.create(\n\t\t\t\tthis.getMenuId(),\n\t\t\t\tthis.dropdown,\n\t\t\t\tthis.prepareMenuItems(),\n\t\t\t\t{\n\t\t\t\t\t'autoHide': true,\n\t\t\t\t\t'offsetTop': -8,\n\t\t\t\t\t'offsetLeft': +(this.dropdown.dataset.menuOffsetLeft || 40),\n\t\t\t\t\t'maxHeight': +(this.dropdown.dataset.menuMaxHeight || 170),\n\t\t\t\t\t'angle': {\n\t\t\t\t\t\t'position': 'bottom',\n\t\t\t\t\t\t'offset': 0\n\t\t\t\t\t},\n\t\t\t\t\t'events': {\n\t\t\t\t\t\t'onPopupClose': BX.delegate(this._onCloseMenu, this),\n\t\t\t\t\t\t'onPopupShow': function() {\n\t\t\t\t\t\t\tself._onShowMenu();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\tshowMenu: function()\n\t\t{\n\t\t\tthis.menu = BX.PopupMenu.getMenuById(this.menuId);\n\n\t\t\tif (!this.menu)\n\t\t\t{\n\t\t\t\tthis.menu = this.createMenu();\n\t\t\t\tthis.menu.popupWindow.show();\n\t\t\t}\n\n\t\t\tthis.adjustPosition();\n\t\t},\n\n\t\tadjustPosition: function()\n\t\t{\n\t\t\tif (this.dropdown.dataset.popupPosition === 'fixed')\n\t\t\t{\n\t\t\t\tvar container = this.menu.popupWindow.popupContainer;\n\n\t\t\t\tcontainer.style.setProperty('top', 'auto');\n\t\t\t\tcontainer.style.setProperty('bottom', '45px');\n\t\t\t\tcontainer.style.setProperty('left', '0px');\n\n\t\t\t\tthis.dropdown.appendChild(container);\n\t\t\t}\n\t\t},\n\n\t\tgetSubItem: function(node)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(node, this.dropdownItemClass, true);\n\t\t},\n\n\t\trefresh: function(item)\n\t\t{\n\t\t\tvar subItem = this.getSubItem(item);\n\t\t\tvar value = BX.data(subItem, this.dataValue);\n\t\t\tif (BX.Type.isUndefined(value))\n\t\t\t{\n\t\t\t\tvalue = '';\n\t\t\t}\n\t\t\tBX.firstChild(this.dropdown).innerText = subItem.innerText;\n\t\t\tthis.dropdown.dataset[this.dataValue] = value;\n\t\t},\n\n\t\tselectItem: function(node)\n\t\t{\n\t\t\tvar self = this;\n\n\t\t\t(this.menu.menuItems || []).forEach(function(current) {\n\t\t\t\tBX.removeClass(current.layout.item, self.selectedClass);\n\n\t\t\t\tif (node !== current.layout.item)\n\t\t\t\t{\n\t\t\t\t\tBX.addClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBX.removeClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tBX.addClass(node, this.selectedClass);\n\t\t},\n\n\t\tlockedItem: function(node) {\n\n\t\t\tBX.addClass(node, this.lockedClass);\n\t\t},\n\n\t\tgetDataItemIndexByValue: function(items, value)\n\t\t{\n\t\t\tvar result;\n\n\t\t\tif (BX.type.isArray(items))\n\t\t\t{\n\t\t\t\titems.map(function(current, index) {\n\t\t\t\t\tif (current.VALUE === value)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = index;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tgetDataItemByValue: function(value)\n\t\t{\n\t\t\tvar result = this.getItems().filter(function(current) {\n\t\t\t\treturn current.VALUE === value;\n\t\t\t});\n\n\t\t\treturn result.length > 0 ? result[0] : null;\n\t\t},\n\n\t\t_onShowMenu: function()\n\t\t{\n\t\t\tvar self = this;\n\n\t\t\tBX.addClass(this.dropdown, this.activeClass);\n\t\t\t(this.menu.menuItems || []).forEach(function(current) {\n\t\t\t\tBX.bind(current.layout.item, 'click', BX.delegate(self._onItemClick, self));\n\t\t\t});\n\t\t},\n\n\t\t_onCloseMenu: function()\n\t\t{\n\t\t\tBX.removeClass(this.dropdown, this.activeClass);\n\t\t\tBX.PopupMenu.destroy(this.menuId);\n\t\t},\n\n\t\t_onItemClick: function(event)\n\t\t{\n\t\t\tvar item = this.getMenuItem(event.target);\n\t\t\tvar value, dataItem;\n\t\t\tvar subItem = this.getSubItem(item);\n\t\t\tvar isPseudo = BX.data(subItem, 'pseudo');\n\n\t\t\tif (!(isPseudo === 'true'))\n\t\t\t{\n\t\t\t\tthis.refresh(item);\n\t\t\t\tthis.selectItem(item);\n\t\t\t\tthis.menu.popupWindow.close();\n\t\t\t\tvalue = this.getValue();\n\t\t\t\tdataItem = this.getDataItemByValue(value);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tvalue = BX.data(subItem, 'value');\n\t\t\t\tdataItem = this.getDataItemByValue(value);\n\t\t\t}\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tBX.onCustomEvent(window, 'Dropdown::change', [this.dropdown.id, event, item, dataItem, value]);\n\t\t},\n\n\t\tgetMenuItem: function(node)\n\t\t{\n\t\t\tvar item = node;\n\n\t\t\tif (!BX.hasClass(item, this.menuItemClass))\n\t\t\t{\n\t\t\t\titem = BX.findParent(item, {class: this.menuItemClass});\n\t\t\t}\n\n\t\t\treturn item;\n\t\t}\n\t};\n})();\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\tBX.Main.dropdownManager = {\n\t\tdropdownClass: 'main-dropdown',\n\t\tdata: {},\n\t\tinit: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tvar result;\n\t\t\tvar onLoadItems;\n\t\t\tvar items;\n\n\t\t\tBX.bind(document, 'click', BX.delegate(function(event) {\n\t\t\t\tif (BX.hasClass(event.target, this.dropdownClass))\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tresult = this.getById(event.target.id);\n\n\t\t\t\t\tif (result && result.dropdown === event.target)\n\t\t\t\t\t{\n\t\t\t\t\t\tself.push(event.target.id, this.getById(event.target.id));\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tself.push(event.target.id, new BX.Main.dropdown(event.target));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this));\n\n\t\t\tonLoadItems = BX.Grid.Utils.getByClass(document.body, this.dropdownClass);\n\n\t\t\tif (BX.type.isArray(onLoadItems))\n\t\t\t{\n\t\t\t\tonLoadItems.forEach(function(current) {\n\t\t\t\t\tresult = self.getById(current.id);\n\t\t\t\t\ttry {\n\t\t\t\t\t\titems = eval(BX.data(current, 'items'));\n\t\t\t\t\t} catch (err) {}\n\n\t\t\t\t\tBX.onCustomEvent(window, 'Dropdown::load', [current.id, {}, null, BX.type.isArray(items) && items.length ? items[0] : [], BX.data(current, 'value')]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t},\n\n\t\tpush: function(id, instance)\n\t\t{\n\t\t\tthis.data[id] = instance;\n\t\t},\n\n\t\tgetById: function(id)\n\t\t{\n\t\t\treturn (id in this.data) ? this.data[id] : null;\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * @param {HtmlElement} node\n\t * @param {BX.Main.grid} [parent]\n\t * @constructor\n\t */\n\tBX.Grid.Element = function(node, parent)\n\t{\n\t\tthis.node = null;\n\t\tthis.href = null;\n\t\tthis.parent = null;\n\t\tthis.init(node, parent);\n\t};\n\n\tBX.Grid.Element.prototype = {\n\t\tinit: function(node, parent)\n\t\t{\n\t\t\tthis.node = node;\n\t\t\tthis.parent = parent;\n\t\t\tthis.resetOnclickAttr();\n\t\t},\n\n\t\tgetParent: function()\n\t\t{\n\t\t\treturn this.parent;\n\t\t},\n\n\t\tload: function()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.getParent().settings.get('classLoad'));\n\t\t},\n\n\t\tunload: function()\n\t\t{\n\t\t\tBX.removeClass(this.getNode(), this.getParent().settings.get('classLoad'));\n\t\t},\n\n\t\tisLoad: function()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), this.getParent().settings.get('classLoad'));\n\t\t},\n\n\t\tresetOnclickAttr: function()\n\t\t{\n\t\t\tif (BX.type.isDomNode(this.getNode()))\n\t\t\t{\n\t\t\t\tthis.getNode().onclick = null;\n\t\t\t}\n\t\t},\n\n\t\tgetObserver: function()\n\t\t{\n\t\t\treturn BX.Grid.observer;\n\t\t},\n\n\t\tgetNode: function()\n\t\t{\n\t\t\treturn this.node;\n\t\t},\n\n\t\tgetLink: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = this.getNode().href;\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * BX.Grid.Fader\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Fader = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.table = null;\n\t\tthis.container = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Fader.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.table = this.parent.getTable();\n\t\t\tthis.container = this.table.parentNode;\n\t\t\tthis.scrollStartEventName = this.parent.isTouch() ? 'touchstart' : 'mouseenter';\n\t\t\tthis.scrollEndEventName = this.parent.isTouch() ? 'touchend' : 'mouseleave';\n\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.fixedTable = this.parent.getPinHeader().getFixedTable();\n\t\t\t}\n\n\t\t\tthis.debounceScrollHandler = BX.debounce(this._onWindowScroll, 400, this);\n\n\t\t\tBX.bind(window, 'resize', BX.proxy(this.toggle, this));\n\t\t\tdocument.addEventListener('scroll', this.debounceScrollHandler, BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\tthis.container.addEventListener('scroll', BX.proxy(this.toggle, this), BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this.toggle, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::resize', BX.proxy(this.toggle, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this._onHeaderUpdated, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::columnResize', BX.proxy(this.toggle, this));\n\t\t\tBX.bind(this.getEarLeft(), this.scrollStartEventName, BX.proxy(this._onMouseoverLeft, this));\n\t\t\tBX.bind(this.getEarRight(), this.scrollStartEventName, BX.proxy(this._onMouseoverRight, this));\n\t\t\tBX.bind(this.getEarLeft(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\t\t\tBX.bind(this.getEarRight(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\n\t\t\tthis.toggle();\n\t\t\tthis.adjustEarOffset(true);\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tBX.unbind(window, 'resize', BX.proxy(this.toggle, this));\n\t\t\tdocument.removeEventListener('scroll', this.debounceScrollHandler, BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\tthis.container.removeEventListener('scroll', BX.proxy(this.toggle, this), BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this.toggle, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this._onHeaderUpdated, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::columnResize', BX.proxy(this.toggle, this));\n\t\t\tBX.unbind(this.getEarLeft(), this.scrollStartEventName, BX.proxy(this._onMouseoverLeft, this));\n\t\t\tBX.unbind(this.getEarRight(), this.scrollStartEventName, BX.proxy(this._onMouseoverRight, this));\n\t\t\tBX.unbind(this.getEarLeft(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\t\t\tBX.unbind(this.getEarRight(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\t\t\tthis.hideLeftEar();\n\t\t\tthis.hideRightEar();\n\t\t\tthis.stopScroll();\n\t\t},\n\n\t\t_onHeaderUpdated: function()\n\t\t{\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.fixedTable = this.parent.getPinHeader().getFixedTable();\n\t\t\t}\n\t\t},\n\n\t\t_onMouseoverLeft: function(event)\n\t\t{\n\t\t\tthis.parent.isTouch() && event.preventDefault();\n\t\t\tthis.startScrollByDirection('left');\n\t\t},\n\n\t\t_onMouseoverRight: function(event)\n\t\t{\n\t\t\tthis.parent.isTouch() && event.preventDefault();\n\t\t\tthis.startScrollByDirection('right');\n\t\t},\n\n\t\tstopScroll: function()\n\t\t{\n\t\t\tclearTimeout(this.scrollTimer);\n\t\t\tclearInterval(this.scrollInterval);\n\t\t},\n\n\t\tstartScrollByDirection: function(direction)\n\t\t{\n\t\t\tvar container = this.container;\n\t\t\tvar offset = container.scrollLeft;\n\t\t\tvar self = this;\n\t\t\tvar stepLength = 8;\n\t\t\tvar stepTime = ((1000 / 60) / 2);\n\n\t\t\tthis.scrollTimer = setTimeout(function() {\n\t\t\t\tself.scrollInterval = setInterval(function() {\n\t\t\t\t\tcontainer.scrollLeft = direction == 'right' ? (offset += stepLength) : (offset -= stepLength);\n\t\t\t\t}, stepTime);\n\t\t\t}, 100);\n\t\t},\n\n\t\tgetEarLeft: function()\n\t\t{\n\t\t\tif (!this.earLeft)\n\t\t\t{\n\t\t\t\tthis.earLeft = BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classEarLeft'), true);\n\t\t\t}\n\n\t\t\treturn this.earLeft;\n\t\t},\n\n\t\tgetEarRight: function()\n\t\t{\n\t\t\tif (!this.earRight)\n\t\t\t{\n\t\t\t\tthis.earRight = BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classEarRight'), true);\n\t\t\t}\n\n\t\t\treturn this.earRight;\n\t\t},\n\n\t\tgetShadowLeft: function()\n\t\t{\n\t\t\treturn this.parent.getContainer().querySelector(\".main-grid-fade-shadow-left\");\n\t\t},\n\n\t\tgetShadowRight: function()\n\t\t{\n\t\t\treturn this.parent.getContainer().querySelector(\".main-grid-fade-shadow-right\");\n\t\t},\n\n\t\tadjustEarOffset: function(prepare)\n\t\t{\n\t\t\tif (prepare)\n\t\t\t{\n\t\t\t\tthis.windowHeight = BX.height(window);\n\t\t\t\tthis.tbodyPos = BX.pos(this.table.tBodies[0]);\n\t\t\t\tthis.headerPos = BX.pos(this.table.tHead);\n\t\t\t}\n\n\t\t\tvar scrollY = window.scrollY;\n\n\t\t\tif (this.parent.isIE())\n\t\t\t{\n\t\t\t\tscrollY = document.documentElement.scrollTop;\n\t\t\t}\n\n\t\t\tvar bottomPos = (scrollY + this.windowHeight) - this.tbodyPos.top;\n\t\t\tvar posTop = scrollY - this.tbodyPos.top;\n\n\t\t\tif (bottomPos > (this.tbodyPos.bottom - this.tbodyPos.top))\n\t\t\t{\n\t\t\t\tbottomPos = this.tbodyPos.bottom - this.tbodyPos.top;\n\t\t\t}\n\n\t\t\tif (posTop < this.headerPos.height)\n\t\t\t{\n\t\t\t\tposTop = this.headerPos.height;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tbottomPos -= posTop;\n\t\t\t\tbottomPos += this.headerPos.height;\n\t\t\t}\n\n\t\t\tBX.Grid.Utils.requestAnimationFrame(BX.proxy(function() {\n\t\t\t\tif (posTop !== this.lastPosTop)\n\t\t\t\t{\n\t\t\t\t\tvar translate = 'translate3d(0px, ' + posTop + 'px, 0)';\n\t\t\t\t\tthis.getEarLeft().style.transform = translate;\n\t\t\t\t\tthis.getEarRight().style.transform = translate;\n\t\t\t\t}\n\n\t\t\t\tif (bottomPos !== this.lastBottomPos)\n\t\t\t\t{\n\t\t\t\t\tthis.getEarLeft().style.height = bottomPos + 'px';\n\t\t\t\t\tthis.getEarRight().style.height = bottomPos + 'px';\n\t\t\t\t}\n\n\t\t\t\tthis.lastPosTop = posTop;\n\t\t\t\tthis.lastBottomPos = bottomPos;\n\t\t\t}, this));\n\t\t},\n\n\t\t_onWindowScroll: function()\n\t\t{\n\t\t\tthis.adjustEarOffset();\n\t\t},\n\n\t\thasScroll: function()\n\t\t{\n\t\t\treturn this.table.offsetWidth > this.container.clientWidth;\n\t\t},\n\n\t\thasScrollLeft: function()\n\t\t{\n\t\t\treturn this.container.scrollLeft > 0;\n\t\t},\n\n\t\thasScrollRight: function()\n\t\t{\n\t\t\treturn this.table.offsetWidth > (this.container.scrollLeft + this.container.clientWidth);\n\t\t},\n\n\t\tshowLeftEar: function()\n\t\t{\n\t\t\tBX.addClass(this.container.parentNode, this.parent.settings.get('classFadeContainerLeft'));\n\t\t\tBX.addClass(this.getEarLeft(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\thideLeftEar: function()\n\t\t{\n\t\t\tBX.removeClass(this.container.parentNode, this.parent.settings.get('classFadeContainerLeft'));\n\t\t\tBX.removeClass(this.getEarLeft(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\tshowRightEar: function()\n\t\t{\n\t\t\tBX.addClass(this.container.parentNode, this.parent.settings.get('classFadeContainerRight'));\n\t\t\tBX.addClass(this.getEarRight(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\thideRightEar: function()\n\t\t{\n\t\t\tBX.removeClass(this.container.parentNode, this.parent.settings.get('classFadeContainerRight'));\n\t\t\tBX.removeClass(this.getEarRight(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\tadjustFixedTablePosition: function()\n\t\t{\n\t\t\tvar left = this.container.scrollLeft;\n\n\t\t\tBX.Grid.Utils.requestAnimationFrame(BX.delegate(function() {\n\t\t\t\tthis.fixedTable.style.marginLeft = -left + 'px';\n\t\t\t}, this));\n\t\t},\n\n\t\ttoggle: function()\n\t\t{\n\t\t\tthis.adjustEarOffset(true);\n\t\t\tthis.fixedTable && this.adjustFixedTablePosition();\n\n\t\t\tif (this.hasScroll())\n\t\t\t{\n\t\t\t\tthis.hasScrollLeft() ? this.showLeftEar() : this.hideLeftEar();\n\t\t\t\tthis.hasScrollRight() ? this.showRightEar() : this.hideRightEar();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hideLeftEar();\n\t\t\t\tthis.hideRightEar();\n\t\t\t}\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * Updates grid\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Updater = function(parent)\n\t{\n\t\tthis.parent = parent;\n\t};\n\n\n\t/**\n\t * Gets parent object\n\t * @return {?BX.Main.grid}\n\t */\n\tBX.Grid.Updater.prototype.getParent = function()\n\t{\n\t\treturn this.parent;\n\t};\n\n\n\t/**\n\t * Updates head rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.updateHeadRows = function(rows)\n\t{\n\t\tvar headers;\n\n\t\tif (BX.type.isArray(rows) && rows.length)\n\t\t{\n\t\t\theaders = this.getParent().getHeaders();\n\t\t\theaders.forEach(function(header) {\n\t\t\t\theader = BX.cleanNode(header);\n\t\t\t\trows.forEach(function(row) {\n\t\t\t\t\tif (BX.type.isDomNode(row))\n\t\t\t\t\t{\n\t\t\t\t\t\theader.appendChild(BX.clone(row));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * Appends head rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.appendHeadRows = function(rows)\n\t{\n\t\tvar headers;\n\n\t\tif (BX.type.isArray(rows) && rows.length)\n\t\t{\n\t\t\theaders = this.getParent().getHeaders();\n\n\t\t\theaders.forEach(function(header) {\n\t\t\t\trows.forEach(function(row) {\n\t\t\t\t\tif (BX.type.isDomNode(row))\n\t\t\t\t\t{\n\t\t\t\t\t\theader.appendChild(BX.clone(row));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * Prepends head rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.prependHeadRows = function(rows)\n\t{\n\t\tvar headers;\n\n\t\tif (BX.type.isArray(rows) && rows.length)\n\t\t{\n\t\t\theaders = this.getParent().getHeaders();\n\n\t\t\theaders.forEach(function(header) {\n\t\t\t\theader = BX.cleanNode(header);\n\t\t\t\trows.forEach(function(row) {\n\t\t\t\t\tif (BX.type.isDomNode(row))\n\t\t\t\t\t{\n\t\t\t\t\t\theader.prepend(BX.clone(row));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * Updates body row by row id\n\t * @param {?string|number} id\n\t * @param {HTMLTableRowElement} row\n\t */\n\tBX.Grid.Updater.prototype.updateBodyRowById = function(id, row)\n\t{\n\t\tif ((BX.type.isNumber(id) || BX.type.isNotEmptyString(id)) && BX.type.isDomNode(row))\n\t\t{\n\t\t\tvar currentRow = this.getParent().getRows().getById(id);\n\n\t\t\tif (currentRow)\n\t\t\t{\n\t\t\t\tvar currentNode = currentRow.getNode();\n\t\t\t\tBX.insertAfter(row, currentNode);\n\t\t\t\tBX.remove(currentNode);\n\t\t\t}\n\t\t}\n\t};\n\n\n\t/**\n\t * Updates all body rows.\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.updateBodyRows = function(rows)\n\t{\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tvar body = this.getParent().getBody();\n\t\t\tbody.innerHTML = '';\n\n\t\t\trows.forEach(function(current) {\n\t\t\t\t!!current && body.appendChild(current);\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * Appends body rows.\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.appendBodyRows = function(rows)\n\t{\n\t\tvar body;\n\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tbody = this.getParent().getBody();\n\t\t\trows.forEach(function(current) {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tbody.appendChild(current);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * Prepends body rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.prependBodyRows = function(rows)\n\t{\n\t\tvar body;\n\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tbody = this.getParent().getBody();\n\t\t\trows.forEach(function(current) {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tBX.prepend(body, current);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * Updates table footer rows.\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.updateFootRows = function(rows)\n\t{\n\t\tvar foot;\n\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tfoot = BX.cleanNode(this.getParent().getFoot());\n\t\t\trows.forEach(function(current) {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tfoot.appendChild(current);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * Updates total rows counter\n\t * @param {?HTMLElement} counter\n\t */\n\tBX.Grid.Updater.prototype.updateCounterTotal = function(counter)\n\t{\n\t\tvar counterCell;\n\n\t\tif (BX.type.isDomNode(counter))\n\t\t{\n\t\t\tcounterCell = BX.cleanNode(this.getParent().getCounterTotal());\n\t\t\tcounterCell.appendChild(counter);\n\t\t}\n\t};\n\n\n\t/**\n\t * Updates grid pagination\n\t * @param {?HTMLElement} pagination\n\t */\n\tBX.Grid.Updater.prototype.updatePagination = function(pagination)\n\t{\n\t\tvar paginationCell = this.getParent().getPagination().getContainer();\n\n\t\tif (!!paginationCell)\n\t\t{\n\t\t\tpaginationCell.innerHTML = '';\n\n\t\t\tif (BX.type.isDomNode(pagination))\n\t\t\t{\n\t\t\t\tpaginationCell.appendChild(pagination);\n\t\t\t}\n\t\t}\n\t};\n\n\n\t/**\n\t * Updates more button\n\t * @param {?HTMLElement} button\n\t */\n\tBX.Grid.Updater.prototype.updateMoreButton = function(button)\n\t{\n\t\tif (BX.type.isDomNode(button))\n\t\t{\n\t\t\tvar buttonParent = BX.Grid.Utils.closestParent(this.getParent().getMoreButton().getNode());\n\t\t\tbuttonParent.innerHTML = '';\n\t\t\tbuttonParent.appendChild(button);\n\t\t}\n\t};\n\n\n\t/**\n\t * Updates group actions panel\n\t * @param {HTMLElement} panel\n\t */\n\tBX.Grid.Updater.prototype.updateGroupActions = function(panel)\n\t{\n\t\tvar GroupActions = this.parent.getActionsPanel();\n\n\t\tif (!!GroupActions && BX.type.isDomNode(panel))\n\t\t{\n\t\t\tvar panelNode = GroupActions.getPanel();\n\n\t\t\tif (BX.type.isDomNode(panelNode))\n\t\t\t{\n\t\t\t\tpanelNode.innerHTML = '';\n\n\t\t\t\tvar panelChild = BX.firstChild(panel);\n\n\t\t\t\tif (BX.type.isDomNode(panelChild))\n\t\t\t\t{\n\t\t\t\t\tpanelNode.appendChild(panelChild);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.Reflection.namespace('BX.Grid');\n\n\tBX.Grid.ImageField = function(parent, options) {\n\t\tthis.parent = parent;\n\t\tthis.options = options;\n\t\tthis.cache = new BX.Cache.MemoryCache();\n\t};\n\n\tBX.Grid.ImageField.prototype = {\n\t\tgetPreview: function()\n\t\t{\n\t\t\treturn this.cache.remember('preview', function() {\n\t\t\t\treturn BX.create('img', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'main-grid-image-editor-preview'\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tsrc: this.options.VALUE\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tgetFileInput: function()\n\t\t{\n\t\t\treturn this.cache.remember('fileInput', function() {\n\t\t\t\treturn BX.create(\"input\", {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: \"main-grid-image-editor-file-input\"\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\taccept: \"image/*\",\n\t\t\t\t\t\tname: this.options.NAME\n\t\t\t\t\t},\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tchange: function(event) {\n\t\t\t\t\t\t\tvar reader = new FileReader();\n\t\t\t\t\t\t\treader.onload = function(event) {\n\t\t\t\t\t\t\t\tthis.getPreview().src = event.currentTarget.result;\n\t\t\t\t\t\t\t}.bind(this);\n\n\t\t\t\t\t\t\treader.readAsDataURL(event.target.files[0]);\n\n\t\t\t\t\t\t\tBX.Dom.remove(this.getFakeField());\n\t\t\t\t\t\t\tBX.Dom.append(this.getFileInput(), this.getLayout());\n\t\t\t\t\t\t\tBX.Dom.removeClass(this.getRemoveButton(), 'ui-btn-disabled');\n\t\t\t\t\t\t\tBX.Dom.style(this.getPreview(), null);\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tgetUploadButton: function()\n\t\t{\n\t\t\treturn this.cache.remember('uploadButton', function() {\n\t\t\t\treturn BX.create('button', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: \"ui-btn ui-btn-xs\"\n\t\t\t\t\t},\n\t\t\t\t\ttext: this.parent.getParam(\"MAIN_UI_GRID_IMAGE_EDITOR_BUTTON_EDIT\"),\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function(event) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tthis.getFileInput().click();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tgetRemoveButton: function()\n\t\t{\n\t\t\treturn this.cache.remember('removeButton', function() {\n\t\t\t\treturn BX.create('button', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: \"ui-btn ui-btn-xs ui-btn-danger\"\n\t\t\t\t\t},\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function(event) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tBX.Dom.append(this.getFakeField(), this.getLayout());\n\t\t\t\t\t\t\tBX.Dom.remove(this.getFileInput());\n\t\t\t\t\t\t\tBX.Dom.addClass(this.getRemoveButton(), 'ui-btn-disabled');\n\t\t\t\t\t\t\tBX.Dom.style(this.getPreview(), {\n\t\t\t\t\t\t\t\topacity: .4\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t},\n\t\t\t\t\ttext: this.parent.getParam('MAIN_UI_GRID_IMAGE_EDITOR_BUTTON_REMOVE')\n\t\t\t\t});\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tgetFakeField: function()\n\t\t{\n\t\t\treturn this.cache.remember('deleted', function() {\n\t\t\t\treturn BX.create(\"input\", {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: \"main-grid-image-editor-fake-file-input\"\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttype: \"hidden\",\n\t\t\t\t\t\tname: this.options.NAME,\n\t\t\t\t\t\tvalue: 'null'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tgetLayout: function()\n\t\t{\n\t\t\treturn this.cache.remember('layout', function() {\n\t\t\t\treturn BX.create(\"div\", {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: \"main-grid-image-editor main-grid-editor\"\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tname: this.options.NAME\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tBX.create(\"div\", {\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\tclassName: \"main-grid-image-editor-left\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tthis.getPreview()\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tBX.create(\"div\", {\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\tclassName: \"main-grid-image-editor-right\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tthis.getUploadButton(),\n\t\t\t\t\t\t\t\tthis.getRemoveButton()\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.getFileInput()\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}.bind(this));\n\t\t}\n\t};\n})();","import {Event} from \"main.core\";\nimport {EventEmitter} from \"main.core.events\";\n\n;(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.InlineEditor\n\t * @param {BX.Main.grid} parent\n\t * @param {Object} types\n\t * @constructor\n\t */\n\tBX.Grid.InlineEditor = function(parent, types)\n\t{\n\t\tthis.parent = null;\n\t\tthis.types = null;\n\t\tthis.isDropdownChangeEventSubscribed = false;\n\t\tthis.init(parent, types);\n\t};\n\n\tBX.Grid.InlineEditor.prototype = {\n\t\tinit: function(parent, types)\n\t\t{\n\t\t\tthis.parent = parent;\n\n\t\t\ttry {\n\t\t\t\tthis.types = eval(types);\n\t\t\t} catch (err) {\n\t\t\t\tthis.types = null;\n\t\t\t}\n\t\t},\n\n\t\tcreateContainer: function()\n\t\t{\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: this.parent.settings.get('classEditorContainer')\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tcreateTextarea: function(editObject, height)\n\t\t{\n\t\t\tvar textarea = BX.create('textarea', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: [\n\t\t\t\t\t\tthis.parent.settings.get('classEditor'),\n\t\t\t\t\t\tthis.parent.settings.get('classEditorTextarea')\n\t\t\t\t\t].join(' ')\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: editObject.NAME,\n\t\t\t\t\tstyle: 'height:' + height + 'px'\n\t\t\t\t},\n\t\t\t\thtml: editObject.VALUE\n\t\t\t});\n\n\t\t\treturn textarea;\n\t\t},\n\n\t\tcreateInput: function(editObject)\n\t\t{\n\t\t\tvar className = this.parent.settings.get('classEditorText');\n\t\t\tvar attrs =\n\t\t\t\t{\n\t\t\t\t\tvalue: (editObject.VALUE !== undefined && editObject.VALUE !== null) ? BX.util.htmlspecialcharsback(editObject.VALUE) : '',\n\t\t\t\t\tname: (editObject.NAME !== undefined && editObject.NAME !== null) ? editObject.NAME : ''\n\t\t\t\t};\n\n\t\t\tif (editObject.TYPE === this.types.CHECKBOX)\n\t\t\t{\n\t\t\t\tclassName = this.parent.settings.get('classEditorCheckbox');\n\t\t\t\tattrs.type = 'checkbox';\n\t\t\t\tattrs.checked = (attrs.value == 'Y');\n\t\t\t}\n\n\t\t\tif (editObject.TYPE === this.types.DATE)\n\t\t\t{\n\t\t\t\tclassName = [className, this.parent.settings.get('classEditorDate')].join(' ');\n\t\t\t}\n\n\t\t\tif (editObject.TYPE === this.types.NUMBER)\n\t\t\t{\n\t\t\t\tclassName = [className, this.parent.settings.get('classEditorNumber')].join(' ');\n\t\t\t\tattrs.type = 'number';\n\t\t\t}\n\n\t\t\tif (editObject.TYPE === this.types.RANGE)\n\t\t\t{\n\t\t\t\tclassName = [className, this.parent.settings.get('classEditorRange')].join(' ');\n\t\t\t\tattrs.type = 'range';\n\n\t\t\t\tif (BX.type.isPlainObject(editObject.DATA))\n\t\t\t\t{\n\t\t\t\t\tattrs.min = editObject.DATA.MIN || '0';\n\t\t\t\t\tattrs.max = editObject.DATA.MAX || 99999;\n\t\t\t\t\tattrs.step = editObject.DATA.STEP || '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (BX.type.isNotEmptyString(editObject.PLACEHOLDER))\n\t\t\t{\n\t\t\t\tattrs.placeholder = BX.util.htmlspecialchars(editObject.PLACEHOLDER);\n\t\t\t}\n\n\t\t\tif (editObject.DISABLED)\n\t\t\t{\n\t\t\t\tattrs.disabled = true;\n\t\t\t}\n\n\t\t\tclassName = [this.parent.settings.get('classEditor'), className].join(' ');\n\n\t\t\treturn BX.create('input', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: className,\n\t\t\t\t\tid: editObject.NAME + '_control'\n\t\t\t\t},\n\t\t\t\tattrs: attrs\n\t\t\t});\n\t\t},\n\n\t\tcreateCustom: function(editObject)\n\t\t{\n\t\t\tvar className = this.parent.settings.get('classEditorCustom');\n\t\t\tclassName = [this.parent.settings.get('classEditor'), className].join(' ');\n\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: className\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\t'data-name': editObject.NAME\n\t\t\t\t},\n\t\t\t\thtml: editObject.VALUE || \"\"\n\t\t\t});\n\t\t},\n\n\t\tcreateMoney: function(editObject)\n\t\t{\n\t\t\tconst value = editObject.VALUE;\n\t\t\tconst fieldChildren = [];\n\n\t\t\tconst priceObject = value.PRICE || {};\n\t\t\tpriceObject.PLACEHOLDER = editObject.PLACEHOLDER || '';\n\t\t\tfieldChildren.push(this.createMoneyPrice(priceObject));\n\n\t\t\tif ((BX.type.isArray(editObject.CURRENCY_LIST) && editObject.CURRENCY_LIST.length > 0))\n\t\t\t{\n\t\t\t\tconst currencyObject = value.CURRENCY || {};\n\t\t\t\tcurrencyObject.DATA = {\n\t\t\t\t\tITEMS: editObject.CURRENCY_LIST\n\t\t\t\t};\n\t\t\t\tcurrencyObject.HTML_ENTITY = editObject.HTML_ENTITY || false;\n\t\t\t\tfieldChildren.push(this.createMoneyCurrency(currencyObject));\n\t\t\t}\n\n\t\t\tif (BX.type.isNotEmptyObject(value.HIDDEN))\n\t\t\t{\n\t\t\t\tfor (let fieldName in value.HIDDEN)\n\t\t\t\t{\n\t\t\t\t\tif (value.HIDDEN.hasOwnProperty(fieldName) && BX.type.isNotEmptyString(fieldName))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst hidden = this.createInput({\n\t\t\t\t\t\t\tNAME: fieldName,\n\t\t\t\t\t\t\tVALUE: value['HIDDEN'][fieldName],\n\t\t\t\t\t\t\tTYPE: this.types.TEXT,\n\t\t\t\t\t\t});\n\t\t\t\t\t\thidden.type = 'hidden';\n\t\t\t\t\t\tfieldChildren.push(hidden);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet className = this.parent.settings.get('classEditorMoney');\n\t\t\tclassName = [this.parent.settings.get('classEditor'), className].join(' ');\n\t\t\tconst attrs = value.ATTRIBUTES || {};\n\t\t\tattrs['data-name'] = editObject.NAME;\n\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: className\n\t\t\t\t},\n\t\t\t\tattrs: attrs,\n\t\t\t\tchildren: fieldChildren,\n\t\t\t});\n\t\t},\n\n\t\tcreateMoneyPrice: function(priceObject)\n\t\t{\n\t\t\tpriceObject.TYPE = this.types.NUMBER;\n\n\t\t\tconst priceInput = this.createInput(priceObject);\n\t\t\tpriceInput.classList.add('main-grid-editor-money-price');\n\t\t\tEvent.bind(priceInput, 'change', (event) => {\n\t\t\t\tconst fieldNode = event.target.parentNode;\n\t\t\t\tconst currencyDropdown = fieldNode.querySelector('.main-grid-editor-money-currency');\n\t\t\t\tconst eventData = {\n\t\t\t\t\tfield: fieldNode,\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\tprice: event.target.value || '',\n\t\t\t\t\t\tcurrency: currencyDropdown.dataset.value || '',\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tEventEmitter.emit('Grid.MoneyField::change', eventData);\n\t\t\t});\n\n\t\t\treturn priceInput;\n\t\t},\n\n\t\tcreateMoneyCurrency: function(currencyObject)\n\t\t{\n\t\t\tconst currencyBlock = this.createDropdown(currencyObject);\n\t\t\tcurrencyBlock.dataset.menuOffsetLeft = 15;\n\t\t\tcurrencyBlock.dataset.menuMaxHeight = 200;\n\t\t\tcurrencyBlock.classList.add('main-grid-editor-money-currency');\n\t\t\tif (currencyObject.DISABLED === true)\n\t\t\t{\n\t\t\t\tcurrencyBlock.classList.remove('main-dropdown');\n\t\t\t\tcurrencyBlock.dataset.disabled = true;\n\t\t\t}\n\n\t\t\tif (!this.isDropdownChangeEventSubscribed)\n\t\t\t{\n\t\t\t\tthis.isDropdownChangeEventSubscribed = true;\n\t\t\t\tEventEmitter.subscribe('Dropdown::change', (event) => {\n\t\t\t\t\tconst [controlId] = event.getData();\n\t\t\t\t\tif (!BX.type.isNotEmptyString(controlId))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst dropdownObject = BX.Main.dropdownManager.getById(controlId);\n\t\t\t\t\tif (dropdownObject.dropdown && dropdownObject.dropdown.classList.contains('main-grid-editor-money-currency'))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst fieldNode = dropdownObject.dropdown.parentNode;\n\t\t\t\t\t\tconst priceField = fieldNode.querySelector('.main-grid-editor-money-price')\n\t\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\t\tfield: fieldNode,\n\t\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\t\tprice: priceField.value || '',\n\t\t\t\t\t\t\t\tcurrency: dropdownObject.dropdown.dataset.value || '',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tEventEmitter.emit('Grid.MoneyField::change', eventData);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn currencyBlock;\n\t\t},\n\n\t\tcreateOutput: function(editObject)\n\t\t{\n\t\t\treturn BX.create('output', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: this.parent.settings.get('classEditorOutput') || ''\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tfor: editObject.NAME + '_control'\n\t\t\t\t},\n\t\t\t\ttext: editObject.VALUE || ''\n\t\t\t});\n\t\t},\n\n\t\tgetDropdownValueItemByValue: function(items, value)\n\t\t{\n\t\t\tvar result = items.filter(function(current) {\n\t\t\t\treturn current.VALUE === value;\n\t\t\t});\n\n\t\t\treturn result.length > 0 ? result[0] : items[0];\n\t\t},\n\n\t\tcreateDropdown: function(editObject)\n\t\t{\n\t\t\tvar valueItem = this.getDropdownValueItemByValue(\n\t\t\t\teditObject.DATA.ITEMS,\n\t\t\t\teditObject.VALUE\n\t\t\t);\n\t\t\tvar isHtmlEntity = 'HTML_ENTITY' in editObject && editObject.HTML_ENTITY === true;\n\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: [\n\t\t\t\t\t\tthis.parent.settings.get('classEditor'),\n\t\t\t\t\t\t'main-dropdown main-grid-editor-dropdown'\n\t\t\t\t\t].join(' '),\n\t\t\t\t\tid: editObject.NAME + '_control'\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: editObject.NAME,\n\t\t\t\t\ttabindex: '0',\n\t\t\t\t\t'data-items': JSON.stringify(editObject.DATA.ITEMS),\n\t\t\t\t\t'data-value': valueItem.VALUE,\n\t\t\t\t\t'data-html-entity': editObject.HTML_ENTITY\n\t\t\t\t},\n\t\t\t\tchildren: [BX.create('span', {\n\t\t\t\t\tprops: {className: 'main-dropdown-inner'},\n\t\t\t\t\thtml: isHtmlEntity ? valueItem.NAME : null,\n\t\t\t\t\ttext: isHtmlEntity ? null : valueItem.NAME,\n\t\t\t\t})]\n\t\t\t});\n\n\t\t},\n\n\t\tcreateMultiselect: function(editObject)\n\t\t{\n\t\t\tconst selectedValues = [];\n\t\t\tconst squares = (() => {\n\t\t\t\tif (BX.Type.isArrayFilled(editObject.VALUE))\n\t\t\t\t{\n\t\t\t\t\treturn editObject.VALUE.map((value) => {\n\t\t\t\t\t\tconst item = this.getDropdownValueItemByValue(editObject.DATA.ITEMS, value);\n\t\t\t\t\t\tselectedValues.push(item);\n\t\t\t\t\t\tconst itemName = item.HTML ?? BX.util.htmlspecialchars(item.NAME);\n\t\t\t\t\t\tconst renderedItem = BX.Tag.render`\n\t\t\t\t\t\t\t<span class=\"main-ui-square\">\n\t\t\t\t\t\t\t\t<span class=\"main-ui-square-item\">${itemName}</span>\n\t\t\t\t\t\t\t\t<span class=\"main-ui-item-icon main-ui-square-delete\"></span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tBX.Dom.attr(renderedItem, 'data-item', item);\n\n\t\t\t\t\t\treturn renderedItem;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t})();\n\t\t\tconst layout = BX.Tag.render`\n\t\t\t\t<div \n\t\t\t\t\tclass=\"main-grid-editor main-ui-control main-ui-multi-select\"\n\t\t\t\t\tname=\"${BX.Text.encode(editObject.NAME)}\"\n\t\t\t\t\tid=\"${`${BX.Text.encode(editObject.NAME)}_control`}\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"main-ui-square-container\">${squares}</span>\n\t\t\t\t\t<span class=\"main-ui-hide main-ui-control-value-delete\">\n\t\t\t\t\t\t<span class=\"main-ui-control-value-delete-item\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"main-ui-square-search\">\n\t\t\t\t\t\t<input type=\"text\" class=\"main-ui-square-search-item\">\n\t\t\t\t\t</span>\t\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tBX.Dom.attr(\n\t\t\t\tlayout,\n\t\t\t\t{\n\t\t\t\t\t'data-params': {isMulti: true},\n\t\t\t\t\t'data-items': editObject.DATA.ITEMS,\n\t\t\t\t\t'data-value': selectedValues,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn layout;\n\t\t},\n\n\t\tvalidateEditObject: function(editObject)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.type.isPlainObject(editObject) &&\n\t\t\t\t('TYPE' in editObject) &&\n\t\t\t\t('NAME' in editObject) &&\n\t\t\t\t('VALUE' in editObject) &&\n\t\t\t\t(!('items' in editObject) || (BX.type.isArray(editObject.items) && editObject.items.length))\n\t\t\t);\n\t\t},\n\n\t\tinitCalendar: function(event)\n\t\t{\n\t\t\tBX.calendar({node: event.target, field: event.target});\n\t\t},\n\n\t\tbindOnRangeChange: function(control, output)\n\t\t{\n\t\t\tfunction bubble(control, output)\n\t\t\t{\n\t\t\t\tBX.html(output, control.value);\n\n\t\t\t\tvar value = parseFloat(control.value);\n\t\t\t\tvar max = parseFloat(control.getAttribute('max'));\n\t\t\t\tvar min = parseFloat(control.getAttribute('min'));\n\t\t\t\tvar thumbWidth = 16;\n\t\t\t\tvar range = (max - min);\n\t\t\t\tvar position = (((value - min) / range) * 100);\n\t\t\t\tvar positionOffset = (Math.round(thumbWidth * position / 100) - (thumbWidth / 2));\n\n\t\t\t\toutput.style.left = position + '%';\n\t\t\t\toutput.style.marginLeft = -positionOffset + 'px';\n\t\t\t}\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tbubble(control, output);\n\t\t\t}, 0);\n\n\t\t\tBX.bind(control, 'input', function() {\n\t\t\t\tbubble(control, output);\n\t\t\t});\n\t\t},\n\n\t\tcreateImageEditor: function(editObject)\n\t\t{\n\t\t\treturn (new BX.Grid.ImageField(this.parent, editObject)).getLayout();\n\t\t},\n\n\t\tgetEditor: function(editObject, height)\n\t\t{\n\t\t\tvar control, span;\n\t\t\tvar container = this.createContainer();\n\n\t\t\tif (this.validateEditObject(editObject))\n\t\t\t{\n\t\t\t\teditObject.VALUE = editObject.VALUE === null ? '' : editObject.VALUE;\n\n\t\t\t\tswitch (editObject.TYPE) {\n\t\t\t\t\tcase this.types.TEXT : {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', function(event) { event.stopPropagation(); });\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DATE : {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', this.initCalendar);\n\t\t\t\t\t\tBX.bind(control, 'click', function(event) { event.stopPropagation(); });\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.NUMBER : {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', function(event) { event.stopPropagation(); });\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.RANGE : {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tspan = this.createOutput(editObject);\n\t\t\t\t\t\tthis.bindOnRangeChange(control, span);\n\t\t\t\t\t\tBX.bind(control, 'click', function(event) { event.stopPropagation(); });\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.CHECKBOX : {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', function(event) { event.stopPropagation(); });\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.TEXTAREA : {\n\t\t\t\t\t\tcontrol = this.createTextarea(editObject, height);\n\t\t\t\t\t\tBX.bind(control, 'click', function(event) { event.stopPropagation(); });\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DROPDOWN : {\n\t\t\t\t\t\tcontrol = this.createDropdown(editObject);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.MULTISELECT : {\n\t\t\t\t\t\tcontrol = this.createMultiselect(editObject);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.IMAGE : {\n\t\t\t\t\t\tcontrol = this.createImageEditor(editObject);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.MONEY : {\n\t\t\t\t\t\tcontrol = this.createMoney(editObject);\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.CUSTOM : {\n\t\t\t\t\t\tcontrol = this.createCustom(editObject);\n\n\t\t\t\t\t\trequestAnimationFrame(function() {\n\t\t\t\t\t\t\tconst html = editObject.HTML || editObject.VALUE || null;\n\n\t\t\t\t\t\t\tif (html)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst res = BX.processHTML(html);\n\n\t\t\t\t\t\t\t\tres.SCRIPT.forEach(function(item) {\n\t\t\t\t\t\t\t\t\tif (item.isInternal && item.JS)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.evalGlobal(item.JS);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tBX.bind(control, 'click', function(event) { event.stopPropagation(); });\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault : {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(span))\n\t\t\t{\n\t\t\t\tcontainer.appendChild(span);\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(control))\n\t\t\t{\n\t\t\t\tcontainer.appendChild(control);\n\t\t\t}\n\n\t\t\treturn container;\n\t\t},\n\n\t\t_onControlKeydown: function(event)\n\t\t{\n\t\t\tif (event.code === 'Enter')\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tvar saveButton = BX.Grid.Utils.getBySelector(this.parent.getContainer(), '#grid_save_button > button', true);\n\n\t\t\t\tif (saveButton)\n\t\t\t\t{\n\t\t\t\t\tBX.fireEvent(saveButton, 'click');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Loader = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.container = null;\n\t\tthis.windowHeight = null;\n\t\tthis.tbodyPos = null;\n\t\tthis.headerPos = null;\n\t\tthis.lastPosTop = null;\n\t\tthis.lastBottomPos = null;\n\t\tthis.table = null;\n\t\tthis.loader = null;\n\t\tthis.adjustLoaderOffset = this.adjustLoaderOffset.bind(this);\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Loader.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.table = this.parent.getTable();\n\t\t\tthis.loader = new BX.Loader({\n\t\t\t\ttarget: this.getContainer()\n\t\t\t});\n\t\t},\n\n\t\tadjustLoaderOffset: function()\n\t\t{\n\t\t\tthis.windowHeight = BX.height(window);\n\t\t\tthis.tbodyPos = BX.pos(this.table.tBodies[0]);\n\t\t\tthis.headerPos = BX.pos(this.table.tHead);\n\n\t\t\tvar scrollY = window.scrollY;\n\n\t\t\tif (this.parent.isIE())\n\t\t\t{\n\t\t\t\tscrollY = document.documentElement.scrollTop;\n\t\t\t}\n\n\t\t\tvar bottomPos = (scrollY + this.windowHeight) - this.tbodyPos.top;\n\t\t\tvar posTop = scrollY - this.tbodyPos.top;\n\n\t\t\tif (bottomPos > (this.tbodyPos.bottom - this.tbodyPos.top))\n\t\t\t{\n\t\t\t\tbottomPos = this.tbodyPos.bottom - this.tbodyPos.top;\n\t\t\t}\n\n\t\t\tif (posTop < this.headerPos.height)\n\t\t\t{\n\t\t\t\tposTop = this.headerPos.height;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tbottomPos -= posTop;\n\t\t\t\tbottomPos += this.headerPos.height;\n\t\t\t}\n\n\t\t\trequestAnimationFrame(function() {\n\t\t\t\tif (posTop !== this.lastPosTop)\n\t\t\t\t{\n\t\t\t\t\tthis.getContainer().style.transform = 'translate3d(0px, ' + posTop + 'px, 0)';\n\t\t\t\t}\n\n\t\t\t\tif (bottomPos !== this.lastBottomPos)\n\t\t\t\t{\n\t\t\t\t\tthis.getContainer().style.height = bottomPos + 'px';\n\t\t\t\t}\n\n\t\t\t\tthis.lastPosTop = posTop;\n\t\t\t\tthis.lastBottomPos = bottomPos;\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tgetContainer: function()\n\t\t{\n\t\t\tif (!this.container)\n\t\t\t{\n\t\t\t\tthis.container = BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classLoader'), true);\n\t\t\t}\n\n\t\t\treturn this.container;\n\t\t},\n\n\t\tshow: function()\n\t\t{\n\t\t\tif (!this.loader.isShown())\n\t\t\t{\n\t\t\t\tthis.adjustLoaderOffset();\n\t\t\t\tthis.getContainer().style.display = \"block\";\n\t\t\t\tthis.getContainer().style.opacity = \"1\";\n\t\t\t\tthis.getContainer().style.visibility = \"visible\";\n\n\t\t\t\tvar rowsCount = this.parent.getRows().getCountDisplayed();\n\n\t\t\t\tif (rowsCount > 0 && rowsCount <= 2)\n\t\t\t\t{\n\t\t\t\t\tthis.loader.setOptions({size: 60});\n\t\t\t\t\tthis.loader.show();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.loader.setOptions({size: 110});\n\t\t\t\t\tthis.loader.show();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thide: function()\n\t\t{\n\t\t\tif (this.loader.isShown())\n\t\t\t{\n\t\t\t\tthis.adjustLoaderOffset();\n\t\t\t\tthis.loader.hide().then(function() {\n\t\t\t\t\tthis.getContainer().style.display = \"none\";\n\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\t/**\n\t * Works with grid instances\n\t * @type {{data: Array, push: BX.Main.gridManager.push, getById: BX.Main.gridManager.getById}}\n\t */\n\n\tif (BX.Main.gridManager)\n\t{\n\t\treturn;\n\t}\n\n\tBX.Main.gridManager = {\n\t\tdata: [],\n\n\t\tpush: function(id, instance)\n\t\t{\n\t\t\tif (BX.type.isNotEmptyString(id) && instance)\n\t\t\t{\n\t\t\t\tvar object = {\n\t\t\t\t\tid: id,\n\t\t\t\t\tinstance: instance,\n\t\t\t\t\told: null\n\t\t\t\t};\n\n\t\t\t\tif (this.getById(id) === null)\n\t\t\t\t{\n\t\t\t\t\tthis.data.push(object);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.data[0] = object;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetById: function(id)\n\t\t{\n\t\t\tvar result = this.data.filter(function(current) {\n\t\t\t\treturn (current.id === id) || (current.id.replace('main_grid_', '') === id);\n\t\t\t});\n\n\t\t\treturn result.length === 1 ? result[0] : null;\n\t\t},\n\n\t\tgetInstanceById: function(id)\n\t\t{\n\t\t\tvar result = this.getById(id);\n\t\t\treturn BX.type.isPlainObject(result) ? result[\"instance\"] : null;\n\t\t},\n\n\t\treload: function(id, url)\n\t\t{\n\t\t\tvar instance = this.getInstanceById(id);\n\t\t\tif(instance)\n\t\t\t{\n\t\t\t\tinstance.reload(url);\n\t\t\t}\n\t\t},\n\n\t\tgetDataIndex: function(id)\n\t\t{\n\t\t\tvar result = null;\n\t\t\tthis.data.forEach(function(item, index) {\n\t\t\t\tif (item.id === id)\n\t\t\t\t{\n\t\t\t\t\tresult = index;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\tdestroy: function(id)\n\t\t{\n\t\t\tif (BX.type.isNotEmptyString(id))\n\t\t\t{\n\t\t\t\tvar grid = this.getInstanceById(id);\n\n\t\t\t\tif (grid instanceof BX.Main.grid)\n\t\t\t\t{\n\t\t\t\t\tgrid.destroy();\n\t\t\t\t\tvar index = this.getDataIndex(id);\n\n\t\t\t\t\tif (index !== null)\n\t\t\t\t\t{\n\t\t\t\t\t\tdelete this.data[index];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * Works with message\n\t * @param {BX.Main.grid} parent\n\t * @param {object} types - Types of message\n\t * @constructor\n\t */\n\tBX.Grid.Message = function(parent, types)\n\t{\n\t\tthis.parent = null;\n\t\tthis.types = null;\n\t\tthis.messages = null;\n\t\tthis.popup = null;\n\t\tthis.init(parent, types);\n\t};\n\n\tBX.Grid.Message.prototype = {\n\n\t\t/**\n\t\t * @private\n\t\t * @param {BX.Main.grid} parent\n\t\t * @param {object} types\n\t\t */\n\t\tinit: function(parent, types)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.types = types;\n\t\t\tthis.show();\n\t\t\tBX.addCustomEvent('BX.Main.grid:paramsUpdated', BX.proxy(this.onUpdated, this));\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonUpdated: function()\n\t\t{\n\t\t\tthis.show();\n\t\t},\n\n\n\t\t/**\n\t\t * Gets data for messages\n\t\t * @return {object[]}\n\t\t */\n\t\tgetData: function()\n\t\t{\n\t\t\treturn this.parent.arParams.MESSAGES;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks is need show message\n\t\t * @return {boolean}\n\t\t */\n\t\tisNeedShow: function()\n\t\t{\n\t\t\treturn this.getData().length > 0;\n\t\t},\n\n\n\t\t/**\n\t\t * Show message\n\t\t */\n\t\tshow: function()\n\t\t{\n\t\t\tif (this.isNeedShow())\n\t\t\t{\n\t\t\t\tthis.getPopup().setContent(this.getContent());\n\t\t\t\tthis.getPopup().show();\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets content for message popup\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetContent: function()\n\t\t{\n\t\t\tvar data = this.getData();\n\t\t\tvar content = null;\n\n\t\t\tif (BX.type.isArray(data) && data.length)\n\t\t\t{\n\t\t\t\tvar messagesDecl = {\n\t\t\t\t\tblock: 'main-grid-messages',\n\t\t\t\t\tcontent: []\n\t\t\t\t};\n\n\t\t\t\tdata.forEach(function(message) {\n\t\t\t\t\tvar messageDecl = {\n\t\t\t\t\t\tblock: 'main-grid-message',\n\t\t\t\t\t\tmix: 'main-grid-message-' + message.TYPE.toLowerCase(),\n\t\t\t\t\t\tcontent: []\n\t\t\t\t\t};\n\n\t\t\t\t\tif (BX.type.isNotEmptyString(message.TITLE))\n\t\t\t\t\t{\n\t\t\t\t\t\tmessageDecl.content.push({\n\t\t\t\t\t\t\tblock: 'main-grid-message-title',\n\t\t\t\t\t\t\tcontent: BX.create(\"div\", {html: message.TITLE}).innerText\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (BX.type.isNotEmptyString(message.TEXT))\n\t\t\t\t\t{\n\t\t\t\t\t\tmessageDecl.content.push({\n\t\t\t\t\t\t\tblock: 'main-grid-message-text',\n\t\t\t\t\t\t\tcontent: BX.create(\"div\", {html: message.TEXT}).innerText\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tmessagesDecl.content.push(messageDecl);\n\t\t\t\t});\n\n\t\t\t\tcontent = BX.decl(messagesDecl);\n\t\t\t}\n\n\t\t\treturn content;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets popup of message\n\t\t * @return {BX.PopupWindow}\n\t\t */\n\t\tgetPopup: function()\n\t\t{\n\t\t\tif (this.popup === null)\n\t\t\t{\n\t\t\t\tthis.popup = new BX.PopupWindow(\n\t\t\t\t\tthis.getPopupId(),\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tautoHide: true,\n\t\t\t\t\t\toverlay: 0.3,\n\t\t\t\t\t\twidth: 400,\n\t\t\t\t\t\tcontentNoPaddings: true,\n\t\t\t\t\t\tcloseByEsc: true,\n\t\t\t\t\t\tbuttons: [\n\t\t\t\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\t\t\t\ttext: this.parent.getParam('CLOSE'),\n\t\t\t\t\t\t\t\tclassName: 'webform-small-button-blue webform-small-button',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: function()\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.popup;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets popup id\n\t\t * @return {string}\n\t\t */\n\t\tgetPopupId: function()\n\t\t{\n\t\t\treturn this.parent.getContainerId() + '-main-grid-message';\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.observer = {\n\t\thandlers: [],\n\t\tadd: function(node, event, handler, context)\n\t\t{\n\t\t\tBX.bind(node, event, context ? BX.proxy(handler, context) : handler);\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Pagesize = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Pagesize.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tBX.addCustomEvent('Dropdown::change', BX.proxy(this.onChange, this));\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tBX.removeCustomEvent('Dropdown::change', BX.proxy(this.onChange, this));\n\t\t},\n\n\t\tonChange: function(id, event, item, dataValue, value)\n\t\t{\n\t\t\tvar self = this;\n\n\t\t\tif (id === this.parent.getContainerId() + '_' + this.parent.settings.get('pageSizeId'))\n\t\t\t{\n\t\t\t\tif (value >= 0)\n\t\t\t\t{\n\t\t\t\t\tthis.parent.tableFade();\n\t\t\t\t\tthis.parent.getUserOptions().setPageSize(value, function() {\n\t\t\t\t\t\tself.parent.reloadTable();\n\t\t\t\t\t\tBX.onCustomEvent(self.parent.getContainer(), 'Grid::pageSizeChanged', [self.parent]);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.Pagination\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Pagination = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.container = null;\n\t\tthis.links = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Pagination.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t},\n\n\t\tgetParent: function()\n\t\t{\n\t\t\treturn this.parent;\n\t\t},\n\n\t\tgetContainer: function()\n\t\t{\n\t\t\tif (!this.container)\n\t\t\t{\n\t\t\t\tthis.container = BX.Grid.Utils.getByClass(this.getParent().getContainer(), this.getParent().settings.get('classPagination'), true);\n\t\t\t}\n\n\t\t\treturn this.container;\n\t\t},\n\n\t\tgetLinks: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tvar result = BX.Grid.Utils.getByTag(this.getContainer(), 'a');\n\n\t\t\tthis.links = [];\n\n\t\t\tif (result)\n\t\t\t{\n\t\t\t\tthis.links = result.map(function(current) {\n\t\t\t\t\treturn new BX.Grid.Element(current, self.getParent());\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn this.links;\n\t\t},\n\n\t\tgetLink: function(node)\n\t\t{\n\t\t\tvar result = null;\n\t\t\tvar filter;\n\n\t\t\tif (BX.type.isDomNode(node))\n\t\t\t{\n\t\t\t\tfilter = this.getLinks().filter(function(current) {\n\t\t\t\t\treturn node === current.getNode();\n\t\t\t\t});\n\n\t\t\t\tif (filter.length)\n\t\t\t\t{\n\t\t\t\t\tresult = filter[0];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * BX.Grid.PinHeader\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.PinHeader = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.table = null;\n\t\tthis.header = null;\n\t\tthis.container = null;\n\t\tthis.parentNodeResizeObserver = null;\n\n\t\tvar adminPanel = this.getAdminPanel();\n\n\t\tif (adminPanel)\n\t\t{\n\t\t\tthis.mo = new MutationObserver(this.onAdminPanelMutation.bind(this));\n\t\t\tthis.mo.observe(document.documentElement, {attributes: true});\n\t\t}\n\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.PinHeader.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.rect = BX.pos(this.parent.getHead());\n\t\t\tthis.gridRect = BX.pos(this.parent.getTable());\n\n\t\t\tvar workArea = BX.Grid.Utils.getBySelector(document, '#workarea-content', true);\n\n\t\t\tif (!workArea)\n\t\t\t{\n\t\t\t\tworkArea = this.parent.getContainer().parentNode;\n\t\t\t\tworkArea = !!workArea ? workArea.parentNode : workArea;\n\t\t\t}\n\n\t\t\tif (!!workArea)\n\t\t\t{\n\t\t\t\tthis.parentNodeResizeObserver = new BX.ResizeObserver(BX.proxy(this.refreshRect, this));\n\t\t\t\tthis.parentNodeResizeObserver.observe(workArea);\n\t\t\t}\n\n\t\t\tthis.create(true);\n\n\t\t\tdocument.addEventListener('scroll', BX.proxy(this._onScroll, this), BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\tdocument.addEventListener('resize', BX.proxy(this._onResize, this), BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\tBX.addCustomEvent('Grid::updated', BX.proxy(this._onGridUpdate, this));\n\t\t\tBX.addCustomEvent('Grid::resize', BX.proxy(this._onGridUpdate, this));\n\t\t\tBX.bind(window, 'resize', BX.proxy(this._onGridUpdate, this));\n\t\t},\n\n\t\trefreshRect: function()\n\t\t{\n\t\t\tthis.gridRect = BX.pos(this.parent.getTable());\n\t\t\tthis.rect = BX.pos(this.parent.getHead());\n\t\t},\n\n\t\t_onGridUpdate: function()\n\t\t{\n\t\t\tvar isPinned = this.isPinned();\n\n\t\t\tBX.remove(this.getContainer());\n\t\t\tthis.create();\n\n\t\t\tisPinned && this.pin();\n\n\t\t\tthis.table = null;\n\t\t\tthis.refreshRect();\n\n\t\t\tthis._onScroll();\n\n\t\t\tBX.onCustomEvent(window, 'Grid::headerUpdated', []);\n\t\t},\n\n\t\tcreate: function(async)\n\t\t{\n\t\t\tvar cells = BX.Grid.Utils.getByTag(this.parent.getHead(), 'th');\n\t\t\tvar cloneThead = BX.clone(this.parent.getHead());\n\t\t\tvar cloneCells = BX.Grid.Utils.getByTag(cloneThead, 'th');\n\n\t\t\tvar resizeCloneCells = function ()\n\t\t\t{\n\t\t\t\tcells.forEach(\n\t\t\t\t\tfunction (cell, index)\n\t\t\t\t\t{\n\t\t\t\t\t\tvar width = BX.width(cell);\n\n\t\t\t\t\t\tif (index > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth -= parseInt(BX.style(cell, 'border-left-width'));\n\t\t\t\t\t\t\twidth -= parseInt(BX.style(cell, 'border-right-width'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcloneCells[index].firstElementChild && (cloneCells[index].firstElementChild.style.width = width + 'px');\n\n\t\t\t\t\t\tif (cells.length - 1 > index)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcloneCells[index].style.width = width + 'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t};\n\n\t\t\tasync ? setTimeout(resizeCloneCells, 0) : resizeCloneCells();\n\n\t\t\tthis.container = BX.decl({\n\t\t\t\tblock: 'main-grid-fixed-bar',\n\t\t\t\tmix: 'main-grid-fixed-top',\n\t\t\t\tattrs: {\n\t\t\t\t\tstyle: 'width: ' + BX.width(this.parent.getContainer()) + 'px'\n\t\t\t\t},\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-grid-table',\n\t\t\t\t\ttag: 'table',\n\t\t\t\t\tcontent: cloneThead\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.container.hidden = true;\n\n\t\t\tthis.parent.getWrapper().appendChild(this.container);\n\t\t},\n\n\t\tgetContainer: function()\n\t\t{\n\t\t\treturn this.container;\n\t\t},\n\n\t\tgetFixedTable: function()\n\t\t{\n\t\t\treturn this.table || (this.table = BX.Grid.Utils.getByTag(this.getContainer(), 'table', true));\n\t\t},\n\n\t\tgetAdminPanel: function()\n\t\t{\n\t\t\tif (!this.adminPanel)\n\t\t\t{\n\t\t\t\tthis.adminPanel = document.querySelector('.adm-header');\n\t\t\t}\n\n\t\t\treturn this.adminPanel;\n\t\t},\n\n\t\tisAdminPanelPinned: function()\n\t\t{\n\t\t\treturn BX.hasClass(document.documentElement, 'adm-header-fixed');\n\t\t},\n\n\t\tgetPinOffset: function()\n\t\t{\n\t\t\tvar adminPanel = this.getAdminPanel();\n\n\t\t\tif (adminPanel && this.isAdminPanelPinned())\n\t\t\t{\n\t\t\t\treturn BX.Text.toNumber(BX.style(adminPanel, 'height'));\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t},\n\n\t\tpin: function()\n\t\t{\n\t\t\tvar container = this.getContainer();\n\n\t\t\tif (container)\n\t\t\t{\n\t\t\t\tcontainer.hidden = false;\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::headerPinned', []);\n\t\t},\n\n\t\tunpin: function()\n\t\t{\n\t\t\tvar container = this.getContainer();\n\n\t\t\tif (container)\n\t\t\t{\n\t\t\t\tcontainer.hidden = true;\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::headerUnpinned', []);\n\t\t},\n\n\t\tstopPin: function()\n\t\t{\n\t\t\tBX.Grid.Utils.styleForEach([this.getContainer()], {\n\t\t\t\t'position': 'absolute',\n\t\t\t\t'top': ((this.gridRect.bottom - this.rect.height - this.gridRect.top) + 'px'),\n\t\t\t\t'box-shadow': 'none'\n\t\t\t});\n\t\t},\n\n\t\tstartPin: function()\n\t\t{\n\t\t\tBX.Grid.Utils.styleForEach([this.getContainer()], {\n\t\t\t\t'position': 'fixed',\n\t\t\t\t'top': this.getPinOffset() + 'px',\n\t\t\t\t'box-shadow': ''\n\t\t\t});\n\t\t},\n\n\t\tisPinned: function()\n\t\t{\n\t\t\treturn !this.getContainer().hidden;\n\t\t},\n\n\t\t_onScroll: function()\n\t\t{\n\t\t\tvar scrollY = 0;\n\n\t\t\tif (this.scrollRect)\n\t\t\t{\n\t\t\t\tscrollY = this.scrollRect.scrollTop;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (document.scrollingElement)\n\t\t\t\t{\n\t\t\t\t\tthis.scrollRect = document.scrollingElement;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (document.documentElement.scrollTop > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.scrollRect = document.documentElement;\n\t\t\t\t\t}\n\t\t\t\t\telse if (document.body.scrollTop > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.scrollRect = document.body;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.gridRect.bottom > (scrollY + this.rect.height))\n\t\t\t{\n\t\t\t\tthis.startPin();\n\n\t\t\t\tvar offset = this.getPinOffset();\n\n\t\t\t\tif ((this.rect.top - offset) <= scrollY)\n\t\t\t\t{\n\t\t\t\t\t!this.isPinned() && this.pin();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.isPinned() && this.unpin();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stopPin();\n\t\t\t}\n\t\t},\n\n\t\tonAdminPanelMutation: function()\n\t\t{\n\t\t\tthis._onScroll();\n\t\t},\n\n\t\t_onResize: function()\n\t\t{\n\t\t\tthis.rect = BX.pos(this.parent.getHead());\n\t\t}\n\t}\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.PinPanel\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.PinPanel = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.panel = null;\n\t\tthis.isSelected = null;\n\t\tthis.offset = null;\n\t\tthis.animationDuration = null;\n\t\tthis.pinned = false;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.PinPanel.prototype = {\n\t\tinit: function(parent) {\n\t\t\tthis.parent = parent;\n\t\t\tthis.offset = 10;\n\t\t\tthis.animationDuration = 200;\n\t\t\tthis.panel = this.getPanel();\n\t\t\tthis.bindOnRowsEvents();\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tthis.unbindOnRowsEvents();\n\t\t},\n\n\t\tbindOnRowsEvents: function()\n\t\t{\n\t\t\tBX.addCustomEvent('Grid::thereSelectedRows', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::allRowsSelected', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::noSelectedRows', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::allRowsUnselected', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::updated', BX.proxy(this._onNoSelectedRows, this));\n\t\t},\n\n\t\tunbindOnRowsEvents: function()\n\t\t{\n\t\t\tBX.removeCustomEvent('Grid::thereSelectedRows', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::allRowsSelected', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::noSelectedRows', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::allRowsUnselected', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::updated', BX.proxy(this._onNoSelectedRows, this));\n\t\t},\n\n\t\tbindOnWindowEvents: function()\n\t\t{\n\t\t\tBX.bind(window, 'resize', BX.proxy(this._onResize, this));\n\t\t\tdocument.addEventListener('scroll', BX.proxy(this._onScroll, this), BX.Grid.Utils.listenerParams({passive: true}));\n\t\t},\n\n\t\tunbindOnWindowEvents: function()\n\t\t{\n\t\t\tBX.unbind(window, 'resize', BX.proxy(this._onResize, this));\n\t\t\tdocument.removeEventListener('scroll', BX.proxy(this._onScroll, this), BX.Grid.Utils.listenerParams({passive: true}));\n\t\t},\n\n\t\tgetPanel: function() {\n\t\t\tthis.panel = this.panel || this.parent.getActionsPanel().getPanel();\n\t\t\treturn this.panel;\n\t\t},\n\n\t\tgetScrollBottom: function()\n\t\t{\n\t\t\treturn (BX.scrollTop(window) + this.getWindowHeight());\n\t\t},\n\n\t\tgetPanelRect: function()\n\t\t{\n\t\t\tif (!BX.type.isPlainObject(this.panelRect))\n\t\t\t{\n\t\t\t\tthis.panelRect = BX.pos(this.getPanel());\n\t\t\t}\n\n\t\t\treturn this.panelRect;\n\t\t},\n\n\t\tgetPanelPrevBottom: function()\n\t\t{\n\t\t\tvar prev = BX.previousSibling(this.getPanel());\n\t\t\treturn BX.pos(prev).bottom + parseFloat(BX.style(prev, 'margin-bottom'));\n\t\t},\n\n\t\tgetWindowHeight: function()\n\t\t{\n\t\t\tthis.windowHeight = this.windowHeight || BX.height(window);\n\t\t\treturn this.windowHeight;\n\t\t},\n\n\t\tpinPanel: function(withAnimation)\n\t\t{\n\t\t\tvar panel = this.getPanel();\n\t\t\tvar width = BX.width(this.getPanel().parentNode);\n\t\t\tvar height = BX.height(this.getPanel().parentNode);\n\t\t\tvar bodyRect = BX.pos(this.parent.getBody());\n\t\t\tvar offset = this.getStartDiffPanelPosition();\n\n\t\t\tpanel.parentNode.style.setProperty('height', height + 'px');\n\n\t\t\tpanel.style.setProperty('transform', 'translateY('+ offset + 'px)');\n\t\t\tpanel.classList.add('main-grid-fixed-bottom');\n\t\t\tpanel.style.setProperty('width', width + 'px');\n\t\t\tpanel.style.removeProperty('position');\n\t\t\tpanel.style.removeProperty('top');\n\n\t\t\trequestAnimationFrame(function() {\n\t\t\t\tif (withAnimation !== false)\n\t\t\t\t{\n\t\t\t\t\tpanel.style.setProperty('transition', 'transform 200ms ease');\n\t\t\t\t}\n\n\t\t\t\tpanel.style.setProperty('transform', 'translateY(0)');\n\t\t\t});\n\n\t\t\tif (this.isNeedPinAbsolute() && !this.absolutePin)\n\t\t\t{\n\t\t\t\tthis.absolutePin = true;\n\t\t\t\tpanel.style.removeProperty('transition');\n\t\t\t\tpanel.style.setProperty('position', 'absolute');\n\t\t\t\tpanel.style.setProperty('top', bodyRect.top + 'px');\n\t\t\t}\n\n\t\t\tif (!this.isNeedPinAbsolute() && this.absolutePin)\n\t\t\t{\n\t\t\t\tthis.absolutePin = false;\n\t\t\t}\n\n\t\t\tthis.adjustPanelPosition();\n\t\t\tthis.pinned = true;\n\t\t},\n\n\t\tunpinPanel: function(withAnimation)\n\t\t{\n\t\t\tvar panel = this.getPanel();\n\t\t\tvar panelRect = BX.pos(panel);\n\t\t\tvar parentRect = BX.pos(panel.parentNode);\n\t\t\tvar offset = Math.abs(panelRect.bottom - parentRect.bottom);\n\n\t\t\tif (withAnimation !== false)\n\t\t\t{\n\t\t\t\tpanel.style.setProperty('transition', 'transform 200ms ease');\n\t\t\t}\n\n\t\t\tvar translateOffset = offset < panelRect.height ? offset + 'px' : '100%';\n\t\t\tpanel.style.setProperty('transform', 'translateY('+translateOffset+')');\n\n\t\t\tvar delay = function(cb, delay)\n\t\t\t{\n\t\t\t\tif (withAnimation !== false)\n\t\t\t\t{\n\t\t\t\t\treturn setTimeout(cb, delay);\n\t\t\t\t}\n\n\t\t\t\tcb();\n\t\t\t};\n\n\t\t\tdelay(function() {\n\t\t\t\tpanel.parentNode.style.removeProperty('height');\n\t\t\t\tpanel.classList.remove('main-grid-fixed-bottom');\n\t\t\t\tpanel.style.removeProperty('transition');\n\t\t\t\tpanel.style.removeProperty('transform');\n\t\t\t\tpanel.style.removeProperty('width');\n\t\t\t\tpanel.style.removeProperty('position');\n\t\t\t\tpanel.style.removeProperty('top');\n\t\t\t}, withAnimation !== false ? 200 : 0);\n\n\t\t\tthis.pinned = false;\n\t\t},\n\n\t\tisSelectedRows: function()\n\t\t{\n\t\t\treturn this.isSelected;\n\t\t},\n\n\t\tisNeedPinAbsolute: function()\n\t\t{\n\t\t\treturn (\n\t\t\t\t((BX.pos(this.parent.getBody()).top + this.getPanelRect().height) >= this.getScrollBottom())\n\t\t\t);\n\t\t},\n\n\t\tisNeedPin: function()\n\t\t{\n\t\t\treturn (this.getScrollBottom() - this.getPanelRect().height) <= this.getPanelPrevBottom();\n\t\t},\n\n\t\tadjustPanelPosition: function()\n\t\t{\n\t\t\tvar scrollX = window.pageXOffset;\n\t\t\tthis.lastScrollX = this.lastScrollX !== null ? this.lastScrollX : scrollX;\n\n\t\t\tBX.Grid.Utils.requestAnimationFrame(BX.proxy(function() {\n\t\t\t\tif (scrollX !== this.lastScrollX)\n\t\t\t\t{\n\t\t\t\t\tvar panelPos = this.getPanelRect();\n\t\t\t\t\tBX.style(this.getPanel(), 'left', panelPos.left - scrollX + 'px');\n\t\t\t\t}\n\t\t\t}, this));\n\n\t\t\tthis.lastScrollX = scrollX;\n\t\t},\n\n\t\tpinController: function(withAnimation)\n\t\t{\n\t\t\tif (this.getPanel())\n\t\t\t{\n\t\t\t\tif (!this.isPinned() && this.isNeedPin() && this.isSelectedRows())\n\t\t\t\t{\n\t\t\t\t\treturn this.pinPanel(withAnimation);\n\t\t\t\t}\n\n\t\t\t\tif (this.isPinned() && !this.isNeedPin() || !this.isSelectedRows())\n\t\t\t\t{\n\t\t\t\t\tthis.unpinPanel(withAnimation);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetEndDiffPanelPosition: function()\n\t\t{\n\t\t\tvar panelPos = BX.pos(this.getPanel());\n\t\t\tvar prevPanelPos = BX.pos(BX.previousSibling(this.getPanel()));\n\t\t\tvar scrollTop = BX.scrollTop(window);\n\t\t\tvar scrollBottom = scrollTop + BX.height(window);\n\t\t\tvar diff = panelPos.height + this.offset;\n\t\t\tvar prevPanelBottom = (prevPanelPos.bottom + parseFloat(BX.style(this.getPanel(), 'margin-top')));\n\n\t\t\tif (prevPanelBottom < scrollBottom && (prevPanelBottom + panelPos.height) > scrollBottom)\n\t\t\t{\n\t\t\t\tdiff = Math.abs(scrollBottom - (prevPanelBottom + panelPos.height));\n\t\t\t}\n\n\t\t\treturn diff;\n\t\t},\n\n\t\tgetStartDiffPanelPosition: function()\n\t\t{\n\t\t\tvar panelPos = BX.pos(this.getPanel());\n\t\t\tvar scrollTop = BX.scrollTop(window);\n\t\t\tvar scrollBottom = scrollTop + BX.height(window);\n\t\t\tvar diff = panelPos.height;\n\n\t\t\tif (panelPos.bottom > scrollBottom && panelPos.top < scrollBottom)\n\t\t\t{\n\t\t\t\tdiff = panelPos.bottom - scrollBottom;\n\t\t\t}\n\n\t\t\treturn diff;\n\t\t},\n\n\t\tisPinned: function()\n\t\t{\n\t\t\treturn this.pinned;\n\t\t},\n\n\t\t_onThereSelectedRows: function()\n\t\t{\n\t\t\tthis.bindOnWindowEvents();\n\t\t\tthis.isSelected = true;\n\n\t\t\tif (this.lastIsSelected)\n\t\t\t{\n\t\t\t\tthis.pinController();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.lastIsSelected = true;\n\t\t\t\tthis.pinController();\n\t\t\t}\n\n\t\t},\n\n\t\t_onNoSelectedRows: function()\n\t\t{\n\t\t\tthis.unbindOnWindowEvents();\n\t\t\tthis.isSelected = false;\n\t\t\tthis.pinController();\n\t\t\tthis.lastIsSelected = false;\n\t\t},\n\n\t\t_onScroll: function()\n\t\t{\n\t\t\tthis.pinController(false);\n\t\t},\n\n\t\t_onResize: function()\n\t\t{\n\t\t\tthis.windowHeight = BX.height(window);\n\t\t\tthis.panel = this.parent.getActionsPanel().getPanel();\n\t\t\tthis.panelRect = this.getPanel().getBoundingClientRect();\n\t\t\tthis.pinController(false);\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Resize = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.lastRegisterButtons = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Resize.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this.registerTableButtons, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this.registerPinnedTableButtons, this));\n\n\t\t\tthis.registerTableButtons();\n\t\t\tthis.registerPinnedTableButtons();\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this.registerTableButtons, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this.registerPinnedTableButtons, this));\n\t\t\tBX.type.isArray(this.lastRegisterButtons) && this.lastRegisterButtons.forEach(jsDD.unregisterObject);\n\t\t\t(this.getButtons() || []).forEach(jsDD.unregisterObject);\n\t\t},\n\n\t\tregisterTableButtons: function()\n\t\t{\n\t\t\t(this.getButtons() || []).forEach(this.register, this);\n\t\t\tthis.registerPinnedTableButtons();\n\t\t},\n\n\t\tregister: function(item)\n\t\t{\n\t\t\tif (BX.type.isDomNode(item))\n\t\t\t{\n\t\t\t\titem.onbxdragstart = BX.delegate(this._onDragStart, this);\n\t\t\t\titem.onbxdragstop = BX.delegate(this._onDragEnd, this);\n\t\t\t\titem.onbxdrag = BX.delegate(this._onDrag, this);\n\t\t\t\tjsDD.registerObject(item);\n\t\t\t}\n\t\t},\n\n\t\tregisterPinnedTableButtons: function()\n\t\t{\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tvar pinnedTableButtons = this.getPinnedTableButtons();\n\n\t\t\t\tif (BX.type.isArray(this.lastRegisterButtons) && this.lastRegisterButtons.length)\n\t\t\t\t{\n\t\t\t\t\tthis.lastRegisterButtons.forEach(jsDD.unregisterObject);\n\t\t\t\t}\n\n\t\t\t\tthis.lastRegisterButtons = pinnedTableButtons;\n\n\t\t\t\t(this.getPinnedTableButtons() || []).forEach(this.register, this);\n\t\t\t}\n\t\t},\n\n\t\tgetButtons: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.parent.getRows().getHeadFirstChild().getNode(), this.parent.settings.get('classResizeButton'));\n\t\t},\n\n\t\tgetPinnedTableButtons: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.parent.getPinHeader().getFixedTable(), this.parent.settings.get('classResizeButton'));\n\t\t},\n\n\t\t_onDragStart: function()\n\t\t{\n\t\t\tvar cell = BX.findParent(jsDD.current_node, {className: this.parent.settings.get('classHeadCell')});\n\t\t\tvar cells = this.parent.getRows().getHeadFirstChild().getCells();\n\t\t\tvar cellsKeys = Object.keys(cells);\n\t\t\tvar cellContainer;\n\n\t\t\tthis.__overlay = BX.create('div', {props: {className: 'main-grid-cell-overlay'}});\n\t\t\tBX.append(this.__overlay, cell);\n\t\t\tthis.__resizeCell = cell.cellIndex;\n\n\t\t\tcellsKeys.forEach(function(key) {\n\t\t\t\tif (!BX.hasClass(cells[key], 'main-grid-special-empty'))\n\t\t\t\t{\n\t\t\t\t\tvar width = BX.width(cells[key]);\n\n\t\t\t\t\tif (key > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\twidth -= parseInt(BX.style(cells[key], 'border-left-width'));\n\t\t\t\t\t\twidth -= parseInt(BX.style(cells[key], 'border-right-width'));\n\t\t\t\t\t}\n\n\t\t\t\t\tBX.width(cells[key], width);\n\t\t\t\t\tcellContainer = BX.firstChild(cells[key]);\n\t\t\t\t\tBX.width(cellContainer, width);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_onDrag: function(x)\n\t\t{\n\t\t\tvar table = this.parent.getTable();\n\t\t\tvar fixedTable = this.parent.getParam('ALLOW_PIN_HEADER') ? this.parent.getPinHeader().getFixedTable() : null;\n\t\t\tvar cell = table.rows[0].cells[this.__resizeCell];\n\t\t\tvar fixedCell, fixedCellContainer;\n\n\t\t\tvar cpos = BX.pos(cell);\n\t\t\tvar cellAttrWidth = parseFloat(cell.style.width);\n\t\t\tvar sX;\n\n\t\t\tx -= cpos.left;\n\t\t\tsX = x;\n\n\t\t\tif (cpos.width > cellAttrWidth)\n\t\t\t{\n\t\t\t\tx = cpos.width;\n\t\t\t}\n\n\t\t\tx = sX > x ? sX : x;\n\n\t\t\tx = Math.max(x, 80);\n\n\t\t\tif (x !== cpos.width)\n\t\t\t{\n\t\t\t\tvar fixedCells = this.parent.getAllRows()[0]\n\t\t\t\t\t.querySelectorAll('.main-grid-fixed-column').length;\n\t\t\t\tvar column = this.parent.getColumnByIndex(this.__resizeCell - fixedCells);\n\n\t\t\t\t// Resize current column\n\t\t\t\tcolumn.forEach(function(item) {\n\t\t\t\t\titem.style.width = x+'px';\n\t\t\t\t\titem.style.minWidth = x+'px';\n\t\t\t\t\titem.style.maxWidth = x+'px';\n\t\t\t\t\tBX.Dom.style(item.firstElementChild, 'width', x+'px');\n\t\t\t\t});\n\n\t\t\t\t// Resize false columns\n\t\t\t\tif (column[0].classList.contains('main-grid-fixed-column'))\n\t\t\t\t{\n\t\t\t\t\tcolumn = this.parent.getColumnByIndex(this.__resizeCell - fixedCells + 1);\n\n\t\t\t\t\tcolumn.forEach(function(item) {\n\t\t\t\t\t\titem.style.width = x+'px';\n\t\t\t\t\t\titem.style.minWidth = x+'px';\n\t\t\t\t\t\titem.style.maxWidth = x+'px';\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.parent.adjustFixedColumnsPosition();\n\t\t\t\tthis.parent.adjustFadePosition(this.parent.getFadeOffset());\n\n\t\t\t\tif (BX.type.isDomNode(fixedTable) && BX.type.isDomNode(fixedTable.rows[0]))\n\t\t\t\t{\n\t\t\t\t\tfixedCell = fixedTable.rows[0].cells[this.__resizeCell];\n\t\t\t\t\tfixedCellContainer = BX.firstChild(fixedCell);\n\t\t\t\t\tfixedCellContainer.style.width = x+'px';\n\t\t\t\t\tfixedCellContainer.style.minWidth = x+'px';\n\t\t\t\t\tfixedCell.style.width = x+'px';\n\t\t\t\t\tfixedCell.style.minWidth = x+'px';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::columnResize', []);\n\t\t},\n\n\t\t_onDragEnd: function()\n\t\t{\n\t\t\tthis.saveSizes();\n\t\t\tconst cell = BX.findParent(jsDD.current_node, {className: this.parent.settings.get('classHeadCell')});\n\t\t\tconst overlay = cell.querySelector('.main-grid-cell-overlay');\n\t\t\tif (overlay)\n\t\t\t{\n\t\t\t\tBX.Dom.remove(overlay);\n\t\t\t}\n\t\t},\n\n\t\tgetColumnSizes: function()\n\t\t{\n\t\t\tvar cells = this.parent.getRows().getHeadFirstChild().getCells();\n\t\t\tvar columns = {};\n\t\t\tvar name;\n\n\t\t\t[].forEach.call(cells, function(current) {\n\t\t\t\tname = BX.data(current, 'name');\n\n\t\t\t\tif (BX.type.isNotEmptyString(name))\n\t\t\t\t{\n\t\t\t\t\tcolumns[name] = BX.width(current);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\treturn columns;\n\t\t},\n\n\t\tsaveSizes: function()\n\t\t{\n\t\t\tthis.parent.getUserOptions().setColumnSizes(this.getColumnSizes(), 1);\n\t\t}\n\t};\n})();","import {Type} from \"main.core\";\n\n;(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.Row\n\t * @param {BX.Main.Grid} parent\n\t * @param {HtmlElement} node\n\t * @constructor\n\t */\n\tBX.Grid.Row = function(parent, node)\n\t{\n\t\tthis.node = null;\n\t\tthis.checkbox = null;\n\t\tthis.sort = null;\n\t\tthis.actions = null;\n\t\tthis.settings = null;\n\t\tthis.index = null;\n\t\tthis.actionsButton = null;\n\t\tthis.parent = null;\n\t\tthis.depth = null;\n\t\tthis.parentId = null;\n\t\tthis.editData = null;\n\t\tthis.custom = null;\n\t\tthis.onElementClick = this.onElementClick.bind(this);\n\t\tthis.init(parent, node);\n\t\tthis.initElementsEvents();\n\t};\n\n\t//noinspection JSUnusedGlobalSymbols,JSUnusedGlobalSymbols\n\tBX.Grid.Row.prototype = {\n\t\tinit: function(parent, node)\n\t\t{\n\t\t\tif (BX.type.isDomNode(node))\n\t\t\t{\n\t\t\t\tthis.node = node;\n\t\t\t\tthis.parent = parent;\n\t\t\t\tthis.settings = new BX.Grid.Settings();\n\t\t\t\tthis.bindNodes = [];\n\n\t\t\t\tif (this.isBodyChild())\n\t\t\t\t{\n\t\t\t\t\tthis.bindNodes = [].slice.call(this.node.parentNode.querySelectorAll(\"tr[data-bind=\\\"\"+this.getId()+\"\\\"]\"));\n\t\t\t\t\tif (this.bindNodes.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.node.addEventListener(\"mouseover\", this.onMouseOver.bind(this));\n\t\t\t\t\t\tthis.node.addEventListener(\"mouseleave\", this.onMouseLeave.bind(this));\n\t\t\t\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\t\t\t\trow.addEventListener(\"mouseover\", this.onMouseOver.bind(this));\n\t\t\t\t\t\t\trow.addEventListener(\"mouseleave\", this.onMouseLeave.bind(this));\n\t\t\t\t\t\t\trow.addEventListener(\"click\", function() {\n\t\t\t\t\t\t\t\tif (this.isSelected())\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.unselect();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.select();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}.bind(this));\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.parent.getParam('ALLOW_CONTEXT_MENU'))\n\t\t\t\t{\n\t\t\t\t\tBX.bind(this.getNode(), 'contextmenu', BX.delegate(this._onRightClick, this));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonMouseOver: function()\n\t\t{\n\t\t\tthis.node.classList.add(\"main-grid-row-over\");\n\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\trow.classList.add(\"main-grid-row-over\");\n\t\t\t});\n\t\t},\n\n\t\tonMouseLeave: function()\n\t\t{\n\t\t\tthis.node.classList.remove(\"main-grid-row-over\");\n\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\trow.classList.remove(\"main-grid-row-over\");\n\t\t\t});\n\t\t},\n\n\t\tisCustom: function()\n\t\t{\n\t\t\tif (this.custom === null)\n\t\t\t{\n\t\t\t\tthis.custom = BX.hasClass(this.getNode(), this.parent.settings.get('classRowCustom'));\n\t\t\t}\n\n\t\t\treturn this.custom;\n\t\t},\n\n\t\t_onRightClick: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tthis.showActionsMenu(event);\n\t\t},\n\n\t\tgetDefaultAction: function()\n\t\t{\n\t\t\treturn BX.data(this.getNode(), 'default-action');\n\t\t},\n\n\t\tgetEditorValue: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tvar cells = this.getCells();\n\t\t\tvar values = {};\n\t\t\tvar cellValues;\n\n\t\t\t[].forEach.call(cells, function(current) {\n\t\t\t\tcellValues = self.getCellEditorValue(current);\n\t\t\t\tif (BX.type.isArray(cellValues))\n\t\t\t\t{\n\t\t\t\t\tcellValues.forEach(function(cellValue) {\n\t\t\t\t\t\tvalues[cellValue.NAME] = cellValue.VALUE !== undefined ? cellValue.VALUE : \"\";\n\n\t\t\t\t\t\tif (cellValue.hasOwnProperty(\"RAW_NAME\") && cellValue.hasOwnProperty(\"RAW_VALUE\"))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalues[cellValue.NAME + \"_custom\"] = values[cellValue.NAME + \"_custom\"] || {};\n\t\t\t\t\t\t\tvalues[cellValue.NAME + \"_custom\"][cellValue.RAW_NAME] =\n\t\t\t\t\t\t\t\tvalues[cellValue.NAME + \"_custom\"][cellValue.RAW_NAME] || cellValue.RAW_VALUE;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if (cellValues)\n\t\t\t\t{\n\t\t\t\t\tvalues[cellValues.NAME] = cellValues.VALUE !== undefined ? cellValues.VALUE : \"\";\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn values;\n\t\t},\n\n\t\t/**\n\t\t * @deprecated\n\t\t * @use this.getEditorValue()\n\t\t */\n\t\teditGetValues: function()\n\t\t{\n\t\t\treturn this.getEditorValue();\n\t\t},\n\n\t\tgetCellEditorValue: function(cell)\n\t\t{\n\t\t\tvar editor = BX.Grid.Utils.getByClass(cell, this.parent.settings.get('classEditor'), true);\n\t\t\tvar result = null;\n\n\t\t\tif (BX.type.isDomNode(editor))\n\t\t\t{\n\t\t\t\tif (BX.hasClass(editor, 'main-grid-editor-checkbox'))\n\t\t\t\t{\n\t\t\t\t\tresult = {\n\t\t\t\t\t\t'NAME': editor.getAttribute('name'),\n\t\t\t\t\t\t'VALUE': editor.checked ? 'Y' : 'N'\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if(BX.hasClass(editor, 'main-grid-editor-custom'))\n\t\t\t\t{\n\t\t\t\t\tresult = this.getCustomValue(editor);\n\t\t\t\t}\n\t\t\t\telse if(BX.hasClass(editor, 'main-grid-editor-money'))\n\t\t\t\t{\n\t\t\t\t\tresult = this.getMoneyValue(editor);\n\t\t\t\t}\n\t\t\t\telse if(BX.hasClass(editor, 'main-ui-multi-select'))\n\t\t\t\t{\n\t\t\t\t\tresult = this.getMultiSelectValues(editor);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = this.getImageValue(editor);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tisEdit: function()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), 'main-grid-row-edit');\n\t\t},\n\n\t\thide: function()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classHide'));\n\t\t},\n\n\t\tshow: function()\n\t\t{\n\t\t\tBX.Dom.attr(this.getNode(), 'hidden', null);\n\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classHide'));\n\t\t},\n\n\t\tisShown: function()\n\t\t{\n\t\t\treturn !BX.hasClass(this.getNode(), this.parent.settings.get('classHide'));\n\t\t},\n\n\t\tisNotCount: function()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), this.parent.settings.get('classNotCount'));\n\t\t},\n\n\t\tgetContentContainer: function(target)\n\t\t{\n\t\t\tif (BX.Type.isDomNode(target))\n\t\t\t{\n\t\t\t\tconst cell = target.closest('.main-grid-cell');\n\t\t\t\tif (BX.Type.isDomNode(cell))\n\t\t\t\t{\n\t\t\t\t\treturn cell.querySelector('.main-grid-cell-content');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn target;\n\t\t},\n\n\t\tgetContent: function(cell)\n\t\t{\n\t\t\tvar container = this.getContentContainer(cell);\n\t\t\tvar content;\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tcontent = BX.html(container);\n\t\t\t}\n\n\t\t\treturn content;\n\t\t},\n\t\tgetMoneyValue: function(editor)\n\t\t{\n\t\t\tconst result = [];\n\t\t\tconst filteredValue = {\n\t\t\t\tPRICE: {},\n\t\t\t\tCURRENCY: {},\n\t\t\t\tHIDDEN: {},\n\t\t\t};\n\t\t\tconst fieldName = editor.getAttribute('data-name');\n\n\t\t\tconst inputs = [].slice.call(editor.querySelectorAll('input'));\n\t\t\tinputs.forEach(function(element) {\n\t\t\t\tresult.push({\n\t\t\t\t\tNAME: fieldName,\n\t\t\t\t\tRAW_NAME: element.name,\n\t\t\t\t\tRAW_VALUE: element.value || '',\n\t\t\t\t\tVALUE: element.value || '',\n\t\t\t\t});\n\n\t\t\t\tif (element.classList.contains('main-grid-editor-money-price'))\n\t\t\t\t{\n\t\t\t\t\tfilteredValue.PRICE = {\n\t\t\t\t\t\tNAME: element.name,\n\t\t\t\t\t\tVALUE: element.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (element.type ===' hidden')\n\t\t\t\t{\n\t\t\t\t\tfilteredValue.HIDDEN[element.name] = element.value;\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst currencySelector = editor.querySelector('.main-grid-editor-dropdown');\n\t\t\tif (currencySelector)\n\t\t\t{\n\t\t\t\tconst currencyFieldName = currencySelector.getAttribute('name');\n\t\t\t\tif (BX.type.isNotEmptyString(currencyFieldName))\n\t\t\t\t{\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tNAME: fieldName,\n\t\t\t\t\t\tRAW_NAME: currencyFieldName,\n\t\t\t\t\t\tRAW_VALUE: currencySelector.dataset.value || '',\n\t\t\t\t\t\tVALUE: currencySelector.dataset.value || '',\n\t\t\t\t\t});\n\t\t\t\t\tfilteredValue.CURRENCY = {\n\t\t\t\t\t\tNAME: currencyFieldName,\n\t\t\t\t\t\tVALUE: currencySelector.dataset.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult.push({\n\t\t\t\tNAME: fieldName,\n\t\t\t\tVALUE: filteredValue,\n\t\t\t});\n\t\t\treturn result;\n\t\t},\n\t\tgetCustomValue: function(editor)\n\t\t{\n\t\t\tvar map = new Map(), name = editor.getAttribute('data-name');\n\t\t\tvar inputs = [].slice.call(editor.querySelectorAll('input, select, checkbox, textarea'));\n\t\t\tinputs.forEach(function(element) {\n\n\t\t\t\tvar resultObject = {\n\t\t\t\t\t'NAME': name,\n\t\t\t\t\t'RAW_NAME': element.name,\n\t\t\t\t\t'RAW_VALUE': element.value,\n\t\t\t\t\t'VALUE': element.value\n\t\t\t\t};\n\n\t\t\t\tswitch (element.tagName)\n\t\t\t\t{\n\t\t\t\t\tcase 'SELECT':\n\t\t\t\t\t\tif (element.multiple)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar selectValues = [];\n\t\t\t\t\t\t\telement.querySelectorAll('option').forEach(function(option) {\n\t\t\t\t\t\t\t\tif (option.selected)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tselectValues.push(option.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tresultObject['RAW_VALUE'] = selectValues;\n\t\t\t\t\t\t\tresultObject['VALUE'] = selectValues;\n\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'INPUT':\n\t\t\t\t\t\tswitch(element.type.toUpperCase())\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcase 'RADIO':\n\t\t\t\t\t\t\t\tif (element.checked)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tresultObject['RAW_VALUE'] = element.value;\n\t\t\t\t\t\t\t\t\tresultObject['VALUE'] = element.value;\n\t\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'CHECKBOX':\n\t\t\t\t\t\t\t\tresultObject['RAW_VALUE'] = element.checked ? element.value : '';\n\t\t\t\t\t\t\t\tresultObject['VALUE'] = element.checked ? element.value : '';\n\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'FILE':\n\t\t\t\t\t\t\t\tresultObject['RAW_VALUE'] = element.files[0];\n\t\t\t\t\t\t\t\tresultObject['VALUE'] = element.files[0];\n\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar result = [];\n\t\t\tmap.forEach(function(value) {\n\t\t\t\tresult.push(value);\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetImageValue: function(editor)\n\t\t{\n\t\t\tvar result = null;\n\t\t\tif (BX.hasClass(editor, 'main-grid-image-editor'))\n\t\t\t{\n\t\t\t\tvar input = editor.querySelector('.main-grid-image-editor-file-input');\n\n\t\t\t\tif (input)\n\t\t\t\t{\n\t\t\t\t\tresult = {\n\t\t\t\t\t\t'NAME': input.name,\n\t\t\t\t\t\t'VALUE': input.files[0]\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar fakeInput = editor.querySelector('.main-grid-image-editor-fake-file-input');\n\n\t\t\t\t\tif (fakeInput)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = {\n\t\t\t\t\t\t\t'NAME': fakeInput.name,\n\t\t\t\t\t\t\t'VALUE': fakeInput.value\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (editor.value)\n\t\t\t{\n\t\t\t\tresult = {\n\t\t\t\t\t'NAME': editor.getAttribute('name'),\n\t\t\t\t\t'VALUE': editor.value\n\t\t\t\t};\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult = {\n\t\t\t\t\t'NAME': editor.getAttribute('name'),\n\t\t\t\t\t'VALUE': BX.data(editor, 'value')\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetMultiSelectValues: function(editor)\n\t\t{\n\t\t\tconst value = JSON.parse(BX.data(editor, 'value'));\n\t\t\treturn {\n\t\t\t\t'NAME': editor.getAttribute('name'),\n\t\t\t\t'VALUE': Type.isArrayFilled(value) ? value : ''\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @param {HTMLTableCellElement} cell\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetEditorContainer: function(cell)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(cell, this.parent.settings.get('classEditorContainer'), true);\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetCollapseButton: function()\n\t\t{\n\t\t\tif (!this.collapseButton)\n\t\t\t{\n\t\t\t\tthis.collapseButton = BX.Grid.Utils.getByClass(this.getNode(), this.parent.settings.get('classCollapseButton'), true);\n\t\t\t}\n\n\t\t\treturn this.collapseButton;\n\t\t},\n\n\t\tstateLoad: function()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classRowStateLoad'));\n\t\t},\n\n\t\tstateUnload: function()\n\t\t{\n\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classRowStateLoad'));\n\t\t},\n\n\t\tstateExpand: function()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classRowStateExpand'));\n\t\t},\n\n\t\tstateCollapse: function()\n\t\t{\n\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classRowStateExpand'));\n\t\t},\n\n\t\tgetParentId: function()\n\t\t{\n\t\t\tif (this.parentId === null)\n\t\t\t{\n\t\t\t\tthis.parentId = BX.data(this.getNode(), 'parent-id');\n\n\t\t\t\tif (typeof this.parentId !== 'undefined' && this.parentId !== null)\n\t\t\t\t{\n\t\t\t\t\tthis.parentId = this.parentId.toString();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.parentId;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {DOMStringMap}\n\t\t */\n\t\tgetDataset: function()\n\t\t{\n\t\t\treturn this.getNode().dataset;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets row depth level\n\t\t * @return {?number}\n\t\t */\n\t\tgetDepth: function()\n\t\t{\n\t\t\tif (this.depth === null)\n\t\t\t{\n\t\t\t\tthis.depth = BX.data(this.getNode(), 'depth');\n\t\t\t}\n\n\t\t\treturn this.depth;\n\t\t},\n\n\n\t\t/**\n\t\t * Set row depth\n\t\t * @param {number} depth\n\t\t */\n\t\tsetDepth: function(depth)\n\t\t{\n\t\t\tdepth = parseInt(depth);\n\n\t\t\tif (BX.type.isNumber(depth))\n\t\t\t{\n\t\t\t\tvar depthOffset = depth - parseInt(this.getDepth());\n\t\t\t\tvar Rows = this.parent.getRows();\n\n\t\t\t\tthis.getDataset().depth = depth;\n\n\t\t\t\tthis.getShiftCells().forEach(function(cell) {\n\t\t\t\t\tBX.data(cell, 'depth', depth);\n\t\t\t\t\tBX.style(cell, 'padding-left', (depth * 20) + 'px');\n\t\t\t\t}, this);\n\n\t\t\t\tRows.getRowsByParentId(this.getId(), true).forEach(function(row) {\n\t\t\t\t\tvar childDepth = parseInt(depthOffset) + parseInt(row.getDepth());\n\t\t\t\t\trow.getDataset().depth = childDepth;\n\t\t\t\t\trow.getShiftCells().forEach(function(cell) {\n\t\t\t\t\t\tBX.data(cell, 'depth', childDepth);\n\t\t\t\t\t\tBX.style(cell, 'padding-left', (childDepth * 20) + 'px');\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Sets parent id\n\t\t * @param {string|number} id\n\t\t */\n\t\tsetParentId: function(id)\n\t\t{\n\t\t\tthis.getDataset()['parentId'] = id;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLTableRowElement}\n\t\t */\n\t\tgetShiftCells: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getNode(), 'td[data-shift=\"true\"]');\n\t\t},\n\n\t\tshowChildRows: function()\n\t\t{\n\t\t\tvar rows = this.getChildren();\n\t\t\tvar isCustom = this.isCustom();\n\n\t\t\trows.forEach(function(row) {\n\t\t\t\trow.show();\n\t\t\t\tif (!isCustom && row.isExpand())\n\t\t\t\t{\n\t\t\t\t\trow.showChildRows();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.parent.updateCounterDisplayed();\n\t\t\tthis.parent.updateCounterSelected();\n\t\t\tthis.parent.adjustCheckAllCheckboxes();\n\t\t\tthis.parent.adjustRows();\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetChildren: function()\n\t\t{\n\t\t\tvar functionName = this.isCustom() ? 'getRowsByGroupId' : 'getRowsByParentId';\n\t\t\tvar id = this.isCustom() ? this.getGroupId() : this.getId();\n\t\t\treturn this.parent.getRows()[functionName](id, true);\n\t\t},\n\n\t\thideChildRows: function()\n\t\t{\n\t\t\tvar rows = this.getChildren();\n\t\t\trows.forEach(function(row) { row.hide(); });\n\t\t\tthis.parent.updateCounterDisplayed();\n\t\t\tthis.parent.updateCounterSelected();\n\t\t\tthis.parent.adjustCheckAllCheckboxes();\n\t\t\tthis.parent.adjustRows();\n\t\t},\n\n\t\tisChildsLoaded: function()\n\t\t{\n\t\t\tif (!BX.type.isBoolean(this.childsLoaded))\n\t\t\t{\n\t\t\t\tthis.childsLoaded = this.isCustom() || BX.data(this.getNode(), 'child-loaded') === 'true';\n\t\t\t}\n\n\t\t\treturn this.childsLoaded;\n\t\t},\n\n\t\texpand: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tthis.stateExpand();\n\n\t\t\tif (this.isChildsLoaded())\n\t\t\t{\n\t\t\t\tthis.showChildRows();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stateLoad();\n\t\t\t\tthis.loadChildRows(function(rows) {\n\t\t\t\t\trows.reverse().forEach(function(current) {\n\t\t\t\t\t\tBX.insertAfter(current, self.getNode());\n\t\t\t\t\t});\n\t\t\t\t\tself.parent.getRows().reset();\n\t\t\t\t\tself.parent.bindOnRowEvents();\n\n\t\t\t\t\tif (self.parent.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.getRowsSortable().reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.parent.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.getColsSortable().reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tself.stateUnload();\n\t\t\t\t\tBX.data(self.getNode(), 'child-loaded', 'true');\n\t\t\t\t\tself.parent.updateCounterDisplayed();\n\t\t\t\t\tself.parent.updateCounterSelected();\n\t\t\t\t\tself.parent.adjustCheckAllCheckboxes();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tcollapse: function()\n\t\t{\n\t\t\tthis.stateCollapse();\n\t\t\tthis.hideChildRows();\n\t\t},\n\n\t\tisExpand: function()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), this.parent.settings.get('classRowStateExpand'));\n\t\t},\n\n\t\ttoggleChildRows: function()\n\t\t{\n\t\t\tif (!this.isExpand())\n\t\t\t{\n\t\t\t\tthis.expand();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.collapse();\n\t\t\t}\n\t\t},\n\n\t\tloadChildRows: function(callback)\n\t\t{\n\t\t\tif (BX.type.isFunction(callback))\n\t\t\t{\n\t\t\t\tvar self = this;\n\t\t\t\tvar depth = parseInt(this.getDepth());\n\t\t\t\tvar action = this.parent.getUserOptions().getAction('GRID_GET_CHILD_ROWS');\n\t\t\t\tdepth = BX.type.isNumber(depth) ? depth+1 : 1;\n\t\t\t\tthis.parent.getData().request('', 'POST', {action: action, parent_id: this.getId(), depth: depth}, null, function() {\n\t\t\t\t\tvar rows = this.getRowsByParentId(self.getId());\n\t\t\t\t\tcallback.apply(null, [rows]);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tupdate: function(data, url, callback)\n\t\t{\n\t\t\tdata = !!data ? data : '';\n\n\t\t\tvar action = this.parent.getUserOptions().getAction('GRID_UPDATE_ROW');\n\t\t\tvar depth = this.getDepth();\n\t\t\tvar id = this.getId();\n\t\t\tvar parentId = this.getParentId();\n\t\t\tvar rowData = {id: id, parentId: parentId, action: action, depth: depth, data: data};\n\t\t\tvar self = this;\n\n\t\t\tthis.stateLoad();\n\t\t\tthis.parent.getData().request(url, 'POST', rowData, null, function() {\n\t\t\t\tvar bodyRows = this.getBodyRows();\n\t\t\t\tself.parent.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.stateUnload();\n\t\t\t\tself.parent.getRows().reset();\n\t\t\t\tself.parent.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.parent.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.parent.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.parent.getUpdater().updateCounterTotal(this.getCounterTotal());\n\t\t\t\tself.parent.bindOnRowEvents();\n\t\t\t\tself.parent.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.parent.bindOnMoreButtonEvents();\n\t\t\t\tself.parent.bindOnClickPaginationLinks();\n\t\t\t\tself.parent.updateCounterDisplayed();\n\t\t\t\tself.parent.updateCounterSelected();\n\n\t\t\t\tif (self.parent.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.parent.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowUpdated', [{id: id, data: data, grid: self.parent, response: this}]);\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self.parent]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback({id: id, data: data, grid: self.parent, response: this});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tremove: function(data, url, callback)\n\t\t{\n\t\t\tdata = !!data ? data : '';\n\n\t\t\tvar action = this.parent.getUserOptions().getAction('GRID_DELETE_ROW');\n\t\t\tvar depth = this.getDepth();\n\t\t\tvar id = this.getId();\n\t\t\tvar parentId = this.getParentId();\n\t\t\tvar rowData = {id: id, parentId: parentId, action: action, depth: depth, data: data};\n\t\t\tvar self = this;\n\n\t\t\tthis.stateLoad();\n\t\t\tthis.parent.getData().request(url, 'POST', rowData, null, function() {\n\t\t\t\tvar bodyRows = this.getBodyRows();\n\t\t\t\tself.parent.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.stateUnload();\n\t\t\t\tself.parent.getRows().reset();\n\t\t\t\tself.parent.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.parent.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.parent.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.parent.getUpdater().updateCounterTotal(this.getCounterTotal());\n\t\t\t\tself.parent.bindOnRowEvents();\n\t\t\t\tself.parent.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.parent.bindOnMoreButtonEvents();\n\t\t\t\tself.parent.bindOnClickPaginationLinks();\n\t\t\t\tself.parent.updateCounterDisplayed();\n\t\t\t\tself.parent.updateCounterSelected();\n\n\t\t\t\tif (self.parent.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.parent.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowRemoved', [{id: id, data: data, grid: self.parent, response: this}]);\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self.parent]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback({id: id, data: data, grid: self.parent, response: this});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\teditCancel: function()\n\t\t{\n\t\t\tvar cells = this.getCells();\n\t\t\tvar self = this;\n\t\t\tvar editorContainer;\n\n\t\t\t[].forEach.call(cells, function(current) {\n\t\t\t\teditorContainer = self.getEditorContainer(current);\n\n\t\t\t\tif (BX.type.isDomNode(editorContainer))\n\t\t\t\t{\n\t\t\t\t\tBX.remove(self.getEditorContainer(current));\n\t\t\t\t\tBX.show(self.getContentContainer(current));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tBX.removeClass(this.getNode(), 'main-grid-row-edit');\n\t\t},\n\n\t\tgetCellByIndex: function(index)\n\t\t{\n\t\t\treturn this.getCells()[index];\n\t\t},\n\n\t\tgetEditDataByCellIndex: function(index)\n\t\t{\n\t\t\treturn eval(BX.data(this.getCellByIndex(index), 'edit'));\n\t\t},\n\n\t\tgetCellNameByCellIndex: function(index)\n\t\t{\n\t\t\treturn BX.data(this.getCellByIndex(index), 'name');\n\t\t},\n\n\t\tresetEditData: function()\n\t\t{\n\t\t\tthis.editData = null;\n\t\t},\n\n\t\tsetEditData: function(editData)\n\t\t{\n\t\t\tthis.editData = editData;\n\t\t},\n\n\t\tgetEditData: function()\n\t\t{\n\t\t\tif (this.editData === null)\n\t\t\t{\n\t\t\t\tvar editableData = this.parent.getParam('EDITABLE_DATA');\n\t\t\t\tvar rowId = this.getId();\n\n\t\t\t\tif (BX.type.isPlainObject(editableData) && rowId in editableData)\n\t\t\t\t{\n\t\t\t\t\tthis.editData = editableData[rowId];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.editData = {};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.editData\n\t\t},\n\n\t\tgetCellEditDataByCellIndex: function(cellIndex)\n\t\t{\n\t\t\tvar editData = this.getEditData();\n\t\t\tvar result = null;\n\t\t\tcellIndex = parseInt(cellIndex);\n\n\t\t\tif (BX.type.isNumber(cellIndex) && BX.type.isPlainObject(editData))\n\t\t\t{\n\t\t\t\tvar columnEditData = this.parent.getRows().getHeadFirstChild().getEditDataByCellIndex(cellIndex);\n\n\t\t\t\tif (BX.type.isPlainObject(columnEditData))\n\t\t\t\t{\n\t\t\t\t\tresult = columnEditData;\n\t\t\t\t\tresult.VALUE = editData[columnEditData.NAME];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tedit: function()\n\t\t{\n\t\t\tvar cells = this.getCells();\n\t\t\tvar self = this;\n\t\t\tvar editObject, editor, height, contentContainer;\n\n\t\t\t[].forEach.call(cells, function(current, index) {\n\t\t\t\tif (current.dataset.editable === 'true')\n\t\t\t\t{\n\t\t\t\t\ttry {\n\t\t\t\t\t\teditObject = self.getCellEditDataByCellIndex(index);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(err);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.parent.getEditor().validateEditObject(editObject))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontentContainer = self.getContentContainer(current);\n\t\t\t\t\t\theight = BX.height(contentContainer);\n\t\t\t\t\t\teditor = self.parent.getEditor().getEditor(editObject, height);\n\n\t\t\t\t\t\tif (!self.getEditorContainer(current) && BX.type.isDomNode(editor))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcurrent.appendChild(editor);\n\t\t\t\t\t\t\tBX.hide(contentContainer);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tBX.addClass(this.getNode(), 'main-grid-row-edit');\n\t\t},\n\n\t\tsetDraggable: function(value)\n\t\t{\n\t\t\tif (!value)\n\t\t\t{\n\t\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classDisableDrag'));\n\t\t\t\tthis.parent.getRowsSortable().unregister(this.getNode());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classDisableDrag'));\n\t\t\t\tthis.parent.getRowsSortable().register(this.getNode());\n\t\t\t}\n\t\t},\n\n\t\tisDraggable: function()\n\t\t{\n\t\t\treturn !BX.hasClass(this.getNode(), this.parent.settings.get('classDisableDrag'));\n\t\t},\n\n\t\tgetNode: function()\n\t\t{\n\t\t\treturn this.node;\n\t\t},\n\n\t\tgetIndex: function()\n\t\t{\n\t\t\treturn this.getNode().rowIndex;\n\t\t},\n\n\t\tgetId: function()\n\t\t{\n\t\t\treturn String(BX.data(this.getNode(), 'id'));\n\t\t},\n\n\t\tgetGroupId: function()\n\t\t{\n\t\t\treturn (BX.data(this.getNode(), 'group-id')).toString();\n\t\t},\n\n\t\tgetObserver: function()\n\t\t{\n\t\t\treturn BX.Grid.observer;\n\t\t},\n\n\t\tgetCheckbox: function()\n\t\t{\n\t\t\tif (!this.checkbox)\n\t\t\t{\n\t\t\t\tthis.checkbox = BX.Grid.Utils.getByClass(this.getNode(), this.settings.get('classRowCheckbox'), true);\n\t\t\t}\n\n\t\t\treturn this.checkbox;\n\t\t},\n\n\t\tgetActionsMenu: function()\n\t\t{\n\t\t\tif (!this.actionsMenu)\n\t\t\t{\n\t\t\t\tvar buttonRect = this.getActionsButton().getBoundingClientRect();\n\n\t\t\t\tthis.actionsMenu = BX.PopupMenu.create(\n\t\t\t\t\t'main-grid-actions-menu-' + this.getId(),\n\t\t\t\t\tthis.getActionsButton(),\n\t\t\t\t\tthis.getMenuItems(),\n\t\t\t\t\t{\n\t\t\t\t\t\t'autoHide': true,\n\t\t\t\t\t\t'offsetTop': -((buttonRect.height / 2) + 26),\n\t\t\t\t\t\t'offsetLeft': 30,\n\t\t\t\t\t\t'angle': {\n\t\t\t\t\t\t\t'position': 'left',\n\t\t\t\t\t\t\t'offset': ((buttonRect.height / 2) - 8)\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'events': {\n\t\t\t\t\t\t\t'onPopupClose': BX.delegate(this._onCloseMenu, this),\n\t\t\t\t\t\t\t'onPopupShow': BX.delegate(this._onPopupShow, this)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tBX.addCustomEvent('Grid::updated', function() {\n\t\t\t\t\tif(this.actionsMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.actionsMenu.destroy();\n\t\t\t\t\t\tthis.actionsMenu = null;\n\t\t\t\t\t}\n\t\t\t\t}.bind(this));\n\n\t\t\t\tBX.bind(this.actionsMenu.popupWindow.popupContainer, 'click', BX.delegate(function(event) {\n\t\t\t\t\tvar actionsMenu = this.getActionsMenu();\n\t\t\t\t\tif (actionsMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tvar target = BX.getEventTarget(event);\n\t\t\t\t\t\tvar item = BX.findParent(target, {\n\t\t\t\t\t\t\tclassName: 'menu-popup-item'\n\t\t\t\t\t\t}, 10);\n\n\t\t\t\t\t\tif (!item || !item.dataset.preventCloseContextMenu)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tactionsMenu.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this));\n\t\t\t}\n\n\t\t\treturn this.actionsMenu;\n\t\t},\n\n\t\t_onCloseMenu: function()\n\t\t{\n\t\t},\n\n\t\t_onPopupShow: function(popupMenu)\n\t\t{\n\t\t\tpopupMenu.setBindElement(this.getActionsButton());\n\t\t},\n\n\t\tactionsMenuIsShown: function()\n\t\t{\n\t\t\treturn this.getActionsMenu().popupWindow.isShown();\n\t\t},\n\n\t\tshowActionsMenu: function(event)\n\t\t{\n\t\t\tBX.fireEvent(document.body, 'click');\n\n\t\t\tthis.getActionsMenu().popupWindow.show();\n\n\t\t\tif (event)\n\t\t\t{\n\t\t\t\tthis.getActionsMenu().popupWindow.popupContainer.style.top = ((event.pageY - 25) + BX.PopupWindow.getOption(\"offsetTop\")) + \"px\";\n\t\t\t\tthis.getActionsMenu().popupWindow.popupContainer.style.left = ((event.pageX + 20) + BX.PopupWindow.getOption(\"offsetLeft\")) + \"px\";\n\t\t\t}\n\t\t},\n\n\t\tcloseActionsMenu: function()\n\t\t{\n\t\t\tif (this.actionsMenu)\n\t\t\t{\n\t\t\t\tif (this.actionsMenu.popupWindow)\n\t\t\t\t{\n\t\t\t\t\tthis.actionsMenu.popupWindow.close();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetMenuItems: function()\n\t\t{\n\t\t\treturn this.getActions() || [];\n\t\t},\n\n\t\tgetActions: function()\n\t\t{\n\t\t\ttry {\n\t\t\t\tthis.actions = this.actions || eval(BX.data(this.getActionsButton(), this.settings.get('dataActionsKey')));\n\t\t\t} catch (err) {\n\t\t\t\tthis.actions = null;\n\t\t\t}\n\n\t\t\treturn this.actions;\n\t\t},\n\n\t\tgetActionsButton: function()\n\t\t{\n\t\t\tif (!this.actionsButton)\n\t\t\t{\n\t\t\t\tthis.actionsButton = BX.Grid.Utils.getByClass(this.getNode(), this.settings.get('classRowActionButton'), true);\n\t\t\t}\n\n\t\t\treturn this.actionsButton;\n\t\t},\n\n\t\tinitSelect: function()\n\t\t{\n\t\t\tif (this.isSelected() && !BX.hasClass(this.getNode(), this.settings.get('classCheckedRow')))\n\t\t\t{\n\t\t\t\tBX.addClass(this.getNode(), this.settings.get('classCheckedRow'))\n\t\t\t}\n\t\t},\n\n\t\tgetParentNode: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = (this.getNode()).parentNode;\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetParentNodeName: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = (this.getParentNode()).nodeName;\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tisSelectable: function()\n\t\t{\n\t\t\treturn !this.isEdit() || this.parent.getParam('ALLOW_EDIT_SELECTION');\n\t\t},\n\n\t\tselect: function()\n\t\t{\n\t\t\tvar checkbox;\n\n\t\t\tif (\n\t\t\t\tthis.isSelectable()\n\t\t\t\t&& (this.parent.getParam('ADVANCED_EDIT_MODE') || !this.parent.getRows().hasEditable())\n\t\t\t)\n\t\t\t{\n\t\t\t\tcheckbox = this.getCheckbox();\n\n\t\t\t\tif (checkbox)\n\t\t\t\t{\n\t\t\t\t\tif (!BX.data(checkbox, 'disabled'))\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.addClass(this.getNode(), this.settings.get('classCheckedRow'));\n\t\t\t\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\t\t\t\tBX.addClass(row, this.settings.get('classCheckedRow'));\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t\tcheckbox.checked = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tunselect: function()\n\t\t{\n\t\t\tif (this.isSelectable())\n\t\t\t{\n\t\t\t\tBX.removeClass(this.getNode(), this.settings.get('classCheckedRow'));\n\t\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\t\tBX.removeClass(row, this.settings.get('classCheckedRow'));\n\t\t\t\t}, this);\n\t\t\t\tif (this.getCheckbox())\n\t\t\t\t{\n\t\t\t\t\tthis.getCheckbox().checked = false;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetCells: function()\n\t\t{\n\t\t\treturn this.getNode().cells;\n\t\t},\n\n\t\tisSelected: function()\n\t\t{\n\t\t\treturn (\n\t\t\t\t(this.getCheckbox() && (this.getCheckbox()).checked) ||\n\t\t\t\t(BX.hasClass(this.getNode(), this.settings.get('classCheckedRow')))\n\t\t\t);\n\t\t},\n\n\t\tisHeadChild: function()\n\t\t{\n\t\t\treturn (\n\t\t\t\tthis.getParentNodeName() === 'THEAD' &&\n\t\t\t\tBX.hasClass(this.getNode(), this.settings.get('classHeadRow'))\n\t\t\t);\n\t\t},\n\n\t\tisBodyChild: function()\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(this.getNode(), this.settings.get('classBodyRow')) && !BX.hasClass(this.getNode(), this.settings.get('classEmptyRows'))\n\t\t\t);\n\t\t},\n\n\t\tisFootChild: function()\n\t\t{\n\t\t\treturn (\n\t\t\t\tthis.getParentNodeName() === 'TFOOT' &&\n\t\t\t\tBX.hasClass(this.getNode(), this.settings.get('classFootRow'))\n\t\t\t);\n\t\t},\n\n\t\tprependTo: function(target)\n\t\t{\n\t\t\tBX.Dom.prepend(this.getNode(), target);\n\t\t},\n\n\t\tappendTo: function(target)\n\t\t{\n\t\t\tBX.Dom.append(this.getNode(), target);\n\t\t},\n\n\t\tsetId: function(id)\n\t\t{\n\t\t\tBX.Dom.attr(this.getNode(), 'data-id', id);\n\t\t},\n\n\t\tsetActions: function(actions)\n\t\t{\n\t\t\tconst actionCell = this.getNode().querySelector('.main-grid-cell-action');\n\t\t\tif (actionCell)\n\t\t\t{\n\t\t\t\tlet actionButton = actionCell.querySelector('.main-grid-row-action-button');\n\t\t\t\tif (!actionButton)\n\t\t\t\t{\n\t\t\t\t\tactionButton = BX.Dom.create({\n\t\t\t\t\t\ttag: 'div',\n\t\t\t\t\t\tprops: {className: 'main-grid-row-action-button'},\n\t\t\t\t\t});\n\n\t\t\t\t\tconst container = this.getContentContainer(actionCell);\n\t\t\t\t\tBX.Dom.append(actionButton, container);\n\t\t\t\t}\n\n\t\t\t\tBX.Dom.attr(actionButton, {\n\t\t\t\t\thref: '#',\n\t\t\t\t\t'data-actions': actions,\n\t\t\t\t});\n\n\t\t\t\tthis.actions = actions;\n\n\t\t\t\tif (this.actionsMenu)\n\t\t\t\t{\n\t\t\t\t\tthis.actionsMenu.destroy();\n\t\t\t\t\tthis.actionsMenu = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tmakeCountable: function()\n\t\t{\n\t\t\tBX.Dom.removeClass(this.getNode(), 'main-grid-not-count');\n\t\t},\n\n\t\tmakeNotCountable: function()\n\t\t{\n\t\t\tBX.Dom.addClass(this.getNode(), 'main-grid-not-count');\n\t\t},\n\n\t\tgetColumnOptions: function(columnId)\n\t\t{\n\t\t\tconst columns = this.parent.getParam('COLUMNS_ALL');\n\t\t\tif (\n\t\t\t\tBX.Type.isPlainObject(columns)\n\t\t\t\t&& Reflect.has(columns, columnId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn columns[columnId];\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\tsetCellsContent: function(content)\n\t\t{\n\t\t\tconst headRow = this.parent.getRows().getHeadFirstChild();\n\n\t\t\t[...this.getCells()].forEach((cell, cellIndex) => {\n\t\t\t\tconst cellName = headRow.getCellNameByCellIndex(cellIndex);\n\n\t\t\t\tif (Reflect.has(content, cellName))\n\t\t\t\t{\n\t\t\t\t\tconst columnOptions = this.getColumnOptions(cellName);\n\t\t\t\t\tconst container = this.getContentContainer(cell);\n\t\t\t\t\tconst cellContent = content[cellName];\n\t\t\t\t\tif (\n\t\t\t\t\t\tcolumnOptions.type === 'labels'\n\t\t\t\t\t\t&& BX.Type.isArray(cellContent)\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst labels = cellContent.map((labelOptions) => {\n\t\t\t\t\t\t\tconst label = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-label ${labelOptions.color}\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tif (labelOptions.light !== true)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.addClass(label, 'ui-label-fill');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (BX.Type.isPlainObject(labelOptions.events))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (Reflect.has(labelOptions.events, 'click'))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tBX.Dom.addClass(label, 'ui-label-link');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tthis.bindOnEvents(label, labelOptions.events);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst labelContent = (() => {\n\t\t\t\t\t\t\t\tif (BX.Type.isStringFilled(labelOptions.html))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn labelOptions.html;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn labelOptions.text;\n\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\tconst inner = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-label-inner\">${labelContent}</span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(inner, label);\n\n\t\t\t\t\t\t\tif (BX.Type.isPlainObject(labelOptions.removeButton))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst button = (() => {\n\t\t\t\t\t\t\t\t\tif (labelOptions.removeButton.type === BX.Grid.Label.RemoveButtonType.INSIDE)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\treturn BX.Tag.render`\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"ui-label-icon\"></span>\t\n\t\t\t\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn BX.Tag.render`\n\t\t\t\t\t\t\t\t\t\t<span class=\"main-grid-label-remove-button ${labelOptions.removeButton.type}\"></span>\t\n\t\t\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(labelOptions.removeButton.events))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.bindOnEvents(button, labelOptions.removeButton.events);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tBX.Dom.append(button, label);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn label;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst labelsContainer = BX.Tag.render`\n\t\t\t\t\t\t\t<div class=\"main-grid-labels\">${labels}</div>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tBX.Dom.clean(container);\n\t\t\t\t\t\tconst oldLabelsContainer = container.querySelector('.main-grid-labels');\n\t\t\t\t\t\tif (BX.Type.isDomNode(oldLabelsContainer))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.replace(oldLabelsContainer, labelsContainer);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.append(labelsContainer, container);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (\n\t\t\t\t\t\tcolumnOptions.type === 'tags'\n\t\t\t\t\t\t&& BX.Type.isPlainObject(cellContent)\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst tags = cellContent.items.map((tagOptions) => {\n\t\t\t\t\t\t\tconst tag = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"main-grid-tag\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tthis.bindOnEvents(tag, tagOptions.events);\n\n\t\t\t\t\t\t\tif (tagOptions.active === true)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.addClass(tag, 'main-grid-tag-active');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst tagContent = (() => {\n\t\t\t\t\t\t\t\tif (BX.Type.isStringFilled(tagOptions.html))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn tagOptions.html;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn BX.Text.encode(tagOptions.text);\n\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\tconst tagInner = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"main-grid-tag-inner\">${tagContent}</span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(tagInner, tag);\n\n\t\t\t\t\t\t\tif (tagOptions.active === true)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst removeButton = BX.Tag.render`\n\t\t\t\t\t\t\t\t\t<span class=\"main-grid-tag-remove\"></span>\n\t\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\t\tBX.Dom.append(removeButton, tag);\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(tagOptions.removeButton))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.bindOnEvents(removeButton, tagOptions.removeButton.events);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn tag;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst tagsContainer = BX.Tag.render`\n\t\t\t\t\t\t\t<span class=\"main-grid-tags\">${tags}</span>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tconst addButton = BX.Tag.render`\n\t\t\t\t\t\t\t<span class=\"main-grid-tag-add\"></span>\n\t\t\t\t\t\t`;\n\t\t\t\t\t\tif (BX.Type.isPlainObject(cellContent.addButton))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.bindOnEvents(addButton, cellContent.addButton.events);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tBX.Dom.append(addButton, tagsContainer);\n\n\t\t\t\t\t\tconst oldTagsContainer = container.querySelector('.main-grid-tags');\n\t\t\t\t\t\tif (BX.Type.isDomNode(oldTagsContainer))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.replace(oldTagsContainer, tagsContainer);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.append(tagsContainer, container);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.Runtime.html(container, cellContent);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetCellById: function(id)\n\t\t{\n\t\t\tconst headRow = this.parent.getRows().getHeadFirstChild();\n\n\t\t\treturn [...this.getCells()].find((cell, index) => {\n\t\t\t\treturn headRow.getCellNameByCellIndex(index) === id;\n\t\t\t});\n\t\t},\n\n\t\tisTemplate: function()\n\t\t{\n\t\t\treturn this.isBodyChild() && /^template_[0-9]$/.test(this.getId());\n\t\t},\n\n\t\tenableAbsolutePosition: function()\n\t\t{\n\t\t\tconst headCells = [...this.parent.getRows().getHeadFirstChild().getCells()];\n\t\t\tconst cellsWidth = headCells.map((cell) => {\n\t\t\t\treturn BX.Dom.style(cell, 'width');\n\t\t\t});\n\n\t\t\tconst cells = this.getCells();\n\t\t\tcellsWidth.forEach((width, index) => {\n\t\t\t\tBX.Dom.style(cells[index], 'width', width);\n\t\t\t});\n\n\t\t\tBX.Dom.style(this.getNode(), 'position', 'absolute');\n\t\t},\n\n\t\tdisableAbsolutePosition: function()\n\t\t{\n\t\t\tBX.Dom.style(this.getNode(), 'position', null);\n\t\t},\n\n\t\tgetHeight: function()\n\t\t{\n\t\t\treturn BX.Text.toNumber(BX.Dom.style(this.getNode(), 'height'));\n\t\t},\n\n\t\tsetCellActions: function(cellActions)\n\t\t{\n\t\t\tObject.entries(cellActions).forEach(([cellId, actions]) => {\n\t\t\t\tconst cell = this.getCellById(cellId);\n\t\t\t\tif (cell)\n\t\t\t\t{\n\t\t\t\t\tconst inner = cell.querySelector('.main-grid-cell-inner');\n\t\t\t\t\tif (inner)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst container = (() => {\n\t\t\t\t\t\t\tconst currentContainer = inner.querySelector('.main-grid-cell-content-actions');\n\t\t\t\t\t\t\tif (currentContainer)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.clean(currentContainer);\n\t\t\t\t\t\t\t\treturn currentContainer;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst newContainer = BX.Tag.render`\n\t\t\t\t\t\t\t\t<div class=\"main-grid-cell-content-actions\"></div>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(newContainer, inner);\n\n\t\t\t\t\t\t\treturn newContainer;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tif (BX.Type.isArrayFilled(actions))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tactions.forEach((action) => {\n\t\t\t\t\t\t\t\tconst actionClass = (() => {\n\t\t\t\t\t\t\t\t\tif (BX.Type.isArrayFilled(action.class))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\treturn action.class.join(' ');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn action.class;\n\t\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\t\tconst button = BX.Tag.render`\n\t\t\t\t\t\t\t\t\t<span class=\"main-grid-cell-content-action ${actionClass}\"></span>\n\t\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(action.events))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.bindOnEvents(button, action.events);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(action.attributes))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tBX.Dom.attr(button, action.attributes);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tBX.Dom.append(button, container);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitElementsEvents: function()\n\t\t{\n\t\t\tconst buttons = [\n\t\t\t\t...this.getNode().querySelectorAll('.main-grid-cell [data-events]'),\n\t\t\t];\n\t\t\tif (BX.Type.isArrayFilled(buttons))\n\t\t\t{\n\t\t\t\tbuttons.forEach((button) => {\n\t\t\t\t\tconst events = eval(BX.Dom.attr(button, 'data-events'));\n\t\t\t\t\tif (BX.Type.isPlainObject(events))\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.Dom.attr(button, 'data-events', null);\n\t\t\t\t\t\tthis.bindOnEvents(button, events);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @param event\n\t\t */\n\t\tonElementClick: function(event)\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tbindOnEvents: function(button, events)\n\t\t{\n\t\t\tif (\n\t\t\t\tBX.Type.isDomNode(button)\n\t\t\t\t&& BX.Type.isPlainObject(events)\n\t\t\t)\n\t\t\t{\n\t\t\t\tBX.Event.bind(button, 'click', this.onElementClick.bind(this));\n\n\t\t\t\tconst target = (() => {\n\t\t\t\t\tconst selector = BX.Dom.attr(button, 'data-target');\n\t\t\t\t\tif (selector)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn button.closest(selector);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn button;\n\t\t\t\t})();\n\n\t\t\t\tconst event = new BX.Event.BaseEvent({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tbutton,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\trow: this,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tevent.setTarget(target);\n\n\t\t\t\tObject.entries(events).forEach(([eventName, handler]) => {\n\t\t\t\t\tconst preparedHandler = eval(handler);\n\t\t\t\t\tBX.Event.bind(button, eventName, preparedHandler.bind(null, event));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tsetCounters: function(counters)\n\t\t{\n\t\t\tif (BX.Type.isPlainObject(counters))\n\t\t\t{\n\t\t\t\tObject.entries(counters).forEach(([columnId, counter]) => {\n\t\t\t\t\tconst cell = this.getCellById(columnId);\n\t\t\t\t\tif (BX.Type.isDomNode(cell))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst cellInner = cell.querySelector('.main-grid-cell-inner');\n\t\t\t\t\t\tconst counterContainer = (() => {\n\t\t\t\t\t\t\tconst container = cell.querySelector('.main-grid-cell-counter');\n\t\t\t\t\t\t\tif (BX.Type.isDomNode(container))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn container;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"main-grid-cell-counter\"></span>\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tconst uiCounter = (() => {\n\t\t\t\t\t\t\tconst currentCounter = counterContainer.querySelector('.ui-counter');\n\t\t\t\t\t\t\tif (BX.Type.isDomNode(currentCounter))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn currentCounter;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst newCounter = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-counter\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(newCounter, counterContainer);\n\n\t\t\t\t\t\t\treturn newCounter;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tif (BX.Type.isPlainObject(counter.events))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.bindOnEvents(uiCounter, counter.events);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst counterInner = (() => {\n\t\t\t\t\t\t\tconst currentInner = uiCounter.querySelector('.ui-counter-inner');\n\t\t\t\t\t\t\tif (BX.Type.isDomNode(currentInner))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn currentInner;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst newInner = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-counter-inner\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(newInner, uiCounter);\n\n\t\t\t\t\t\t\treturn newInner;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.type))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tObject.values(BX.Grid.Counters.Type).forEach((type) => {\n\t\t\t\t\t\t\t\tBX.Dom.removeClass(counterContainer, `main-grid-cell-counter-${type}`);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tBX.Dom.addClass(counterContainer, `main-grid-cell-counter-${counter.type}`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.color))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tObject.values(BX.Grid.Counters.Color).forEach((color) => {\n\t\t\t\t\t\t\t\tBX.Dom.removeClass(uiCounter, color);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tBX.Dom.addClass(uiCounter, counter.color);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.size))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tObject.values(BX.Grid.Counters.Size).forEach((size) => {\n\t\t\t\t\t\t\t\tBX.Dom.removeClass(uiCounter, size);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tBX.Dom.addClass(uiCounter, counter.size);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.class))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.addClass(uiCounter, counter.class);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tBX.Type.isStringFilled(counter.value)\n\t\t\t\t\t\t\t|| BX.Type.isNumber(counter.value)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst currentValue = BX.Text.toNumber(counterInner.innerText);\n\t\t\t\t\t\t\tconst value = BX.Text.toNumber(counter.value);\n\n\t\t\t\t\t\t\tif (value > 0)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (value < 100)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcounterInner.innerText = counter.value;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcounterInner.innerText = '99+';\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (counter.animation !== false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (value !== currentValue)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif (value > currentValue)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tBX.Dom.addClass(counterInner, 'ui-counter-plus');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tBX.Dom.addClass(counterInner, 'ui-counter-minus');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tBX.Event.bindOnce(counterInner, 'animationend', (event) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tevent.animationName === 'uiCounterPlus'\n\t\t\t\t\t\t\t\t\t\t\t|| event.animationName === 'uiCounterMinus'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tBX.Dom.removeClass(counterInner, ['ui-counter-plus', 'ui-counter-minus']);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Text.toNumber(counter.value) > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst align = counter.type === BX.Grid.Counters.Type.RIGHT ? 'right' : 'left';\n\t\t\t\t\t\t\tif (align === 'left')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.prepend(counterContainer, cellInner);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (align === 'right')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.append(counterContainer, cellInner);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst leftAlignedClass = (\n\t\t\t\t\t\t\t\t`main-grid-cell-counter-${BX.Grid.Counters.Type.LEFT_ALIGNED}`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (BX.Dom.hasClass(counterContainer, leftAlignedClass))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.remove(uiCounter);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.remove(counterContainer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * BX.Grid.Rows\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Rows = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.rows = null;\n\t\tthis.headChild = null;\n\t\tthis.bodyChild = null;\n\t\tthis.footChild = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Rows.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t},\n\n\t\treset: function()\n\t\t{\n\t\t\tthis.rows = null;\n\t\t\tthis.headChild = null;\n\t\t\tthis.bodyChild = null;\n\t\t\tthis.footChild = null;\n\t\t},\n\n\t\tenableDragAndDrop: function()\n\t\t{\n\t\t\tthis.parent.arParams[\"ALLOW_ROWS_SORT\"] = true;\n\n\t\t\tif (!(this.parent.getRowsSortable() instanceof BX.Grid.RowsSortable))\n\t\t\t{\n\t\t\t\tthis.parent.rowsSortable = new BX.Grid.RowsSortable(this.parent);\n\t\t\t}\n\t\t},\n\n\t\tdisableDragAndDrop: function()\n\t\t{\n\t\t\tthis.parent.arParams[\"ALLOW_ROWS_SORT\"] = false;\n\t\t\tif (this.parent.getRowsSortable() instanceof BX.Grid.RowsSortable)\n\t\t\t{\n\t\t\t\tthis.parent.getRowsSortable().destroy();\n\t\t\t\tthis.parent.rowsSortable = null;\n\t\t\t}\n\t\t},\n\n\t\tgetFootLastChild: function()\n\t\t{\n\t\t\treturn this.getLast(this.getFootChild());\n\t\t},\n\n\t\tgetFootFirstChild: function()\n\t\t{\n\t\t\treturn this.getFirst(this.getFootChild());\n\t\t},\n\n\t\tgetBodyLastChild: function()\n\t\t{\n\t\t\treturn this.getLast(this.getBodyChild());\n\t\t},\n\n\t\tgetBodyFirstChild: function()\n\t\t{\n\t\t\treturn this.getFirst(this.getBodyChild());\n\t\t},\n\n\t\tgetHeadLastChild: function()\n\t\t{\n\t\t\treturn this.getLast(this.getHeadChild());\n\t\t},\n\n\t\tgetHeadFirstChild: function()\n\t\t{\n\t\t\treturn this.getFirst(this.getHeadChild());\n\t\t},\n\n\t\tgetEditSelectedValues: function(withTemplate)\n\t\t{\n\t\t\tvar selectedRows = this.getSelected(withTemplate);\n\t\t\tvar values = {};\n\n\t\t\tselectedRows.forEach(\n\t\t\t\tfunction(current)\n\t\t\t\t{\n\t\t\t\t\tvalues[current.getId()] = current.editGetValues();\n\t\t\t\t}\n\t\t\t);\n\n\t\t\treturn values;\n\t\t},\n\n\t\tgetSelectedIds: function(withTemplate)\n\t\t{\n\t\t\treturn this.getSelected(withTemplate).map(function(current) {\n\t\t\t\treturn current.getId();\n\t\t\t});\n\t\t},\n\n\t\tinitSelected: function()\n\t\t{\n\t\t\tvar selected = this.getSelected();\n\n\t\t\tif (BX.type.isArray(selected) && selected.length)\n\t\t\t{\n\t\t\t\tselected.forEach(function(row) {\n\t\t\t\t\trow.initSelect();\n\t\t\t\t});\n\n\t\t\t\tthis.parent.enableActionsPanel();\n\t\t\t}\n\t\t},\n\n\t\teditSelected: function()\n\t\t{\n\t\t\tthis.getSelected().forEach(function(current) {\n\t\t\t\tcurrent.edit();\n\t\t\t});\n\n\t\t\tBX.onCustomEvent(window, 'Grid::thereEditedRows', []);\n\t\t},\n\n\t\teditSelectedCancel: function(withTemplate)\n\t\t{\n\t\t\tthis.getSelected(withTemplate).forEach(function(current) {\n\t\t\t\tcurrent.editCancel();\n\t\t\t});\n\n\t\t\tBX.onCustomEvent(window, 'Grid::noEditedRows', []);\n\t\t},\n\n\t\tisSelected: function()\n\t\t{\n\t\t\treturn this.getBodyChild().some(function(current) {\n\t\t\t\treturn current.isShown() && current.isSelected();\n\t\t\t});\n\t\t},\n\n\t\tisAllSelected: function()\n\t\t{\n\t\t\treturn !this.getBodyChild()\n\t\t\t\t.filter(function(current) {\n\t\t\t\t\treturn !!current.getCheckbox();\n\t\t\t\t})\n\t\t\t\t.some(function(current) {\n\t\t\t\t\treturn !current.isSelected();\n\t\t\t\t});\n\t\t},\n\n\t\tgetParent: function()\n\t\t{\n\t\t\treturn this.parent;\n\t\t},\n\n\t\tgetCountSelected: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = this.getSelected().filter(function(row) {\n\t\t\t\t\treturn !row.isNotCount() && row.isShown();\n\t\t\t\t}).length;\n\t\t\t} catch(err) {\n\t\t\t\tresult = 0;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetCountDisplayed: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = this.getBodyChild().filter(function(row) { return row.isShown() && !row.isNotCount(); }).length;\n\t\t\t} catch(err) {\n\t\t\t\tresult = 0;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\taddRows: function(rows)\n\t\t{\n\t\t\tvar body = BX.findChild(\n\t\t\t\tthis.getParent().getTable(),\n\t\t\t\t{tag: 'TBODY'},\n\t\t\t\ttrue,\n\t\t\t\tfalse\n\t\t\t);\n\n\t\t\trows.forEach(function(current) {\n\t\t\t\tbody.appendChild(current);\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Gets all rows of table\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetRows: function()\n\t\t{\n\t\t\tvar result;\n\t\t\tvar self = this;\n\n\t\t\tif (!this.rows)\n\t\t\t{\n\t\t\t\tresult = [].slice.call(this.getParent().getTable().querySelectorAll('tr[data-id], thead > tr'));\n\n\t\t\t\tthis.rows = result.map(function(current) {\n\t\t\t\t\treturn new BX.Grid.Row(self.parent, current);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn this.rows;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets selected rows\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetSelected: function(withTemplate)\n\t\t{\n\t\t\treturn this.getBodyChild(withTemplate).filter(function(current) {\n\t\t\t\treturn current.isShown() && current.isSelected();\n\t\t\t});\n\t\t},\n\n\t\tnormalizeNode: function(node)\n\t\t{\n\t\t\tif (!BX.hasClass(node, this.getParent().settings.get('classBodyRow')))\n\t\t\t{\n\t\t\t\tnode = BX.findParent(node, {className: this.getParent().settings.get('classBodyRow')}, true, false);\n\t\t\t}\n\n\t\t\treturn node;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets BX.Grid.Row by id\n\t\t * @param {string|number} id\n\t\t * @return {?BX.Grid.Row}\n\t\t */\n\t\tgetById: function(id)\n\t\t{\n\t\t\treturn this.getBodyChild().find(function(current) {\n\t\t\t\treturn String(current.getId()) === String(id);\n\t\t\t}) || null;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets BX.Grid.Row for tr node\n\t\t * @param {HTMLTableRowElement} node\n\t\t * @return {?BX.Grid.Row}\n\t\t */\n\t\tget: function(node)\n\t\t{\n\t\t\tif (BX.Type.isDomNode(node))\n\t\t\t{\n\t\t\t\tconst rowNode = node.closest('.main-grid-row');\n\t\t\t\tif (BX.Type.isDomNode(rowNode))\n\t\t\t\t{\n\t\t\t\t\tconst rowInstance = this.getRows().find((row) => {\n\t\t\t\t\t\treturn row.getNode() === rowNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tif (rowInstance)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn rowInstance;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\t/** @static @method getLast */\n\t\tgetLast: function(array)\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = array[array.length-1];\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t/** @static @method getFirst */\n\t\tgetFirst: function(array)\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = array[0];\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetHeadChild: function()\n\t\t{\n\t\t\tthis.headChild = this.headChild || this.getRows().filter(function(current) {\n\t\t\t\t\treturn current.isHeadChild();\n\t\t\t\t});\n\n\t\t\treturn this.headChild;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets child rows of tbody\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetBodyChild: function(withTemplates)\n\t\t{\n\t\t\treturn this.getRows().filter(function(current) {\n\t\t\t\treturn current.isBodyChild() && (!current.isTemplate() || withTemplates);\n\t\t\t});\n\t\t},\n\n\t\tgetFootChild: function()\n\t\t{\n\t\t\tthis.footChild = this.footChild || this.getRows().filter(function(current) {\n\t\t\t\treturn current.isFootChild();\n\t\t\t});\n\n\t\t\treturn this.footChild;\n\t\t},\n\n\n\t\tselectAll: function()\n\t\t{\n\t\t\tthis.getRows().map(function(current) {\n\t\t\t\tcurrent.isShown() && current.select();\n\t\t\t});\n\t\t},\n\n\t\tunselectAll: function()\n\t\t{\n\t\t\tthis.getRows().map(function(current) {\n\t\t\t\tcurrent.unselect();\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Gets row by rowIndex\n\t\t * @param {number} rowIndex\n\t\t * @return {?BX.Grid.Row}\n\t\t */\n\t\tgetByIndex: function(rowIndex)\n\t\t{\n\t\t\tvar filter = this.getBodyChild()\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn item;\n\t\t\t\t})\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn item.getNode().rowIndex === rowIndex;\n\t\t\t\t});\n\n\t\t\treturn filter.length ? filter[0] : null;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets child rows\n\t\t * @param {number|string} parentId\n\t\t * @param {boolean} [recursive]\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetRowsByParentId: function(parentId, recursive)\n\t\t{\n\t\t\tvar result = [];\n\t\t\tvar self = this;\n\n\t\t\tif (!parentId)\n\t\t\t{\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tparentId = parentId.toString();\n\n\t\t\tfunction getByParentId(parentId)\n\t\t\t{\n\t\t\t\tself.getBodyChild().forEach(function(row) {\n\t\t\t\t\tif (row.getParentId() === parentId) {\n\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\trecursive && getByParentId(row.getId());\n\t\t\t\t\t}\n\t\t\t\t}, self);\n\t\t\t}\n\n\t\t\tgetByParentId(parentId);\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetRowsByGroupId: function(groupId)\n\t\t{\n\t\t\tvar result = [];\n\t\t\tvar self = this;\n\n\t\t\tif (!groupId)\n\t\t\t{\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tgroupId = groupId.toString();\n\n\t\t\tfunction getByParentId(groupId)\n\t\t\t{\n\t\t\t\tself.getBodyChild().forEach(function(row) {\n\t\t\t\t\tif (row.getGroupId() === groupId && !row.isCustom()) {\n\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t}\n\t\t\t\t}, self);\n\t\t\t}\n\n\t\t\tgetByParentId(groupId);\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetExpandedRows: function()\n\t\t{\n\t\t\treturn this.getRows().filter(function(row) {\n\t\t\t\treturn row.isShown() && row.isExpand();\n\t\t\t});\n\t\t},\n\n\t\tgetIdsExpandedRows: function()\n\t\t{\n\t\t\treturn this.getExpandedRows().map(function(row) {\n\t\t\t\treturn row.getId();\n\t\t\t});\n\t\t},\n\n\n\t\tgetIdsCollapsedGroups: function()\n\t\t{\n\t\t\treturn this.getRows().filter(function(row) {\n\t\t\t\treturn row.isCustom() && !row.isExpand();\n\t\t\t}).map(function(row) {\n\t\t\t\treturn row.getId();\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceRows: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getParent().getTable(), [\n\t\t\t\t'.main-grid-header > tr',\n\t\t\t\t'.main-grid-header + tbody > tr'\n\t\t\t].join(', '));\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceBodyChild: function()\n\t\t{\n\t\t\treturn this.getSourceRows().filter(function(current) {\n\t\t\t\treturn BX.Grid.Utils.closestParent(current).nodeName === 'TBODY';\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceHeadChild: function()\n\t\t{\n\t\t\treturn this.getSourceRows().filter(function(current) {\n\t\t\t\treturn BX.Grid.Utils.closestParent(current).nodeName === 'THEAD';\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceFootChild: function()\n\t\t{\n\t\t\treturn this.getSourceRows().filter(function(current) {\n\t\t\t\treturn BX.Grid.Utils.closestParent(current).nodeName === 'TFOOT';\n\t\t\t});\n\t\t},\n\n\t\thasEditable: function()\n\t\t{\n\t\t\treturn this.getBodyChild().some(function(current) {\n\t\t\t\treturn current.isEdit();\n\t\t\t});\n\t\t},\n\n\t\tinsertAfter: function(currentId, targetId)\n\t\t{\n\t\t\tconst currentRow = this.getById(currentId);\n\t\t\tconst targetRow = this.getById(targetId);\n\n\t\t\tif (currentRow && targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertAfter(currentRow.getNode(), targetRow.getNode());\n\t\t\t\tthis.reset();\n\t\t\t}\n\t\t},\n\n\t\tinsertBefore: function(currentId, targetId)\n\t\t{\n\t\t\tconst currentRow = this.getById(currentId);\n\t\t\tconst targetRow = this.getById(targetId);\n\n\t\t\tif (currentRow && targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertBefore(currentRow.getNode(), targetRow.getNode());\n\t\t\t\tthis.reset();\n\t\t\t}\n\t\t}\n\t};\n})();\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.RowDragEvent = function(eventName)\n\t{\n\t\tthis.allowMoveRow = true;\n\t\tthis.allowInsertBeforeTarget = true;\n\t\tthis.dragItem = null;\n\t\tthis.targetItem = null;\n\t\tthis.eventName = !!eventName ? eventName : '';\n\t\tthis.errorMessage = '';\n\t};\n\n\tBX.Grid.RowDragEvent.prototype = {\n\t\tallowMove: function() { this.allowMoveRow = true; this.errorMessage = ''; },\n\t\tallowInsertBefore: function() { this.allowInsertBeforeTarget = true; },\n\t\tdisallowMove: function(errorMessage) { this.allowMoveRow = false; this.errorMessage = errorMessage || ''; },\n\t\tdisallowInsertBefore: function() { this.allowInsertBeforeTarget = false; },\n\t\tgetDragItem: function() { return this.dragItem; },\n\t\tgetTargetItem: function() { return this.targetItem; },\n\t\tgetEventName: function() { return this.eventName; },\n\t\tsetDragItem: function(item) { return this.dragItem = item; },\n\t\tsetTargetItem: function(item) { return this.targetItem = item; },\n\t\tsetEventName: function(name) { return this.eventName = name; },\n\t\tisAllowedMove: function() { return this.allowMoveRow; },\n\t\tisAllowedInsertBefore: function() { return this.allowInsertBeforeTarget; },\n\t\tgetErrorMessage: function() { return this.errorMessage; }\n\t};\n\n\n\tBX.Grid.RowsSortable = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.list = null;\n\t\tthis.setDefaultProps();\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.RowsSortable.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.list = this.getList();\n\t\t\tthis.prepareListItems();\n\t\t\tjsDD.Enable();\n\n\t\t\tif (!this.inited)\n\t\t\t{\n\t\t\t\tthis.inited = true;\n\t\t\t\tthis.onscrollDebounceHandler = BX.debounce(this._onWindowScroll, 300, this);\n\n\t\t\t\tif (!this.parent.getParam('ALLOW_ROWS_SORT_IN_EDIT_MODE', false))\n\t\t\t\t{\n\t\t\t\t\tBX.addCustomEvent('Grid::thereEditedRows', BX.proxy(this.disable, this));\n\t\t\t\t\tBX.addCustomEvent('Grid::noEditedRows', BX.proxy(this.enable, this));\n\t\t\t\t}\n\n\t\t\t\tdocument.addEventListener('scroll', this.onscrollDebounceHandler, BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\t}\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tif (!this.parent.getParam('ALLOW_ROWS_SORT_IN_EDIT_MODE', false))\n\t\t\t{\n\t\t\t\tBX.removeCustomEvent('Grid::thereEditedRows', BX.proxy(this.disable, this));\n\t\t\t\tBX.removeCustomEvent('Grid::noEditedRows', BX.proxy(this.enable, this));\n\t\t\t}\n\n\t\t\tdocument.removeEventListener('scroll', this.onscrollDebounceHandler, BX.Grid.Utils.listenerParams({passive: true}));\n\t\t\tthis.unregisterObjects();\n\t\t},\n\n\t\t_onWindowScroll: function()\n\t\t{\n\t\t\tthis.windowScrollTop = BX.scrollTop(window);\n\t\t\tthis.rowsRectList = null;\n\t\t},\n\n\t\tdisable: function()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t},\n\n\t\tenable: function()\n\t\t{\n\t\t\tthis.reinit();\n\t\t},\n\n\t\treinit: function()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t\tthis.setDefaultProps();\n\t\t\tthis.init(this.parent);\n\t\t},\n\n\t\tgetList: function()\n\t\t{\n\t\t\treturn this.parent.getRows().getSourceBodyChild();\n\t\t},\n\n\t\tunregisterObjects: function()\n\t\t{\n\t\t\tthis.list.forEach(this.unregister, this);\n\t\t},\n\n\t\tprepareListItems: function()\n\t\t{\n\t\t\tthis.list.forEach(this.register, this);\n\t\t},\n\n\t\tregister: function(row)\n\t\t{\n\t\t\tvar Rows = this.parent.getRows();\n\t\t\tvar rowInstance = Rows.get(row);\n\t\t\tif (rowInstance && rowInstance.isDraggable())\n\t\t\t{\n\t\t\t\trow.onbxdragstart = BX.delegate(this._onDragStart, this);\n\t\t\t\trow.onbxdrag = BX.delegate(this._onDrag, this);\n\t\t\t\trow.onbxdragstop = BX.delegate(this._onDragEnd, this);\n\t\t\t\tjsDD.registerObject(row);\n\t\t\t}\n\t\t},\n\n\t\tunregister: function(row)\n\t\t{\n\t\t\tjsDD.unregisterObject(row);\n\t\t},\n\n\t\tgetIndex: function(item)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getIndex(this.list, item);\n\t\t},\n\n\t\tcalcOffset: function()\n\t\t{\n\t\t\tvar offset = this.dragRect.height;\n\n\t\t\tif (this.additionalDragItems.length)\n\t\t\t{\n\t\t\t\tthis.additionalDragItems.forEach(function(row) {\n\t\t\t\t\toffset += row.clientHeight;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn offset;\n\t\t},\n\n\t\tgetTheadCells: function(sourceCells)\n\t\t{\n\t\t\treturn [].map.call(sourceCells, function(cell, index) {\n\t\t\t\treturn {\n\t\t\t\t\tblock: '',\n\t\t\t\t\ttag: 'th',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tstyle: 'width: '+BX.width(sourceCells[index])+'px;'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tcreateFake: function()\n\t\t{\n\t\t\tvar content = [];\n\t\t\tthis.cloneDragItem = BX.clone(this.dragItem);\n\t\t\tthis.cloneDragAdditionalDragItems = [];\n\t\t\tthis.cloneDragAdditionalDragItemRows = [];\n\n\t\t\tvar theadCellsDecl = this.getTheadCells(this.dragItem.cells);\n\t\t\tcontent.push(this.cloneDragItem);\n\n\t\t\tthis.additionalDragItems.forEach(function(row) {\n\t\t\t\tvar cloneRow = BX.clone(row);\n\t\t\t\tcontent.push(cloneRow);\n\t\t\t\tthis.cloneDragAdditionalDragItems.push(cloneRow);\n\t\t\t\tthis.cloneDragAdditionalDragItemRows.push(new BX.Grid.Row(this.parent, cloneRow));\n\t\t\t}, this);\n\n\t\t\tvar tableWidth = BX.width(this.parent.getTable());\n\n\t\t\tthis.fake = BX.decl({\n\t\t\t\tblock: 'main-grid-fake-container',\n\t\t\t\tattrs: {\n\t\t\t\t\tstyle: 'position: absolute; top: '+this.getDragStartRect().top+'px; width: ' + tableWidth + 'px'\n\t\t\t\t},\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-grid-table',\n\t\t\t\t\tmix: 'main-grid-table-fake',\n\t\t\t\t\ttag: 'table',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tstyle: 'width: ' + tableWidth + 'px'\n\t\t\t\t\t},\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock: 'main-grid-header',\n\t\t\t\t\t\t\ttag: 'thead',\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tblock: 'main-grid-row-head',\n\t\t\t\t\t\t\t\ttag: 'tr',\n\t\t\t\t\t\t\t\tcontent: theadCellsDecl\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock: '',\n\t\t\t\t\t\t\ttag: 'tbody',\n\t\t\t\t\t\t\tcontent: content\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tBX.insertAfter(this.fake, this.parent.getTable());\n\n\t\t\tthis.cloneDragItem = new BX.Grid.Row(this.parent, this.cloneDragItem);\n\t\t\treturn this.fake;\n\t\t},\n\n\t\tgetDragStartRect: function()\n\t\t{\n\t\t\treturn BX.pos(this.dragItem, this.parent.getTable());\n\t\t},\n\n\t\t_onDragStart: function()\n\t\t{\n\t\t\tthis.moved = false;\n\t\t\tthis.dragItem = jsDD.current_node;\n\t\t\tthis.targetItem = this.dragItem;\n\t\t\tthis.additionalDragItems = this.getAdditionalDragItems(this.dragItem);\n\t\t\tthis.dragIndex = this.getIndex(this.dragItem);\n\t\t\tthis.dragRect = this.getRowRect(this.dragItem, this.dragIndex);\n\t\t\tthis.offset = this.calcOffset();\n\t\t\tthis.dragStartOffset = (jsDD.start_y - this.dragRect.top);\n\t\t\tthis.dragEvent = new BX.Grid.RowDragEvent();\n\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragStart');\n\t\t\tthis.dragEvent.setDragItem(this.dragItem);\n\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\t\t\tthis.dragEvent.allowInsertBefore();\n\n\t\t\tvar dragRow = this.parent.getRows().get(this.dragItem);\n\t\t\tthis.startDragDepth = dragRow.getDepth();\n\t\t\tthis.startDragParentId = dragRow.getParentId();\n\n\t\t\tthis.createFake();\n\n\t\t\tBX.addClass(this.parent.getContainer(), this.parent.settings.get('classOnDrag'));\n\t\t\tBX.addClass(this.dragItem, this.parent.settings.get('classDragActive'));\n\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragStart', [this.dragEvent, this.parent]);\n\t\t},\n\n\t\tgetAdditionalDragItems: function(dragItem)\n\t\t{\n\t\t\tvar Rows = this.parent.getRows();\n\t\t\treturn Rows.getRowsByParentId(Rows.get(dragItem).getId(), true).map(function(row) {\n\t\t\t\treturn row.getNode();\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * @param {?HTMLElement} row\n\t\t * @param {int} offset\n\t\t * @param {?int} [transition] css transition-duration in ms\n\t\t */\n\t\tmoveRow: function(row, offset, transition)\n\t\t{\n\t\t\tif (!!row)\n\t\t\t{\n\t\t\t\tvar transitionDuration = BX.type.isNumber(transition) ? transition : 300;\n\t\t\t\trow.style.transition = transitionDuration + 'ms';\n\t\t\t\trow.style.transform = 'translate3d(0px, '+offset+'px, 0px)';\n\t\t\t}\n\t\t},\n\n\t\tgetDragOffset: function()\n\t\t{\n\t\t\treturn jsDD.y - this.dragRect.top - this.dragStartOffset;\n\t\t},\n\n\t\tgetWindowScrollTop: function()\n\t\t{\n\t\t\tif (this.windowScrollTop === null)\n\t\t\t{\n\t\t\t\tthis.windowScrollTop = BX.scrollTop(window);\n\t\t\t}\n\n\t\t\treturn this.windowScrollTop;\n\t\t},\n\n\t\tgetSortOffset: function()\n\t\t{\n\t\t\treturn jsDD.y;\n\t\t},\n\n\t\tgetRowRect: function(row, index)\n\t\t{\n\t\t\tif (!this.rowsRectList)\n\t\t\t{\n\t\t\t\tthis.rowsRectList = {};\n\n\t\t\t\tthis.list.forEach(function(current, i) {\n\t\t\t\t\tthis.rowsRectList[i] = current.getBoundingClientRect();\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.rowsRectList[index];\n\t\t},\n\n\t\tgetRowCenter: function(row, index)\n\t\t{\n\t\t\tvar rect = this.getRowRect(row, index);\n\t\t\treturn rect.top + this.getWindowScrollTop() + (rect.height / 2);\n\t\t},\n\n\t\tisDragToBottom: function(row, index)\n\t\t{\n\t\t\tvar rowCenter = this.getRowCenter(row, index);\n\t\t\tvar sortOffset = this.getSortOffset();\n\t\t\treturn index > this.dragIndex && rowCenter < sortOffset;\n\t\t},\n\n\t\tisMovedToBottom: function(row)\n\t\t{\n\t\t\treturn row.style.transform === 'translate3d(0px, '+(-this.offset)+'px, 0px)';\n\t\t},\n\n\t\tisDragToTop: function(row, index)\n\t\t{\n\t\t\tvar rowCenter = this.getRowCenter(row, index);\n\t\t\tvar sortOffset = this.getSortOffset();\n\t\t\treturn index < this.dragIndex && rowCenter > sortOffset;\n\t\t},\n\n\t\tisMovedToTop: function(row)\n\t\t{\n\t\t\treturn row.style.transform === 'translate3d(0px, '+this.offset+'px, 0px)';\n\t\t},\n\n\t\tisDragToBack: function(row, index)\n\t\t{\n\t\t\tvar rowCenter = this.getRowCenter(row, index);\n\t\t\tvar dragIndex = this.dragIndex;\n\t\t\tvar y = jsDD.y;\n\n\t\t\treturn (index > dragIndex && y < rowCenter) || (index < dragIndex && y > rowCenter);\n\t\t},\n\n\t\tisMoved: function(row)\n\t\t{\n\t\t\treturn (row.style.transform !== 'translate3d(0px, 0px, 0px)' && row.style.transform !== '');\n\t\t},\n\n\t\t_onDrag: function()\n\t\t{\n\t\t\tvar dragTransitionDuration = 0;\n\t\t\tvar defaultOffset = 0;\n\n\t\t\tthis.moveRow(this.dragItem, this.getDragOffset(), dragTransitionDuration);\n\t\t\tthis.moveRow(this.fake, this.getDragOffset(), dragTransitionDuration);\n\t\t\tBX.Grid.Utils.styleForEach(this.additionalDragItems, {\n\t\t\t\t'transition': dragTransitionDuration + 'ms',\n\t\t\t\t'transform': 'translate3d(0px, '+(this.getDragOffset())+'px, 0px)'\n\t\t\t});\n\n\t\t\tthis.list.forEach(function(current, index) {\n\t\t\t\tif (!!current && current !== this.dragItem && this.additionalDragItems.indexOf(current) === -1)\n\t\t\t\t{\n\t\t\t\t\tif (this.isDragToTop(current, index) && !this.isMovedToTop(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetItem = current;\n\t\t\t\t\t\tthis.moveRow(current, this.offset);\n\t\t\t\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragMove');\n\t\t\t\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragMove', [this.dragEvent, this.parent]);\n\t\t\t\t\t\tthis.checkError(this.dragEvent);\n\t\t\t\t\t\tthis.updateProperties(this.dragItem, this.targetItem);\n\t\t\t\t\t\tthis.isDragetToTop = true;\n\t\t\t\t\t\tthis.moved = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToBottom(current, index) && !this.isMovedToBottom(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetItem = this.findNextVisible(this.list, index);\n\t\t\t\t\t\tthis.moveRow(current, -this.offset);\n\t\t\t\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragMove');\n\t\t\t\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragMove', [this.dragEvent, this.parent]);\n\t\t\t\t\t\tthis.checkError(this.dragEvent);\n\t\t\t\t\t\tthis.updateProperties(this.dragItem, this.targetItem);\n\t\t\t\t\t\tthis.isDragetToTop = false;\n\n\t\t\t\t\t\tif (this.targetItem)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.moved = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToBack(current, index) && this.isMoved(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moveRow(current, defaultOffset);\n\t\t\t\t\t\tthis.targetItem = current;\n\n\t\t\t\t\t\tif (this.isDragetToTop)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.targetItem = this.findNextVisible(this.list, index);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.moved = true;\n\n\t\t\t\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragMove');\n\t\t\t\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragMove', [this.dragEvent, this.parent]);\n\t\t\t\t\t\tthis.checkError(this.dragEvent);\n\t\t\t\t\t\tthis.updateProperties(this.dragItem, this.targetItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\tcreateError: function(target, message)\n\t\t{\n\t\t\tvar error = BX.decl({\n\t\t\t\tblock: 'main-grid-error',\n\t\t\t\tcontent: !!message ? message : ''\n\t\t\t});\n\n\t\t\t!!target && target.appendChild(error);\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tBX.addClass(error, 'main-grid-error-show');\n\t\t\t}, 0);\n\n\t\t\treturn error;\n\t\t},\n\n\t\tcheckError: function(event)\n\t\t{\n\t\t\tif (!event.isAllowedMove() && !this.error)\n\t\t\t{\n\t\t\t\tthis.error = this.createError(this.fake, event.getErrorMessage());\n\t\t\t}\n\n\t\t\tif (event.isAllowedMove() && this.error)\n\t\t\t{\n\t\t\t\tBX.remove(this.error);\n\t\t\t\tthis.error = null;\n\t\t\t}\n\t\t},\n\n\t\tfindNextVisible: function(list, index)\n\t\t{\n\t\t\tvar result = null;\n\t\t\tvar Rows = this.parent.getRows();\n\n\t\t\tlist.forEach(function(item, currentIndex) {\n\t\t\t\tif (!result && currentIndex > index)\n\t\t\t\t{\n\t\t\t\t\tvar row = Rows.get(item);\n\t\t\t\t\tif (row && row.isShown())\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = item;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\n\t\t/**\n\t\t * Updates row properties\n\t\t * @param {?HTMLTableRowElement} dragItem\n\t\t * @param {?HTMLTableRowElement} targetItem\n\t\t */\n\t\tupdateProperties: function(dragItem, targetItem)\n\t\t{\n\t\t\tvar Rows = this.parent.getRows();\n\t\t\tvar dragRow = Rows.get(dragItem);\n\t\t\tvar depth = 0;\n\t\t\tvar parentId = 0;\n\n\t\t\tif (!!targetItem)\n\t\t\t{\n\t\t\t\tvar targetRow = Rows.get(targetItem);\n\t\t\t\tdepth = targetRow.getDepth();\n\t\t\t\tparentId = targetRow.getParentId();\n\t\t\t}\n\n\t\t\tdragRow.setDepth(depth);\n\t\t\tdragRow.setParentId(parentId);\n\n\t\t\tthis.cloneDragItem.setDepth(depth);\n\t\t\tthis.cloneDragAdditionalDragItemRows.forEach(function(row, index) {\n\t\t\t\trow.setDepth(BX.data(this.additionalDragItems[index], 'depth'));\n\t\t\t}, this);\n\t\t},\n\n\n\t\tresetDragProperties: function()\n\t\t{\n\t\t\tvar dragRow = this.parent.getRows().get(this.dragItem);\n\t\t\tdragRow.setDepth(this.startDragDepth);\n\t\t\tdragRow.setParentId(this.startDragParentId);\n\t\t},\n\n\t\t_onDragOver: function() {},\n\n\t\t_onDragLeave: function() {},\n\n\t\t_onDragEnd: function()\n\t\t{\n\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragEnd', [this.dragEvent, this.parent]);\n\n\t\t\tBX.removeClass(this.parent.getContainer(), this.parent.settings.get('classOnDrag'));\n\t\t\tBX.removeClass(this.dragItem, this.parent.settings.get('classDragActive'));\n\n\t\t\tBX.Grid.Utils.styleForEach(this.list, {'transition': '', 'transform': ''});\n\n\t\t\tif (this.dragEvent.isAllowedMove())\n\t\t\t{\n\t\t\t\tthis.sortRows(this.dragItem, this.targetItem);\n\t\t\t\tthis.sortAdditionalDragItems(this.dragItem, this.additionalDragItems);\n\n\t\t\t\tthis.list = this.getList();\n\t\t\t\tthis.parent.getRows().reset();\n\n\t\t\t\tvar dragItem = this.parent.getRows().get(this.dragItem);\n\t\t\t\tvar ids = this.parent.getRows().getBodyChild().map(function(row) {\n\t\t\t\t\treturn row.getId();\n\t\t\t\t});\n\n\t\t\t\tif (this.parent.getParam('ALLOW_ROWS_SORT_INSTANT_SAVE', true))\n\t\t\t\t{\n\t\t\t\t\tthis.saveRowsSort(ids);\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowMoved', [ids, dragItem, this.parent]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.resetDragProperties();\n\t\t\t}\n\n\t\t\tBX.remove(this.fake);\n\n\t\t\tthis.setDefaultProps();\n\t\t},\n\n\t\tsortAdditionalDragItems: function(dragItem, additional)\n\t\t{\n\t\t\tadditional.reduce(function(prev, current) {\n\t\t\t\t!!current && BX.insertAfter(current, prev);\n\t\t\t\treturn current;\n\t\t\t}, dragItem);\n\t\t},\n\n\t\tsortRows: function(current, target)\n\t\t{\n\t\t\tif (!!target)\n\t\t\t{\n\t\t\t\ttarget.parentNode.insertBefore(current, target);\n\t\t\t}\n\t\t\telse if (this.moved)\n\t\t\t{\n\t\t\t\tcurrent.parentNode.appendChild(current);\n\t\t\t}\n\t\t},\n\n\t\tsaveRowsSort: function(rows)\n\t\t{\n\t\t\tvar data = {\n\t\t\t\tids: rows,\n\t\t\t\taction: this.parent.getUserOptions().getAction('GRID_SAVE_ROWS_SORT')\n\t\t\t};\n\n\t\t\tthis.parent.getData().request(null, 'POST', data);\n\t\t},\n\n\t\tsetDefaultProps: function()\n\t\t{\n\t\t\tthis.moved = false;\n\t\t\tthis.dragItem = null;\n\t\t\tthis.targetItem = null;\n\t\t\tthis.dragRect = null;\n\t\t\tthis.dragIndex = null;\n\t\t\tthis.offset = null;\n\t\t\tthis.realX = null;\n\t\t\tthis.realY = null;\n\t\t\tthis.dragStartOffset = null;\n\t\t\tthis.windowScrollTop = null;\n\t\t\tthis.rowsRectList = null;\n\t\t\tthis.error = false;\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.Settings\n\t * @constructor\n\t */\n\tBX.Grid.Settings = function()\n\t{\n\t\tthis.settings = {};\n\t\tthis.defaultSettings = {\n\t\t\tclassContainer: 'main-grid',\n\t\t\tclassWrapper: 'main-grid-wrapper',\n\t\t\tclassTable: 'main-grid-table',\n\t\t\tclassScrollContainer: 'main-grid-container',\n\t\t\tclassFadeContainer: 'main-grid-fade',\n\t\t\tclassFadeContainerRight: 'main-grid-fade-right',\n\t\t\tclassFadeContainerLeft: 'main-grid-fade-left',\n\t\t\tclassNavPanel: 'main-grid-nav-panel',\n\t\t\tclassActionPanel: 'main-grid-action-panel',\n\t\t\tclassCursor: 'main-grid-cursor',\n\t\t\tclassRowCustom: 'main-grid-row-custom',\n\t\t\tclassMoreButton: 'main-grid-more-btn',\n\t\t\tclassRow: 'main-grid-row',\n\t\t\tclassHeadRow: 'main-grid-row-head',\n\t\t\tclassBodyRow: 'main-grid-row-body',\n\t\t\tclassFootRow: 'main-grid-row-foot',\n\t\t\tclassDataRows: 'main-grid-row-data',\n\t\t\tclassPanels: 'main-grid-bottom-panels',\n\t\t\tclassCellHeadContainer: 'main-grid-cell-head-container',\n\t\t\tclassCellHeadOndrag: 'main-grid-cell-head-ondrag',\n\t\t\tclassEmptyRows: 'main-grid-row-empty',\n\t\t\tclassEmptyBlock: 'main-grid-empty-block',\n\t\t\tclassCheckAllCheckboxes: 'main-grid-check-all',\n\t\t\tclassCheckedRow: 'main-grid-row-checked',\n\t\t\tclassRowCheckbox: 'main-grid-row-checkbox',\n\t\t\tclassPagination: 'main-grid-panel-cell-pagination',\n\t\t\tclassActionCol: 'main-grid-cell-action',\n\t\t\tclassCounterDisplayed: 'main-grid-counter-displayed',\n\t\t\tclassCounterSelected: 'main-grid-counter-selected',\n\t\t\tclassCounterTotal: 'main-grid-panel-total',\n\t\t\tclassTableFade: 'main-grid-table-fade',\n\t\t\tclassDragActive: 'main-grid-on-row-drag',\n\t\t\tclassResizeButton: 'main-grid-resize-button',\n\t\t\tclassOnDrag: 'main-grid-ondrag',\n\t\t\tclassDisableDrag: 'main-grid-row-drag-disabled',\n\t\t\tclassPanelCellContent: 'main-grid-panel-content',\n\t\t\tclassCollapseButton: 'main-grid-plus-button',\n\t\t\tclassRowStateLoad: 'main-grid-load-row',\n\t\t\tclassRowStateExpand: 'main-grid-row-expand',\n\t\t\tclassHeaderSortable: 'main-grid-col-sortable',\n\t\t\tclassHeaderNoSortable: 'main-grid-col-no-sortable',\n\t\t\tclassCellStatic: 'main-grid-cell-static',\n\t\t\tclassHeadCell: 'main-grid-cell-head',\n\t\t\tclassPageSize: 'main-grid-panel-select-pagesize',\n\t\t\tclassGroupEditButton: 'main-grid-control-panel-action-edit',\n\t\t\tclassGroupDeleteButton: 'main-grid-control-panel-action-remove',\n\t\t\tclassGroupActionsDisabled: 'main-grid-control-panel-action-icon-disable',\n\t\t\tclassPanelButton: 'main-grid-buttons',\n\t\t\tclassPanelApplyButton: 'main-grid-control-panel-apply-button',\n\t\t\tclassPanelCheckbox: 'main-grid-panel-checkbox',\n\t\t\tclassEditor: 'main-grid-editor',\n\t\t\tclassEditorContainer: 'main-grid-editor-container',\n\t\t\tclassEditorText: 'main-grid-editor-text',\n\t\t\tclassEditorDate: 'main-grid-editor-date',\n\t\t\tclassEditorNumber: 'main-grid-editor-number',\n\t\t\tclassEditorRange: 'main-grid-editor-range',\n\t\t\tclassEditorCheckbox: 'main-grid-editor-checkbox',\n\t\t\tclassEditorTextarea: 'main-grid-editor-textarea',\n\t\t\tclassEditorCustom: 'main-grid-editor-custom',\n\t\t\tclassEditorMoney: 'main-grid-editor-money',\n\t\t\tclassCellContainer: 'main-grid-cell-content',\n\t\t\tclassEditorOutput: 'main-grid-editor-output',\n\t\t\tclassSettingsWindow: 'main-grid-settings-window',\n\t\t\tclassSettingsWindowColumn: 'main-grid-settings-window-list-item',\n\t\t\tclassSettingsWindowColumnLabel: 'main-grid-settings-window-list-item-label',\n\t\t\tclassSettingsWindowColumnEditState: 'main-grid-settings-window-list-item-edit',\n\t\t\tclassSettingsWindowColumnEditInput: 'main-grid-settings-window-list-item-edit-input',\n\t\t\tclassSettingsWindowColumnEditButton: 'main-grid-settings-window-list-item-edit-button',\n\t\t\tclassSettingsWindowColumnCheckbox: 'main-grid-settings-window-list-item-checkbox',\n\t\t\tclassSettingsWindowShow: 'main-grid-settings-window-show',\n\t\t\tclassSettingsWindowSelectAll: 'main-grid-settings-window-select-all',\n\t\t\tclassSettingsWindowUnselectAll: 'main-grid-settings-window-unselect-all',\n\t\t\tclassSettingsWindowSearchSectionsWrapper: 'main-grid-settings-window-search-section-wrapper',\n\t\t\tclassSettingsWindowSearchActiveSectionIcon: 'main-grid-settings-window-search-section-item-icon-active',\n\t\t\tclassSettingsWindowSearchSectionInput: 'main-grid-settings-window-search-section-input',\n\t\t\tclassSettingsWindowSearchSectionItemHidden: 'main-grid-settings-window-list-item-hidden',\n\t\t\tclassSettingsWindowSearchSectionItemVisible: 'main-grid-settings-window-list-item-visible',\n\t\t\tclassSettingsButton: 'main-grid-interface-settings-icon',\n\t\t\tclassSettingsButtonActive: 'main-grid-interface-settings-icon-active',\n\t\t\tclassSettingsWindowClose: 'main-grid-settings-window-actions-item-close',\n\t\t\tclassSettingsWindowReset: 'main-grid-settings-window-actions-item-reset',\n\t\t\tclassSettingsWindowColumnChecked: 'main-grid-settings-window-list-item-checked',\n\t\t\tclassShowAnimation: 'main-grid-show-popup-animation',\n\t\t\tclassCloseAnimation: 'main-grid-close-popup-animation',\n\t\t\tclassLoader: 'main-grid-loader-container',\n\t\t\tclassLoaderShow: 'main-grid-show-loader',\n\t\t\tclassLoaderHide: 'main-grid-hide-loader',\n\t\t\tclassRowError: 'main-grid-error',\n\t\t\tloaderHideAnimationName: 'hideLoader',\n\t\t\tclassHide: 'main-grid-hide',\n\t\t\tclassEar: 'main-grid-ear',\n\t\t\tclassEarLeft: 'main-grid-ear-left',\n\t\t\tclassEarRight: 'main-grid-ear-right',\n\t\t\tclassNotCount: 'main-grid-not-count',\n\t\t\tclassCounter: 'main-grid-panel-counter',\n\t\t\tclassForAllCounterEnabled: 'main-grid-panel-counter-for-all-enable',\n\t\t\tclassLoad: 'load',\n\t\t\tclassRowActionButton: 'main-grid-row-action-button',\n\t\t\tclassDropdown: 'main-dropdown',\n\t\t\tclassPanelControl: 'main-grid-panel-control',\n\t\t\tclassPanelControlContainer: 'main-grid-panel-control-container',\n\t\t\tclassForAllCheckbox: 'main-grid-for-all-checkbox',\n\t\t\tclassDisable: 'main-grid-disable',\n\t\t\tdataActionsKey: 'actions',\n\t\t\tupdateActionMore: 'more',\n\t\t\tclassShow: 'show',\n\t\t\tclassGridShow: 'main-grid-show',\n\t\t\tupdateActionPagination: 'pagination',\n\t\t\tupdateActionSort: 'sort',\n\t\t\tajaxIdDataProp: 'ajaxid',\n\t\t\tpageSizeId: 'grid_page_size',\n\t\t\tsortableRows: true,\n\t\t\tsortableColumns: true,\n\t\t\tanimationDuration: 300\n\t\t};\n\t\tthis.prepare();\n\t};\n\n\n\tBX.Grid.Settings.prototype = {\n\t\tprepare: function()\n\t\t{\n\t\t\tthis.settings = this.defaultSettings;\n\t\t},\n\n\t\tgetDefault: function()\n\t\t{\n\t\t\treturn this.defaultSettings;\n\t\t},\n\n\t\tget: function(name)\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = (this.getDefault())[name];\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetList: function()\n\t\t{\n\t\t\treturn this.getDefault();\n\t\t}\n\t};\n})();\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.SettingsWindow = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.popupItems = null;\n\t\tthis.items = null;\n\t\tthis.popup = null;\n\t\tthis.sourceContent = null;\n\t\tthis.applyButton = null;\n\t\tthis.resetButton = null;\n\t\tthis.cancelButton = null;\n\t\tthis.filterSections = null;\n\t\tthis.filterSectionsSearchInput = null;\n\t\tthis.init(parent);\n\t\tBX.onCustomEvent(window, 'BX.Grid.SettingsWindow:init', [this]);\n\t};\n\n\n\tBX.Grid.SettingsWindow.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tBX.bind(this.parent.getContainer(), 'click', BX.proxy(this._onContainerClick, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::columnMoved', BX.proxy(this._onColumnMoved, this));\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tBX.unbind(this.parent.getContainer(), 'click', BX.proxy(this._onContainerClick, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::columnMoved', BX.proxy(this._onColumnMoved, this));\n\t\t\tthis.getPopup().close();\n\t\t},\n\n\n\t\t/**\n\t\t * Gets select all button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetSelectAllButton: function()\n\t\t{\n\t\t\tif (!this.selectAllButton)\n\t\t\t{\n\t\t\t\tthis.selectAllButton = BX.Grid.Utils.getByClass(\n\t\t\t\t\tthis.getPopup().contentContainer,\n\t\t\t\t\tthis.parent.settings.get('classSettingsWindowSelectAll'),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.selectAllButton;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets unselect all button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetUnselectAllButton: function()\n\t\t{\n\t\t\tif (!this.unselectAllButton)\n\t\t\t{\n\t\t\t\tthis.unselectAllButton = BX.Grid.Utils.getByClass(\n\t\t\t\t\tthis.getPopup().contentContainer,\n\t\t\t\t\tthis.parent.settings.get('classSettingsWindowUnselectAll'),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.unselectAllButton;\n\t\t},\n\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\treset: function()\n\t\t{\n\t\t\tthis.popupItems = null;\n\t\t\tthis.allColumns = null;\n\t\t\tthis.items = null;\n\t\t},\n\n\n\t\t_onContainerClick: function(event)\n\t\t{\n\t\t\tif (BX.hasClass(event.target, this.parent.settings.get('classSettingsButton')))\n\t\t\t{\n\t\t\t\tthis._onSettingsButtonClick(event);\n\t\t\t}\n\t\t},\n\n\t\t_onSettingsButtonClick: function()\n\t\t{\n\t\t\tBX.onCustomEvent(window, 'BX.Grid.SettingsWindow:show', [this]);\n\t\t\tthis.getPopup().show();\n\t\t},\n\n\n\t\tfetchColumns: function()\n\t\t{\n\t\t\tvar promise = new BX.Promise();\n\n\t\t\tBX.ajax({\n\t\t\t\turl: this.parent.getParam(\"LAZY_LOAD\")[\"GET_LIST\"],\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tdataType: \"json\",\n\t\t\t\tonsuccess: promise.fulfill.bind(promise)\n\t\t\t});\n\n\t\t\treturn promise;\n\t\t},\n\n\n\t\tprepareColumnOptions: function(options)\n\t\t{\n\t\t\tvar customNames = this.parent.getUserOptions().getCurrentOptions().custom_names;\n\n\t\t\tif (BX.type.isPlainObject(options))\n\t\t\t{\n\t\t\t\tif (BX.type.isPlainObject(customNames))\n\t\t\t\t{\n\t\t\t\t\tif (options.id in customNames)\n\t\t\t\t\t{\n\t\t\t\t\t\toptions.name = customNames[options.id];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.parent.getColumnHeaderCellByName(options.id))\n\t\t\t\t{\n\t\t\t\t\toptions.selected = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn options;\n\t\t},\n\n\n\t\t/**\n\t\t * Creates column element\n\t\t * @param {{id: string, name: string}} options\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tcreateColumnElement: function(options)\n\t\t{\n\t\t\tvar html = \"<div data-name=\\\"\"+options.id+\"\\\" class=\\\"main-grid-settings-window-list-item\\\">\" +\n\t\t\t\t\"<input id=\\\"\"+options.id+\"-checkbox\\\" type=\\\"checkbox\\\" class=\\\"main-grid-settings-window-list-item-checkbox\\\"\"+(options.selected ? \" checked\" : \"\")+\">\" +\n\t\t\t\t\"<label for=\\\"\"+options.id+\"-checkbox\\\" class=\\\"main-grid-settings-window-list-item-label\\\">\"+options.name+\"</label>\" +\n\t\t\t\t\"<span class=\\\"main-grid-settings-window-list-item-edit-button\\\"></span>\" +\n\t\t\t\"</div>\";\n\n\t\t\treturn BX.create(\"div\", {html: html}).firstElementChild;\n\t\t},\n\n\n\t\tuseLazyLoadColumns: function()\n\t\t{\n\t\t\treturn !!this.parent.getParam(\"LAZY_LOAD\");\n\t\t},\n\n\n\t\t/**\n\t\t * @private\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetSourceContent: function()\n\t\t{\n\t\t\tif (!this.sourceContent)\n\t\t\t{\n\t\t\t\tthis.sourceContent = BX.Grid.Utils.getByClass(\n\t\t\t\t\tthis.parent.getContainer(),\n\t\t\t\t\tthis.parent.settings.get('classSettingsWindow'),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\n\t\t\t\tif (this.useLazyLoadColumns())\n\t\t\t\t{\n\t\t\t\t\t// Clear columns list\n\t\t\t\t\tthis.contentList = this.sourceContent.querySelector(\".main-grid-settings-window-list\");\n\t\t\t\t\tthis.contentList.innerHTML = \"\";\n\n\t\t\t\t\t// Make and show loader\n\t\t\t\t\tvar loader = new BX.Loader({\n\t\t\t\t\t\ttarget: this.contentList\n\t\t\t\t\t});\n\n\t\t\t\t\tloader.show();\n\n\t\t\t\t\t// Fetch all columns list\n\t\t\t\t\tthis.fetchColumns()\n\t\t\t\t\t\t// Make list items\n\t\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\t\tresponse.forEach(function(columnOptions) {\n\t\t\t\t\t\t\t\tcolumnOptions = this.prepareColumnOptions(columnOptions);\n\t\t\t\t\t\t\t\tthis.contentList.appendChild(this.createColumnElement(columnOptions));\n\t\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\t\t// Remove loader\n\t\t\t\t\t\t\tloader.hide().then(function() {\n\t\t\t\t\t\t\t\tloader.destroy();\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Reset cached items\n\t\t\t\t\t\t\tthis.reset();\n\n\t\t\t\t\t\t\t// Init new item\n\t\t\t\t\t\t\tthis.getItems().forEach(function(item) {\n\t\t\t\t\t\t\t\tBX.bind(item.getNode(), 'click', BX.delegate(this.onItemClick, this));\n\t\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\t\tthis.fixedFooter = BX.create(\"div\", {\n\t\t\t\t\t\t\t\tprops: {className: \"main-grid-popup-window-buttons-wrapper\"},\n\t\t\t\t\t\t\t\tchildren: [this.sourceContent.querySelector(\".popup-window-buttons\")]\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\trequestAnimationFrame(function() {\n\t\t\t\t\t\t\t\tthis.popup.popupContainer.appendChild(this.fixedFooter);\n\t\t\t\t\t\t\t\tthis.fixedFooter.style.width = this.popup.popupContainer.clientWidth + \"px\";\n\t\t\t\t\t\t\t}.bind(this));\n\t\t\t\t\t\t}.bind(this));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.sourceContent;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets popup items of columns\n\t\t * @return {?HTMLElement[]}\n\t\t */\n\t\tgetPopupItems: function()\n\t\t{\n\t\t\tvar popupContainer;\n\n\t\t\tif (!this.popupItems)\n\t\t\t{\n\t\t\t\tpopupContainer = this.getPopup().contentContainer;\n\t\t\t\tthis.popupItems = BX.Grid.Utils.getByClass(popupContainer, this.parent.settings.get('classSettingsWindowColumn'));\n\t\t\t}\n\n\t\t\treturn this.popupItems;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets selected columns ids\n\t\t * @return {string[]}\n\t\t */\n\t\tgetSelectedColumns: function()\n\t\t{\n\t\t\tvar columns = [];\n\n\t\t\tthis.getItems().forEach(function(column) {\n\t\t\t\tcolumn.isSelected() && columns.push(column.getId());\n\t\t\t});\n\n\t\t\treturn columns;\n\t\t},\n\n\n\t\t/**\n\t\t * Restores columns to default state\n\t\t */\n\t\trestoreColumns: function()\n\t\t{\n\t\t\tthis.getItems().forEach(function(column) {\n\t\t\t\tcolumn.restore();\n\t\t\t});\n\n\t\t\tthis.sortItems();\n\t\t\tthis.reset();\n\t\t},\n\n\n\t\t/**\n\t\t * Restores columns to saved state\n\t\t */\n\t\trestoreLastColumns: function()\n\t\t{\n\t\t\tthis.getItems().forEach(function(current) {\n\t\t\t\tcurrent.restoreState();\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Updates columns state\n\t\t */\n\t\tupdateColumnsState: function()\n\t\t{\n\t\t\tthis.getItems().forEach(function(current) {\n\t\t\t\tcurrent.updateState();\n\t\t\t});\n\t\t},\n\n\t\tgetStickedColumns: function()\n\t\t{\n\t\t\treturn this.getItems().reduce(function(accumulator, item) {\n\t\t\t\tif (item.isSticked())\n\t\t\t\t{\n\t\t\t\t\taccumulator.push(item.getId());\n\t\t\t\t}\n\n\t\t\t\treturn accumulator;\n\t\t\t}, []);\n\t\t},\n\n\t\t/**\n\t\t * Saves columns settings\n\t\t * @param {string[]} columns - ids\n\t\t * @param {?function} callback\n\t\t */\n\t\tsaveColumns: function(columns, callback)\n\t\t{\n\t\t\tvar options = this.parent.getUserOptions();\n\t\t\tvar columnNames = this.getColumnNames();\n\t\t\tvar stickedColumns = this.getStickedColumns();\n\t\t\tvar batch = [];\n\n\t\t\tbatch.push({\n\t\t\t\taction: options.getAction('GRID_SET_COLUMNS'),\n\t\t\t\tcolumns: columns.join(',')\n\t\t\t});\n\n\t\t\tbatch.push({\n\t\t\t\taction: options.getAction('SET_CUSTOM_NAMES'),\n\t\t\t\tcustom_names: columnNames\n\t\t\t});\n\n\t\t\tbatch.push({\n\t\t\t\taction: options.getAction('GRID_SET_STICKED_COLUMNS'),\n\t\t\t\tstickedColumns: stickedColumns\n\t\t\t});\n\n\t\t\tif (this.isForAll())\n\t\t\t{\n\t\t\t\tbatch.push({\n\t\t\t\t\taction: options.getAction('GRID_SAVE_SETTINGS'),\n\t\t\t\t\tview_id: 'default',\n\t\t\t\t\tset_default_settings: 'Y',\n\t\t\t\t\tdelete_user_settings: 'Y'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\toptions.batch(batch, BX.delegate(function() {\n\t\t\t\tthis.parent.reloadTable(null, null, callback);\n\t\t\t}, this));\n\n\t\t\tthis.updateColumnsState();\n\t\t},\n\n\n\t\t/**\n\t\t * Disables edit for all columns\n\t\t */\n\t\tdisableAllColumnslabelEdit: function()\n\t\t{\n\t\t\tthis.getItems().forEach(function(column) {\n\t\t\t\tcolumn.disableEdit();\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Gets all columns ids\n\t\t * @return {string[]}\n\t\t */\n\t\tgetAllColumns: function()\n\t\t{\n\t\t\tif (!this.allColumns)\n\t\t\t{\n\t\t\t\tthis.allColumns = this.getItems().map(function(column) {\n\t\t\t\t\treturn column.getId();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn this.allColumns;\n\t\t},\n\n\t\tisShowedColumn: function(columnName)\n\t\t{\n\t\t\treturn this.getSelectedColumns().some(function(name) {\n\t\t\t\treturn name === columnName;\n\t\t\t});\n\t\t},\n\n\t\tgetShowedColumns: function()\n\t\t{\n\t\t\tvar result = [];\n\t\t\tvar cells = this.parent.getRows().getHeadFirstChild().getCells();\n\n\t\t\t[].slice.call(cells).forEach(function(column) {\n\t\t\t\tif (\"name\" in column.dataset)\n\t\t\t\t{\n\t\t\t\t\tresult.push(column.dataset.name);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\tsortItems: function()\n\t\t{\n\t\t\tvar showedColumns = this.getShowedColumns();\n\t\t\tvar allColumns = {};\n\n\t\t\tthis.getAllColumns().forEach(function(name) {\n\t\t\t\tallColumns[name] = name;\n\t\t\t}, this);\n\n\t\t\tvar counter = 0;\n\t\t\tObject.keys(allColumns).forEach(function(name) {\n\t\t\t\tif (this.isShowedColumn(name))\n\t\t\t\t{\n\t\t\t\t\tallColumns[name] = showedColumns[counter];\n\t\t\t\t\tcounter++;\n\t\t\t\t}\n\n\t\t\t\tvar current = this.getColumnByName(allColumns[name]);\n\t\t\t\tcurrent && current.parentNode.appendChild(current);\n\t\t\t}, this);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets current columns names\n\t\t * @return {object}\n\t\t */\n\t\tgetColumnNames: function()\n\t\t{\n\t\t\tvar names = {};\n\t\t\tthis.getItems().map(function(column) {\n\t\t\t\tif (column.isEdited())\n\t\t\t\t{\n\t\t\t\t\tnames[column.getId()] = column.getTitle();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn names;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column node by name\n\t\t * @param {string} name\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetColumnByName: function(name)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(\n\t\t\t\tthis.getPopup().popupContainer,\n\t\t\t\t'.' + this.parent.settings.get('classSettingsWindowColumn') + '[data-name=\"'+name+'\"]',\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\n\t\t_onColumnMoved: function()\n\t\t{\n\t\t\tthis.sortItems();\n\t\t\tthis.reset();\n\t\t},\n\n\n\t\tonResetButtonClick: function()\n\t\t{\n\t\t\tthis.parent.confirmDialog(\n\t\t\t\t{\n\t\t\t\t\tCONFIRM: true,\n\t\t\t\t\tCONFIRM_MESSAGE: this.parent.arParams.CONFIRM_RESET_MESSAGE\n\t\t\t\t},\n\t\t\t\tBX.delegate(function() {\n\t\t\t\t\tthis.enableWait(this.getApplyButton());\n\n\t\t\t\t\tthis.parent.getUserOptions().reset(this.isForAll(), BX.delegate(function() {\n\t\t\t\t\t\tthis.parent.reloadTable(null, null, BX.delegate(function() {\n\t\t\t\t\t\t\tthis.restoreColumns();\n\t\t\t\t\t\t\tthis.disableWait(this.getApplyButton());\n\t\t\t\t\t\t\tthis.getPopup().close();\n\t\t\t\t\t\t}, this));\n\t\t\t\t\t}, this));\n\t\t\t\t}, this)\n\t\t\t);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets reset button id\n\t\t * @return {string}\n\t\t */\n\t\tgetResetButtonId: function()\n\t\t{\n\t\t\treturn this.parent.getContainerId() + '-grid-settings-reset-button';\n\t\t},\n\n\n\t\tonApplyButtonClick: function()\n\t\t{\n\t\t\tthis.parent.confirmDialog(\n\t\t\t\t{\n\t\t\t\t\tCONFIRM: this.isForAll(),\n\t\t\t\t\tCONFIRM_MESSAGE: this.parent.getParam('SETTINGS_FOR_ALL_CONFIRM_MESSAGE')\n\t\t\t\t},\n\t\t\t\tBX.delegate(function() {\n\t\t\t\t\tthis.enableWait(this.getApplyButton());\n\t\t\t\t\tthis.saveColumns(this.getSelectedColumns(), BX.delegate(function() {\n\t\t\t\t\t\tthis.getPopup().close();\n\t\t\t\t\t\tthis.disableWait(this.getApplyButton());\n\t\t\t\t\t\tthis.unselectForAllCheckbox();\n\t\t\t\t\t}, this));\n\t\t\t\t\tBX.onCustomEvent(window, 'BX.Grid.SettingsWindow:save', [this]);\n\t\t\t\t}, this),\n\t\t\t\tBX.delegate(function() {\n\t\t\t\t\tthis.unselectForAllCheckbox();\n\t\t\t\t}, this)\n\t\t\t);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets apply button id\n\t\t * @return {string}\n\t\t */\n\t\tgetApplyButtonId: function()\n\t\t{\n\t\t\treturn this.parent.getContainerId() + '-grid-settings-apply-button';\n\t\t},\n\n\n\t\t/**\n\t\t * Gets apply button\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetApplyButton: function()\n\t\t{\n\t\t\tif (this.applyButton === null)\n\t\t\t{\n\t\t\t\tthis.applyButton = BX(this.getApplyButtonId());\n\t\t\t}\n\n\t\t\treturn this.applyButton;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets cancel button id\n\t\t * @return {string}\n\t\t */\n\t\tgetCancelButtonId: function()\n\t\t{\n\t\t\treturn this.parent.getContainerId() + '-grid-settings-cancel-button';\n\t\t},\n\n\n\t\t/**\n\t\t * Gets cancel button\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetCancelButton: function()\n\t\t{\n\t\t\tif (this.cancelButton === null)\n\t\t\t{\n\t\t\t\tthis.cancelButton = BX(this.getCancelButtonId());\n\t\t\t}\n\n\t\t\treturn this.cancelButton;\n\t\t},\n\n\n\t\t/**\n\t\t * Unselect for all checkbox\n\t\t */\n\t\tunselectForAllCheckbox: function()\n\t\t{\n\t\t\tvar checkbox = this.getForAllCheckbox();\n\t\t\tcheckbox && (checkbox.checked = null);\n\t\t},\n\n\n\t\t/**\n\t\t * Enables wait animation for button\n\t\t * @param {HTMLElement} buttonNode\n\t\t */\n\t\tenableWait: function(buttonNode)\n\t\t{\n\t\t\tBX.addClass(buttonNode, 'ui-btn-wait');\n\t\t\tBX.removeClass(buttonNode, 'popup-window-button');\n\t\t},\n\n\n\t\t/**\n\t\t * Disables wait animation for button\n\t\t * @param {HTMLElement} buttonNode\n\t\t */\n\t\tdisableWait: function(buttonNode)\n\t\t{\n\t\t\tBX.removeClass(buttonNode, 'ui-btn-wait');\n\t\t\tBX.addClass(buttonNode, 'popup-window-button');\n\t\t},\n\n\n\t\t/**\n\t\t * Creates title of settings popup window\n\t\t * @return {string}\n\t\t */\n\t\tcreateTitle: function()\n\t\t{\n\t\t\tvar tmpDiv = BX.create('div');\n\t\t\tvar customSettingsTitle = this.parent.getParam('SETTINGS_WINDOW_TITLE');\n\n\t\t\tif (customSettingsTitle !== \"\")\n\t\t\t{\n\t\t\t\tcustomSettingsTitle = '&laquo;' + customSettingsTitle + '&raquo;';\n\t\t\t\ttmpDiv.innerHTML = '<span>' + this.parent.getParam('SETTINGS_TITLE') + ' ' + customSettingsTitle + '</span>';\n\n\t\t\t\treturn tmpDiv.firstChild.innerText;\n\t\t\t}\n\n\t\t\tvar gridsCount = BX.Main.gridManager.data.length;\n\n\t\t\tif (gridsCount === 1)\n\t\t\t{\n\t\t\t\tvar pageTitleNode = BX('pagetitle');\n\t\t\t\tvar pageTitle = (\n\t\t\t\t\tBX.Type.isDomNode(pageTitleNode) && BX.Type.isStringFilled(pageTitleNode.innerText)\n\t\t\t\t\t\t? '&laquo;' + BX.Text.encode(pageTitleNode.innerText) + '&raquo;'\n\t\t\t\t\t\t: ''\n\t\t\t\t);\n\t\t\t\ttmpDiv.innerHTML = '<span>'+this.parent.getParam('SETTINGS_TITLE')+' '+pageTitle+'</span>';\n\t\t\t\treturn tmpDiv.firstChild.innerText;\n\t\t\t}\n\n\t\t\treturn this.parent.getParam('SETTINGS_TITLE');\n\t\t},\n\n\n\t\t/**\n\t\t * Gets popup id\n\t\t * @return {string}\n\t\t */\n\t\tgetPopupId: function()\n\t\t{\n\t\t\treturn this.parent.getContainerId() + '-grid-settings-window';\n\t\t},\n\n\n\t\t/**\n\t\t * Creates grid settings popup window\n\t\t * @return {BX.PopupWindow}\n\t\t */\n\t\tcreatePopup: function()\n\t\t{\n\t\t\tif (!this.popup)\n\t\t\t{\n\t\t\t\tthis.popup = new BX.PopupWindow(\n\t\t\t\t\tthis.getPopupId(),\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitleBar: this.createTitle(),\n\t\t\t\t\t\tautoHide: false,\n\t\t\t\t\t\toverlay: 0.6,\n\t\t\t\t\t\twidth: 1000,\n\t\t\t\t\t\tcloseIcon: true,\n\t\t\t\t\t\tcloseByEsc: true,\n\t\t\t\t\t\tcontentNoPaddings: true,\n\t\t\t\t\t\tcontent: this.getSourceContent(),\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tonPopupClose: BX.delegate(this.onPopupClose, this)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.getItems().forEach(function(item) {\n\t\t\t\t\tBX.bind(item.getNode(), 'click', BX.delegate(this.onItemClick, this));\n\t\t\t\t\tBX.bind(item.getNode(), 'animationend', this.onAnimationEnd.bind(this, item.getNode()));\n\t\t\t\t}, this);\n\n\t\t\t\tBX.bind(this.getResetButton(), 'click', BX.proxy(this.onResetButtonClick, this));\n\t\t\t\tBX.bind(this.getApplyButton(), 'click', BX.proxy(this.onApplyButtonClick, this));\n\t\t\t\tBX.bind(this.getCancelButton(), 'click', BX.proxy(this.popup.close, this.popup));\n\t\t\t\tBX.bind(this.getSelectAllButton(), 'click', BX.delegate(this.onSelectAll, this));\n\t\t\t\tBX.bind(this.getUnselectAllButton(), 'click', BX.delegate(this.onUnselectAll, this));\n\n\t\t\t\tif (\n\t\t\t\t\tthis.parent.arParams['COLUMNS_ALL_WITH_SECTIONS']\n\t\t\t\t\t&& Object.keys(this.parent.arParams['COLUMNS_ALL_WITH_SECTIONS']).length\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tthis.prepareFilterSections();\n\t\t\t\t}\n\n\t\t\t\tif (this.parent.arParams['ENABLE_FIELDS_SEARCH'])\n\t\t\t\t{\n\t\t\t\t\tthis.prepareFilterSectionsSearchInput();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.popup;\n\t\t},\n\n\t\tonItemClick: function()\n\t\t{\n\t\t\tthis.adjustActionButtonsState();\n\t\t},\n\n\t\tonAnimationEnd: function(node: HTMLElement)\n\t\t{\n\t\t\tnode.style.display = (\n\t\t\t\tBX.Dom.hasClass(node, this.parent.settings.get('classSettingsWindowSearchSectionItemHidden'))\n\t\t\t\t? 'none'\n\t\t\t\t: 'inline-block'\n\t\t\t);\n\t\t},\n\n\t\tprepareFilterSections: function()\n\t\t{\n\t\t\tvar filterSections = this.getFilterSections();\n\t\t\tfor (var item of filterSections) {\n\t\t\t\tBX.bind(item, 'click', this.onFilterSectionClick.bind(this, item));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Gets all filter section items\n\t\t * @return {HTMLCollection}\n\t\t */\n\t\tgetFilterSections: function()\n\t\t{\n\t\t\t\tif (!this.filterSections)\n\t\t\t\t{\n\t\t\t\t\tvar wrapper = BX.Grid.Utils.getByClass(\n\t\t\t\t\t\tthis.getPopup().contentContainer,\n\t\t\t\t\t\tthis.parent.settings.get('classSettingsWindowSearchSectionsWrapper'),\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\n\t\t\t\t\tthis.filterSections = (wrapper.children ?? new HTMLCollection());\n\t\t\t\t}\n\n\t\t\t\treturn this.filterSections;\n\t\t},\n\n\t\tonFilterSectionClick: function(item: HTMLElement)\n\t\t{\n\t\t\tvar activeClass = this.parent.settings.get('classSettingsWindowSearchActiveSectionIcon');\n\t\t\tvar sectionId = item.dataset.uiGridFilterSectionButton;\n\t\t\tvar section = document.querySelectorAll(\"[data-ui-grid-filter-section='\"+sectionId+\"']\");\n\n\t\t\tif (BX.Dom.hasClass(item.firstChild, activeClass))\n\t\t\t{\n\t\t\t\tBX.Dom.removeClass(item.firstChild, activeClass);\n\t\t\t\tBX.Dom.hide(section[0]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(item.firstChild, activeClass);\n\t\t\t\tBX.Dom.show(section[0]);\n\t\t\t}\n\t\t},\n\n\t\tprepareFilterSectionsSearchInput: function()\n\t\t{\n\t\t\tvar input = this.getFilterSectionsSearchInput();\n\t\t\tBX.bind(input, 'input', this.onFilterSectionSearchInput.bind(this));\n\t\t\tBX.bind(input.previousElementSibling, 'click', this.onFilterSectionSearchInputClear.bind(this));\n\t\t},\n\n\t\tgetFilterSectionsSearchInput: function()\n\t\t{\n\t\t\tif (!this.filterSectionsSearchInput)\n\t\t\t{\n\t\t\t\tthis.filterSectionsSearchInput = BX.Grid.Utils.getByClass(\n\t\t\t\t\tthis.getPopup().contentContainer,\n\t\t\t\t\tthis.parent.settings.get('classSettingsWindowSearchSectionInput'),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.filterSectionsSearchInput;\n\t\t},\n\n\t\tonFilterSectionSearchInput: function()\n\t\t{\n\t\t\tvar search = this.filterSectionsSearchInput.value;\n\t\t\tif (search.length)\n\t\t\t{\n\t\t\t\tsearch = search.toLowerCase();\n\t\t\t}\n\n\t\t\tthis.items.forEach(function (item){\n\t\t\t\tvar title = item.lastTitle.toLowerCase();\n\n\t\t\t\tif (search.length && title.indexOf(search) === -1)\n\t\t\t\t{\n\t\t\t\t\tBX.Dom.removeClass(\n\t\t\t\t\t\titem.getNode(),\n\t\t\t\t\t\tthis.parent.settings.get('classSettingsWindowSearchSectionItemVisible')\n\t\t\t\t\t);\n\t\t\t\t\tBX.Dom.addClass(\n\t\t\t\t\t\titem.getNode(),\n\t\t\t\t\t\tthis.parent.settings.get('classSettingsWindowSearchSectionItemHidden')\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBX.Dom.removeClass(\n\t\t\t\t\t\titem.getNode(),\n\t\t\t\t\t\tthis.parent.settings.get('classSettingsWindowSearchSectionItemHidden')\n\t\t\t\t\t);\n\t\t\t\t\tBX.Dom.addClass(\n\t\t\t\t\t\titem.getNode(),\n\t\t\t\t\t\tthis.parent.settings.get('classSettingsWindowSearchSectionItemVisible')\n\t\t\t\t\t);\n\t\t\t\t\titem.getNode().style.display = 'inline-block';\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tonFilterSectionSearchInputClear: function()\n\t\t{\n\t\t\tthis.filterSectionsSearchInput.value = '';\n\t\t\tthis.onFilterSectionSearchInput();\n\t\t},\n\n\t\t/**\n\t\t * Gets columns collection\n\t\t * @return {BX.Grid.SettingsWindowColumn[]}\n\t\t */\n\t\tgetItems: function()\n\t\t{\n\t\t\tif (this.items === null)\n\t\t\t{\n\t\t\t\tthis.items = this.getPopupItems().map(function(current) {\n\t\t\t\t\treturn new BX.Grid.SettingsWindowColumn(this.parent, current);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.items;\n\t\t},\n\n\t\tonPopupClose: function()\n\t\t{\n\t\t\tBX.onCustomEvent(window, 'BX.Grid.SettingsWindow:close', [this]);\n\t\t\tthis.restoreLastColumns();\n\t\t\tthis.disableAllColumnslabelEdit();\n\t\t\tthis.adjustActionButtonsState();\n\t\t},\n\n\n\t\t/**\n\t\t * Gets popup window\n\t\t * @return {BX.PopupWindow}\n\t\t */\n\t\tgetPopup: function()\n\t\t{\n\t\t\treturn !!this.popup ? this.popup : this.popup = this.createPopup();\n\t\t},\n\n\t\tonSelectAll: function()\n\t\t{\n\t\t\tthis.selectAll();\n\t\t\tthis.enableActions();\n\t\t},\n\n\t\tonUnselectAll: function()\n\t\t{\n\t\t\tthis.unselectAll();\n\t\t\tthis.disableActions();\n\t\t},\n\n\t\t/**\n\t\t * Select all columns\n\t\t */\n\t\tselectAll: function()\n\t\t{\n\t\t\tthis.getItems().forEach(function(column) { column.select(); });\n\t\t},\n\n\n\t\t/**\n\t\t * Unselect all columns\n\t\t */\n\t\tunselectAll: function()\n\t\t{\n\t\t\tthis.getItems().forEach(function(column) { column.unselect(); });\n\t\t},\n\n\n\t\tisForAll: function()\n\t\t{\n\t\t\tvar checkbox = this.getForAllCheckbox();\n\t\t\treturn checkbox && !!checkbox.checked;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets for all checkbox\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetForAllCheckbox: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPopup().popupContainer, 'main-grid-settings-window-for-all-checkbox', true);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets reset button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetResetButton: function()\n\t\t{\n\t\t\tif (this.resetButton === null)\n\t\t\t{\n\t\t\t\tthis.resetButton = BX(this.getResetButtonId());\n\t\t\t}\n\n\t\t\treturn this.resetButton;\n\t\t},\n\n\t\tdisableActions: function()\n\t\t{\n\t\t\tvar applyButton = this.getApplyButton();\n\n\t\t\tif (!!applyButton)\n\t\t\t{\n\t\t\t\tBX.addClass(applyButton, this.parent.settings.get('classDisable'));\n\t\t\t}\n\t\t},\n\n\t\tenableActions: function()\n\t\t{\n\t\t\tvar applyButton = this.getApplyButton();\n\n\t\t\tif (!!applyButton)\n\t\t\t{\n\t\t\t\tBX.removeClass(applyButton, this.parent.settings.get('classDisable'));\n\t\t\t}\n\t\t},\n\n\t\tadjustActionButtonsState: function()\n\t\t{\n\t\t\tif (this.getSelectedColumns().length)\n\t\t\t{\n\t\t\t\tthis.enableActions();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.disableActions();\n\t\t\t}\n\t\t}\n\t};\n\n})();\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * @param {BX.Main.grid} parent\n\t * @param {HTMLElement} node\n\t * @constructor\n\t */\n\tBX.Grid.SettingsWindowColumn = function(parent, node)\n\t{\n\t\tthis.node = null;\n\t\tthis.label = null;\n\t\tthis.checkbox = null;\n\t\tthis.editButton = null;\n\t\tthis.settings = null;\n\t\tthis.parent = null;\n\t\tthis.default = null;\n\t\tthis.defaultTitle = null;\n\t\tthis.state = null;\n\t\tthis.lastTitle = null;\n\t\tthis.init(parent, node);\n\t};\n\n\tBX.Grid.SettingsWindowColumn.inited = {};\n\n\tBX.Grid.SettingsWindowColumn.prototype = {\n\t\tinit: function(parent, node)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.node = node;\n\n\t\t\ttry {\n\t\t\t\tthis.lastTitle = node.querySelector(\"label\").innerText.trim();\n\t\t\t} catch (err) {}\n\n\t\t\tthis.updateState();\n\n\t\t\tif (!BX.Grid.SettingsWindowColumn.inited[this.getId()])\n\t\t\t{\n\t\t\t\tBX.Grid.SettingsWindowColumn.inited[this.getId()] = true;\n\t\t\t\tBX.bind(this.getEditButton(), 'click', BX.proxy(this.onEditButtonClick, this));\n\t\t\t\tBX.bind(this.getStickyButton(), 'click', BX.proxy(this.onStickyButtonClick, this));\n\t\t\t}\n\t\t},\n\n\t\tgetStickyButton: function()\n\t\t{\n\t\t\treturn this.node.querySelector(\".main-grid-settings-window-list-item-sticky-button\");\n\t\t},\n\n\t\tisSticked: function()\n\t\t{\n\t\t\treturn this.node.classList.contains(\"main-grid-settings-window-list-item-sticked\");\n\t\t},\n\n\t\tonStickyButtonClick: function()\n\t\t{\n\t\t\tif (this.isSticked())\n\t\t\t{\n\t\t\t\tthis.unstick();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stick();\n\t\t\t}\n\t\t},\n\n\t\tstick: function()\n\t\t{\n\t\t\tthis.node.classList.add(\"main-grid-settings-window-list-item-sticked\");\n\t\t},\n\n\t\tunstick: function()\n\t\t{\n\t\t\tthis.node.classList.remove(\"main-grid-settings-window-list-item-sticked\");\n\t\t},\n\n\t\tonEditButtonClick: function(event)\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t\tthis.isEditEnabled() ? this.disableEdit() : this.enableEdit();\n\t\t},\n\n\n\t\t/**\n\t\t * @private\n\t\t * @param {object} state\n\t\t * @property {boolean} state.selected\n\t\t * @property {title} state.title\n\t\t */\n\t\tsetState: function(state)\n\t\t{\n\t\t\tthis.state = state;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets state of column\n\t\t * @return {object}\n\t\t */\n\t\tgetState: function()\n\t\t{\n\t\t\treturn this.state;\n\t\t},\n\n\n\t\t/**\n\t\t * Updates default state\n\t\t */\n\t\tupdateState: function()\n\t\t{\n\t\t\tthis.setState({\n\t\t\t\tselected: this.isSelected(),\n\t\t\t\tsticked: this.isSticked(),\n\t\t\t\ttitle: this.getTitle()\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Restores last state\n\t\t */\n\t\trestoreState: function()\n\t\t{\n\t\t\tvar state = this.getState();\n\n\t\t\tstate.selected ? this.select() : this.unselect();\n\t\t\tstate.sticked ? this.stick() : this.unstick();\n\t\t\tthis.setTitle(state.title);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column id\n\t\t * @return {string}\n\t\t */\n\t\tgetId: function()\n\t\t{\n\t\t\treturn this.getNode().dataset.name;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column title\n\t\t * @return {string}\n\t\t */\n\t\tgetTitle: function()\n\t\t{\n\t\t\treturn this.getLabel().innerText;\n\t\t},\n\n\n\t\t/**\n\t\t * Sets column title\n\t\t * @param {string} title\n\t\t */\n\t\tsetTitle: function(title)\n\t\t{\n\t\t\tthis.getLabel().innerText = !!title && title !== \"undefined\" ? title : this.getDefaultTitle();\n\t\t},\n\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisEdited: function()\n\t\t{\n\t\t\treturn this.getTitle() !== this.getDefaultTitle();\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column settings\n\t\t * @return {?object}\n\t\t */\n\t\tgetSettings: function()\n\t\t{\n\t\t\tif (this.settings === null)\n\t\t\t{\n\t\t\t\tvar columns = this.parent.getParam('DEFAULT_COLUMNS');\n\t\t\t\tthis.settings = this.getId() in columns ? columns[this.getId()] : {};\n\t\t\t}\n\n\t\t\treturn this.settings;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks column is default\n\t\t * @return {boolean}\n\t\t */\n\t\tisDefault: function()\n\t\t{\n\t\t\tif (this.default === null)\n\t\t\t{\n\t\t\t\tvar settings = this.getSettings();\n\t\t\t\tthis.default = 'default' in settings ? settings.default : false;\n\t\t\t}\n\n\t\t\treturn this.default;\n\t\t},\n\n\n\t\t/**\n\t\t * Restore column to default state\n\t\t */\n\t\trestore: function()\n\t\t{\n\t\t\tthis.isDefault() ? this.select() : this.unselect();\n\t\t\tthis.setTitle(this.getDefaultTitle());\n\t\t\tthis.node.dataset.stickedDefault === \"true\" ? this.stick() : this.unstick();\n\t\t\tthis.disableEdit();\n\t\t\tthis.updateState();\n\t\t},\n\n\n\t\t/**\n\t\t * Gets default column title\n\t\t * @return {?string}\n\t\t */\n\t\tgetDefaultTitle: function()\n\t\t{\n\t\t\tif (this.defaultTitle === null)\n\t\t\t{\n\t\t\t\tvar settings = this.getSettings();\n\t\t\t\tthis.defaultTitle = 'name' in settings ? settings.name : this.lastTitle;\n\t\t\t}\n\n\t\t\treturn this.defaultTitle;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column node\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetNode: function()\n\t\t{\n\t\t\treturn this.node;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column label node\n\t\t * @return {?HTMLLabelElement}\n\t\t */\n\t\tgetLabel: function()\n\t\t{\n\t\t\tif (this.label === null)\n\t\t\t{\n\t\t\t\tthis.label = BX.Grid.Utils.getByTag(this.getNode(), 'label', true);\n\t\t\t}\n\n\t\t\treturn this.label;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column checkbox node\n\t\t * @return {?HTMLInputElement}\n\t\t */\n\t\tgetCheckbox: function()\n\t\t{\n\t\t\tif (this.checkbox === null)\n\t\t\t{\n\t\t\t\tthis.checkbox = BX.Grid.Utils.getBySelector(this.getNode(), 'input[type=\"checkbox\"]', true);\n\t\t\t}\n\n\t\t\treturn this.checkbox;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets edit button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetEditButton: function()\n\t\t{\n\t\t\tif (this.editButton === null)\n\t\t\t{\n\t\t\t\tthis.editButton = BX.Grid.Utils.getByClass(\n\t\t\t\t\tthis.getNode(),\n\t\t\t\t\tthis.parent.settings.get('classSettingsWindowColumnEditButton'),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.editButton;\n\t\t},\n\n\n\t\t/**\n\t\t * Enables edit mode\n\t\t */\n\t\tenableEdit: function()\n\t\t{\n\t\t\tthis.getLabel().contentEditable = true;\n\t\t\tthis.getCheckbox().disabled = true;\n\t\t\tthis.adjustCaret();\n\t\t},\n\n\n\t\t/**\n\t\t * Disables edit mode\n\t\t */\n\t\tdisableEdit: function()\n\t\t{\n\t\t\tthis.getLabel().contentEditable = false;\n\t\t\tthis.getCheckbox().disabled = false;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks is edit enabled\n\t\t * @return {boolean}\n\t\t */\n\t\tisEditEnabled: function()\n\t\t{\n\t\t\treturn this.getLabel().isContentEditable;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks column is active\n\t\t * @return {boolean}\n\t\t */\n\t\tisSelected: function()\n\t\t{\n\t\t\treturn this.getCheckbox().checked;\n\t\t},\n\n\n\t\t/**\n\t\t * Selects column\n\t\t */\n\t\tselect: function()\n\t\t{\n\t\t\tthis.getCheckbox().checked = true;\n\t\t},\n\n\n\t\t/**\n\t\t * Unselects column\n\t\t */\n\t\tunselect: function()\n\t\t{\n\t\t\tthis.getCheckbox().checked = false;\n\t\t},\n\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tadjustCaret: function()\n\t\t{\n\t\t\tvar range = document.createRange();\n\t\t\tvar selection = window.getSelection();\n\t\t\tvar elementTextLength = this.getLabel().innerText.length;\n\t\t\tvar textNodes = this.getLabel().childNodes;\n\t\t\tvar lastTextNode = textNodes[textNodes.length - 1];\n\n\t\t\trange.setStart(lastTextNode, elementTextLength);\n\t\t\trange.setEnd(lastTextNode, elementTextLength);\n\t\t\trange.collapse(true);\n\n\t\t\tselection.removeAllRanges();\n\t\t\tselection.addRange(range);\n\t\t\tBX.fireEvent(this.getNode(), 'focus');\n\t\t}\n\t};\n\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.UserOptions\n\t * @param {BX.Main.grid} parent\n\t * @param {Object} userOptions\n\t * @param {Object} userOptionsActions\n\t * @param {String} url\n\t * @constructor\n\t */\n\tBX.Grid.UserOptions = function(parent, userOptions, userOptionsActions, url)\n\t{\n\t\tthis.options = null;\n\t\tthis.actions = null;\n\t\tthis.parent = null;\n\t\tthis.url = null;\n\t\tthis.init(parent, userOptions, userOptionsActions, url);\n\t};\n\n\tBX.Grid.UserOptions.prototype = {\n\t\tinit: function(parent, userOptions, userOptionsActions, url)\n\t\t{\n\t\t\tthis.url = url;\n\t\t\tthis.parent = parent;\n\n\t\t\ttry {\n\t\t\t\tthis.options = eval(userOptions);\n\t\t\t} catch(err) {\n\t\t\t\tconsole.warn('BX.Grid.UserOptions.init: Failed parse user options json string');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.actions = eval(userOptionsActions);\n\t\t\t} catch(err) {\n\t\t\t\tconsole.warn('BX.Grid.UserOptions.init: Failed parse user options actions json string');\n\t\t\t}\n\t\t},\n\n\t\tgetCurrentViewName: function()\n\t\t{\n\t\t\tvar options = this.getOptions();\n\n\t\t\treturn 'current_view' in options ? options.current_view : null;\n\t\t},\n\n\t\tgetViewsList: function()\n\t\t{\n\t\t\tvar options = this.getOptions();\n\n\t\t\treturn 'views' in options ? options.views : {};\n\t\t},\n\n\t\tgetCurrentOptions: function()\n\t\t{\n\t\t\tvar name = this.getCurrentViewName();\n\t\t\tvar views = this.getViewsList();\n\t\t\tvar result = null;\n\n\t\t\tif (name in views)\n\t\t\t{\n\t\t\t\tresult = views[name];\n\t\t\t}\n\n\t\t\tif (!BX.type.isPlainObject(result))\n\t\t\t{\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetUrl: function(action)\n\t\t{\n\t\t\treturn BX.util.add_url_param(this.url, {\n\t\t\t\tGRID_ID: this.parent.getContainerId(),\n\t\t\t\tbxajaxid: this.parent.getAjaxId(),\n\t\t\t\taction: action\n\t\t\t});\n\t\t},\n\n\t\tgetOptions: function()\n\t\t{\n\t\t\treturn this.options || {};\n\t\t},\n\n\t\tgetActions: function()\n\t\t{\n\t\t\treturn this.actions;\n\t\t},\n\n\t\tgetAction: function(name)\n\t\t{\n\t\t\tvar action = null;\n\n\t\t\ttry {\n\t\t\t\taction = this.getActions()[name];\n\t\t\t} catch (err) {\n\t\t\t\taction = null;\n\t\t\t}\n\n\t\t\treturn action;\n\t\t},\n\n\t\tupdate: function(newOptions)\n\t\t{\n\t\t\tthis.options = newOptions;\n\t\t},\n\n\t\tsetColumns: function(columns, callback)\n\t\t{\n\t\t\tvar options = this.getCurrentOptions();\n\n\t\t\tif (BX.type.isPlainObject(options))\n\t\t\t{\n\t\t\t\toptions.columns = columns.join(',');\n\n\t\t\t\tthis.save(this.getAction('GRID_SET_COLUMNS'), {columns: options.columns}, callback);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetColumnsNames: function(columns, callback)\n\t\t{\n\t\t\tvar options = {view_id: 'default'};\n\n\t\t\tif (BX.type.isPlainObject(options))\n\t\t\t{\n\t\t\t\toptions.custom_names = columns;\n\n\t\t\t\tthis.save(this.getAction('SET_CUSTOM_NAMES'), options, callback);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetColumnSizes: function(sizes, expand)\n\t\t{\n\t\t\tthis.save(this.getAction('GRID_SET_COLUMN_SIZES'), {sizes: sizes, expand: expand});\n\t\t},\n\n\t\treset: function(forAll, callback)\n\t\t{\n\t\t\tvar data = {};\n\n\t\t\tif (!!forAll)\n\t\t\t{\n\t\t\t\tdata = {\n\t\t\t\t\tview_id: 'default',\n\t\t\t\t\tset_default_settings: 'Y',\n\t\t\t\t\tdelete_user_settings: 'Y',\n\t\t\t\t\tview_settings: this.getCurrentOptions()\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.save(this.getAction('GRID_RESET'), data, callback);\n\t\t},\n\n\t\tsetSort: function(by, order, callback)\n\t\t{\n\t\t\tif (by && order)\n\t\t\t{\n\t\t\t\tthis.save(this.getAction('GRID_SET_SORT'), {by: by, order: order}, callback);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetPageSize: function(pageSize, callback)\n\t\t{\n\t\t\tif (BX.type.isNumber(parseInt(pageSize)))\n\t\t\t{\n\t\t\t\tthis.save(this.getAction('GRID_SET_PAGE_SIZE'), {pageSize: pageSize}, callback);\n\t\t\t}\n\t\t},\n\n\t\tsetExpandedRows: function(ids, callback)\n\t\t{\n\t\t\tBX.type.isArray(ids) && this.save(this.getAction('GRID_SET_EXPANDED_ROWS'), {ids: ids}, callback);\n\t\t},\n\n\t\tsetCollapsedGroups: function(ids, callback)\n\t\t{\n\t\t\tBX.type.isArray(ids) && this.save(this.getAction('GRID_SET_COLLAPSED_GROUPS'), {ids: ids}, callback);\n\t\t},\n\n\t\tresetExpandedRows: function()\n\t\t{\n\t\t\tthis.save(this.getAction('GRID_RESET_EXPANDED_ROWS'), {});\n\t\t},\n\n\t\tsaveForAll: function(callback)\n\t\t{\n\t\t\tthis.save(\n\t\t\t\tthis.getAction('GRID_SAVE_SETTINGS'),\n\t\t\t\t{\n\t\t\t\t\tview_id: 'default',\n\t\t\t\t\tset_default_settings: 'Y',\n\t\t\t\t\tdelete_user_settings: 'Y',\n\t\t\t\t\tview_settings: this.getCurrentOptions()\n\t\t\t\t},\n\t\t\t\tcallback\n\t\t\t);\n\t\t},\n\n\t\tbatch: function(data, callback)\n\t\t{\n\t\t\tthis.save(this.getAction('GRID_SAVE_BATH'), {bath: data}, callback);\n\t\t},\n\n\t\tsave: function(action, data, callback)\n\t\t{\n\t\t\tvar self = this;\n\t\t\tBX.ajax.post(\n\t\t\t\tthis.getUrl(action),\n\t\t\t\tdata,\n\t\t\t\tfunction(res)\n\t\t\t\t{\n\t\t\t\t\ttry {\n\t\t\t\t\t\tres = JSON.parse(res);\n\t\t\t\t\t\tif (!res.error)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.update(res);\n\t\t\t\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcallback(res);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tBX.onCustomEvent(self.parent.getContainer(), 'Grid::optionsChanged', [self.parent]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (err) {}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Utils = {\n\t\t/**\n\t\t * Prepares url for ajax request\n\t\t * @param {string} url\n\t\t * @param {string} ajaxId Bitrix ajax id\n\t\t * @returns {string} Prepares ajax url with ajax id\n\t\t */\n\t\tajaxUrl: function(url, ajaxId)\n\t\t{\n\t\t\treturn this.addUrlParams(url, {'bxajaxid': ajaxId});\n\t\t},\n\n\t\taddUrlParams: function(url, params)\n\t\t{\n\t\t\treturn BX.util.add_url_param(url, params);\n\t\t},\n\n\t\t/**\n\t\t * Moves array item currentIndex to newIndex\n\t\t * @param {array} array\n\t\t * @param {int} currentIndex\n\t\t * @param {int} newIndex\n\t\t * @returns {*}\n\t\t */\n\t\tarrayMove: function(array, currentIndex, newIndex)\n\t\t{\n\t\t\tif (newIndex >= array.length)\n\t\t\t{\n\t\t\t\tvar k = newIndex - array.length;\n\t\t\t\twhile ((k--) + 1)\n\t\t\t\t{\n\t\t\t\t\tarray.push(undefined);\n\t\t\t\t}\n\t\t\t}\n\t\t\tarray.splice(newIndex, 0, array.splice(currentIndex, 1)[0]);\n\n\t\t\treturn array;\n\t\t},\n\n\t\t/**\n\t\t * Gets item index in array or HTMLCollection\n\t\t * @param {array|HTMLCollection} collection\n\t\t * @param {*} item\n\t\t * @returns {number}\n\t\t */\n\t\tgetIndex: function(collection, item)\n\t\t{\n\t\t\treturn [].indexOf.call((collection || []), item);\n\t\t},\n\n\t\t/**\n\t\t * Gets nextElementSibling\n\t\t * @param {Element} currentItem\n\t\t * @returns {Element|null}\n\t\t */\n\t\tgetNext: function(currentItem)\n\t\t{\n\t\t\tif (currentItem) { return currentItem.nextElementSibling || null; }\n\t\t},\n\n\t\t/**\n\t\t * Gets previousElementSibling\n\t\t * @param {Element} currentItem\n\t\t * @returns {Element|null}\n\t\t */\n\t\tgetPrev: function(currentItem)\n\t\t{\n\t\t\tif (currentItem) { return currentItem.previousElementSibling || null; }\n\t\t},\n\n\t\t/**\n\t\t * Gets closest parent element of node\n\t\t * @param {Node} item\n\t\t * @param {string} [className]\n\t\t * @returns {*|null|Node}\n\t\t */\n\t\tclosestParent: function(item, className)\n\t\t{\n\t\t\tif (item)\n\t\t\t{\n\t\t\t\tif (!className)\n\t\t\t\t{\n\t\t\t\t\treturn item.parentNode || null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treturn BX.findParent(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\t{className: className}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Gets closest childs of node\n\t\t * @param item\n\t\t * @returns {Array|null}\n\t\t */\n\t\tclosestChilds: function(item)\n\t\t{\n\t\t\tif (item) { return item.children || null; }\n\t\t},\n\n\t\t/**\n\t\t * Sorts collection\n\t\t * @param current\n\t\t * @param target\n\t\t */\n\t\tcollectionSort: function(current, target)\n\t\t{\n\t\t\tvar root, collection, collectionLength, currentIndex, targetIndex;\n\n\t\t\tif (current && target && current !== target && current.parentNode === target.parentNode)\n\t\t\t{\n\t\t\t\troot = this.closestParent(target);\n\t\t\t\tcollection = this.closestChilds(root);\n\t\t\t\tcollectionLength = collection.length;\n\t\t\t\tcurrentIndex = this.getIndex(collection, current);\n\t\t\t\ttargetIndex = this.getIndex(collection, target);\n\n\t\t\t\tif (collectionLength === targetIndex) {\n\t\t\t\t\troot.appendChild(target);\n\t\t\t\t}\n\n\t\t\t\tif (currentIndex > targetIndex) {\n\t\t\t\t\troot.insertBefore(current, target);\n\t\t\t\t}\n\n\t\t\t\tif (currentIndex < targetIndex && collectionLength !== targetIndex)\n\t\t\t\t{\n\t\t\t\t\troot.insertBefore(current, this.getNext(target));\n\t\t\t\t}\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Gets table collumn\n\t\t * @param table\n\t\t * @param cell\n\t\t * @returns {Array}\n\t\t */\n\t\tgetColumn: function(table, cell)\n\t\t{\n\t\t\tvar currentIndex = this.getIndex(\n\t\t\t\tthis.closestChilds(this.closestParent(cell)),\n\t\t\t\tcell\n\t\t\t);\n\t\t\tvar column = [];\n\n\t\t\t[].forEach.call(table.rows, function(current) {\n\t\t\t\tcolumn.push(current.cells[currentIndex]);\n\t\t\t});\n\n\t\t\treturn column;\n\t\t},\n\n\t\t/**\n\t\t * Sets style properties and values for each item in collection\n\t\t * @param {HTMLElement[]|HTMLCollection} collection\n\t\t * @param {object} properties\n\t\t */\n\t\tstyleForEach: function(collection, properties)\n\t\t{\n\t\t\tproperties = BX.type.isPlainObject(properties) ? properties : null;\n\t\t\tvar keys = Object.keys(properties);\n\n\t\t\t[].forEach.call((collection || []), function(current) {\n\t\t\t\tkeys.forEach(function(propKey) {\n\t\t\t\t\tBX.style(current, propKey, properties[propKey]);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\trequestAnimationFrame: function()\n\t\t{\n\t\t\tvar raf = (\n\t\t\t\twindow.requestAnimationFrame ||\n\t\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\t\twindow.msRequestAnimationFrame ||\n\t\t\t\twindow.oRequestAnimationFrame ||\n\t\t\t\tfunction(callback){ window.setTimeout(callback, 1000/60) }\n\t\t\t);\n\n\t\t\traf.apply(window, arguments);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets elements by class name\n\t\t * @param rootElement\n\t\t * @param className\n\t\t * @param first\n\t\t * @returns {Array|null}\n\t\t */\n\t\tgetByClass: function(rootElement, className, first)\n\t\t{\n\t\t\tvar result = [];\n\n\t\t\tif (className)\n\t\t\t{\n\t\t\t\tresult = rootElement ? rootElement.getElementsByClassName(className) : [];\n\n\t\t\t\tif (first)\n\t\t\t\t{\n\t\t\t\t\tresult = result.length ? result[0] : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetByTag: function(rootElement, tag, first)\n\t\t{\n\t\t\tvar result = [];\n\n\t\t\tif (tag)\n\t\t\t{\n\t\t\t\tresult = rootElement ? rootElement.getElementsByTagName(tag) : [];\n\n\t\t\t\tif (first)\n\t\t\t\t{\n\t\t\t\t\tresult = result.length ? result[0] : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetBySelector: function(rootElement, selector, first)\n\t\t{\n\t\t\tvar result = [];\n\n\t\t\tif (selector)\n\t\t\t{\n\t\t\t\tif (first)\n\t\t\t\t{\n\t\t\t\t\tresult = rootElement ? rootElement.querySelector(selector) : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = rootElement ? rootElement.querySelectorAll(selector) : [];\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tlistenerParams: function(params)\n\t\t{\n\t\t\ttry {\n\t\t\t\twindow.addEventListener('test', null, params);\n\t\t\t} catch (e) {\n\t\t\t\tparams = false;\n\t\t\t}\n\n\t\t\treturn params;\n\t\t}\n\t};\n})();","import {EventEmitter} from 'main.core.events';\nimport {Dom, Reflection, Type, Event, Tag, Text} from 'main.core';\n\ntype RealtimeOptions = {\n\tgrid: BX.Main.grid,\n};\n\ntype AddRowOptions = {\n\tid: number | string,\n\tactions?: Array<{[key: string]: any}>,\n\tcolumns?: {[key: string]: any},\n\tcellActions?: {[key: string]: any},\n\tappend?: true,\n\tprepend?: true,\n\tinsertBefore?: number | string,\n\tinsertAfter?: number | string,\n\tanimation?: boolean,\n\tcounters?: {\n\t\t[colId: string]: {\n\t\t\ttype: $Values<BX.Grid.Counters.Type>,\n\t\t\tcolor?: $Values<BX.Grid.Counters.Color>,\n\t\t\tvalue: string | number,\n\t\t},\n\t},\n};\n\ntype ShowStubOptions = {\n\tcontent?: HTMLElement | string | {title?: string, description?: string},\n};\n\n/**\n * @memberOf BX.Grid\n */\nexport class Realtime extends EventEmitter\n{\n\tconstructor(options: RealtimeOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Grid.Realtime');\n\t\tthis.options = {...options};\n\t}\n\n\taddRow(options: AddRowOptions)\n\t{\n\t\tconst {grid} = this.options;\n\t\tconst row = grid.getTemplateRow();\n\t\trow.makeCountable();\n\t\tgrid.hideEmptyStub();\n\n\t\tif (Type.isNumber(options.id) || Type.isStringFilled(options.id))\n\t\t{\n\t\t\trow.setId(options.id);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new ReferenceError('id is not number or string');\n\t\t}\n\n\t\tif (Type.isArrayFilled(options.actions))\n\t\t{\n\t\t\trow.setActions(options.actions);\n\t\t}\n\n\t\tif (Type.isPlainObject(options.columns))\n\t\t{\n\t\t\trow.setCellsContent(options.columns);\n\t\t}\n\n\t\tif (Type.isPlainObject(options.cellActions))\n\t\t{\n\t\t\trow.setCellActions(options.cellActions);\n\t\t}\n\n\t\tif (Type.isPlainObject(options.counters))\n\t\t{\n\t\t\tconst preparedCounters = Object.entries(options.counters).reduce((acc, [columnId, counter]) => {\n\t\t\t\tif (Type.isPlainObject(counter))\n\t\t\t\t{\n\t\t\t\t\tacc[columnId] = {\n\t\t\t\t\t\t...counter,\n\t\t\t\t\t\tanimation: Text.toBoolean(counter.animation),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t}, {});\n\n\t\t\trow.setCounters(preparedCounters);\n\t\t}\n\n\t\tif (options.prepend === true)\n\t\t{\n\t\t\trow.prependTo(grid.getBody());\n\t\t}\n\t\telse if (options.append === true)\n\t\t{\n\t\t\trow.appendTo(grid.getBody());\n\t\t}\n\t\telse if (Type.isNumber(options.insertBefore) || Type.isStringFilled(options.insertBefore))\n\t\t{\n\t\t\tconst targetRow = grid.getRows().getById(options.insertBefore);\n\t\t\tif (targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertBefore(row.getNode(), targetRow.getNode());\n\t\t\t}\n\t\t}\n\t\telse if (Type.isNumber(options.insertAfter) || Type.isStringFilled(options.insertAfter))\n\t\t{\n\t\t\tconst targetRow = grid.getRows().getById(options.insertAfter);\n\t\t\tif (targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertAfter(row.getNode(), targetRow.getNode());\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new ReferenceError('prepend, append, insertBefore or insertAfter not filled');\n\t\t}\n\n\t\trow.show();\n\n\t\tif (options.animation !== false)\n\t\t{\n\t\t\trow.enableAbsolutePosition();\n\n\t\t\tconst movedElements = grid.getRows().getSourceBodyChild().filter((currentRow) => {\n\t\t\t\treturn currentRow.rowIndex > row.getIndex();\n\t\t\t});\n\n\t\t\tconst fakeRowNode = document.createElement('tr');\n\t\t\tDom.style(fakeRowNode, {\n\t\t\t\theight: '0px',\n\t\t\t\ttransition: '200ms height linear',\n\t\t\t});\n\t\t\tDom.append(fakeRowNode, grid.getBody());\n\n\t\t\tconst offset = row.getHeight();\n\t\t\tDom.style(fakeRowNode, 'height', `${offset}px`);\n\t\t\tmovedElements.forEach((element) => {\n\t\t\t\tDom.style(element, {\n\t\t\t\t\ttransition: '200ms transform linear',\n\t\t\t\t\ttransform: `translateY(${offset}px) translateZ(0)`,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tDom.addClass(row.getNode(), 'main-ui-grid-show-new-row');\n\n\t\t\tEvent.bind(row.getNode(), 'animationend', (event: AnimationEvent) => {\n\t\t\t\tif (event.animationName === 'showNewRow')\n\t\t\t\t{\n\t\t\t\t\tmovedElements.forEach((element) => {\n\t\t\t\t\t\tDom.style(element, {\n\t\t\t\t\t\t\ttransition: null,\n\t\t\t\t\t\t\ttransform: null,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tDom.remove(fakeRowNode);\n\t\t\t\t\trow.disableAbsolutePosition();\n\n\t\t\t\t\tDom.removeClass(row.getNode(), 'main-ui-grid-show-new-row');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tgrid.getRows().reset();\n\t\tgrid.bindOnRowEvents();\n\t\tgrid.updateCounterDisplayed();\n\t\tgrid.updateCounterSelected();\n\n\t\tif (grid.getParam('ALLOW_ROWS_SORT'))\n\t\t{\n\t\t\tgrid.rowsSortable.reinit();\n\t\t}\n\n\t\tif (grid.getParam('ALLOW_COLUMNS_SORT'))\n\t\t{\n\t\t\tgrid.colsSortable.reinit();\n\t\t}\n\t}\n\n\tshowStub(options: ShowStubOptions = {})\n\t{\n\t\tconst tr = document.createElement('tr');\n\t\tDom.addClass(tr, 'main-grid-row main-grid-row-empty main-grid-row-body');\n\n\t\tconst td = document.createElement('td');\n\t\tDom.addClass(td, 'main-grid-cell main-grid-cell-center');\n\t\tconst colspan = this.options.grid.getRows().getHeadFirstChild().getCells().length;\n\t\tDom.attr(td, 'colspan', colspan);\n\n\t\tconst content = (() => {\n\t\t\tif (Type.isPlainObject(options.content))\n\t\t\t{\n\t\t\t\tconst result = [];\n\t\t\t\tif (Type.isStringFilled(options.content.title))\n\t\t\t\t{\n\t\t\t\t\tresult.push(\n\t\t\t\t\t\tTag.render`\n\t\t\t\t\t\t\t<div class=\"main-grid-empty-block-title\">\n\t\t\t\t\t\t\t\t${options.content.title}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (Type.isStringFilled(options.content.description))\n\t\t\t\t{\n\t\t\t\t\tresult.push(\n\t\t\t\t\t\tTag.render`\n\t\t\t\t\t\t\t<div class=\"main-grid-empty-block-description\">\n\t\t\t\t\t\t\t\t${options.content.description}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tType.isStringFilled(options.content)\n\t\t\t\t|| Type.isDomNode(options.content)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn options.content;\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\tTag.render`<div class=\"main-grid-empty-image\"></div>`,\n\t\t\t\tTag.render`<div class=\"main-grid-empty-text\">${this.options.grid.getParam('EMPTY_STUB_TEXT')}</div>`,\n\t\t\t];\n\t\t})();\n\n\t\tconst container = Tag.render`\n\t\t\t<div class=\"main-grid-empty-block\">\n\t\t\t\t<div class=\"main-grid-empty-inner\">\n\t\t\t\t\t${content}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tDom.append(container, td);\n\t\tDom.append(td, tr);\n\n\t\tconst oldStub = this.options.grid.getBody().querySelector('.main-grid-row-empty');\n\t\tif (oldStub)\n\t\t{\n\t\t\tDom.remove(oldStub);\n\t\t}\n\n\t\tDom.append(tr, this.options.grid.getBody());\n\n\t\tthis.options.grid.getRows().getBodyChild().forEach((row) => {\n\t\t\trow.hide();\n\t\t});\n\n\t\tthis.options.grid.adjustEmptyTable(this.options.grid.getRows().getSourceBodyChild());\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.Realtime = Realtime;","import {Reflection} from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class CellActions\n{\n\tstatic PIN = 'main-grid-cell-content-action-pin';\n\tstatic MUTE = 'main-grid-cell-content-action-mute';\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.CellActions = CellActions;","import {Reflection} from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class CellActionState\n{\n\tstatic SHOW_BY_HOVER = 'main-grid-cell-content-action-by-hover';\n\tstatic ACTIVE = 'main-grid-cell-content-action-active';\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.CellActionState = CellActionState;","import 'ui.cnt';\nimport {Reflection} from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class Counters\n{\n\tstatic Type = {\n\t\tLEFT: 'left',\n\t\tLEFT_ALIGNED: 'left-aligned',\n\t\tRIGHT: 'right',\n\t};\n\n\tstatic Color = {\n\t\tDANGER: 'ui-counter-danger',\n\t\tSUCCESS: 'ui-counter-success',\n\t\tPRIMARY: 'ui-counter-primary',\n\t\tGRAY: 'ui-counter-gray',\n\t\tLIGHT: 'ui-counter-light',\n\t\tDARK: 'ui-counter-dark',\n\t};\n\n\tstatic Size = {\n\t\tLARGE: 'ui-counter-lg',\n\t\tMEDIUM: 'ui-counter-md',\n\t};\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.Counters = Counters;","import {Reflection} from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class Label\n{\n\tstatic Color = {\n\t\tDEFAULT: 'ui-label-default',\n\t\tDANGER: 'ui-label-danger',\n\t\tSUCCESS: 'ui-label-success',\n\t\tWARNING: 'ui-label-warning',\n\t\tPRIMARY: 'ui-label-primary',\n\t\tSECONDARY: 'ui-label-secondary',\n\t\tLIGHTGREEN: 'ui-label-lightgreen',\n\t\tLIGHTBLUE: 'ui-label-lightblue',\n\t\tLIGHT: 'ui-label-light',\n\t};\n\n\tstatic RemoveButtonType = {\n\t\tINSIDE: 'main-grid-tag-remove-inside',\n\t\tOUTSIDE: 'main-grid-tag-remove-outside',\n\t};\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.Label = Label;",";(function() {\n\t\"use strict\";\n\n\tBX.namespace('BX.Main');\n\n\t/**\n\t * @event Grid::ready\n\t * @event Grid::columnMoved\n\t * @event Grid::rowMoved\n\t * @event Grid::pageSizeChanged\n\t * @event Grid::optionsUpdated\n\t * @event Grid::dataSorted\n\t * @event Grid::thereSelectedRows\n\t * @event Grid::allRowsSelected\n\t * @event Grid::allRowsUnselected\n\t * @event Grid::noSelectedRows\n\t * @event Grid::updated\n\t * @event Grid::headerPinned\n\t * @event Grid::headerUnpinned\n\t * @event Grid::beforeRequest\n\t * @param {string} containerId\n\t * @param {object} arParams\n\t * @param {boolean} arParams.ALLOW_COLUMNS_SORT\n\t * @param {boolean} arParams.ALLOW_ROWS_SORT\n\t * @param {boolean} arParams.ALLOW_COLUMNS_RESIZE\n\t * @param {boolean} arParams.SHOW_ROW_CHECKBOXES\n\t * @param {boolean} arParams.ALLOW_HORIZONTAL_SCROLL\n\t * @param {boolean} arParams.ALLOW_PIN_HEADER\n\t * @param {boolean} arParams.SHOW_ACTION_PANEL\n\t * @param {boolean} arParams.PRESERVE_HISTORY\n\t * @param {boolean} arParams.BACKEND_URL\n\t * @param {boolean} arParams.ALLOW_CONTEXT_MENU\n\t * @param {object} arParams.DEFAULT_COLUMNS\n\t * @param {boolean} arParams.ENABLE_COLLAPSIBLE_ROWS\n\t * @param {object} arParams.EDITABLE_DATA\n\t * @param {string} arParams.SETTINGS_TITLE\n\t * @param {string} arParams.APPLY_SETTINGS\n\t * @param {string} arParams.CANCEL_SETTINGS\n\t * @param {string} arParams.CONFIRM_APPLY\n\t * @param {string} arParams.CONFIRM_CANCEL\n\t * @param {string} arParams.CONFIRM_MESSAGE\n\t * @param {string} arParams.CONFIRM_FOR_ALL_MESSAGE\n\t * @param {string} arParams.CONFIRM_RESET_MESSAGE\n\t * @param {object} arParams.COLUMNS_ALL_WITH_SECTIONS\n\t * @param {boolean} arParams.ENABLE_FIELDS_SEARCH\n\t * @param {string} arParams.RESET_DEFAULT\n\t * @param {object} userOptions\n\t * @param {object} userOptionsActions\n\t * @param {object} userOptionsHandlerUrl\n\t * @param {object} panelActions\n\t * @param {object} panelTypes\n\t * @param {object} editorTypes\n\t * @param {object} messageTypes\n\t * @constructor\n\t */\n\tBX.Main.grid = function(\n\t\tcontainerId,\n\t\tarParams,\n\t\tuserOptions,\n\t\tuserOptionsActions,\n\t\tuserOptionsHandlerUrl,\n\t\tpanelActions,\n\t\tpanelTypes,\n\t\teditorTypes,\n\t\tmessageTypes\n\t)\n\t{\n\t\tBX.Event.EventEmitter.makeObservable(this, 'BX.Main.Grid');\n\t\tthis.settings = null;\n\t\tthis.containerId = '';\n\t\tthis.container = null;\n\t\tthis.wrapper = null;\n\t\tthis.fadeContainer = null;\n\t\tthis.scrollContainer = null;\n\t\tthis.pagination = null;\n\t\tthis.moreButton = null;\n\t\tthis.table = null;\n\t\tthis.rows = null;\n\t\tthis.history = false;\n\t\tthis.userOptions = null;\n\t\tthis.checkAll = null;\n\t\tthis.sortable = null;\n\t\tthis.updater = null;\n\t\tthis.data = null;\n\t\tthis.fader = null;\n\t\tthis.editor = null;\n\t\tthis.isEditMode = null;\n\t\tthis.pinHeader = null;\n\t\tthis.pinPanel = null;\n\t\tthis.arParams = null;\n\t\tthis.resize = null;\n\t\tthis.editableRows = [];\n\n\t\tthis.init(\n\t\t\tcontainerId,\n\t\t\tarParams,\n\t\t\tuserOptions,\n\t\t\tuserOptionsActions,\n\t\t\tuserOptionsHandlerUrl,\n\t\t\tpanelActions,\n\t\t\tpanelTypes,\n\t\t\teditorTypes,\n\t\t\tmessageTypes\n\t\t);\n\t};\n\n\tBX.Main.grid.isNeedResourcesReady = function(container)\n\t{\n\t\treturn BX.hasClass(container, 'main-grid-load-animation');\n\t};\n\n\tBX.Main.grid.prototype = {\n\t\tinit: function(containerId, arParams, userOptions, userOptionsActions, userOptionsHandlerUrl, panelActions, panelTypes, editorTypes, messageTypes)\n\t\t{\n\t\t\tthis.baseUrl = window.location.pathname + window.location.search;\n\t\t\tthis.container = BX(containerId);\n\n\t\t\tif (!BX.type.isNotEmptyString(containerId))\n\t\t\t{\n\t\t\t\tthrow 'BX.Main.grid.init: parameter containerId is empty';\n\t\t\t}\n\n\t\t\tif (BX.type.isPlainObject(arParams))\n\t\t\t{\n\t\t\t\tthis.arParams = arParams;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error('BX.Main.grid.init: arParams isn\\'t object');\n\t\t\t}\n\n\t\t\tthis.settings = new BX.Grid.Settings();\n\t\t\tthis.containerId = containerId;\n\t\t\tthis.userOptions = new BX.Grid.UserOptions(this, userOptions, userOptionsActions, userOptionsHandlerUrl);\n\t\t\tthis.gridSettings = new BX.Grid.SettingsWindow(this);\n\t\t\tthis.messages = new BX.Grid.Message(this, messageTypes);\n\t\t\tthis.cache = new BX.Cache.MemoryCache();\n\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.pinHeader = new BX.Grid.PinHeader(this);\n\t\t\t\tBX.addCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this.bindOnCheckAll, this));\n\t\t\t}\n\n\t\t\tthis.bindOnCheckAll();\n\n\t\t\tif (this.getParam('ALLOW_HORIZONTAL_SCROLL'))\n\t\t\t{\n\t\t\t\tthis.fader = new BX.Grid.Fader(this);\n\t\t\t}\n\n\t\t\tthis.pageSize = new BX.Grid.Pagesize(this);\n\t\t\tthis.editor = new BX.Grid.InlineEditor(this, editorTypes);\n\n\t\t\tif (this.getParam('SHOW_ACTION_PANEL'))\n\t\t\t{\n\t\t\t\tthis.actionPanel = new BX.Grid.ActionPanel(this, panelActions, panelTypes);\n\t\t\t\tthis.pinPanel = new BX.Grid.PinPanel(this);\n\t\t\t}\n\n\t\t\tthis.isEditMode = false;\n\n\t\t\tif (!BX.type.isDomNode(this.getContainer()))\n\t\t\t{\n\t\t\t\tthrow 'BX.Main.grid.init: Failed to find container with id ' + this.getContainerId();\n\t\t\t}\n\n\t\t\tif (!BX.type.isDomNode(this.getTable()))\n\t\t\t{\n\t\t\t\tthrow 'BX.Main.grid.init: Failed to find table';\n\t\t\t}\n\n\t\t\tthis.bindOnRowEvents();\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_RESIZE'))\n\t\t\t{\n\t\t\t\tthis.resize = new BX.Grid.Resize(this);\n\t\t\t}\n\n\t\t\tthis.bindOnMoreButtonEvents();\n\t\t\tthis.bindOnClickPaginationLinks();\n\t\t\tthis.bindOnClickHeader();\n\n\t\t\tif (this.getParam('ALLOW_ROWS_SORT'))\n\t\t\t{\n\t\t\t\tthis.initRowsDragAndDrop();\n\t\t\t}\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t{\n\t\t\t\tthis.initColsDragAndDrop();\n\t\t\t}\n\n\t\t\tthis.getRows().initSelected();\n\t\t\tthis.adjustEmptyTable(this.getRows().getSourceBodyChild());\n\t\t\tBX.onCustomEvent(this.getContainer(), 'Grid::ready', [this]);\n\t\t\tBX.addCustomEvent(window, 'Grid::unselectRow', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::unselectRows', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this._onGridUpdated, this));\n\t\t\twindow.frames[this.getFrameId()].onresize = BX.throttle(this._onFrameResize, 20, this);\n\n\t\t\tif (this.getParam('ALLOW_STICKED_COLUMNS'))\n\t\t\t{\n\t\t\t\tthis.initStickedColumns();\n\t\t\t}\n\t\t},\n\n\t\tdestroy: function()\n\t\t{\n\t\t\tBX.removeCustomEvent(window, 'Grid::unselectRow', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::unselectRows', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::headerPinned', BX.proxy(this.bindOnCheckAll, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this._onGridUpdated, this));\n\t\t\tthis.getPinHeader() && this.getPinHeader().destroy();\n\t\t\tthis.getFader() && this.getFader().destroy();\n\t\t\tthis.getResize() && this.getResize().destroy();\n\t\t\tthis.getColsSortable() && this.getColsSortable().destroy();\n\t\t\tthis.getRowsSortable() && this.getRowsSortable().destroy();\n\t\t\tthis.getSettingsWindow() && this.getSettingsWindow().destroy();\n\t\t\tthis.getActionsPanel() && this.getActionsPanel().destroy();\n\t\t\tthis.getPinPanel() && this.getPinPanel().destroy();\n\t\t\tthis.getPageSize() && this.getPageSize().destroy();\n\t\t},\n\n\t\t_onFrameResize: function()\n\t\t{\n\t\t\tBX.onCustomEvent(window, 'Grid::resize', [this]);\n\t\t},\n\n\t\t_onGridUpdated: function()\n\t\t{\n\t\t\tthis.initStickedColumns();\n\t\t\tthis.adjustFadePosition(this.getFadeOffset());\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {string}\n\t\t */\n\t\tgetFrameId: function()\n\t\t{\n\t\t\treturn \"main-grid-tmp-frame-\"+this.getContainerId();\n\t\t},\n\n\t\tenableActionsPanel: function()\n\t\t{\n\t\t\tif (this.getParam('SHOW_ACTION_PANEL'))\n\t\t\t{\n\t\t\t\tvar panel = this.getActionsPanel().getPanel();\n\n\t\t\t\tif (BX.type.isDomNode(panel))\n\t\t\t\t{\n\t\t\t\t\tBX.removeClass(panel, this.settings.get('classDisable'));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tdisableActionsPanel: function()\n\t\t{\n\t\t\tif (this.getParam('SHOW_ACTION_PANEL'))\n\t\t\t{\n\t\t\t\tvar panel = this.getActionsPanel().getPanel();\n\n\t\t\t\tif (BX.type.isDomNode(panel))\n\t\t\t\t{\n\t\t\t\t\tBX.addClass(panel, this.settings.get('classDisable'));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetSettingsWindow: function()\n\t\t{\n\t\t\treturn this.gridSettings;\n\t\t},\n\n\t\t_onUnselectRows: function()\n\t\t{\n\t\t\tvar panel = this.getActionsPanel();\n\t\t\tvar checkbox;\n\n\t\t\tif (panel instanceof BX.Grid.ActionPanel)\n\t\t\t{\n\t\t\t\tcheckbox = panel.getForAllCheckbox();\n\n\t\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t\t{\n\t\t\t\t\tcheckbox.checked = null;\n\t\t\t\t\tthis.disableForAllCounter();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.adjustCheckAllCheckboxes();\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisIE: function()\n\t\t{\n\t\t\tif (!BX.type.isBoolean(this.ie))\n\t\t\t{\n\t\t\t\tthis.ie = BX.hasClass(document.documentElement, 'bx-ie');\n\t\t\t}\n\n\t\t\treturn this.ie;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisTouch: function()\n\t\t{\n\t\t\tif (!BX.type.isBoolean(this.touch))\n\t\t\t{\n\t\t\t\tthis.touch = BX.hasClass(document.documentElement, 'bx-touch');\n\t\t\t}\n\n\t\t\treturn this.touch;\n\t\t},\n\n\n\t\t/**\n\t\t * @param {string} paramName\n\t\t * @param {*} [defaultValue]\n\t\t * @return {*}\n\t\t */\n\t\tgetParam: function(paramName, defaultValue)\n\t\t{\n\t\t\tif(defaultValue === undefined)\n\t\t\t{\n\t\t\t\tdefaultValue = null;\n\t\t\t}\n\t\t\treturn (this.arParams.hasOwnProperty(paramName) ? this.arParams[paramName] : defaultValue);\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetCounterTotal: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounterTotal'), true);\n\t\t},\n\n\t\tgetActionKey: function()\n\t\t{\n\t\t\treturn ('action_button_' + this.getId());\n\t\t},\n\n\n\t\t/**\n\t\t * @return {?BX.Grid.PinHeader}\n\t\t */\n\t\tgetPinHeader: function()\n\t\t{\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.pinHeader = this.pinHeader || new BX.Grid.PinHeader(this);\n\t\t\t}\n\n\t\t\treturn this.pinHeader;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.Resize}\n\t\t */\n\t\tgetResize: function()\n\t\t{\n\t\t\tif (!(this.resize instanceof BX.Grid.Resize) && this.getParam('ALLOW_COLUMNS_RESIZE'))\n\t\t\t{\n\t\t\t\tthis.resize = new BX.Grid.Resize(this);\n\t\t\t}\n\n\t\t\treturn this.resize;\n\t\t},\n\n\t\tconfirmForAll: function(container)\n\t\t{\n\t\t\tvar checkbox;\n\t\t\tvar self = this;\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tcheckbox = BX.Grid.Utils.getByTag(container, 'input', true);\n\t\t\t}\n\n\t\t\tif (checkbox.checked)\n\t\t\t{\n\t\t\t\tthis.getActionsPanel().confirmDialog(\n\t\t\t\t\t{CONFIRM: true, CONFIRM_MESSAGE: this.arParams.CONFIRM_FOR_ALL_MESSAGE},\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcheckbox.checked = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.selectAllCheckAllCheckboxes();\n\t\t\t\t\t\tself.getRows().selectAll();\n\t\t\t\t\t\tself.enableForAllCounter();\n\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\tself.enableActionsPanel();\n\t\t\t\t\t\tself.adjustCheckAllCheckboxes();\n\t\t\t\t\t\tself.lastRowAction = null;\n\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsSelected', []);\n\t\t\t\t\t},\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcheckbox.checked = null;\n\t\t\t\t\t\t\tself.disableForAllCounter();\n\t\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\t\tself.adjustCheckAllCheckboxes();\n\t\t\t\t\t\t\tself.lastRowAction = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t\tthis.adjustCheckAllCheckboxes();\n\t\t\t\tthis.getRows().unselectAll();\n\t\t\t\tthis.disableForAllCounter();\n\t\t\t\tthis.updateCounterDisplayed();\n\t\t\t\tthis.updateCounterSelected();\n\t\t\t\tthis.disableActionsPanel();\n\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsUnselected', []);\n\t\t\t}\n\t\t},\n\n\t\tdisableCheckAllCheckboxes: function()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach(function(checkbox) {\n\t\t\t\tcheckbox.getNode().disabled = true;\n\t\t\t});\n\t\t},\n\n\t\tenableCheckAllCheckboxes: function()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach(function(checkbox) {\n\t\t\t\tcheckbox.getNode().disabled = false;\n\t\t\t});\n\t\t},\n\n\t\tindeterminateCheckAllCheckboxes: function()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach(function(checkbox) {\n\t\t\t\tcheckbox.getNode().indeterminate = true;\n\t\t\t});\n\t\t},\n\n\t\tdeterminateCheckAllCheckboxes: function()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach(function(checkbox) {\n\t\t\t\tcheckbox.getNode().indeterminate = false;\n\t\t\t});\n\t\t},\n\n\t\teditSelected: function()\n\t\t{\n\t\t\tthis.disableCheckAllCheckboxes();\n\t\t\tthis.getRows().editSelected();\n\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.getPinHeader()._onGridUpdate();\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::resize', [this]);\n\t\t},\n\n\t\teditSelectedSave: function()\n\t\t{\n\t\t\tvar data = {'FIELDS': this.getRows().getEditSelectedValues(true)};\n\n\t\t\tif (this.getParam(\"ALLOW_VALIDATE\"))\n\t\t\t{\n\t\t\t\tthis.tableFade();\n\t\t\t\tdata[this.getActionKey()] = 'validate';\n\t\t\t\tthis.getData().request('', 'POST', data, 'validate', function(res) {\n\t\t\t\t\tres = JSON.parse(res);\n\n\t\t\t\t\tif (res.messages.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.arParams['MESSAGES'] = res.messages;\n\t\t\t\t\t\tthis.messages.show();\n\n\t\t\t\t\t\tvar editButton = this.getActionsPanel().getButtons()\n\t\t\t\t\t\t\t.find(function(button) {\n\t\t\t\t\t\t\t\treturn button.id === \"grid_edit_button_control\";\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.tableUnfade();\n\t\t\t\t\t\tBX.fireEvent(editButton, 'click');\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[this.getActionKey()] = 'edit';\n\t\t\t\t\t\tthis.reloadTable('POST', data);\n\t\t\t\t\t}\n\t\t\t\t}.bind(this));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.getParam('HANDLE_RESPONSE_ERRORS'))\n\t\t\t{\n\t\t\t\tdata[this.getActionKey()] = 'edit';\n\n\t\t\t\tvar self = this;\n\t\t\t\tthis.tableFade();\n\n\t\t\t\tthis.getData().request(\n\t\t\t\t\t'',\n\t\t\t\t\t\"POST\",\n\t\t\t\t\tdata,\n\t\t\t\t\t'',\n\t\t\t\t\tfunction(res) {\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tres = JSON.parse(res);\n\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\tres = {messages: []};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (res.messages.length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.arParams['MESSAGES'] = res.messages;\n\t\t\t\t\t\t\tself.messages.show();\n\n\t\t\t\t\t\t\tvar editButton = self.getActionsPanel().getButtons()\n\t\t\t\t\t\t\t\t.find(function(button) {\n\t\t\t\t\t\t\t\t\treturn button.id === \"grid_edit_button_control\";\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tself.tableUnfade();\n\t\t\t\t\t\t\tBX.fireEvent(editButton, 'click');\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.getRows().reset();\n\t\t\t\t\t\tvar bodyRows = this.getBodyRows();\n\t\t\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\t\t\tself.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\t\t\tself.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\t\t\tself.getUpdater().updateCounterTotal(this.getCounterTotal());\n\n\t\t\t\t\t\tself.adjustEmptyTable(bodyRows);\n\n\t\t\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\t\t\tself.bindOnClickHeader();\n\t\t\t\t\t\tself.bindOnCheckAll();\n\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\tself.disableActionsPanel();\n\t\t\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.getUpdater().updateGroupActions(this.getActionPanel());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.tableUnfade();\n\n\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\t\t\t\t\t},\n\t\t\t\t\tfunction(res) {\n\t\t\t\t\t\tvar editButton = self.getActionsPanel().getButtons()\n\t\t\t\t\t\t\t.find(function(button) {\n\t\t\t\t\t\t\t\treturn button.id === \"grid_edit_button_control\";\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\tself.tableUnfade();\n\t\t\t\t\t\tBX.fireEvent(editButton, 'click');\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata[this.getActionKey()] = 'edit';\n\t\t\tthis.reloadTable('POST', data);\n\t\t},\n\n\t\tgetForAllKey: function()\n\t\t{\n\t\t\treturn 'action_all_rows_' + this.getId();\n\t\t},\n\n\t\tupdateRow: function(id, data, url, callback)\n\t\t{\n\t\t\tvar row = this.getRows().getById(id);\n\n\t\t\tif (row instanceof BX.Grid.Row)\n\t\t\t{\n\t\t\t\trow.update(data, url, callback);\n\t\t\t}\n\t\t},\n\n\t\tremoveRow: function(id, data, url, callback)\n\t\t{\n\t\t\tvar row = this.getRows().getById(id);\n\n\t\t\tif (row instanceof BX.Grid.Row)\n\t\t\t{\n\t\t\t\trow.remove(data, url, callback);\n\t\t\t}\n\t\t},\n\n\t\taddRow: function(data, url, callback)\n\t\t{\n\t\t\tvar action = this.getUserOptions().getAction('GRID_ADD_ROW');\n\t\t\tvar rowData = {action: action, data: data};\n\t\t\tvar self = this;\n\n\t\t\tthis.tableFade();\n\t\t\tthis.getData().request(url, 'POST', rowData, null, function() {\n\t\t\t\tvar bodyRows = this.getBodyRows();\n\t\t\t\tself.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.tableUnfade();\n\t\t\t\tself.getRows().reset();\n\t\t\t\tself.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.getUpdater().updateCounterTotal(this.getCounterTotal());\n\t\t\t\tself.bindOnRowEvents();\n\t\t\t\tself.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\tself.updateCounterSelected();\n\n\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowAdded', [{data: data, grid: self, response: this}]);\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback({data: data, grid: self, response: this});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\teditSelectedCancel: function()\n\t\t{\n\t\t\tthis.getRows().editSelectedCancel();\n\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.getPinHeader()._onGridUpdate();\n\t\t\t}\n\t\t},\n\n\t\tremoveSelected: function()\n\t\t{\n\t\t\tvar data = { 'ID': this.getRows().getSelectedIds() };\n\t\t\tvar values = this.getActionsPanel().getValues();\n\t\t\tdata[this.getActionKey()] = 'delete';\n\t\t\tdata[this.getForAllKey()] = this.getForAllKey() in values ? values[this.getForAllKey()] : 'N';\n\t\t\tthis.reloadTable('POST', data);\n\t\t},\n\n\t\tsendSelected: function()\n\t\t{\n\t\t\tvar values = this.getActionsPanel().getValues();\n\t\t\tvar selectedRows = this.getRows().getSelectedIds();\n\t\t\tvar data = {\n\t\t\t\trows: selectedRows,\n\t\t\t\tcontrols: values\n\t\t\t};\n\n\t\t\tthis.reloadTable('POST', data);\n\t\t},\n\n\n\t\t/**\n\t\t * @return {?BX.Grid.ActionPanel}\n\t\t */\n\t\tgetActionsPanel: function()\n\t\t{\n\t\t\treturn this.actionPanel;\n\t\t},\n\n\t\tgetPinPanel: function()\n\t\t{\n\t\t\treturn this.pinPanel;\n\t\t},\n\n\t\tgetApplyButton: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classPanelButton'), true);\n\t\t},\n\n\t\tgetEditor: function()\n\t\t{\n\t\t\treturn this.editor;\n\t\t},\n\n\t\treload: function(url)\n\t\t{\n\t\t\tthis.reloadTable(\"GET\", {}, null, url);\n\t\t},\n\n\t\tgetPanels: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classPanels'), true);\n\t\t},\n\n\t\tgetEmptyBlock: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classEmptyBlock'), true);\n\t\t},\n\n\t\tadjustEmptyTable: function(rows)\n\t\t{\n\t\t\tfunction adjustEmptyBlockPosition(event) {\n\t\t\t\tvar target = event.currentTarget;\n\t\t\t\tBX.style(emptyBlock, 'transform', 'translate3d(' + BX.scrollLeft(target) + 'px, 0px, 0');\n\t\t\t}\n\n\t\t\tvar filteredRows = rows.filter(function(row) {\n\t\t\t\treturn (\n\t\t\t\t\tBX.Dom.attr(row, 'data-id') !== 'template_0'\n\t\t\t\t\t&& !BX.Dom.hasClass(row, 'main-grid-hide')\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tif (\n\t\t\t\t!BX.hasClass(document.documentElement, 'bx-ie')\n\t\t\t\t&& filteredRows.length === 1\n\t\t\t\t&& BX.hasClass(filteredRows[0], this.settings.get('classEmptyRows'))\n\t\t\t)\n\t\t\t{\n\t\t\t\tvar gridRect = BX.pos(this.getContainer());\n\t\t\t\tvar scrollBottom = BX.scrollTop(window) + BX.height(window);\n\t\t\t\tvar diff = gridRect.bottom - scrollBottom;\n\t\t\t\tvar panelsHeight = BX.height(this.getPanels());\n\t\t\t\tvar emptyBlock = this.getEmptyBlock();\n\t\t\t\tvar containerWidth = BX.width(this.getContainer());\n\n\t\t\t\tif (containerWidth)\n\t\t\t\t{\n\t\t\t\t\tBX.width(emptyBlock, containerWidth);\n\t\t\t\t}\n\n\t\t\t\tBX.style(emptyBlock, 'transform', 'translate3d(' + BX.scrollLeft(this.getScrollContainer()) + 'px, 0px, 0');\n\n\t\t\t\tBX.unbind(this.getScrollContainer(), 'scroll', adjustEmptyBlockPosition);\n\t\t\t\tBX.bind(this.getScrollContainer(), 'scroll', adjustEmptyBlockPosition);\n\n\t\t\t\tvar parent = this.getContainer();\n\t\t\t\tvar paddingOffset = 0;\n\n\t\t\t\twhile (parent = parent.parentElement)\n\t\t\t\t{\n\t\t\t\t\tvar parentPaddingTop = parseFloat(BX.style(parent, \"padding-top\"));\n\t\t\t\t\tvar parentPaddingBottom = parseFloat(BX.style(parent, \"padding-bottom\"));\n\n\t\t\t\t\tif (!isNaN(parentPaddingTop))\n\t\t\t\t\t{\n\t\t\t\t\t\tpaddingOffset += parentPaddingTop;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!isNaN(parentPaddingBottom))\n\t\t\t\t\t{\n\t\t\t\t\t\tpaddingOffset += parentPaddingBottom;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (diff > 0)\n\t\t\t\t{\n\t\t\t\t\tBX.style(this.getTable(), 'min-height', (gridRect.height - diff - panelsHeight - paddingOffset) + 'px');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBX.style(this.getTable(), 'min-height', (gridRect.height + Math.abs(diff) - panelsHeight - paddingOffset) + 'px');\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.style(this.getTable(), 'min-height', '');\n\n\t\t\t\t// Chrome hack for 0116845 bug. @todo refactoring\n\t\t\t\tBX.style(this.getTable(), 'height', '1px');\n\t\t\t\trequestAnimationFrame(function() {\n\t\t\t\t\tBX.style(this.getTable(), 'height', '1px');\n\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t},\n\n\t\treloadTable: function(method, data, callback, url)\n\t\t{\n\t\t\tvar bodyRows;\n\n\t\t\tif(!BX.type.isNotEmptyString(method))\n\t\t\t{\n\t\t\t\tmethod = \"GET\";\n\t\t\t}\n\n\t\t\tif(!BX.type.isPlainObject(data))\n\t\t\t{\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\tvar self = this;\n\t\t\tthis.tableFade();\n\n\t\t\tif(!BX.type.isString(url))\n\t\t\t{\n\t\t\t\turl = \"\";\n\t\t\t}\n\n\t\t\tthis.getData().request(url, method, data, '', function() {\n\t\t\t\tBX.onCustomEvent(window, 'BX.Main.Grid:onBeforeReload', [self]);\n\t\t\t\tself.getRows().reset();\n\t\t\t\tbodyRows = this.getBodyRows();\n\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\tself.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.getUpdater().updateCounterTotal(this.getCounterTotal());\n\n\t\t\t\tself.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\tself.bindOnClickHeader();\n\t\t\t\tself.bindOnCheckAll();\n\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\tself.updateCounterSelected();\n\t\t\t\tself.disableActionsPanel();\n\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t{\n\t\t\t\t\tself.getUpdater().updateGroupActions(this.getActionPanel());\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tself.tableUnfade();\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t\tif (self.getParam('ALLOW_PIN_HEADER'))\n\t\t\t\t{\n\t\t\t\t\tself.getPinHeader()._onGridUpdate();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetGroupEditButton: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classGroupEditButton'), true);\n\t\t},\n\n\t\tgetGroupDeleteButton: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classGroupDeleteButton'), true);\n\t\t},\n\n\t\tenableGroupActions: function()\n\t\t{\n\t\t\tvar editButton = this.getGroupEditButton();\n\t\t\tvar deleteButton = this.getGroupDeleteButton();\n\n\t\t\tif (BX.type.isDomNode(editButton))\n\t\t\t{\n\t\t\t\tBX.removeClass(editButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(deleteButton))\n\t\t\t{\n\t\t\t\tBX.removeClass(deleteButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\t\t},\n\n\t\tdisableGroupActions: function()\n\t\t{\n\t\t\tvar editButton = this.getGroupEditButton();\n\t\t\tvar deleteButton = this.getGroupDeleteButton();\n\n\t\t\tif (BX.type.isDomNode(editButton))\n\t\t\t{\n\t\t\t\tBX.addClass(editButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(deleteButton))\n\t\t\t{\n\t\t\t\tBX.addClass(deleteButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\t\t},\n\n\t\tcloseActionsMenu: function()\n\t\t{\n\t\t\tvar rows = this.getRows().getRows();\n\t\t\tfor(var i = 0, l = rows.length; i < l; i++)\n\t\t\t{\n\t\t\t\trows[i].closeActionsMenu();\n\t\t\t}\n\t\t},\n\n\t\tgetPageSize: function()\n\t\t{\n\t\t\treturn this.pageSize;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {?BX.Grid.Fader}\n\t\t */\n\t\tgetFader: function()\n\t\t{\n\t\t\treturn this.fader;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.Data}\n\t\t */\n\t\tgetData: function()\n\t\t{\n\t\t\tthis.data = this.data || new BX.Grid.Data(this);\n\t\t\treturn this.data;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.Updater}\n\t\t */\n\t\tgetUpdater: function()\n\t\t{\n\t\t\tthis.updater = this.updater || new BX.Grid.Updater(this);\n\t\t\treturn this.updater;\n\t\t},\n\n\t\tisSortableHeader: function(item)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(item, this.settings.get('classHeaderSortable'))\n\t\t\t);\n\t\t},\n\n\t\tisNoSortableHeader: function(item)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(item, this.settings.get('classHeaderNoSortable'))\n\t\t\t);\n\t\t},\n\n\t\tbindOnClickHeader: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tvar cell;\n\n\t\t\tBX.bind(this.getContainer(), 'click', function(event) {\n\t\t\t\tcell = BX.findParent(event.target, {tag: 'th'}, true, false);\n\n\t\t\t\tif (cell && self.isSortableHeader(cell) && !self.preventSortableClick)\n\t\t\t\t{\n\t\t\t\t\tvar onBeforeSortEvent = new BX.Event.BaseEvent({\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tgrid: self,\n\t\t\t\t\t\t\tcolumnName: BX.data(cell, 'name')\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tBX.Event.EventEmitter.emit('BX.Main.grid:onBeforeSort', onBeforeSortEvent);\n\t\t\t\t\tif (onBeforeSortEvent.isDefaultPrevented())\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tself.preventSortableClick = false;\n\t\t\t\t\tself._clickOnSortableHeader(cell, event);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tenableEditMode: function()\n\t\t{\n\t\t\tthis.isEditMode = true;\n\t\t},\n\n\t\tdisableEditMode: function()\n\t\t{\n\t\t\tthis.isEditMode = false;\n\t\t},\n\n\t\tisEditMode: function()\n\t\t{\n\t\t\treturn this.isEditMode;\n\t\t},\n\n\t\tgetColumnHeaderCellByName: function(name)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(\n\t\t\t\tthis.getContainer(),\n\t\t\t\t'#'+this.getId()+' th[data-name=\"'+name+'\"]',\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\n\t\tgetColumnByName: function(name)\n\t\t{\n\t\t\tvar columns = this.getParam('DEFAULT_COLUMNS');\n\t\t\treturn !!name && name in columns ? columns[name] : null;\n\t\t},\n\n\t\tadjustIndex: function(index)\n\t\t{\n\t\t\tvar fixedCells = this.getAllRows()[0]\n\t\t\t\t.querySelectorAll('.main-grid-fixed-column').length;\n\t\t\treturn (index + fixedCells);\n\t\t},\n\n\t\tgetColumnByIndex: function(index)\n\t\t{\n\t\t\tindex = this.adjustIndex(index);\n\n\t\t\treturn this.getAllRows()\n\t\t\t\t.reduce(function(accumulator, row) {\n\t\t\t\t\tif (!row.classList.contains('main-grid-row-custom') && !row.classList.contains('main-grid-row-empty'))\n\t\t\t\t\t{\n\t\t\t\t\t\taccumulator.push(row.children[index]);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, []);\n\t\t},\n\n\t\tgetAllRows: function()\n\t\t{\n\t\t\tvar rows = [].slice.call(this.getTable().rows);\n\t\t\tvar fixedTable = this.getContainer().parentElement.querySelector(\".main-grid-fixed-bar table\");\n\n\t\t\tif (fixedTable)\n\t\t\t{\n\t\t\t\trows.push(fixedTable.rows[0]);\n\t\t\t}\n\n\t\t\treturn rows;\n\t\t},\n\n\t\tinitStickedColumns: function()\n\t\t{\n\t\t\t[].slice.call(this.getAllRows()[0].children).forEach(function(cell, index) {\n\t\t\t\tif (cell.classList.contains('main-grid-sticked-column'))\n\t\t\t\t{\n\t\t\t\t\tthis.stickyColumnByIndex(index);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_RESIZE'))\n\t\t\t{\n\t\t\t\tthis.getResize().destroy();\n\t\t\t\tthis.getResize().init(this);\n\t\t\t}\n\t\t},\n\n\t\tsetStickedColumns: function(columns)\n\t\t{\n\t\t\tif (BX.type.isArray(columns))\n\t\t\t{\n\t\t\t\tvar options = this.getUserOptions();\n\t\t\t\tvar actions = [\n\t\t\t\t\t{\n\t\t\t\t\t\taction: options.getAction('GRID_SET_STICKED_COLUMNS'),\n\t\t\t\t\t\tstickedColumns: columns\n\t\t\t\t\t}\n\t\t\t\t];\n\n\t\t\t\toptions.batch(actions, function() {\n\t\t\t\t\tthis.reloadTable();\n\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t},\n\n\t\tgetStickedColumns: function()\n\t\t{\n\t\t\tvar columns = [].slice.call(this.getHead().querySelectorAll('.main-grid-cell-head'));\n\n\t\t\treturn columns.reduce(function(acc, column) {\n\t\t\t\tif (\n\t\t\t\t\tBX.hasClass(column, 'main-grid-fixed-column')\n\t\t\t\t\t&& !BX.hasClass(column, 'main-grid-cell-checkbox')\n\t\t\t\t\t&& !BX.hasClass(column, 'main-grid-cell-action')\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tacc.push(column.dataset.name);\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t}.bind(this), []);\n\t\t},\n\n\t\tstickyColumnByIndex: function(index)\n\t\t{\n\t\t\tvar column = this.getColumnByIndex(index);\n\t\t\tvar cellWidth = column[0].clientWidth;\n\n\t\t\tvar heights = column.map(function(cell) {\n\t\t\t\treturn BX.height(cell);\n\t\t\t});\n\n\t\t\tcolumn.forEach(function(cell, cellIndex) {\n\t\t\t\tcell.style.minWidth = cellWidth + 'px';\n\t\t\t\tcell.style.width = cellWidth + 'px';\n\t\t\t\tcell.style.minHeight = heights[cellIndex] + 'px';\n\n\t\t\t\tvar clone = BX.clone(cell);\n\n\t\t\t\tvar lastStickyCell = this.getLastStickyCellFromRowByIndex(cellIndex);\n\n\t\t\t\tif (lastStickyCell)\n\t\t\t\t{\n\t\t\t\t\tvar lastStickyCellLeft = parseInt(BX.style(lastStickyCell, 'left'));\n\t\t\t\t\tvar lastStickyCellWidth = parseInt(BX.style(lastStickyCell, 'width'));\n\n\t\t\t\t\tlastStickyCellLeft = isNaN(lastStickyCellLeft) ? 0 : lastStickyCellLeft;\n\t\t\t\t\tlastStickyCellWidth = isNaN(lastStickyCellWidth) ? 0 : lastStickyCellWidth;\n\n\t\t\t\t\tcell.style.left = (lastStickyCellLeft + lastStickyCellWidth) + 'px';\n\t\t\t\t}\n\n\t\t\t\tcell.classList.add('main-grid-fixed-column');\n\t\t\t\tcell.classList.add('main-grid-cell-static');\n\t\t\t\tclone.classList.add('main-grid-cell-static');\n\n\t\t\t\tif (this.getColsSortable())\n\t\t\t\t{\n\t\t\t\t\tthis.getColsSortable().unregister(cell);\n\t\t\t\t\tthis.getColsSortable().unregister(clone);\n\t\t\t\t}\n\n\t\t\t\tBX.insertAfter(clone, cell);\n\n\t\t\t}, this);\n\n\t\t\tthis.adjustFadePosition(this.getFadeOffset());\n\t\t},\n\n\t\tadjustFixedColumnsPosition: function()\n\t\t{\n\t\t\tvar fixedCells = this.getAllRows()[0]\n\t\t\t\t.querySelectorAll('.main-grid-fixed-column').length;\n\n\t\t\tvar columnsPosition = [].slice.call(this.getAllRows()[0].children)\n\t\t\t\t.reduce(function(accumulator, cell, index, columns) {\n\t\t\t\t\tvar cellLeft;\n\t\t\t\t\tvar cellWidth;\n\n\t\t\t\t\tif (columns[index-1] && columns[index-1].classList.contains('main-grid-fixed-column'))\n\t\t\t\t\t{\n\t\t\t\t\t\tcellLeft = parseInt(BX.style(columns[index-1], 'left'));\n\t\t\t\t\t\tcellWidth = parseInt(BX.style(columns[index-1], 'width'));\n\n\t\t\t\t\t\tcellLeft = isNaN(cellLeft) ? 0 : cellLeft;\n\t\t\t\t\t\tcellWidth = isNaN(cellWidth) ? 0 : cellWidth;\n\n\t\t\t\t\t\taccumulator.push({index: index+1, left: (cellLeft + cellWidth)});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, []);\n\n\t\t\tcolumnsPosition\n\t\t\t\t.forEach(function(item) {\n\t\t\t\t\tvar column = this.getColumnByIndex(item.index - fixedCells);\n\n\t\t\t\t\tcolumn.forEach(function(cell) {\n\t\t\t\t\t\tif (item.index !== columnsPosition[columnsPosition.length-1].index)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcell.style.left = item.left + 'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, this);\n\n\t\t\tthis.getAllRows()\n\t\t\t\t.forEach(function(row) {\n\t\t\t\t\tvar height = BX.height(row);\n\t\t\t\t\tvar cells = [].slice.call(row.children);\n\n\t\t\t\t\tcells.forEach(function(cell) {\n\t\t\t\t\t\tcell.style.minHeight = height + 'px';\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t},\n\n\t\tgetLastStickyCellFromRowByIndex: function(index)\n\t\t{\n\t\t\treturn [].slice.call(this.getAllRows()[index].children)\n\t\t\t\t.reduceRight(function(accumulator, cell) {\n\t\t\t\t\tif (!accumulator && cell.classList.contains('main-grid-fixed-column'))\n\t\t\t\t\t{\n\t\t\t\t\t\taccumulator = cell;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, null);\n\t\t},\n\n\t\tgetFadeOffset: function()\n\t\t{\n\t\t\tvar fadeOffset = 0;\n\t\t\tvar lastStickyCell = this.getLastStickyCellFromRowByIndex(0);\n\n\t\t\tif (lastStickyCell)\n\t\t\t{\n\t\t\t\tvar lastStickyCellLeft = parseInt(BX.style(lastStickyCell, 'left'));\n\t\t\t\tvar lastStickyCellWidth = lastStickyCell.offsetWidth;\n\n\t\t\t\tlastStickyCellLeft = isNaN(lastStickyCellLeft) ? 0 : lastStickyCellLeft;\n\t\t\t\tlastStickyCellWidth = isNaN(lastStickyCellWidth) ? 0 : lastStickyCellWidth;\n\n\t\t\t\tfadeOffset = lastStickyCellLeft + lastStickyCellWidth;\n\t\t\t}\n\n\t\t\treturn fadeOffset;\n\t\t},\n\n\t\tadjustFadePosition: function(offset)\n\t\t{\n\t\t\tvar earLeft = this.getFader().getEarLeft();\n\t\t\tvar shadowLeft = this.getFader().getShadowLeft();\n\n\t\t\tearLeft.style.left = offset + 'px';\n\t\t\tshadowLeft.style.left = offset + 'px';\n\t\t},\n\n\t\t/**\n\t\t * @param {string|object} column\n\t\t */\n\t\tsortByColumn: function(column)\n\t\t{\n\t\t\tvar headerCell = null;\n\t\t\tvar header = null;\n\n\t\t\tif (!BX.type.isPlainObject(column))\n\t\t\t{\n\t\t\t\theaderCell = this.getColumnHeaderCellByName(column);\n\t\t\t\theader = this.getColumnByName(column);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\theader = column;\n\t\t\t\theader.sort_url = this.prepareSortUrl(column);\n\t\t\t}\n\n\t\t\tif (header && (!!headerCell && !BX.hasClass(headerCell, this.settings.get('classLoad')) || !headerCell))\n\t\t\t{\n\t\t\t\t!!headerCell && BX.addClass(headerCell, this.settings.get('classLoad'));\n\t\t\t\tthis.tableFade();\n\n\t\t\t\tvar self = this;\n\n\t\t\t\tthis.getUserOptions().setSort(header.sort_by, header.sort_order, function() {\n\t\t\t\t\tself.getData().request(header.sort_url, null, null, 'sort', function() {\n\t\t\t\t\t\tself.rows = null;\n\t\t\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\t\t\tself.getUpdater().updateBodyRows(this.getBodyRows());\n\t\t\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\n\t\t\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\t\t\tself.bindOnCheckAll();\n\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\tself.disableActionsPanel();\n\t\t\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.getActionsPanel().resetForAllCheckbox();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:sort', [header, self]);\n\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\t\t\t\t\t\tself.tableUnfade();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tprepareSortUrl: function(header)\n\t\t{\n\t\t\tvar url = window.location.toString();\n\n\t\t\tif ('sort_by' in header)\n\t\t\t{\n\t\t\t\turl = BX.util.add_url_param(url, {by: header.sort_by});\n\t\t\t}\n\n\t\t\tif ('sort_order' in header)\n\t\t\t{\n\t\t\t\turl = BX.util.add_url_param(url, {order: header.sort_order});\n\t\t\t}\n\n\t\t\treturn url;\n\t\t},\n\n\t\t_clickOnSortableHeader: function(header, event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.sortByColumn(BX.data(header, 'name'));\n\t\t},\n\n\t\tgetObserver: function()\n\t\t{\n\t\t\treturn BX.Grid.observer;\n\t\t},\n\n\t\tinitRowsDragAndDrop: function()\n\t\t{\n\t\t\tthis.rowsSortable = new BX.Grid.RowsSortable(this);\n\t\t},\n\n\t\tinitColsDragAndDrop: function()\n\t\t{\n\t\t\tthis.colsSortable = new BX.Grid.ColsSortable(this);\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.RowsSortable}\n\t\t */\n\t\tgetRowsSortable: function()\n\t\t{\n\t\t\treturn this.rowsSortable;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.ColsSortable}\n\t\t */\n\t\tgetColsSortable: function()\n\t\t{\n\t\t\treturn this.colsSortable;\n\t\t},\n\n\t\tgetUserOptionsHandlerUrl: function()\n\t\t{\n\t\t\treturn this.userOptionsHandlerUrl || '';\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.UserOptions}\n\t\t */\n\t\tgetUserOptions: function()\n\t\t{\n\t\t\treturn this.userOptions;\n\t\t},\n\n\t\tgetCheckAllCheckboxes: function()\n\t\t{\n\t\t\tvar checkAllNodes = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCheckAllCheckboxes'));\n\t\t\treturn checkAllNodes.map(function(current) {\n\t\t\t\treturn new BX.Grid.Element(current);\n\t\t\t});\n\t\t},\n\n\t\tselectAllCheckAllCheckboxes: function()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach(function(current) {\n\t\t\t\tcurrent.getNode().checked = true;\n\t\t\t});\n\t\t},\n\n\t\tunselectAllCheckAllCheckboxes: function()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach(function(current) {\n\t\t\t\tcurrent.getNode().checked = false;\n\t\t\t});\n\t\t},\n\n\t\tadjustCheckAllCheckboxes: function()\n\t\t{\n\t\t\tvar total = this.getRows().getBodyChild().filter(function(row) {\n\t\t\t\treturn row.isShown() && !!row.getCheckbox();\n\t\t\t}).length;\n\n\t\t\tvar selected = this.getRows().getSelected().filter(function(row) {\n\t\t\t\treturn row.isShown();\n\t\t\t}).length;\n\n\t\t\tif (total > 0 && selected > 0 && total === selected)\n\t\t\t{\n\t\t\t\tthis.selectAllCheckAllCheckboxes();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t}\n\n\t\t\tif (selected > 0 && selected < total)\n\t\t\t{\n\t\t\t\tthis.indeterminateCheckAllCheckboxes();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.determinateCheckAllCheckboxes();\n\t\t\t}\n\t\t},\n\n\t\tbindOnCheckAll: function()\n\t\t{\n\t\t\tvar self = this;\n\n\t\t\tthis.getCheckAllCheckboxes().forEach(function(current) {\n\t\t\t\tcurrent.getObserver().add(\n\t\t\t\t\tcurrent.getNode(),\n\t\t\t\t\t'change',\n\t\t\t\t\tself._clickOnCheckAll,\n\t\t\t\t\tself\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\t_clickOnCheckAll: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.toggleSelectionAll();\n\t\t\tthis.determinateCheckAllCheckboxes();\n\t\t},\n\n\t\ttoggleSelectionAll: function()\n\t\t{\n\t\t\tif (!this.getRows().isAllSelected() &&\n\t\t\t\t(this.lastRowAction === 'select' || !this.lastRowAction))\n\t\t\t{\n\t\t\t\tthis.getRows().selectAll();\n\t\t\t\tthis.selectAllCheckAllCheckboxes();\n\t\t\t\tthis.enableActionsPanel();\n\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsSelected', [this]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getRows().unselectAll();\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t\tthis.disableActionsPanel();\n\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsUnselected', [this]);\n\t\t\t}\n\n\t\t\tdelete this.lastRowAction;\n\n\t\t\tthis.updateCounterSelected();\n\t\t},\n\n\t\tbindOnClickPaginationLinks: function()\n\t\t{\n\t\t\tvar self = this;\n\n\t\t\tthis.getPagination().getLinks().forEach(function(current) {\n\t\t\t\tcurrent.getObserver().add(\n\t\t\t\t\tcurrent.getNode(),\n\t\t\t\t\t'click',\n\t\t\t\t\tself._clickOnPaginationLink,\n\t\t\t\t\tself\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\tbindOnMoreButtonEvents: function()\n\t\t{\n\t\t\tvar self = this;\n\n\t\t\tthis.getMoreButton().getObserver().add(\n\t\t\t\tthis.getMoreButton().getNode(),\n\t\t\t\t'click',\n\t\t\t\tself._clickOnMoreButton,\n\t\t\t\tself\n\t\t\t);\n\t\t},\n\n\t\tbindOnRowEvents: function()\n\t\t{\n\t\t\tvar observer = this.getObserver();\n\t\t\tvar showCheckboxes = this.getParam('SHOW_ROW_CHECKBOXES');\n\t\t\tvar enableCollapsibleRows = this.getParam('ENABLE_COLLAPSIBLE_ROWS');\n\n\t\t\tthis.getRows().getBodyChild().forEach(function(current) {\n\t\t\t\tshowCheckboxes && observer.add(current.getNode(), 'click', this._onClickOnRow, this);\n\t\t\t\tcurrent.getDefaultAction() && observer.add(current.getNode(), 'dblclick', this._onRowDblclick, this);\n\t\t\t\tcurrent.getActionsButton() && observer.add(current.getActionsButton(), 'click', this._clickOnRowActionsButton, this);\n\t\t\t\tenableCollapsibleRows && current.getCollapseButton() && observer.add(current.getCollapseButton(), 'click', this._onCollapseButtonClick, this);\n\t\t\t}, this);\n\t\t},\n\n\t\t_onCollapseButtonClick: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar row = this.getRows().get(event.currentTarget);\n\t\t\trow.toggleChildRows();\n\n\t\t\tif (row.isCustom())\n\t\t\t{\n\t\t\t\tthis.getUserOptions().setCollapsedGroups(this.getRows().getIdsCollapsedGroups());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getUserOptions().setExpandedRows(this.getRows().getIdsExpandedRows());\n\t\t\t}\n\n\t\t\tBX.fireEvent(document.body, 'click');\n\t\t},\n\n\t\t_clickOnRowActionsButton: function(event)\n\t\t{\n\t\t\tvar row = this.getRows().get(event.target);\n\t\t\tevent.preventDefault();\n\n\t\t\tif (!row.actionsMenuIsShown())\n\t\t\t{\n\t\t\t\trow.showActionsMenu();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\trow.closeActionsMenu();\n\t\t\t}\n\t\t},\n\n\t\t_onRowDblclick: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tvar row = this.getRows().get(event.target);\n\t\t\tvar defaultJs = '';\n\n\t\t\tif (!row.isEdit())\n\t\t\t{\n\t\t\t\tclearTimeout(this.clickTimer);\n\t\t\t\tthis.clickPrevent = true;\n\n\t\t\t\ttry {\n\t\t\t\t\tdefaultJs = row.getDefaultAction();\n\t\t\t\t\teval(defaultJs);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.warn(err);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_onClickOnRow: function(event)\n\t\t{\n\t\t\tvar clickDelay = 50;\n\t\t\tvar selection = window.getSelection();\n\n\t\t\tif (event.target.nodeName === 'LABEL')\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tif (event.shiftKey || selection.toString().length === 0)\n\t\t\t{\n\t\t\t\tif (event.shiftKey)\n\t\t\t\t{\n\t\t\t\t\tselection.removeAllRanges();\n\t\t\t\t}\n\n\t\t\t\tthis.clickTimer = setTimeout(BX.delegate(function() {\n\t\t\t\t\tif (!this.clickPrevent) {\n\t\t\t\t\t\tclickActions.apply(this, [event]);\n\t\t\t\t\t}\n\t\t\t\t\tthis.clickPrevent = false;\n\t\t\t\t}, this), clickDelay);\n\t\t\t}\n\n\t\t\tfunction clickActions(event)\n\t\t\t{\n\t\t\t\tvar rows, row, containsNotSelected, min, max, contentContainer;\n\t\t\t\tvar isPrevent = true;\n\n\t\t\t\tif (event.target.nodeName !== 'A' && event.target.nodeName !== 'INPUT')\n\t\t\t\t{\n\t\t\t\t\trow = this.getRows().get(event.target);\n\t\t\t\t\tif (row)\n\t\t\t\t\t{\n\t\t\t\t\t\tcontentContainer = row.getContentContainer(event.target);\n\n\t\t\t\t\t\tif (BX.type.isDomNode(contentContainer) && event.target.nodeName !== 'TD' && event.target !== contentContainer)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tisPrevent = BX.data(contentContainer, 'prevent-default') === 'true';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (isPrevent)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (row.getCheckbox())\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trows = [];\n\n\t\t\t\t\t\t\t\tthis.currentIndex = 0;\n\n\t\t\t\t\t\t\t\tthis.getRows().getRows().forEach(function(currentRow, index) {\n\t\t\t\t\t\t\t\t\tif (currentRow === row)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.currentIndex = index;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\t\t\tthis.lastIndex = this.lastIndex || this.currentIndex;\n\n\t\t\t\t\t\t\t\tif (!event.shiftKey)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (!row.isSelected())\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'select';\n\t\t\t\t\t\t\t\t\t\trow.select();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::selectRow', [row, this]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'unselect';\n\t\t\t\t\t\t\t\t\t\trow.unselect();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::unselectRow', [row, this]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmin = Math.min(this.currentIndex, this.lastIndex);\n\t\t\t\t\t\t\t\t\tmax = Math.max(this.currentIndex, this.lastIndex);\n\n\t\t\t\t\t\t\t\t\twhile (min <= max)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\trows.push(this.getRows().getRows()[min]);\n\t\t\t\t\t\t\t\t\t\tmin++;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tcontainsNotSelected = rows.some(function(current) {\n\t\t\t\t\t\t\t\t\t\treturn !current.isSelected();\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (containsNotSelected)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\trows.forEach(function(current) {\n\t\t\t\t\t\t\t\t\t\t\tcurrent.select();\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'select';\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::selectRows', [rows, this]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\trows.forEach(function(current) {\n\t\t\t\t\t\t\t\t\t\t\tcurrent.unselect();\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'unselect';\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::unselectRows', [rows, this]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tthis.updateCounterSelected();\n\t\t\t\t\t\t\t\tthis.lastIndex = this.currentIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.adjustRows();\n\t\t\t\t\t\t\tthis.adjustCheckAllCheckboxes();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tadjustRows: function()\n\t\t{\n\t\t\tif (this.getRows().isSelected())\n\t\t\t{\n\t\t\t\tBX.onCustomEvent(window, 'Grid::thereSelectedRows', [this]);\n\t\t\t\tthis.enableActionsPanel();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.onCustomEvent(window, 'Grid::noSelectedRows', []);\n\t\t\t\tthis.disableActionsPanel();\n\t\t\t}\n\t\t},\n\n\t\tgetPagination: function()\n\t\t{\n\t\t\treturn new BX.Grid.Pagination(this);\n\t\t},\n\n\t\tgetState: function()\n\t\t{\n\t\t\treturn window.history.state;\n\t\t},\n\n\t\ttableFade: function()\n\t\t{\n\t\t\tBX.addClass(this.getTable(), this.settings.get('classTableFade'));\n\t\t\tthis.getLoader().show();\n\t\t\tBX.onCustomEvent('Grid::disabled', [this]);\n\t\t},\n\n\t\ttableUnfade: function()\n\t\t{\n\t\t\tBX.removeClass(this.getTable(), this.settings.get('classTableFade'));\n\t\t\tthis.getLoader().hide();\n\t\t\tBX.onCustomEvent('Grid::enabled', [this]);\n\t\t},\n\n\t\t_clickOnPaginationLink: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this;\n\t\t\tvar link = this.getPagination().getLink(event.target);\n\n\t\t\tif (!link.isLoad())\n\t\t\t{\n\t\t\t\tthis.getUserOptions().resetExpandedRows();\n\n\t\t\t\tlink.load();\n\t\t\t\tthis.tableFade();\n\n\t\t\t\tthis.getData().request(link.getLink(), null, null, 'pagination', function() {\n\t\t\t\t\tself.rows = null;\n\t\t\t\t\tself.getUpdater().updateBodyRows(this.getBodyRows());\n\t\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\n\t\t\t\t\tself.bindOnRowEvents();\n\t\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\t\tself.bindOnCheckAll();\n\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\tself.disableActionsPanel();\n\t\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.getActionsPanel().resetForAllCheckbox();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tlink.unload();\n\t\t\t\t\tself.tableUnfade();\n\n\t\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_clickOnMoreButton: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this;\n\t\t\tvar moreButton = this.getMoreButton();\n\n\t\t\tmoreButton.load();\n\n\t\t\tthis.getData().request(moreButton.getLink(), null, null, 'more', function() {\n\t\t\t\tself.getUpdater().appendBodyRows(this.getBodyRows());\n\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\n\t\t\t\tself.getRows().reset();\n\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\tself.bindOnCheckAll();\n\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\tself.updateCounterSelected();\n\n\t\t\t\tif (self.getParam('ALLOW_PIN_HEADER'))\n\t\t\t\t{\n\t\t\t\t\tself.getPinHeader()._onGridUpdate();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tself.unselectAllCheckAllCheckboxes();\n\t\t\t});\n\t\t},\n\n\t\tgetAjaxId: function()\n\t\t{\n\t\t\treturn BX.data(\n\t\t\t\tthis.getContainer(),\n\t\t\t\tthis.settings.get('ajaxIdDataProp')\n\t\t\t);\n\t\t},\n\n\t\tupdate: function(data, action)\n\t\t{\n\t\t\tvar newRows, newHeadRows, newNavPanel, thisBody, thisHead, thisNavPanel;\n\n\t\t\tif (!BX.type.isNotEmptyString(data))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthisBody = BX.Grid.Utils.getByTag(this.getTable(), 'tbody', true);\n\t\t\tthisHead = BX.Grid.Utils.getByTag(this.getTable(), 'thead', true);\n\t\t\tthisNavPanel = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classNavPanel'), true);\n\n\t\t\tdata = BX.create('div', {html: data});\n\t\t\tnewHeadRows = BX.Grid.Utils.getByClass(data, this.settings.get('classHeadRow'));\n\t\t\tnewRows = BX.Grid.Utils.getByClass(data, this.settings.get('classDataRows'));\n\t\t\tnewNavPanel = BX.Grid.Utils.getByClass(data, this.settings.get('classNavPanel'), true);\n\n\t\t\tif (action === this.settings.get('updateActionMore'))\n\t\t\t{\n\t\t\t\tthis.getRows().addRows(newRows);\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t}\n\n\t\t\tif (action === this.settings.get('updateActionPagination'))\n\t\t\t{\n\t\t\t\tBX.cleanNode(thisBody);\n\t\t\t\tthis.getRows().addRows(newRows);\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t}\n\n\t\t\tif (action === this.settings.get('updateActionSort'))\n\t\t\t{\n\t\t\t\tBX.cleanNode(thisHead);\n\t\t\t\tBX.cleanNode(thisBody);\n\t\t\t\tthisHead.appendChild(newHeadRows[0]);\n\t\t\t\tthis.getRows().addRows(newRows);\n\n\t\t\t}\n\n\t\t\tthisNavPanel.innerHTML = newNavPanel.innerHTML;\n\n\t\t\tthis.bindOnRowEvents();\n\n\t\t\tthis.bindOnMoreButtonEvents();\n\t\t\tthis.bindOnClickPaginationLinks();\n\t\t\tthis.bindOnClickHeader();\n\t\t\tthis.bindOnCheckAll();\n\t\t\tthis.updateCounterDisplayed();\n\t\t\tthis.updateCounterSelected();\n\t\t\tthis.sortable.reinit();\n\t\t},\n\n\t\tgetCounterDisplayed: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounterDisplayed'));\n\t\t},\n\n\t\tgetCounterSelected: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounterSelected'));\n\t\t},\n\n\t\tupdateCounterDisplayed: function()\n\t\t{\n\t\t\tvar counterDisplayed = this.getCounterDisplayed();\n\t\t\tvar rows;\n\n\t\t\tif (BX.type.isArray(counterDisplayed))\n\t\t\t{\n\t\t\t\trows = this.getRows();\n\t\t\t\tcounterDisplayed.forEach(function(current) {\n\t\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrent.innerText = rows.getCountDisplayed();\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\tupdateCounterSelected: function()\n\t\t{\n\t\t\tvar counterSelected = this.getCounterSelected();\n\t\t\tvar rows;\n\n\t\t\tif (BX.type.isArray(counterSelected))\n\t\t\t{\n\t\t\t\trows = this.getRows();\n\t\t\t\tcounterSelected.forEach(function(current) {\n\t\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrent.innerText = rows.getCountSelected();\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\tgetContainerId: function()\n\t\t{\n\t\t\treturn this.containerId;\n\t\t},\n\n\t\tgetId: function()\n\t\t{\n\t\t\t//ID is equals to container Id\n\t\t\treturn this.containerId;\n\t\t},\n\n\t\tgetContainer: function()\n\t\t{\n\t\t\treturn BX(this.getContainerId());\n\t\t},\n\n\t\tgetCounter: function()\n\t\t{\n\t\t\tif (!this.counter)\n\t\t\t{\n\t\t\t\tthis.counter = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounter'));\n\t\t\t}\n\n\t\t\treturn this.counter;\n\t\t},\n\n\t\tenableForAllCounter: function()\n\t\t{\n\t\t\tvar counter = this.getCounter();\n\n\t\t\tif (BX.type.isArray(counter))\n\t\t\t{\n\t\t\t\tcounter.forEach(function(current) {\n\t\t\t\t\tBX.addClass(current, this.settings.get('classForAllCounterEnabled'));\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\tdisableForAllCounter: function()\n\t\t{\n\t\t\tvar counter = this.getCounter();\n\n\t\t\tif (BX.type.isArray(counter))\n\t\t\t{\n\t\t\t\tcounter.forEach(function(current) {\n\t\t\t\t\tBX.removeClass(current, this.settings.get('classForAllCounterEnabled'));\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\tgetScrollContainer: function()\n\t\t{\n\t\t\tif (!this.scrollContainer)\n\t\t\t{\n\t\t\t\tthis.scrollContainer = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classScrollContainer'), true);\n\t\t\t}\n\n\t\t\treturn this.scrollContainer;\n\t\t},\n\n\t\tgetWrapper: function()\n\t\t{\n\t\t\tif (!this.wrapper)\n\t\t\t{\n\t\t\t\tthis.wrapper = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classWrapper'), true);\n\t\t\t}\n\n\t\t\treturn this.wrapper;\n\t\t},\n\n\t\tgetFadeContainer: function()\n\t\t{\n\t\t\tif (!this.fadeContainer)\n\t\t\t{\n\t\t\t\tthis.fadeContainer = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classFadeContainer'), true);\n\t\t\t}\n\n\t\t\treturn this.fadeContainer;\n\t\t},\n\n\t\tgetTable: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classTable'), true);\n\t\t},\n\n\t\tgetHeaders: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getWrapper(), '.main-grid-header[data-relative=\"' + this.getContainerId() + '\"]');\n\t\t},\n\n\t\tgetHead: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByTag(this.getContainer(), 'thead', true);\n\t\t},\n\n\t\tgetBody: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByTag(this.getContainer(), 'tbody', true);\n\t\t},\n\n\t\tgetFoot: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByTag(this.getContainer(), 'tfoot', true);\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Grid.Rows}\n\t\t */\n\t\tgetRows: function()\n\t\t{\n\t\t\tif (!(this.rows instanceof BX.Grid.Rows))\n\t\t\t{\n\t\t\t\tthis.rows = new BX.Grid.Rows(this)\n\t\t\t}\n\t\t\treturn this.rows;\n\t\t},\n\n\t\tgetMoreButton: function()\n\t\t{\n\t\t\tvar node = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classMoreButton'), true);\n\t\t\treturn new BX.Grid.Element(node, this);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets loader instance\n\t\t * @return {BX.Grid.Loader}\n\t\t */\n\t\tgetLoader: function()\n\t\t{\n\t\t\tif (!(this.loader instanceof BX.Grid.Loader))\n\t\t\t{\n\t\t\t\tthis.loader = new BX.Grid.Loader(this);\n\t\t\t}\n\n\t\t\treturn this.loader;\n\t\t},\n\n\t\tblockSorting: function()\n\t\t{\n\t\t\tvar headerCells = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getContainer(),\n\t\t\t\tthis.settings.get('classHeadCell')\n\t\t\t);\n\n\t\t\theaderCells.forEach(function(header) {\n\t\t\t\tif (this.isSortableHeader(header))\n\t\t\t\t{\n\t\t\t\t\tBX.removeClass(header, this.settings.get('classHeaderSortable'));\n\t\t\t\t\tBX.addClass(header, this.settings.get('classHeaderNoSortable'));\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\tunblockSorting: function()\n\t\t{\n\t\t\tvar headerCells = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getContainer(),\n\t\t\t\tthis.settings.get('classHeadCell')\n\t\t\t);\n\n\t\t\theaderCells.forEach(function(header) {\n\t\t\t\tif (this.isNoSortableHeader(header) && header.dataset.sortBy)\n\t\t\t\t{\n\t\t\t\t\tBX.addClass(header, this.settings.get('classHeaderSortable'));\n\t\t\t\t\tBX.removeClass(header, this.settings.get('classHeaderNoSortable'));\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\tconfirmDialog: function(action, then, cancel)\n\t\t{\n\t\t\tvar dialog, popupContainer, applyButton, cancelButton;\n\n\t\t\tif ('CONFIRM' in action && action.CONFIRM)\n\t\t\t{\n\t\t\t\taction.CONFIRM_MESSAGE = action.CONFIRM_MESSAGE || this.arParams.CONFIRM_MESSAGE;\n\t\t\t\taction.CONFIRM_APPLY_BUTTON = action.CONFIRM_APPLY_BUTTON || this.arParams.CONFIRM_APPLY;\n\t\t\t\taction.CONFIRM_CANCEL_BUTTON = action.CONFIRM_CANCEL_BUTTON || this.arParams.CONFIRM_CANCEL;\n\n\t\t\t\tdialog = new BX.PopupWindow(\n\t\t\t\t\tthis.getContainerId() + '-confirm-dialog',\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: '<div class=\"main-grid-confirm-content\">'+action.CONFIRM_MESSAGE+'</div>',\n\t\t\t\t\t\ttitleBar: 'CONFIRM_TITLE' in action ? action.CONFIRM_TITLE : '',\n\t\t\t\t\t\tautoHide: false,\n\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\toverlay: 0.4,\n\t\t\t\t\t\toffsetTop: -100,\n\t\t\t\t\t\tcloseIcon : true,\n\t\t\t\t\t\tcloseByEsc : true,\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tonClose: function()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.unbind(window, 'keydown', hotKey);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttons: [\n\t\t\t\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\t\t\t\ttext: action.CONFIRM_APPLY_BUTTON,\n\t\t\t\t\t\t\t\tid: this.getContainerId() + '-confirm-dialog-apply-button',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: function()\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.type.isFunction(then) ? then() : null;\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.destroy();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::confirmDialogApply', [this]);\n\t\t\t\t\t\t\t\t\t\tBX.unbind(window, 'keydown', hotKey);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tnew BX.PopupWindowButtonLink({\n\t\t\t\t\t\t\t\ttext: action.CONFIRM_CANCEL_BUTTON,\n\t\t\t\t\t\t\t\tid: this.getContainerId() + '-confirm-dialog-cancel-button',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: function()\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.type.isFunction(cancel) ? cancel() : null;\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.destroy();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::confirmDialogCancel', [this]);\n\t\t\t\t\t\t\t\t\t\tBX.unbind(window, 'keydown', hotKey);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (!dialog.isShown())\n\t\t\t\t{\n\t\t\t\t\tdialog.show();\n\t\t\t\t\tpopupContainer = dialog.popupContainer;\n\t\t\t\t\tBX.removeClass(popupContainer, this.settings.get('classCloseAnimation'));\n\t\t\t\t\tBX.addClass(popupContainer, this.settings.get('classShowAnimation'));\n\t\t\t\t\tapplyButton = BX(this.getContainerId() + '-confirm-dialog-apply-button');\n\t\t\t\t\tcancelButton = BX(this.getContainerId() + '-confirm-dialog-cancel-button');\n\n\t\t\t\t\tBX.bind(window, 'keydown', hotKey);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.type.isFunction(then) ? then() : null;\n\t\t\t}\n\n\t\t\tfunction hotKey(event)\n\t\t\t{\n\t\t\t\tif (event.code === 'Enter')\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tBX.fireEvent(applyButton, 'click');\n\t\t\t\t}\n\n\t\t\t\tif (event.code === 'Escape')\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tBX.fireEvent(cancelButton, 'click');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {Element | any}\n\t\t */\n\t\tgetEmptyStub: function()\n\t\t{\n\t\t\treturn this.getTable().querySelector('.main-grid-row-empty');\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tshowEmptyStub: function()\n\t\t{\n\t\t\tconst stub = this.getEmptyStub();\n\t\t\tif (stub)\n\t\t\t{\n\t\t\t\tBX.Dom.attr(stub, 'hidden', null);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\thideEmptyStub: function()\n\t\t{\n\t\t\tconst stub = this.getEmptyStub();\n\t\t\tif (stub)\n\t\t\t{\n\t\t\t\tBX.Dom.attr(stub, 'hidden', true);\n\t\t\t\tBX.Dom.style(this.getTable(), 'min-height', null);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\tgetTemplateRow: function()\n\t\t{\n\t\t\tconst templateRow = BX.Runtime.clone(\n\t\t\t\tthis.getRows().getBodyChild(true).find((row) => {\n\t\t\t\t\treturn row.getId() === 'template_0';\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst cloned = BX.Runtime.clone(templateRow.getNode());\n\t\t\tBX.Dom.prepend(cloned, this.getBody());\n\n\t\t\tconst checkbox = cloned.querySelector('[type=\"checkbox\"]');\n\t\t\tif (checkbox)\n\t\t\t{\n\t\t\t\tBX.Dom.attr(checkbox, 'disabled', null);\n\t\t\t\tBX.Dom.attr(checkbox, 'data-disabled', null);\n\t\t\t}\n\n\t\t\treturn new BX.Grid.Row(this, cloned);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {{}[]}\n\t\t */\n\t\tgetRowEditorValue: function(withTemplate)\n\t\t{\n\t\t\tthis.rows = null;\n\t\t\treturn this.getRows().getSelected(withTemplate).map((row) => {\n\t\t\t\treturn row.getEditorValue();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {HTMLElement|HTMLBodyElement}\n\t\t */\n\t\tgetRowEditorActionPanel: function()\n\t\t{\n\t\t\tif (!this.rowEditorActionPanel)\n\t\t\t{\n\t\t\t\tthis.rowEditorActionPanel = BX.Dom.create({\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tprops: {className: 'main-ui-grid-row-editor-actions-panel'},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tBX.Dom.create({\n\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\tprops: {className: 'ui-btn ui-btn-success'},\n\t\t\t\t\t\t\ttext: this.arParams.SAVE_BUTTON_LABEL,\n\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\tclick: this.saveRows.bind(this),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tBX.Dom.create({\n\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\tprops: {className: 'ui-btn ui-btn-link'},\n\t\t\t\t\t\t\ttext: this.arParams.CANCEL_BUTTON_LABEL,\n\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\tclick: this.hideRowsEditor.bind(this),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn this.rowEditorActionPanel;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tshowRowEditorActionsPanel: function()\n\t\t{\n\t\t\tconst panel = this.getRowEditorActionPanel();\n\t\t\tBX.Dom.append(panel, this.actionPanel.getPanel());\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\thideRowEditorActionsPanel: function()\n\t\t{\n\t\t\tBX.Dom.remove(this.getRowEditorActionPanel());\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\tprependRowEditor: function()\n\t\t{\n\t\t\treturn this.addRowEditor('prepend');\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\tappendRowEditor: function()\n\t\t{\n\t\t\treturn this.addRowEditor('append');\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\taddRowEditor: function(direction = 'prepend')\n\t\t{\n\t\t\tBX.Dom.style(this.getTable(), 'min-height', null);\n\t\t\tconst templateRow = this.getTemplateRow();\n\t\t\tthis.editableRows.push(templateRow);\n\n\t\t\tif (direction === 'prepend')\n\t\t\t{\n\t\t\t\ttemplateRow.prependTo(this.getBody());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttemplateRow.appendTo(this.getBody());\n\t\t\t}\n\n\t\t\ttemplateRow.show();\n\t\t\ttemplateRow.select();\n\t\t\ttemplateRow.edit();\n\n\t\t\tthis.getRows().reset();\n\n\t\t\tif (this.getParam('ALLOW_ROWS_SORT'))\n\t\t\t{\n\t\t\t\tthis.rowsSortable.reinit();\n\t\t\t}\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t{\n\t\t\t\tthis.colsSortable.reinit();\n\t\t\t}\n\n\t\t\tthis.hideEmptyStub();\n\n\t\t\treturn templateRow;\n\t\t},\n\n\t\thideRowsEditor: function()\n\t\t{\n\t\t\tthis.editableRows.forEach((row) => {\n\t\t\t\tBX.Dom.remove(row.getNode());\n\t\t\t});\n\t\t\tthis.editableRows = [];\n\t\t},\n\n\t\tsaveRows: function()\n\t\t{\n\t\t\tconst value = this.getRowEditorValue(true);\n\n\t\t\tthis.emitAsync('onAddRowsAsync', {rows: value})\n\t\t\t\t.then((result) => {\n\t\t\t\t\tresult.forEach((rowData, rowIndex) => {\n\t\t\t\t\t\tconst row = this.editableRows[rowIndex];\n\t\t\t\t\t\tif (row)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trow.editCancel();\n\t\t\t\t\t\t\trow.unselect();\n\t\t\t\t\t\t\trow.makeCountable();\n\n\t\t\t\t\t\t\trow.setId(rowData.id);\n\t\t\t\t\t\t\trow.setActions(rowData.actions);\n\t\t\t\t\t\t\trow.setCellsContent(rowData.columns);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.bindOnRowEvents();\n\t\t\t\t\tthis.updateCounterDisplayed();\n\t\t\t\t\tthis.updateCounterSelected();\n\n\t\t\t\t\tthis.editableRows = [];\n\t\t\t\t});\n\t\t},\n\n\t\tgetRealtime(): BX.Grid.Realtime\n\t\t{\n\t\t\treturn this.cache.remember('realtime', () => {\n\t\t\t\treturn new BX.Grid.Realtime({\n\t\t\t\t\tgrid: this,\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t};\n})();\n"],"names":["BX","namespace","Grid","ActionPanel","parent","actions","types","rel","lastActivated","init","button","elements","buttonOnChange","buttonData","prototype","eval","addCustomEvent","window","proxy","_dropdownEventHandle","panel","getPanel","bind","delegate","_checkboxChange","_clickOnButton","_gridUpdatedEventHandle","destroy","removeCustomEvent","cancelButton","fireEvent","firstChild","id","event","item","dataItem","isPanelControl","_dropdownChange","resetForAllCheckbox","checkbox","getForAllCheckbox","type","isDomNode","checked","Utils","getByClass","settings","get","getContainer","getApplyButton","node","hasClass","getTextInputs","getBySelector","getHiddenInputs","getSelects","getDropdowns","getCheckboxes","getButtons","isDropdown","isCheckbox","isTextInput","isHiddenInput","isSelect","tagName","createDropdown","data","relative","container","createContainer","ID","dropdown","create","props","className","attrs","name","NAME","JSON","stringify","ITEMS","VALUE","children","html","appendChild","createCheckbox","inner","titleSpan","input","value","title","TITLE","ONCHANGE","CHECKED","for","LABEL","createText","isNotEmptyString","text","placeholder","PLACEHOLDER","createHidden","CLASS","createButton","createButtonNode","prepareButton","SETTINGS","buttonId","TEXT","isSetButtonDisabled","Dom","attr","addClass","removeClass","minSelectedRows","getSelectedIds","length","createLink","link","href","HREF","createCustom","custom","options","replace","removeItemsRelativeCurrent","element","result","dataRelative","includes","push","nextElementSibling","forEach","current","remove","validateData","isArray","activateControl","disabled","deactivateControl","showControl","control","show","hideControl","hide","validateActionObject","action","isPlainObject","ACTION","RESET_CONTROLS","DATA","validateControlObject","controlObject","createDate","date","decl","block","mix","calendarButton","valueDelete","tabindex","TABINDEX","enableTime","TIME","createControl","relativeId","newElement","TYPE","DROPDOWN","CHECKBOX","HIDDEN","BUTTON","LINK","CUSTOM","DATE","onChangeHandler","isPseudo","callback","self","CREATE","reverse","insertAfter","ACTIVATE","currentId","SHOW","showCurrent","HIDE","hideCurrent","HIDE_ALL_EXPECT","getControls","some","el","SHOW_ALL","REMOVE","removeCurrent","CALLBACK","confirmDialog","currentCallback","JS","indexOf","err","Error","then","cancel","parentNode","onChange","PSEUDO","target","findParent","isButton","preventDefault","rows","getRows","getSelected","filter","row","isShown","map","getId","findChild","getValues","controls","concat","dropdownValue","undefined","getAttribute","selectedIndex","BaseClass","getParent","ColsSortable","dragItem","targetItem","rowsList","colsList","dragRect","offset","startDragOffset","dragColumn","targetColumn","isDrag","getColsList","getRowsList","inited","reinit","registerObjects","unregisterObjects","reset","fixedTableColsList","isActive","register","getFixedHeaderColsList","unregister","column","jsDD","unregisterObject","onbxdragstart","_onDragStart","onbxdrag","_onDrag","onbxdragstop","_onDragEnd","registerObject","getByTag","getHeadFirstChild","getNode","isStatic","getParam","getPinHeader","getFixedTable","getSourceRows","getDragOffset","getScrollContainer","scrollLeft","startScrollOffset","x","left","getColumn","cell","HTMLTableCellElement","cells","cellIndex","isPinned","current_node","getBoundingClientRect","Math","ceil","width","start_x","dragIndex","getIndex","preventSortableClick","isDragToRight","index","nodeClientRect","nodeCenter","isDragToLeft","isDragToBack","isMovedToRight","style","transform","isMovedToLeft","isMoved","moveColumn","transition","isNumber","styleForEach","dragOffset","leftOffset","rightOffset","defaultOffset","dragTransitionDuration","call","classList","contains","collectionSort","columns","getUserOptions","setColumns","onCustomEvent","setTimeout","originalUpdatePageData","ajax","UpdatePageData","disableBxAjaxUpdatePageData","enableBxAjaxUpdatePageData","Data","response","xhr","headRows","bodyRows","footRows","moreButton","pagination","counterDisplayed","counterSelected","counterTotal","limit","actionPanel","rowsByParentId","rowById","isValidResponse","validateResponse","isBoolean","getResponse","request","url","method","error","isString","eventArgs","gridId","disableCheckAllCheckboxes","hasOwnProperty","cancelRequest","baseUrl","addUrlParams","sessid","bitrix_sessid","internal","grid_id","apply_filter","util","remove_url_param","clear_nav","grid_action","formData","Http","convertObjectToFormData","ajaxUrl","getAjaxId","dataType","headers","processData","scriptsRunFirst","start","preparePost","onsuccess","querySelector","getContainerId","res","parse","messages","arParams","tableUnfade","isFunction","enableCheckAllCheckboxes","onerror","send","getHeadRows","getBodyRows","getRowsByParentId","getRowById","getFootRows","getMoreButton","getPagination","getCounterDisplayed","getCounterSelected","getCounterTotal","selector","getLimit","getPageSize","getActionPanel","Main","items","menuId","menu","menuItems","dataItems","dataValue","dataPseudo","dropdownItemClass","activeClass","selectedClass","notSelectedClass","lockedClass","menuItemClass","getItems","getValue","getMenuId","createMenu","popupWindow","adjustPosition","showMenu","str","prepareMenuItems","subItem","currentValue","prepareItems","isHtmlEntity","dataset","innerHTML","delimiter","DELIMITER","PopupMenu","menuOffsetLeft","menuMaxHeight","_onCloseMenu","_onShowMenu","getMenuById","popupPosition","popupContainer","setProperty","getSubItem","refresh","Type","isUndefined","innerText","selectItem","layout","lockedItem","getDataItemIndexByValue","getDataItemByValue","_onItemClick","getMenuItem","close","stopPropagation","class","dropdownManager","dropdownClass","onLoadItems","document","getById","body","instance","Element","resetOnclickAttr","load","unload","isLoad","onclick","getObserver","observer","getLink","Fader","table","getTable","scrollStartEventName","isTouch","scrollEndEventName","fixedTable","debounceScrollHandler","debounce","_onWindowScroll","toggle","addEventListener","listenerParams","passive","_onHeaderUpdated","getEarLeft","_onMouseoverLeft","getEarRight","_onMouseoverRight","stopScroll","adjustEarOffset","unbind","removeEventListener","hideLeftEar","hideRightEar","startScrollByDirection","clearTimeout","scrollTimer","clearInterval","scrollInterval","direction","stepLength","stepTime","setInterval","earLeft","earRight","getShadowLeft","getShadowRight","prepare","windowHeight","height","tbodyPos","pos","tBodies","headerPos","tHead","scrollY","isIE","documentElement","scrollTop","bottomPos","top","posTop","bottom","requestAnimationFrame","lastPosTop","translate","lastBottomPos","hasScroll","offsetWidth","clientWidth","hasScrollLeft","hasScrollRight","showLeftEar","showRightEar","adjustFixedTablePosition","marginLeft","Updater","updateHeadRows","getHeaders","header","cleanNode","clone","appendHeadRows","prependHeadRows","prepend","updateBodyRowById","currentRow","currentNode","updateBodyRows","getBody","appendBodyRows","prependBodyRows","updateFootRows","foot","getFoot","updateCounterTotal","counter","counterCell","updatePagination","paginationCell","updateMoreButton","buttonParent","closestParent","updateGroupActions","GroupActions","getActionsPanel","panelNode","panelChild","Reflection","ImageField","cache","Cache","MemoryCache","getPreview","remember","src","getFileInput","accept","events","change","reader","FileReader","onload","currentTarget","readAsDataURL","files","getFakeField","append","getLayout","getRemoveButton","getUploadButton","click","opacity","InlineEditor","isDropdownChangeEventSubscribed","createTextarea","editObject","textarea","join","createInput","htmlspecialcharsback","NUMBER","RANGE","min","MIN","max","MAX","step","STEP","htmlspecialchars","DISABLED","createMoney","fieldChildren","priceObject","PRICE","createMoneyPrice","CURRENCY_LIST","currencyObject","CURRENCY","HTML_ENTITY","createMoneyCurrency","isNotEmptyObject","fieldName","hidden","ATTRIBUTES","priceInput","add","Event","fieldNode","currencyDropdown","eventData","field","values","price","currency","EventEmitter","emit","currencyBlock","subscribe","getData","controlId","dropdownObject","priceField","createOutput","getDropdownValueItemByValue","valueItem","createMultiselect","selectedValues","squares","isArrayFilled","itemName","HTML","renderedItem","Tag","render","Text","encode","isMulti","validateEditObject","initCalendar","calendar","bindOnRangeChange","output","bubble","parseFloat","thumbWidth","range","position","positionOffset","round","createImageEditor","getEditor","span","_onControlKeydown","TEXTAREA","MULTISELECT","IMAGE","MONEY","processHTML","SCRIPT","isInternal","evalGlobal","code","saveButton","Loader","loader","adjustLoaderOffset","display","visibility","rowsCount","getCountDisplayed","setOptions","size","gridManager","object","old","getInstanceById","reload","getDataIndex","grid","Message","popup","onUpdated","MESSAGES","isNeedShow","getPopup","setContent","getContent","content","messagesDecl","message","messageDecl","toLowerCase","PopupWindow","getPopupId","autoHide","overlay","contentNoPaddings","closeByEsc","buttons","PopupWindowButton","handlers","handler","context","Pagesize","tableFade","setPageSize","reloadTable","Pagination","links","getLinks","PinHeader","parentNodeResizeObserver","adminPanel","getAdminPanel","mo","MutationObserver","onAdminPanelMutation","observe","attributes","rect","getHead","gridRect","workArea","ResizeObserver","refreshRect","_onScroll","_onResize","_onGridUpdate","pin","async","cloneThead","cloneCells","resizeCloneCells","parseInt","firstElementChild","tag","getWrapper","isAdminPanelPinned","getPinOffset","toNumber","unpin","stopPin","startPin","scrollRect","scrollingElement","PinPanel","isSelected","animationDuration","pinned","bindOnRowsEvents","unbindOnRowsEvents","_onThereSelectedRows","_onNoSelectedRows","bindOnWindowEvents","unbindOnWindowEvents","getScrollBottom","getWindowHeight","getPanelRect","panelRect","getPanelPrevBottom","prev","previousSibling","pinPanel","withAnimation","bodyRect","getStartDiffPanelPosition","removeProperty","isNeedPinAbsolute","absolutePin","adjustPanelPosition","unpinPanel","parentRect","abs","translateOffset","delay","cb","isSelectedRows","isNeedPin","scrollX","pageXOffset","lastScrollX","panelPos","pinController","getEndDiffPanelPosition","prevPanelPos","scrollBottom","diff","prevPanelBottom","lastIsSelected","Resize","lastRegisterButtons","registerTableButtons","registerPinnedTableButtons","pinnedTableButtons","getPinnedTableButtons","getCells","cellsKeys","Object","keys","cellContainer","__overlay","__resizeCell","key","fixedCell","fixedCellContainer","cpos","cellAttrWidth","sX","fixedCells","getAllRows","querySelectorAll","getColumnByIndex","minWidth","maxWidth","adjustFixedColumnsPosition","adjustFadePosition","getFadeOffset","saveSizes","getColumnSizes","setColumnSizes","Row","sort","actionsButton","depth","parentId","editData","onElementClick","initElementsEvents","Settings","bindNodes","isBodyChild","slice","onMouseOver","onMouseLeave","unselect","select","_onRightClick","isCustom","showActionsMenu","getDefaultAction","getEditorValue","cellValues","getCellEditorValue","cellValue","RAW_NAME","RAW_VALUE","editGetValues","editor","getCustomValue","getMoneyValue","getMultiSelectValues","getImageValue","isEdit","isNotCount","getContentContainer","closest","filteredValue","inputs","currencySelector","currencyFieldName","Map","resultObject","multiple","selectValues","option","selected","set","toUpperCase","fakeInput","getEditorContainer","getCollapseButton","collapseButton","stateLoad","stateUnload","stateExpand","stateCollapse","getParentId","toString","getDataset","getDepth","setDepth","depthOffset","Rows","getShiftCells","childDepth","setParentId","showChildRows","getChildren","isExpand","updateCounterDisplayed","updateCounterSelected","adjustCheckAllCheckboxes","adjustRows","functionName","getGroupId","hideChildRows","isChildsLoaded","childsLoaded","expand","loadChildRows","bindOnRowEvents","getRowsSortable","getColsSortable","collapse","toggleChildRows","getAction","parent_id","apply","update","rowData","getUpdater","adjustEmptyTable","bindOnMoreButtonEvents","bindOnClickPaginationLinks","colsSortable","rowsSortable","editCancel","editorContainer","getCellByIndex","getEditDataByCellIndex","getCellNameByCellIndex","resetEditData","setEditData","getEditData","editableData","rowId","getCellEditDataByCellIndex","columnEditData","edit","contentContainer","editable","setDraggable","isDraggable","rowIndex","String","getCheckbox","getActionsMenu","actionsMenu","buttonRect","getActionsButton","getMenuItems","_onPopupShow","getEventTarget","preventCloseContextMenu","popupMenu","setBindElement","actionsMenuIsShown","pageY","getOption","pageX","closeActionsMenu","getActions","initSelect","getParentNode","getParentNodeName","nodeName","isSelectable","hasEditable","isHeadChild","isFootChild","prependTo","appendTo","setId","setActions","actionCell","actionButton","makeCountable","makeNotCountable","getColumnOptions","columnId","Reflect","has","setCellsContent","headRow","cellName","columnOptions","cellContent","labels","labelOptions","label","color","light","bindOnEvents","labelContent","isStringFilled","removeButton","Label","RemoveButtonType","INSIDE","labelsContainer","clean","oldLabelsContainer","tags","tagOptions","active","tagContent","tagInner","tagsContainer","addButton","oldTagsContainer","Runtime","getCellById","find","isTemplate","test","enableAbsolutePosition","headCells","cellsWidth","disableAbsolutePosition","getHeight","setCellActions","cellActions","entries","cellId","currentContainer","newContainer","actionClass","BaseEvent","setTarget","eventName","preparedHandler","setCounters","counters","cellInner","counterContainer","uiCounter","currentCounter","newCounter","counterInner","currentInner","newInner","Counters","Color","Size","animation","bindOnce","animationName","align","RIGHT","leftAlignedClass","LEFT_ALIGNED","headChild","bodyChild","footChild","enableDragAndDrop","RowsSortable","disableDragAndDrop","getFootLastChild","getLast","getFootChild","getFootFirstChild","getFirst","getBodyLastChild","getBodyChild","getBodyFirstChild","getHeadLastChild","getHeadChild","getEditSelectedValues","withTemplate","selectedRows","initSelected","enableActionsPanel","editSelected","editSelectedCancel","isAllSelected","getCountSelected","addRows","normalizeNode","rowNode","rowInstance","array","withTemplates","selectAll","unselectAll","getByIndex","recursive","getByParentId","getRowsByGroupId","groupId","getExpandedRows","getIdsExpandedRows","getIdsCollapsedGroups","getSourceBodyChild","getSourceHeadChild","getSourceFootChild","targetId","targetRow","insertBefore","RowDragEvent","allowMoveRow","allowInsertBeforeTarget","errorMessage","allowMove","allowInsertBefore","disallowMove","disallowInsertBefore","getDragItem","getTargetItem","getEventName","setDragItem","setTargetItem","setEventName","isAllowedMove","isAllowedInsertBefore","getErrorMessage","list","setDefaultProps","getList","prepareListItems","Enable","onscrollDebounceHandler","disable","enable","windowScrollTop","rowsRectList","calcOffset","additionalDragItems","clientHeight","getTheadCells","sourceCells","createFake","cloneDragItem","cloneDragAdditionalDragItems","cloneDragAdditionalDragItemRows","theadCellsDecl","cloneRow","tableWidth","fake","getDragStartRect","moved","getAdditionalDragItems","getRowRect","dragStartOffset","start_y","dragEvent","dragRow","startDragDepth","startDragParentId","moveRow","transitionDuration","y","getWindowScrollTop","getSortOffset","i","getRowCenter","isDragToBottom","rowCenter","sortOffset","isMovedToBottom","isDragToTop","isMovedToTop","checkError","updateProperties","isDragetToTop","findNextVisible","createError","currentIndex","resetDragProperties","_onDragOver","_onDragLeave","sortRows","sortAdditionalDragItems","ids","saveRowsSort","additional","reduce","realX","realY","defaultSettings","classContainer","classWrapper","classTable","classScrollContainer","classFadeContainer","classFadeContainerRight","classFadeContainerLeft","classNavPanel","classActionPanel","classCursor","classRowCustom","classMoreButton","classRow","classHeadRow","classBodyRow","classFootRow","classDataRows","classPanels","classCellHeadContainer","classCellHeadOndrag","classEmptyRows","classEmptyBlock","classCheckAllCheckboxes","classCheckedRow","classRowCheckbox","classPagination","classActionCol","classCounterDisplayed","classCounterSelected","classCounterTotal","classTableFade","classDragActive","classResizeButton","classOnDrag","classDisableDrag","classPanelCellContent","classCollapseButton","classRowStateLoad","classRowStateExpand","classHeaderSortable","classHeaderNoSortable","classCellStatic","classHeadCell","classPageSize","classGroupEditButton","classGroupDeleteButton","classGroupActionsDisabled","classPanelButton","classPanelApplyButton","classPanelCheckbox","classEditor","classEditorContainer","classEditorText","classEditorDate","classEditorNumber","classEditorRange","classEditorCheckbox","classEditorTextarea","classEditorCustom","classEditorMoney","classCellContainer","classEditorOutput","classSettingsWindow","classSettingsWindowColumn","classSettingsWindowColumnLabel","classSettingsWindowColumnEditState","classSettingsWindowColumnEditInput","classSettingsWindowColumnEditButton","classSettingsWindowColumnCheckbox","classSettingsWindowShow","classSettingsWindowSelectAll","classSettingsWindowUnselectAll","classSettingsWindowSearchSectionsWrapper","classSettingsWindowSearchActiveSectionIcon","classSettingsWindowSearchSectionInput","classSettingsWindowSearchSectionItemHidden","classSettingsWindowSearchSectionItemVisible","classSettingsButton","classSettingsButtonActive","classSettingsWindowClose","classSettingsWindowReset","classSettingsWindowColumnChecked","classShowAnimation","classCloseAnimation","classLoader","classLoaderShow","classLoaderHide","classRowError","loaderHideAnimationName","classHide","classEar","classEarLeft","classEarRight","classNotCount","classCounter","classForAllCounterEnabled","classLoad","classRowActionButton","classDropdown","classPanelControl","classPanelControlContainer","classForAllCheckbox","classDisable","dataActionsKey","updateActionMore","classShow","classGridShow","updateActionPagination","updateActionSort","ajaxIdDataProp","pageSizeId","sortableRows","sortableColumns","getDefault","SettingsWindow","popupItems","sourceContent","applyButton","resetButton","filterSections","filterSectionsSearchInput","_onContainerClick","_onColumnMoved","getSelectAllButton","selectAllButton","getUnselectAllButton","unselectAllButton","allColumns","_onSettingsButtonClick","fetchColumns","promise","Promise","fulfill","prepareColumnOptions","customNames","getCurrentOptions","custom_names","getColumnHeaderCellByName","createColumnElement","useLazyLoadColumns","getSourceContent","contentList","onItemClick","fixedFooter","getPopupItems","getSelectedColumns","restoreColumns","restore","sortItems","restoreLastColumns","restoreState","updateColumnsState","updateState","getStickedColumns","accumulator","isSticked","saveColumns","columnNames","getColumnNames","stickedColumns","batch","isForAll","view_id","set_default_settings","delete_user_settings","disableAllColumnslabelEdit","disableEdit","getAllColumns","isShowedColumn","columnName","getShowedColumns","showedColumns","getColumnByName","names","isEdited","getTitle","onResetButtonClick","CONFIRM","CONFIRM_MESSAGE","CONFIRM_RESET_MESSAGE","enableWait","disableWait","getResetButtonId","onApplyButtonClick","unselectForAllCheckbox","getApplyButtonId","getCancelButtonId","getCancelButton","buttonNode","createTitle","tmpDiv","customSettingsTitle","gridsCount","pageTitleNode","pageTitle","createPopup","titleBar","closeIcon","onPopupClose","onAnimationEnd","getResetButton","onSelectAll","onUnselectAll","prepareFilterSections","prepareFilterSectionsSearchInput","adjustActionButtonsState","getFilterSections","onFilterSectionClick","wrapper","HTMLCollection","sectionId","uiGridFilterSectionButton","section","getFilterSectionsSearchInput","onFilterSectionSearchInput","previousElementSibling","onFilterSectionSearchInputClear","search","lastTitle","SettingsWindowColumn","enableActions","disableActions","editButton","default","defaultTitle","state","trim","getEditButton","onEditButtonClick","getStickyButton","onStickyButtonClick","unstick","stick","isEditEnabled","enableEdit","setState","getState","sticked","setTitle","getLabel","getDefaultTitle","getSettings","isDefault","stickedDefault","contentEditable","adjustCaret","isContentEditable","createRange","selection","getSelection","elementTextLength","textNodes","childNodes","lastTextNode","setStart","setEnd","removeAllRanges","addRange","UserOptions","userOptions","userOptionsActions","console","warn","getCurrentViewName","getOptions","current_view","getViewsList","views","getUrl","add_url_param","GRID_ID","bxajaxid","newOptions","save","setColumnsNames","sizes","forAll","view_settings","setSort","by","order","pageSize","setExpandedRows","setCollapsedGroups","resetExpandedRows","saveForAll","bath","post","ajaxId","params","arrayMove","newIndex","k","splice","collection","getNext","currentItem","getPrev","closestChilds","root","collectionLength","targetIndex","properties","propKey","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","arguments","rootElement","first","getElementsByClassName","getElementsByTagName","e","Realtime","setEventNamespace","getTemplateRow","hideEmptyStub","ReferenceError","preparedCounters","acc","toBoolean","movedElements","fakeRowNode","createElement","tr","td","colspan","description","oldStub","CellActions","CellActionState","LEFT","DANGER","SUCCESS","PRIMARY","GRAY","LIGHT","DARK","LARGE","MEDIUM","DEFAULT","WARNING","SECONDARY","LIGHTGREEN","LIGHTBLUE","OUTSIDE","containerId","userOptionsHandlerUrl","panelActions","panelTypes","editorTypes","messageTypes","makeObservable","fadeContainer","scrollContainer","history","checkAll","sortable","updater","fader","isEditMode","pinHeader","resize","editableRows","isNeedResourcesReady","location","pathname","gridSettings","bindOnCheckAll","bindOnClickHeader","initRowsDragAndDrop","initColsDragAndDrop","_onUnselectRows","_onGridUpdated","frames","getFrameId","onresize","throttle","_onFrameResize","initStickedColumns","getFader","getResize","getSettingsWindow","getPinPanel","disableActionsPanel","disableForAllCounter","ie","touch","paramName","defaultValue","getActionKey","confirmForAll","CONFIRM_FOR_ALL_MESSAGE","selectAllCheckAllCheckboxes","enableForAllCounter","lastRowAction","unselectAllCheckAllCheckboxes","getCheckAllCheckboxes","indeterminateCheckAllCheckboxes","indeterminate","determinateCheckAllCheckboxes","editSelectedSave","getForAllKey","updateRow","removeRow","addRow","removeSelected","sendSelected","getPanels","getEmptyBlock","adjustEmptyBlockPosition","emptyBlock","filteredRows","panelsHeight","containerWidth","paddingOffset","parentElement","parentPaddingTop","parentPaddingBottom","isNaN","getGroupEditButton","getGroupDeleteButton","enableGroupActions","deleteButton","disableGroupActions","l","isSortableHeader","isNoSortableHeader","onBeforeSortEvent","isDefaultPrevented","_clickOnSortableHeader","enableEditMode","disableEditMode","adjustIndex","stickyColumnByIndex","setStickedColumns","cellWidth","heights","minHeight","lastStickyCell","getLastStickyCellFromRowByIndex","lastStickyCellLeft","lastStickyCellWidth","columnsPosition","cellLeft","reduceRight","fadeOffset","shadowLeft","sortByColumn","headerCell","sort_url","prepareSortUrl","sort_by","sort_order","getUserOptionsHandlerUrl","checkAllNodes","total","_clickOnCheckAll","toggleSelectionAll","_clickOnPaginationLink","_clickOnMoreButton","showCheckboxes","enableCollapsibleRows","_onClickOnRow","_onRowDblclick","_clickOnRowActionsButton","_onCollapseButtonClick","defaultJs","clickTimer","clickPrevent","clickDelay","shiftKey","clickActions","containsNotSelected","isPrevent","lastIndex","getLoader","newRows","newHeadRows","newNavPanel","thisBody","thisHead","thisNavPanel","getCounter","getFadeContainer","blockSorting","headerCells","unblockSorting","sortBy","dialog","CONFIRM_APPLY_BUTTON","CONFIRM_APPLY","CONFIRM_CANCEL_BUTTON","CONFIRM_CANCEL","CONFIRM_TITLE","zIndex","offsetTop","onClose","hotKey","PopupWindowButtonLink","getEmptyStub","showEmptyStub","stub","templateRow","cloned","getRowEditorValue","getRowEditorActionPanel","rowEditorActionPanel","SAVE_BUTTON_LABEL","saveRows","CANCEL_BUTTON_LABEL","hideRowsEditor","showRowEditorActionsPanel","hideRowEditorActionsPanel","prependRowEditor","addRowEditor","appendRowEditor","emitAsync","getRealtime"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit