![]() 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/EmojiCounter.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("../css/emojicounter.css"); var _ACore = _interopRequireDefault(require("../ACore")); var _EmojiPickerTooltip = _interopRequireDefault(require("./EmojiPickerTooltip")); var _EmojiPicker = _interopRequireDefault(require("./EmojiPicker")); var _Tooltip = _interopRequireWildcard(require("./Tooltip")); var _Rectangle = _interopRequireDefault(require("absol/src/Math/Rectangle")); var _Dom = require("absol/src/HTML5/Dom"); var _EmojiUserListTooltip = _interopRequireDefault(require("./EmojiUserListTooltip")); var _BrowserDetector = _interopRequireDefault(require("absol/src/Detector/BrowserDetector")); var $ = _ACore.default.$; var _ = _ACore.default._; var isMobile = _BrowserDetector.default.isMobile; /*** * @extends AElement * @constructor */ function EmojiCounter() { /*** * * @type {Sprite} */ this.$sprite = $('sprite', this); this.$num = $('.as-emoji-counter-num', this); this.$numText = this.$num.firstChild; this._text = '(heart)'; this.text = this._text; this._count = 0; this.count = 0; this._checkInterval = -1; if (isMobile) { this.attr('tabindex', '1'); this.on('focus', this.eventHandler.mouseEnter); } else { this.on('mouseenter', this.eventHandler.mouseEnter); } this._tooltipSession = null; this._tooltipFinishTimeout = -1; } EmojiCounter.tag = 'EmojiCounter'.toLowerCase(); EmojiCounter.render = function () { var icon = _EmojiPickerTooltip.default.emojiDict['(heart)']; var url = _EmojiPicker.default.assetRoot + '/anim/x40/' + icon.imageFileName; return _({ class: 'as-emoji-counter', child: [{ tag: 'sprite', class: 'as-emoji-counter-sprite', props: { src: url, loop: true, fps: 30, debug: true }, on: { ready: function () { this.frames = { type: 'grid', col: 1, row: this.texture.naturalHeight / this.texture.naturalWidth }; this.frameIndex = 0; } } }, { tag: 'span', class: 'as-emoji-counter-num', child: { text: '0' } }] }); }; EmojiCounter.property = {}; EmojiCounter.property.text = { set: function (value) { var icon = _EmojiPickerTooltip.default.emojiDict[value]; if (!icon) return; if (this._text === value) return; this.$sprite.src = _EmojiPicker.default.assetRoot + '/anim/x40/' + icon.imageFileName; this._text = value; }, get: function () { return this._text; } }; EmojiCounter.property.count = { set: function (value) { this.$numText.data = value + ''; if (value === 1 && this._count != 1) { this.$numText.remove(); } else if (value != 1 && this._count == 1) { this.$num.addChild(this.$numText); } if (value == 0) this.addClass('as-zero');else this.removeClass('as-zero'); this._count = value; }, get: function () { return this._count; } }; _ACore.default.install(EmojiCounter); EmojiCounter.eventHandler = {}; EmojiCounter.eventHandler.loop = function () { if (!this.isDescendantOf(document.body)) this.eventHandler.finishHover(); if (this.getBoundingClientRect().width === 0) this.eventHandler.finishHover(); }; EmojiCounter.eventHandler.mouseEnter = function () { if (this._tooltipFinishTimeout > 0) { clearTimeout(this._tooltipFinishTimeout); } if (this._checkInterval > 0) return; this.$sprite.play(); this._checkInterval = setInterval(this.eventHandler.loop, 1000); this.on('mouseleave', this.eventHandler.finishHover); if (this.users && this.users.length > 0) { prepare(); EmojiCounter._session = Math.random() * 10000000000 >> 0; this._tooltipSession = EmojiCounter._session; EmojiCounter.$element = this; EmojiCounter.$holder.addTo(this); EmojiCounter.$tooltip.text = this.text; EmojiCounter.$tooltip.users = this.users; EmojiCounter.$tooltip.playEmoji(); (0, _Tooltip.updateTooltipPosition)(EmojiCounter); } }; EmojiCounter.eventHandler.finishHover = function () { if (this._tooltipFinishTimeout > 0) { clearTimeout(this._tooltipFinishTimeout); } this._tooltipFinishTimeout = setTimeout(function () { this._tooltipFinishTimeout = -1; this.$sprite.stop(); this.off('mouseleave', this.eventHandler.finishHover); if (this._checkInterval > 0) { clearInterval(this._checkInterval); this._checkInterval = -1; } if (this._tooltipSession === EmojiCounter._session) { EmojiCounter._session = Math.random() * 10000000000 >> 0; EmojiCounter.$holder.remove(); EmojiCounter.$tooltip.stopEmoji(); } }.bind(this), 500); }; function prepare() { if (EmojiCounter.$holder) return; EmojiCounter.$holder = _('.absol-tooltip-root-holder'); EmojiCounter.$tooltip = _('EmojiUserListTooltip.top'.toLowerCase()).addTo(EmojiCounter.$holder); EmojiCounter._scrollOutListener = undefined; EmojiCounter._orientation = 'top'; EmojiCounter._session = Math.random() * 10000000000 >> 0; _EmojiPickerTooltip.default._listener = undefined; EmojiCounter.$element = null; EmojiCounter.$tooltip.$arrow.updateSize = EmojiCounter.updatePosition; } EmojiCounter.updatePosition = function () { if (!EmojiCounter.$element) return; var outBound = _Rectangle.default.fromClientRect((0, _Dom.traceOutBoundingClientRect)(EmojiCounter.$element)); var eBound = _Rectangle.default.fromClientRect(EmojiCounter.$element.getBoundingClientRect()); if (!outBound.isCollapse(eBound, 0)) { _EmojiPickerTooltip.default._scrollOutListener && EmojiCounter._scrollOutListener(); } (0, _Tooltip.updateTooltipPosition)(EmojiCounter); }; EmojiCounter.updatePosition = EmojiCounter.updatePosition.bind(EmojiCounter); var _default = EmojiCounter; exports.default = _default;