![]() 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-form/js/ |
Upload File : |
import Broadcast from 'absol/src/Network/Broadcast'; import { randomIdent } from 'absol/src/String/stringGenerate'; import EventEmitter from 'absol/src/HTML5/EventEmitter'; /** * Share bestween tab(same origin) use localStorage and BroardCast */ function ClipboardManager() { EventEmitter.call(this); this.broadcast = new Broadcast('formeditor_clipboard', randomIdent(20)); var localDataText = localStorage.getItem(this.LOCAL_STORE_KEY); var localData; try { localData = JSON.parse(localDataText || '{}'); } catch (error) { localData.data = {}; } this.data = localData.data || {}; this.broadcast.on('set', this.ev_BroadcastSet.bind(this)); }; Object.defineProperties(ClipboardManager.prototype, Object.getOwnPropertyDescriptors(EventEmitter.prototype)); ClipboardManager.prototype.constructor = ClipboardManager; ClipboardManager.prototype.LOCAL_STORE_KEY = 'AS_Form_ClipboardManager'; ClipboardManager.prototype.ev_BroadcastSet = function (key, value) { this.set(key, value, true); }; ClipboardManager.prototype.set = function (key, value, isPrivate) { this.data[key] = value; this.emit('set', key, value, this); if (!isPrivate) { this.broadcast.emit('set', key, value); localStorage.setItem(this.LOCAL_STORE_KEY, JSON.stringify({ data: this.data })); } }; ClipboardManager.prototype.get = function (key) { return this.data[key]; }; export default new ClipboardManager();