![]() 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/Radio.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("../css/radio.css"); var _ACore = _interopRequireDefault(require("../ACore")); var _OOP = _interopRequireDefault(require("absol/src/HTML5/OOP")); var _RadioButton = _interopRequireDefault(require("./RadioButton")); var _Svg = _interopRequireDefault(require("absol/src/HTML5/Svg")); var _AElement = _interopRequireDefault(require("absol/src/HTML5/AElement")); var _printer = require("absol/src/Print/printer"); var _Rectangle = _interopRequireDefault(require("absol/src/Math/Rectangle")); var _ = _ACore.default._; var $ = _ACore.default.$; var $$ = _ACore.default.$$; var _svg = _Svg.default.ShareInstance._; /*** * @extends AElement * @constructor */ function Radio() { var thisR = this; this.defineEvent('change'); this.$input = $('input', this).on('change', this.notifyChange.bind(this)); this.$labels = $$('span', this); _OOP.default.drillProperty(this, this.$input, ['value', 'checked']); } Radio.tag = 'radio'; Radio.radioProto = _('<svg class="absol-radio-icon" width="20" height="20" version="1.1" viewBox="0 0 5.2917 5.2917"' + ' xmlns="http://www.w3.org/2000/svg">' + ' <g transform="translate(0 -291.71)">' + ' <circle class="bound" cx="2.6458" cy="294.35" r="2.4626" style="stroke-opacity:.99497;stroke-width:.26458;" />' + ' <circle class="dot" cx="2.6458" cy="294.35" r= "0.92604" style="fill-rule:evenodd;" />' + ' </g>' + '</svg>'); Radio.render = function () { return _({ tag: 'label', class: 'absol-radio', child: [{ tag: 'input', attr: { type: 'radio' } }, { tag: 'span', class: 'absol-radio-left-label' }, Radio.radioProto.cloneNode(true), { tag: 'span', class: 'absol-radio-right-label' }] }); }; Radio.prototype.notifyChange = function () { this.emit('change', { type: 'change', checked: this.checked, target: this }, this); }; Radio.prototype.getAllFriend = function () { return Radio.getAllByName(this.name); }; Radio.attribute = _RadioButton.default.attribute; Radio.property = { name: { set: function (name) { this.$input.setAttribute('name', name); }, get: function () { return this.$input.getAttribute('name'); } }, text: { set: function (value) { value = (value || '').trim(); this.$labels[0].clearChild(); this.$labels[1].clearChild(); if (value) { this.$labels[0].addChild(_({ text: value })); this.$labels[1].addChild(_({ text: value })); } }, get: function () { return this.$labels[0].firstChild.data; } }, disabled: { set: function (value) { this.$input.disabled = !!value; if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.$input.disabled; } } }; Radio.getAllByName = function (name) { return (Array.apply(null, document.getElementsByTagName('input')) || []).filter(function (elt) { return elt.getAttribute('type') == 'radio' && elt.getAttribute('name') == name; }); }; Radio.getValueByName = function (name) { var inputs = Radio.getAllByName(name); var res = null; var input; for (var i = 0; i < inputs.length; ++i) { input = inputs[i]; if (input.checked) { res = input.value; } } return res; }; _ACore.default.install(Radio); var _default = Radio; exports.default = _default; var radioImageCache = {}; _printer.ShareSerializer.addHandlerBefore({ match: (elt, scope, stack) => { if ((elt.hasClass('absol-radio-icon') || elt.hasClass('as-checkbox-input-check-icon')) && (elt.parentElement.hasClass('absol-radio') || elt.parentElement.hasClass('absol-radio-button') || elt.parentElement.hasClass('as-checkbox-input'))) { return true; } return false; }, exec: (printer, elt, scope, stack, accept) => { var type = elt.hasClass('absol-radio-icon') ? 'radio' : 'check'; var fontSize = elt.getFontSize(); var checked = !!elt.parentElement.__origin__.checked; var disabled = !!elt.parentElement.__origin__.disabled; var bound = _Rectangle.default.fromClientRect(elt.getBoundingClientRect()); if (bound.width === 0) return; var rect = bound.clone(); rect.x -= printer.O.x; rect.y -= printer.O.y; var key = type + fontSize + checked + disabled; var res; if (radioImageCache[key]) { res = radioImageCache[key]; } else { res = _Svg.default.svgToCanvas(elt.__origin__).catch(err => { console.error(err); }); radioImageCache[key] = res; } res.elt = elt; printer.image(res, rect); }, id: 'Radio' }, 'SVG');