VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-form/js/ClipboardManager.js
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();

VaKeR 2022