File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/components/bitrix/main.ui.grid/templates/.default/script.js.map
Back
{"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 emptyText = data.EMPTY_TEXT || '';\n\t\t\tvar isMultiple = data.MULTIPLE === 'Y';\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-empty-text': emptyText,\n\t\t\t\t\t'data-multiple': isMultiple ? 'Y' : 'N',\n\t\t\t\t\t'data-items': JSON.stringify(data.ITEMS),\n\t\t\t\t\t'data-value': isMultiple ? '' : 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: isMultiple ? emptyText : 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\tvar multiple = BX.data(current, 'multiple') === 'Y';\n\t\t\t\t\t\tdropdownValue = (dropdownValue !== null && dropdownValue !== undefined) ? dropdownValue : '';\n\t\t\t\t\t\tdata[BX.data(current, 'name')] = multiple ? dropdownValue.split(',') : 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\t/**\n\t * Returns a grid container\n\t * @return {?Element}\n\t */\n\tBX.Grid.Data.prototype.getContainer = function()\n\t{\n\t\tconst className = this.getParent().settings.get('classContainer');\n\t\tif (BX.Dom.hasClass(this.getResponse(), className))\n\t\t{\n\t\t\treturn this.getResponse();\n\t\t}\n\n\t\treturn BX.Grid.Utils.getByClass(this.getResponse(), className, true);\n\t};\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.multiple = null;\n\t\tthis.emptyText = 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(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.multiple = this.getMultiple();\n\t\t\tthis.emptyText = this.getEmptyText();\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()\n\t\t{\n\t\t\treturn this.id + '_menu';\n\t\t},\n\n\t\tgetItems()\n\t\t{\n\t\t\tlet result;\n\n\t\t\ttry {\n\t\t\t\tconst 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\t// single\n\t\tgetValue()\n\t\t{\n\t\t\treturn BX.data(this.dropdown, this.dataValue);\n\t\t},\n\n\t\tgetValueItem()\n\t\t{\n\t\t\tconst value = this.getValue();\n\t\t\treturn this.getItems().find((item) => item.VALUE === value);\n\t\t},\n\n\t\t// multiple\n\t\tgetValueAsArray()\n\t\t{\n\t\t\tlet value = this.getValue();\n\t\t\tif (value === undefined)\n\t\t\t{\n\t\t\t\tvalue = '';\n\t\t\t}\n\t\t\treturn value.toString().split(',').filter((i) => i !== '');\n\t\t},\n\n\t\tgetValueItems()\n\t\t{\n\t\t\tconst values = this.getValueAsArray();\n\t\t\treturn this.getItems().filter((item) => values.includes(item.VALUE));\n\t\t},\n\n\t\ttoggleValue(value)\n\t\t{\n\t\t\tif (this.multiple)\n\t\t\t{\n\t\t\t\tif (value || value === 0 || value === '0')\n\t\t\t\t{\n\t\t\t\t\tconst values = this.getValueAsArray();\n\t\t\t\t\tconst index = values.indexOf(value);\n\n\t\t\t\t\tif (index < 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tvalues.push(value);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dropdown.dataset[this.dataValue] = values.join(',');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.dropdown.dataset[this.dataValue] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.dropdown.dataset[this.dataValue] = value;\n\t\t\t}\n\t\t},\n\n\t\tgetValueText()\n\t\t{\n\t\t\tif (this.multiple)\n\t\t\t{\n\t\t\t\treturn this.getValueItems().map((item) => item.NAME).filter((i) => !!i).join(\", \") || this.emptyText;\n\t\t\t}\n\n\t\t\tconst item = this.getValueItem();\n\t\t\treturn item ? item.NAME : this.emptyText;\n\t\t},\n\n\t\tgetMultiple()\n\t\t{\n\t\t\treturn this.dropdown.dataset.multiple === 'Y';\n\t\t},\n\n\t\tgetEmptyText()\n\t\t{\n\t\t\treturn this.dropdown.dataset.emptyText || null;\n\t\t},\n\n\t\tprepareMenuItems()\n\t\t{\n\t\t\tconst self = this;\n\t\t\tlet attrs, subItem;\n\t\t\tconst currentValue = this.multiple ? this.getValueAsArray() : this.getValue();\n\n\t\t\tfunction prepareItems(items)\n\t\t\t{\n\t\t\t\tconst 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\tconst selected =\n\t\t\t\t\t\tself.multiple\n\t\t\t\t\t\t? currentValue.includes(item.VALUE)\n\t\t\t\t\t\t: currentValue === item.VALUE\n\t\t\t\t\t;\n\t\t\t\t\treturn {\n\t\t\t\t\t\thtml: subItem.innerHTML,\n\t\t\t\t\t\tclassName: selected ? 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()\n\t\t{\n\t\t\tconst 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'() {\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()\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()\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(node)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(node, this.dropdownItemClass, true);\n\t\t},\n\n\t\trefresh(item)\n\t\t{\n\t\t\tconst subItem = this.getSubItem(item);\n\t\t\tlet 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\n\t\t\tthis.toggleValue(value);\n\t\t\tif (this.dropdown.dataset['htmlEntity'] === 'true')\n\t\t\t{\n\t\t\t\tBX.firstChild(this.dropdown).innerHTML = this.getValueText();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.firstChild(this.dropdown).innerText = this.getValueText();\n\t\t\t}\n\t\t},\n\n\t\tselectItem(node)\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\t(this.menu.menuItems || []).forEach(function(current) {\n\t\t\t\t// multiple\n\t\t\t\tif (self.multiple)\n\t\t\t\t{\n\t\t\t\t\tif (node === current.layout.item)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (BX.hasClass(node, self.selectedClass))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.addClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t\t\t\tBX.removeClass(current.layout.item, self.selectedClass);\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.removeClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t\t\t\tBX.addClass(current.layout.item, self.selectedClass);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// single\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\tBX.addClass(current.layout.item, self.selectedClass);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tlockedItem(node) {\n\n\t\t\tBX.addClass(node, this.lockedClass);\n\t\t},\n\n\t\tgetDataItemIndexByValue(items, value)\n\t\t{\n\t\t\tlet 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(value)\n\t\t{\n\t\t\tconst 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()\n\t\t{\n\t\t\tconst 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()\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(event)\n\t\t{\n\t\t\tconst item = this.getMenuItem(event.target);\n\t\t\tlet value, dataItem;\n\t\t\tconst subItem = this.getSubItem(item);\n\t\t\tconst 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\n\t\t\t\tif (!this.multiple)\n\t\t\t\t{\n\t\t\t\t\tthis.menu.popupWindow.close();\n\t\t\t\t}\n\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(node)\n\t\t{\n\t\t\tlet 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\n\t/**\n\t * Updates a grid container\n\t * @param {?HTMLElement} container\n\t */\n\tBX.Grid.Updater.prototype.updateContainer = function(container)\n\t{\n\t\tif (BX.Type.isDomNode(container))\n\t\t{\n\t\t\tthis.getParent().getContainer().className = container.className;\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\tminWidth: 400,\n\t\t\t\t\t\tmaxWidth: 800,\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\tif (!this.isHeadChild())\n\t\t\t{\n\t\t\t\tthis.showActionsMenu(event);\n\t\t\t}\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 = '«' + customSettingsTitle + '»';\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? '«' + BX.Text.encode(pageTitleNode.innerText) + '»'\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\tBX.Event.bind(this.label, 'paste', this.onLabelPaste.bind(this));\n\t\t\t\tBX.Event.bind(this.label, 'keydown', this.onLabelKeydown.bind(this));\n\t\t\t}\n\n\t\t\treturn this.label;\n\t\t},\n\n\t\tonLabelPaste: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tif (event.clipboardData && event.clipboardData.getData)\n\t\t\t{\n\t\t\t\tvar sourceText = event.clipboardData.getData(\"text/plain\");\n\t\t\t\tvar encodedText = BX.Text.encode(sourceText);\n\t\t\t\tvar formattedHtml = encodedText\n\t\t\t\t\t.trim()\n\t\t\t\t\t.replace(new RegExp('\\t', 'g'), \" \")\n\t\t\t\t\t.replace(new RegExp('\\n', 'g'), \" \")\n\t\t\t\t\t.replace(/ +(?= )/g,'');\n\t\t\t\tdocument.execCommand(\"insertHTML\", false, formattedHtml);\n\t\t\t}\n\t\t},\n\n\t\tonLabelKeydown: function(event)\n\t\t{\n\t\t\tif (event.keyCode === 13)\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\t\t\t}\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.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\n\t\t\t\t\t\tself.getUpdater().updateContainer(this.getContainer());\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\n\t\t\t\tBX.Dom.addClass(this.getContainer(), 'main-grid-empty-stub');\n\n\t\t\t\tif (this.getCurrentPage() <= 1)\n\t\t\t\t{\n\t\t\t\t\tthis.hidePanels();\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\n\t\t\t\tthis.showPanels();\n\t\t\t\tBX.Dom.removeClass(this.getContainer(), 'main-grid-empty-stub');\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\n\t\t\t\tself.getUpdater().updateContainer(this.getContainer());\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\tgetCurrentPage: function()\n\t\t{\n\t\t\tvar currentPage = parseInt(this.arParams.CURRENT_PAGE);\n\t\t\tif (BX.Type.isNumber(currentPage))\n\t\t\t{\n\t\t\t\treturn currentPage;\n\t\t\t}\n\n\t\t\treturn 0;\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\tBX.Dom.addClass(this.getContainer(), 'main-grid-empty-stub');\n\t\t\t\tif (this.getCurrentPage() <= 1)\n\t\t\t\t{\n\t\t\t\t\tthis.hidePanels();\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\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.removeClass(this.getContainer(), 'main-grid-empty-stub');\n\t\t\t\tBX.Dom.style(this.getTable(), 'min-height', null);\n\t\t\t\tthis.showPanels();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tshowPanels: function()\n\t\t{\n\t\t\tBX.Dom.show(this.getPanels());\n\t\t\tif (this.getPanels().offsetHeight > 0)\n\t\t\t{\n\t\t\t\tBX.Dom.removeClass(this.getContainer(), 'main-grid-empty-footer');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\thidePanels: function()\n\t\t{\n\t\t\tBX.Dom.hide(this.getPanels());\n\t\t\tBX.Dom.addClass(this.getContainer(), 'main-grid-empty-footer');\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","emptyText","EMPTY_TEXT","isMultiple","MULTIPLE","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","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","multiple","undefined","split","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","getMultiple","getEmptyText","createMenu","popupWindow","adjustPosition","showMenu","str","getValueItem","find","getValueAsArray","toString","i","getValueItems","values","toggleValue","splice","dataset","join","getValueText","prepareMenuItems","subItem","currentValue","prepareItems","isHtmlEntity","selected","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","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","updateContainer","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","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","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","minWidth","maxWidth","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","adjustFixedColumnsPosition","adjustFadePosition","getFadeOffset","saveSizes","getColumnSizes","setColumnSizes","Row","sort","actionsButton","depth","parentId","editData","onElementClick","initElementsEvents","Settings","bindNodes","isBodyChild","slice","onMouseOver","onMouseLeave","unselect","select","_onRightClick","isCustom","isHeadChild","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","selectValues","option","set","toUpperCase","fakeInput","getEditorContainer","getCollapseButton","collapseButton","stateLoad","stateUnload","stateExpand","stateCollapse","getParentId","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","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","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","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","defaultTitle","state","trim","getEditButton","onEditButtonClick","getStickyButton","onStickyButtonClick","unstick","stick","isEditEnabled","enableEdit","setState","getState","sticked","setTitle","getLabel","getDefaultTitle","getSettings","isDefault","stickedDefault","onLabelPaste","onLabelKeydown","clipboardData","sourceText","encodedText","formattedHtml","RegExp","execCommand","keyCode","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","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","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","getCurrentPage","hidePanels","showPanels","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","currentPage","CURRENT_PAGE","getEmptyStub","showEmptyStub","stub","offsetHeight","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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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.37 |
proxy
|
phpinfo
|
Settings