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-tutor__js__scriptor__UserFileInputBox.js
/*** module: node_modules/absol-tutor/js/scriptor/UserFileInputBox.js ***/
"use strict";

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

var _OOP = _interopRequireDefault(require("absol/src/HTML5/OOP"));

var _TutorNameManager = _interopRequireDefault(require("./TutorNameManager"));

var _TACData = _interopRequireDefault(require("./TACData"));

var _UserBaseAction = _interopRequireDefault(require("./UserBaseAction"));


/***
 * @extends UserBaseAction
 * @constructor
 */
function UserFileInputBox() {
  _UserBaseAction.default.apply(this, arguments);
}

_OOP.default.mixClass(UserFileInputBox, _UserBaseAction.default);

UserFileInputBox.prototype._verifyInput = function (elt) {
  if (!elt.containsClass || !elt.containsClass('as-file-input-box')) {
    throw new Error('Type error: not a FileInputBox');
  } else if (!elt.allowUpload) {
    throw new Error('Element error: element is not allow upload(allowUpload=false)');
  }
};

UserFileInputBox.prototype._waitFile = function () {
  var self = this;
  var elt = this.elt;
  return new Promise(function (resolve, reject) {
    self.highlightElt(elt);
    self.onlyClickTo(elt);

    if (self.hadWrongAction && self.args.wrongMessage) {
      self.showTooltip(elt, self.args.wrongMessage);
    }

    var timeout = -1;

    function onClick() {
      self.highlightElt(null);
      self.onlyClickTo(null);
      timeout = setTimeout(waitFocus, 500);
    }

    elt.once('click', onClick);

    function waitFocus() {
      if (document.hasFocus()) {
        if (self.elt.value) {
          resolve(true);
        } else {
          resolve(false);
        }
      } else {
        timeout = setTimeout(waitFocus, 500);
      }
    }

    self._rejectCb = function () {
      elt.off('click', onClick);
      reject();
    };
  }).then(function (ok) {
    if (!ok) {
      self.hadWrongAction = true;
      return self._waitFile();
    }

    return true;
  });
};

UserFileInputBox.prototype.requestUserAction = function () {
  this.elt = this.tutor.findNode(this.args.eltPath);
  this.assignTarget(this.elt);

  this._verifyInput(this.elt);

  return this._waitFile();
};

UserFileInputBox.attachEnv = function (tutor, env) {
  env.userFileInputBox = function (eltPath, message, wrongMessage) {
    return new UserFileInputBox(tutor, {
      eltPath: eltPath,
      message: message,
      wrongMessage: wrongMessage
    }).exec();
  };
};

_TutorNameManager.default.addAsync('userFileInputBox');

_TACData.default.define('userFileInputBox', {
  type: 'function',
  args: [{
    name: 'eltPath',
    type: '(string|AElement)'
  }, {
    name: 'message',
    type: 'string'
  }, {
    name: 'wrongMessage',
    type: 'string'
  }]
});

var _default = UserFileInputBox;
exports.default = _default;

VaKeR 2022