Server IP : 85.193.89.191 / Your IP : 18.118.30.253 Web Server : Apache System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : bitrix ( 600) PHP Version : 8.1.27 Disable Function : NONE MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/bitrix/www/bitrix/components/bitrix/main.ui.grid/templates/.default/js/ |
Upload File : |
;(function() { 'use strict'; BX.namespace('BX.Main'); /** * BX.Main.submenu * @type {{data: Array, init: BX.Main.submenu.init, toggleMenu: BX.Main.submenu.toggleMenu, pushMenu: BX.Main.submenu.pushMenu, getMenu: BX.Main.submenu.getMenu, createMenu: BX.Main.submenu.createMenu}} */ BX.Main.submenu = { data: [], init: function(anchor, id, level, menuItems) { this.id = id; this.anchor = anchor; this.menuItems = menuItems; this.level = level; this.anchorRect = BX.pos(this.anchor); this.toggleMenu(); }, toggleMenu: function() { var currentLeft; var tempLeft; var tmpWindow; var current = this.anchor.menu; var currentWindow = current ? this.anchor.menu.popupWindow : null; if (current && currentWindow.isShown()) { currentLeft = currentWindow.bindOptions.left; this.data.forEach(function(currentMenu) { tmpWindow = currentMenu.popupWindow; tempLeft = tmpWindow.bindOptions.left; if (currentLeft <= tempLeft) { currentMenu.popupWindow.close(); } }); } else { BX.PopupMenu.destroy(this.id); this.anchor.menu = this.createMenu(); this.pushMenu(this.anchor.menu); this.anchor.menu.popupWindow.adjustPosition(BX.pos(this.anchor)); this.anchor.menu.popupWindow.show(); current = this.anchor.menu; currentWindow = current.popupWindow; currentLeft = currentWindow.bindOptions.left; this.data.forEach(function(currentMenu) { tmpWindow = currentMenu.popupWindow; tempLeft = tmpWindow.bindOptions.left; if (currentLeft <= tempLeft && current.id !== currentMenu.id) { currentMenu.popupWindow.close(); } }); } }, pushMenu: function(menu) { var index = this.getMenu(menu); if (menu) { if (index === null) { this.data.push(menu); } else { this.data[index] = menu; } } }, getMenu: function(menu) { var index = null; this.data.forEach(function(current, key) { if (current.id === menu.id) { index = key; return false; } }); return index; }, createMenu: function() { return BX.PopupMenu.create( this.id, this.anchor, this.menuItems, { 'autoHide': true, 'offsetTop': -((this.anchorRect.height / 2) + 26), 'offsetLeft': this.anchorRect.width + 4, 'angle': { 'position': 'left', 'offset': ((this.anchorRect.height / 2) - 8) } } ); } }; })();