![]() 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/FollowerToggler.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _EventEmitter = _interopRequireDefault(require("absol/src/HTML5/EventEmitter")); var _ACore = _interopRequireDefault(require("../ACore")); var _AElement = _interopRequireDefault(require("absol/src/HTML5/AElement")); var _ = _ACore.default._; var $ = _ACore.default.$; /*** * @extends AElement * @constructor */ function FollowerToggler() { this.defineEvent(['close', 'open', 'preopen']); this.on('click', this.eventHandler.click); this.addClass('as-follower-trigger'); this.$follower = null; this._opened = false; } FollowerToggler.tag = 'FollowerToggler'.toLowerCase(); FollowerToggler.render = function () { return _('div'); }; FollowerToggler.prototype.toggle = function () { if (this._opened) this.close();else this.open(); }; FollowerToggler.prototype.open = function () { if (this._opened) return; this._opened = true; this.addClass('as-follower-trigger-open'); if (!this.$follower) return; this.emit('preopen', { name: 'preopen', target: this }, this); var thisTg = this; setTimeout(function () { thisTg.$follower.refollow(); thisTg.$follower.removeClass('absol-follower-hidden'); document.body.addEventListener('click', thisTg.eventHandler.clickBody); thisTg.emit('open', { name: 'open', target: this }, this); }, 1); }; FollowerToggler.prototype.close = function () { if (!this._opened) return; this._opened = false; this.removeClass('as-follower-trigger-open'); if (!this.$follower) return; this.$follower.unfollow(); this.$follower.addClass('absol-follower-hidden'); document.body.removeEventListener('click', this.eventHandler.clickBody); this.emit('close', { name: 'close', target: this }, this); }; FollowerToggler.prototype.bindFollower = function (elt) { if (this.$follower) { this.$follower.followTarget = null; } if (elt && elt.refollow) { if (this._opened) elt.removeClass('absol-follower-hidden');else elt.addClass('absol-follower-hidden'); elt.followTarget = this; elt.sponsorElement = this; this.$follower = elt; } else { throw new Error("Must be a follower!"); } }; FollowerToggler.eventHandler = {}; FollowerToggler.eventHandler.clickBody = function (event) { if (_EventEmitter.default.hitElement(this, event) || _EventEmitter.default.hitElement(this.$follower, event)) return; this.close(); }; FollowerToggler.eventHandler.click = function () { this.toggle(); }; _ACore.default.install(FollowerToggler); var _default = FollowerToggler; exports.default = _default;