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-full/dist/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol__src__AppPattern__ShareConfiguration.js
/*** module: node_modules/absol/src/AppPattern/ShareConfiguration.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _safeThrow = _interopRequireDefault(require("../Code/safeThrow"));

var _generator = require("../JSMaker/generator");


/**
 *
 * @param {{storageKey: string}} opt
 * @constructor
 */
function ShareConfiguration(opt) {
  this.opt = Object.assign({
    storageKey: "AS_SHARE_CONFIGURATION"
  }, opt);
  Object.defineProperty(this, 'data', {
    value: {},
    enumerable: true,
    writable: false
  });
  Object.defineProperty(this, '__listener__', {
    value: {},
    enumerable: false,
    writable: false
  });
  this.to = -1;

  this._load();
}

ShareConfiguration.prototype.version = 1;

ShareConfiguration.prototype._load = function () {
  var js = localStorage.getItem(this.opt.storageKey);
  if (!js) return;

  try {
    var obj = new Function('return ' + js)();

    if (obj && obj.version === this.version) {
      Object.assign(this.data, obj.data || {});
    }
  } catch (e) {}
};
/***
 *
 * @param {string} key
 * @param {*|undefined} value
 * @returns this
 */


ShareConfiguration.prototype.set = function (key, value) {
  var prev = this.data[key];

  if (value === undefined) {
    delete this.data[key];
  } else {
    this.data[key] = value;
  }

  if (value !== prev) {
    this.emit(key, value, this);
  }

  return this;
};
/***
 *@returns this
 */


ShareConfiguration.prototype.save = function () {
  clearTimeout(this.to);
  var obj = {
    data: this.data,
    version: this.version
  };
  var js = (0, _generator.generateJSVariable)(obj);
  localStorage.setItem(this.opt.storageKey, js);
};
/***
 *@returns this
 */


ShareConfiguration.prototype.saveDelay = function () {
  clearTimeout(this.to);
  this.to = setTimeout(() => this.save(), 100);
};

ShareConfiguration.prototype.emit = function (key) {
  var args = Array.prototype.slice.call(arguments, 1);
  var self = this;

  if (this.__listener__[key]) {
    this.__listener__[key].slice().forEach(function (f) {
      try {
        f.apply(self, args);
      } catch (err) {
        (0, _safeThrow.default)(err);
      }
    });
  }

  return this;
};
/***
 *
 * @param {string|Object} key
 * @param {function=}listener
 * @return {ShareConfiguration}
 */


ShareConfiguration.prototype.on = function (key, listener) {
  if (typeof key === "string") {
    if (!this.__listener__[key]) this.__listener__[key] = [];

    if (this.__listener__[key].indexOf(listener) < 0) {
      this.__listener__[key].push(listener);
    }
  } else if (typeof key === "object") {
    for (var key1 in key) {
      this.on(key1, key[key1]);
    }
  }

  return this;
};
/***
 *
 * @param {string|Object} key
 * @param {function=}listener
 * @return {ShareConfiguration}
 */


ShareConfiguration.prototype.off = function (key, listener) {
  if (typeof key === "string" && this.__listener__[key]) {
    var idx = this.__listener__[key].indexOf(listener);

    if (idx >= 0) {
      this.__listener__[key].splice(idx, 1);
    }
  } else if (typeof key === "object") {
    for (var key1 in key) {
      this.off(key1, key[key1]);
    }
  }

  return this;
};
/***
 *
 * @param {string} key
 * @param {*=} defaultValue
 * @return {*}
 */


ShareConfiguration.prototype.get = function (key, defaultValue) {
  var value = this.data[key];
  if (value === undefined) return defaultValue;
  return value;
};

ShareConfiguration.prototype.contains = function (key) {
  return this.data[key] !== undefined;
};

ShareConfiguration.instance = new ShareConfiguration();
var _default = ShareConfiguration;
exports.default = _default;

VaKeR 2022