![]() 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/EditableElement.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.$$ = exports.$ = exports._ = void 0; var _Dom = _interopRequireDefault(require("absol/src/HTML5/Dom")); var _OOP = _interopRequireDefault(require("absol/src/HTML5/OOP")); var _stringGenerate = require("absol/src/String/stringGenerate"); /** * @extends Dom * @constructor */ function EditableDom() { _Dom.default.apply(this, arguments); } _OOP.default.mixClass(EditableDom, _Dom.default); EditableDom.prototype.attach = function (element) { _Dom.default.prototype.attach.apply(this, arguments); element.defineEvent(['range', 'focus', 'blur']); }; var EditableDomInstance = new EditableDom(); var _ = EditableDomInstance._; exports._ = _; var $ = EditableDomInstance.$; exports.$ = $; var $$ = EditableDomInstance.$$; /** * @extends AElement * @constructor */ exports.$$ = $$; function EditableElement() { this.attr('contenteditable', true); this.addClass('as-editable'); this.selectionCtrl = new EESelectionController(this); } EditableElement.tag = 'EditableElement'; EditableElement.render = function () { return _('div'); }; function EESelectionController(elt) { this.elt = elt; this.rangeFocusing = {}; for (var key in this.constructor.prototype) { if (key.startsWith('ev_')) { this[key] = this[key].bind(this); } } this.elt.on({ focus: this.ev_focus, blur: this.ev_blur }); } EESelectionController.prototype.ev_selectionChange = function (event) { var sel = document.getSelection(); // var range = sel.getRangeAt(0); console.log(sel, sel.rangeCount); }; EESelectionController.prototype.ev_focus = function (event) { document.addEventListener('selectionchange', this.ev_selectionChange); }; EESelectionController.prototype.ev_blur = function (event) { document.removeEventListener('selectionchange', this.ev_selectionChange); }; var _default = EditableElement; exports.default = _default;