%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.223.195.164 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/landing/ui/panel/ |
Upload File : |
;(function() { "use strict"; BX.namespace("BX.Landing.UI.Panel"); /** * Implements interface for works with card actions panel * * @extends {BX.Landing.UI.Panel.BaseButtonPanel} * * @inheritDoc * @constructor */ BX.Landing.UI.Panel.CardAction = function(id, data) { BX.Landing.UI.Panel.BaseButtonPanel.apply(this, arguments); adjustPanelSize(this); }; /** * Gets element rect * @param {HTMLElement} element * @returns {ClientRect|{left, top, width, height}} */ function rect(element) { return element.getBoundingClientRect(); } /** * Checks that size is extra small * @param {ClientRect} rect * @return {boolean} */ function isXS(rect) { return rect.height < 100; } /** * @param {ClientRect} cardRect * @param {ClientRect} panelRect * @return {boolean} */ function isLeft(cardRect, panelRect) { return cardRect.width < panelRect.width; } /** * Gets rect diff * @param cardRect * @param panelRect * @return {{width: number, height: number, top: number, right: number, bottom: number, left: number}} */ function diffRect(cardRect, panelRect) { return { width: Math.abs(cardRect.width - panelRect.width), height: Math.abs(cardRect.height - panelRect.height), top: Math.abs(cardRect.top - panelRect.top), right: Math.abs(cardRect.right - panelRect.right), bottom: Math.abs(cardRect.bottom - panelRect.bottom), left: Math.abs(cardRect.left - panelRect.left) } } /** * Adjusts panel size * @param panel */ function adjustPanelSize(panel) { BX.DOM.read(function() { if (panel.layout && panel.layout.parentNode) { var cardRect = rect(panel.layout.parentNode); var sizeClassName = "landing-ui-size-lg"; if (isXS(cardRect)) { sizeClassName = "landing-ui-size-xs"; } BX.DOM.write(function() { panel.layout.classList.add(sizeClassName); BX.DOM.read(function() { var panelRect = rect(panel.layout); var left = "auto"; if (isLeft(cardRect, panelRect)) { left = -(diffRect(cardRect, panelRect).width / 2) } BX.DOM.write(function() { panel.layout.style.left = left + "px"; }); }); }); } }); } BX.Landing.UI.Panel.CardAction.prototype = { constructor: BX.Landing.UI.Panel.CardAction, __proto__: BX.Landing.UI.Panel.BaseButtonPanel.prototype } })();