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-acomp__js__TOCItem.js
/*** module: node_modules/absol-acomp/js/TOCItem.js ***/
"use strict";

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

var _ACore = _interopRequireWildcard(require("../ACore"));

require("../css/toclist.css");

var _CheckBoxInput = _interopRequireDefault(require("./CheckBoxInput"));

var _Dom = _interopRequireDefault(require("absol/src/HTML5/Dom"));

var _utils = require("./utils");

var _EventEmitter = require("absol/src/HTML5/EventEmitter");




/***
 * @extends AElement
 * @constructor
 */
function TOCItem() {
  this.$iconP = null;
  this.$iconCtn = (0, _ACore.$)('.as-toc-item-ext-icon-ctn', this);
  this._status = 'none';
  this.$name = (0, _ACore.$)('.as-toc-item-name', this);
  this.$nameInput = (0, _ACore.$)('.as-toc-item-name-input', this).on('keydown', this.eventHandler.keyDownNameInput).on('paste', this.eventHandler.keyDownNameInput);
  this.$toggleCtn = (0, _ACore.$)('.as-toc-item-toggle-ico-ctn', this);
  this._level = 0;
  this.$checkbox = (0, _ACore.$)(_CheckBoxInput.default.tag, this).on('change', this.eventHandler.checkedChange);
  this.$checkbox.disabled = true;
  this.$checkbox.addStyle('display', 'none');
  this.$checkIco = (0, _ACore.$)('.as-toc-item-check-ctn .mdi-check', this).addStyle('display', 'none').addStyle('font-size', '18px');
  this.$quickMenuBtn = (0, _ACore.$)('.as-toc-item-quick-menu-ctn button', this).on('click', this.eventHandler.clickQuickMenuBtn);
  this.on('click', this.eventHandler.click);
  this._lastClickTime = 0;
  /***
   * @name hasQuickMenu
   * @type {boolean}
   * @memberOf TOCItem#
   */

  /***
  * @name name
  * @type {string}
  * @memberOf TOCItem#
  */

  /***
   * @name status
   * @type {"none"|"open"|"close"}
   * @memberOf TOCItem#
   */

  /***
   * @name level
   * @type {number}
   * @memberOf TOCItem#
   */

  /***
   * @name checked
   * @type {boolean}
   * @memberOf TOCItem#
   */

  /***
   * @name nodeData
   * @type {{}}
   * @memberOf TOCItem#
   */
}

TOCItem.tag = 'TOCItem'.toLowerCase();

TOCItem.render = function () {
  return (0, _ACore._)({
    class: ['as-toc-item', 'as-has-quick-menu'],
    extendEvent: ['presstoggle', 'checkedchange', 'pressquickmenu', 'press', 'renamefinish'],
    child: [{
      class: 'as-toc-item-toggle-ico-ctn',
      child: 'toggler-ico'
    }, '.as-toc-item-ext-icon-ctn', {
      class: 'as-toc-item-name-ctn',
      child: [{
        tag: 'span',
        class: 'as-toc-item-name',
        child: {
          text: 'đây là cái tên'
        }
      }, {
        tag: 'input',
        class: 'as-toc-item-name-input',
        attr: {
          type: 'text'
        }
      }]
    }, {
      class: 'as-toc-item-check-ctn',
      child: [{
        tag: _CheckBoxInput.default.tag
      }, 'span.mdi.mdi-check']
    }, {
      class: 'as-toc-item-quick-menu-ctn',
      child: {
        tag: 'button',
        child: 'span.mdi.mdi-dots-vertical'
      }
    }]
  });
};

TOCItem.property = {};
TOCItem.property.icon = {
  set: function (value) {
    if (this.$iconP) {
      this.$iconP.remove();
      this.$iconP = undefined;
    }

    if (value) {
      var newE;

      if (!_Dom.default.isDomNode(value)) {
        newE = (0, _ACore._)(value);
      }

      this.$iconP = newE;
      this.$iconCtn.addChild(newE);
      this._icon = value;
    } else {
      this._icon = undefined;
    }
  },
  get: function () {
    return this._icon;
  }
};
TOCItem.property.status = {
  set: function (value) {
    if (['none', 'open', 'close'].indexOf(value) < 0) value = 'none';
    this.removeClass('as-status-' + this._status);
    this._status = value;
    this.addClass('as-status-' + value);
  },
  get: function () {
    return this._status;
  }
};
TOCItem.property.name = {
  set: function (value) {
    this.$name.firstChild.data = value || '';
  },
  get: function () {
    return this.$name.firstChild.data;
  }
};
TOCItem.property.level = {
  set: function (value) {
    this._level = value;
    this.addStyle('--level', value + '');
  },
  get: function () {
    return this._level;
  }
};
TOCItem.property.checked = {
  set: function (value) {
    this.$checkbox.checked = value;

    if (value) {
      this.$checkIco.removeStyle('display');
    } else {
      this.$checkIco.addStyle('display', 'none');
    }
  },
  get: function () {
    return this.$checkbox.checked;
  }
};
TOCItem.property.disabled = {
  set: function (value) {
    if (value) {
      this.addClass('as-disabled');
    } else {
      this.removeClass('as-disabled');
    }
  },
  get: function () {
    return this.hasClass('as-disabled');
  }
};
TOCItem.property.hasQuickMenu = {
  set: function (value) {
    if (value) {
      this.addClass('as-has-quick-menu');
    } else {
      this.removeClass('as-has-quick-menu');
    }
  },
  get: function () {
    return this.hasClass('as-has-quick-menu');
  }
};
TOCItem.property.extendClasses = {
  set: function (value) {
    value = value || [];
    if (typeof value === 'string') value = value.trim().split(/\s/).filter(x => !!x);

    if (this._extendClasses) {
      this._extendClasses.forEach(c => this.removeClass(c));
    }

    this._extendClasses = value;

    this._extendClasses.forEach(c => this.addClass(c));
  },
  get: function () {
    return this._extendClasses || [];
  }
};

TOCItem.prototype.rename = function () {
  this.addClass('as-renaming');
  var name = this.name;
  var textWidth = (0, _utils.measureText)(name, '14px Arial, Helvetica, sans-serif').width;
  this.$nameInput.addStyle('width', textWidth + 2 + 'px');
  this.$nameInput.value = name;
  this.$nameInput.focus();
  this.$nameInput.select();
  this.$nameInput.once('blur', function (event) {
    var event1;

    if (this.$nameInput.value !== name) {
      event1 = (0, _EventEmitter.copyEvent)(event, {
        originalEvent: event,
        type: 'renamefinish',
        newName: this.$nameInput.value,
        __promise__: Promise.resolve(true),
        waitFor: function (promise) {
          if (promise && promise.then) {
            this.__promise__ = promise;
          } else {
            this.__promise__ = Promise.resolve(promise);
          }
        }
      });
      this.emit('renamefinish', event1, this);

      event1.__promise__.then(function (result) {
        if (result === true) {
          this.name = event1.newName;
        } else if (typeof result === 'string') {
          this.name = result;
        }
      }.bind(this));
    }

    this.removeClass('as-renaming');
  }.bind(this));
};
/***
 * @memberOf TOCItem#
 * @type {{}}
 */


TOCItem.eventHandler = {};

TOCItem.eventHandler.keyDownNameInput = function (event) {
  var extendText = '';

  if (event.type === 'paste') {
    extendText = (event.clipboardData || window.clipboardData).getData('text') || '';
  } else if (event.key.length === 1 && !(event.ctrl && event.key === 'C')) {
    extendText = event.key;
  } else if (event.key === 'Enter') {
    this.$nameInput.blur();
  }

  if (extendText.length > 0) {
    this.$nameInput.addStyle('width', (0, _utils.measureText)(this.$nameInput.value + extendText, '14px Arial, Helvetica, sans-serif').width + 2 + 'px');
  }

  setTimeout(function () {
    var name = this.$nameInput.value;
    this.$nameInput.addStyle('width', (0, _utils.measureText)(name, '14px Arial, Helvetica, sans-serif').width + 2 + 'px');
  }.bind(this), 0);
};

TOCItem.eventHandler.checkedChange = function (event) {
  this.emit('checkedchange', {
    type: 'checkedchange',
    target: this,
    originalEvent: event
  }, this);
};

TOCItem.eventHandler.clickQuickMenuBtn = function (event) {
  this.emit('pressquickmenu', {
    type: 'pressquickmenu',
    originalEvent: event
  }, this);
};

TOCItem.eventHandler.click = function (event) {
  if ((0, _EventEmitter.hitElement)(this.$checkbox, event) || (0, _EventEmitter.hitElement)(this.$quickMenuBtn, event)) return;
  var now = Date.now();

  if ((0, _EventEmitter.hitElement)(this.$toggleCtn, event)) {
    this.emit('presstoggle', {
      originalEvent: event,
      type: 'presstoggle'
    }, this);
  } else {
    if (now - this._lastClickTime > 500) {
      this.emit('press', {
        type: 'press',
        originalEvent: event
      }, this);
    } else if (this.status === "close" || this.status === 'open') {
      this.emit('presstoggle', {
        originalEvent: event,
        type: 'presstoggle'
      }, this);
    }

    this._lastClickTime = now;
  }
};

_ACore.default.install(TOCItem);

var _default = TOCItem;
exports.default = _default;

VaKeR 2022