![]() 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-acomp/out/ |
Upload File : |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: EmojiPicker.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: EmojiPicker.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>import '../css/emojipicker.css'; import ACore from "../ACore"; import EmojiAnims from "./EmojiAnims"; import Sprite from "./Sprite"; import AElement from "absol/src/HTML5/AElement"; var _ = ACore._; var $ = ACore.$; /*** * @extends AElement * @constructor */ function EmojiPicker() { var thisPicker = this; this._aliveTimeout = 90; this._assetRoot = this.attr('data-asset-root'); /*** * * @type {Sprite} */ this.$previewAnim = $('sprite.as-emoji-picker-preview-anim', this) .on('ready', this.eventHandler.previewAnimReady) .on('frame', this.eventHandler.previewAnimFrame); this.$previewAnim.loop = true; this.$previewAnim.src = this._assetRoot + '/anim/x120/' + EmojiAnims[0][1]; this.$previewAnim.fps = 30; this.$desc = $('.as-emoji-picker-preview-desc', this); this.$shortcut = $('.as-emoji-picker-preview-shortcut', this); this.$desc.clearChild().addChild(_({ text: EmojiAnims[0][2] })); this.$shortcut.clearChild().addChild(_({ text: EmojiAnims[0][0] })); this.$list = $('.as-emoji-picker-list', this); this.$items = EmojiAnims.reduce(function (ac, it) { var itemElt = _({ tag: 'img', class: 'as-emoji-picker-item', props: { src: thisPicker._assetRoot + '/static/x20/' + it[1] } }).addTo(thisPicker.$list); itemElt.on('mouseenter', thisPicker.eventHandler.mouseenterItem.bind(thisPicker, it, itemElt)); itemElt.on('click', thisPicker.eventHandler.clickItem.bind(thisPicker, it)); ac[it[0]] = itemElt; return ac; }, {}); this.$attachook = _('attachhook').addTo(this).on('error', this.eventHandler.attach); } EmojiPicker.assetRoot = (function (){ if (location.hostname.match(/^.*(\.?absol\.cf|absol\.ddns\.net)$/) ||location.hostname.match(/^localhost$/) ) return 'https://absol.cf/emoji'; return '/emoji'; })(); EmojiPicker.tag = 'EmojiPicker'.toLowerCase(); EmojiPicker.render = function (data) { data = data || {}; data.assetRoot = data.assetRoot || EmojiPicker.assetRoot; return _({ class: 'as-emoji-picker', extendEvent: 'pick', attr: { 'data-asset-root': data.assetRoot }, child: [ { class: 'as-emoji-picker-preview', child: [ { class: '.as-emoji-picker-preview-anim-ctn', child: 'sprite.as-emoji-picker-preview-anim' }, '.as-emoji-picker-preview-desc', '.as-emoji-picker-preview-shortcut' ] }, { tag: 'bscroller', class: 'as-emoji-picker-list' } ] }); }; /** * @type {EmojiPicker} */ EmojiPicker.eventHandler = {}; EmojiPicker.eventHandler.attach = function () { this._aliveTimeout = 90; setTimeout(this.$previewAnim.play.bind(this.$previewAnim), 1); }; EmojiPicker.eventHandler.previewAnimReady = function () { this.$previewAnim.frames = { type: 'grid', col: 1, row: this.$previewAnim.texture.naturalHeight / this.$previewAnim.texture.naturalWidth }; this.$previewAnim.play(); }; EmojiPicker.eventHandler.previewAnimFrame = function () { if (this._aliveTimeout == 0) { var bound = this.getBoundingClientRect(); if (bound.width == 0) { this.$previewAnim.stop(); } else { this._aliveTimeout = 90; } } this._aliveTimeout--; }; EmojiPicker.eventHandler.mouseenterItem = function (itemData, itemElt, event) { if (this.$lastHoverItem == itemElt) return; this.$lastHoverItem = itemElt; this.$previewAnim.src = this._assetRoot + '/anim/x120/' + itemData[1]; this.$desc.clearChild().addChild(_({ text: itemData[2] })); this.$shortcut.clearChild().addChild(_({ text: itemData[0] })); }; EmojiPicker.eventHandler.clickItem = function (itemData, event) { this.emit('pick', { name: 'pick', key: itemData[0], target: this }, this); }; ACore.install(EmojiPicker); export default EmojiPicker; </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="CalendarInput.html">CalendarInput</a></li><li><a href="CandyBoxButton.html">CandyBoxButton</a></li><li><a href="ChromeCalendar.html">ChromeCalendar</a></li><li><a href="CircleSectionLabel.html">CircleSectionLabel</a></li><li><a href="Cluster.html">Cluster</a></li><li><a href="ClusterIconInfo.html">ClusterIconInfo</a></li><li><a href="ClusterIconStyle.html">ClusterIconStyle</a></li><li><a href="ContextCaptor.html">ContextCaptor</a></li><li><a href="DateInput.html">DateInput</a></li><li><a href="DateInput2.html">DateInput2</a></li><li><a href="DropPanel.html">DropPanel</a></li><li><a href="DropPanelStack.html">DropPanelStack</a></li><li><a href="FlexiconButton.html">FlexiconButton</a></li><li><a href="MarkerClusterer.html">MarkerClusterer</a></li><li><a href="MarkerClustererOptions.html">MarkerClustererOptions</a></li><li><a href="SearchTextInput.html">SearchTextInput</a></li><li><a href="Sprite.html">Sprite</a></li><li><a href="Time24Input.html">Time24Input</a></li></ul><h3>Events</h3><ul><li><a href="MarkerClusterer.html#event:click">click</a></li><li><a href="MarkerClusterer.html#event:clusteringbegin">clusteringbegin</a></li><li><a href="MarkerClusterer.html#event:clusteringend">clusteringend</a></li><li><a href="MarkerClusterer.html#event:mouseout">mouseout</a></li><li><a href="MarkerClusterer.html#event:mouseover">mouseover</a></li></ul><h3>Global</h3><ul><li><a href="global.html#$windowTitleText">$windowTitleText</a></li><li><a href="global.html#AddIcon">AddIcon</a></li><li><a href="global.html#calcMinHMTime">calcMinHMTime</a></li><li><a href="global.html#cleanMenuItemProperty">cleanMenuItemProperty</a></li><li><a href="global.html#preventNotNumberInput">preventNotNumberInput</a></li><li><a href="global.html#vScrollIntoView">vScrollIntoView</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.0</a> on Wed Jan 04 2023 18:18:58 GMT+0700 (Indochina Time) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>