![]() 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/ButtonArray.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("../css/buttonarray.css"); var _ACore = _interopRequireDefault(require("../ACore")); var _AElement = _interopRequireDefault(require("absol/src/HTML5/AElement")); var _ = _ACore.default._; var $ = _ACore.default.$; /*** * @extends AElement * @constructor */ function ButtonArray() { this._dict = {}; this._pool = []; this._items = []; this.$lastActiveBtn = null; this._value = undefined; this._lastValue = this._value; } ButtonArray.tag = 'buttonarray'; ButtonArray.render = function () { return _({ extendEvent: ['change'], class: 'as-button-array' }); }; ButtonArray.prototype._newButton = function () { var button = _({ tag: 'button', class: 'as-button-array-item', child: { text: 'null' } }); button.on('click', this.eventHandler.clickItem.bind(this, button)); return button; }; ButtonArray.prototype._requestButton = function (items) { var button; if (this._pool.length > 0) { button = this._pool.pop(); } else { button = this._newButton(); } return button; }; ButtonArray.prototype._assignButton = function (button, data) { button._data = data; button.childNodes[0].data = data.text; }; ButtonArray.prototype._releaseButton = function (button) { this._pool.push(button); }; ButtonArray.prototype._getFullFormat = function (item) { var res = {}; if (typeof item == 'string' || typeof item == 'number' || typeof item == 'boolean' || item === null || item === undefined) { res.ident = item; res.value = item; res.text = item + ''; } else if (item && typeof item == 'object') { res.value = item.value; res.ident = res.value + ''; res.text = item.text; } return res; }; ButtonArray.property = {}; /** * @type {ButtonArray} */ ButtonArray.property.items = { set: function (items) { items = items || []; this._items = items; var child; while (this.childNodes.length > items.length) { child = this.lastChild; this._releaseButton(child); this.removeChild(child); } while (this.childNodes.length < items.length) { this.addChild(this._requestButton()); } var item; for (var i = 0; i < items.length; ++i) { item = this._getFullFormat(items[i]); this._assignButton(this.childNodes[i], item); this._dict[item.ident] = { elt: this.childNodes[i], data: item }; } if (items.length > 0) { if (!this._dict[this._value + '']) { this._value = this._getFullFormat(items[0]).value; } } this.value = this._value; }, get: function () { return this._items; } }; ButtonArray.property.value = { set: function (value) { this._value = value; this._lastValue = this._value; if (this.$lastActiveBtn) { this.$lastActiveBtn.removeClass('as-active'); this.$lastActiveBtn = null; } var hodler = this._dict[value + '']; if (hodler) { hodler.elt.addClass('as-active'); this.$lastActiveBtn = hodler.elt; } }, get: function () { return this._value; } }; ButtonArray.eventHandler = {}; ButtonArray.eventHandler.clickItem = function (item, event) { if (this._lastValue != item._data.value) { this.value = item._data.value; this.emit('change', { target: this, value: this.value, type: 'change' }, this); } }; _ACore.default.install(ButtonArray); var _default = ButtonArray; exports.default = _default;