![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-full/dist/js/ |
Upload File : |
/*** module: node_modules/absol-acomp/js/DropPanelStack.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("../css/droppanel.css"); var _ACore = _interopRequireDefault(require("../ACore")); var _Dom = _interopRequireDefault(require("absol/src/HTML5/Dom")); var _AElement = _interopRequireDefault(require("absol/src/HTML5/AElement")); var _ = _ACore.default._; var $ = _ACore.default.$; /** * @extends AElement * @constructor */ function DropPanelStack() { var res = this; this.$attachHook = _('attachhook').on('error', function () { _Dom.default.addToResizeSystem(this); this.updateSize = res.updateSize.bind(res); }); this.sync = new Promise(function (rs) { res.$attachHook.once('error', rs); }); } DropPanelStack.tag = 'DropPanelStack'.toLowerCase(); DropPanelStack.render = function () { return _({ class: 'absol-drop-panel-stack', child: ['attachhook'] }); }; DropPanelStack.prototype.updateSize = function () {}; DropPanelStack.prototype.getFreeHeight = function () { var childNodes = this.childNodes; var sumHeight = 0; var bound = this.getBoundingClientRect(); var childBound; for (var i = 0; i < childNodes.length; ++i) { var child = childNodes[i]; if (child.hasClass && child.hasClass('absol-drop-panel')) { childBound = child.getBoundingClientRect(); sumHeight += childBound.height; } } return bound.height - sumHeight; }; DropPanelStack.prototype.addChild = function (child) { var self = this; if (child.hasClass('absol-drop-panel')) { //remove last event listener off other parent if (child.__drop_panel_toggle_listener__) { child.off('toggle', child.__drop_panel_toggle_listener__); } child.__drop_panel_toggle_listener__ = function (event) { event.preventDefault(); self.sync = self.sync.then(function () { if (event.isShowed) { setTimeout(function () { child.removeStyle('max-height'); }, 200); child.toggle(); } else { var headBound = child.$head.getBoundingClientRect(); var vailableHeight = self.getFreeHeight(); if (vailableHeight > 3) { child.addStyle('max-height', self.getFreeHeight() + headBound.height + 'px'); child.toggle(); } } return new Promise(function (rs) { setTimeout(rs, 200); }); }); }; child.on('toggle', child.__drop_panel_toggle_listener__); this.super(child); } else { throw new Error('Child element must be a DropPanel'); } }; _ACore.default.install('droppanelstack', DropPanelStack); var _default = DropPanelStack; exports.default = _default;