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

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

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

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

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

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


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

_OOP.default.mixClass(UserSwitchTabIfNeed, _UserBaseAction.default);
/***
 *
 * @param {HTMLElement} elt
 */


UserSwitchTabIfNeed.prototype.findTabView = function (elt) {
  var tabFrameElt = null;
  var tabViewElt = null;

  while (elt) {
    if (elt.classList.contains('absol-tab-frame')) {
      tabViewElt = null;
      tabFrameElt = elt;
    } else if (elt.classList.contains('absol-tabview')) {
      tabViewElt = elt;
      break;
    }

    elt = elt.parentElement;
  }

  return tabFrameElt && tabViewElt && {
    tabFrameElt: tabFrameElt,
    tabViewElt: tabViewElt
  };
};

UserSwitchTabIfNeed.prototype.exec = function () {
  this.start();
  var thisC = this;
  var elt = this.tutor.findNode(this.args.eltPath);
  var message = this.args.message;
  var wrongMessage = this.args.wrongMessage;
  var tabInfo = this.findTabView(elt);

  if (!tabInfo) {
    this.stop();
    return Promise.resolve();
  }

  var tabViewElt = tabInfo.tabViewElt;
  var tabFrameElt = tabInfo.tabFrameElt;
  var activeTabId = tabViewElt.historyOfTab[tabViewElt.historyOfTab.length - 1];

  if (activeTabId === tabFrameElt.id) {
    return new Promise(function (resolve, reject) {
      if (!thisC.args.notNeedMessage) {
        resolve();
        return;
      }

      thisC.showToast(thisC.args.notNeedMessage);
      var timeoutId = setTimeout(function () {
        timeoutId = -1;
        thisC.stop();
        resolve();
      }, 2000);

      thisC._rejectCb = function () {
        if (timeoutId >= 0) {
          clearTimeout(timeoutId);
          timeoutId = -1;
          reject();
        }
      };
    });
  }

  var tabButton = tabViewElt.$tabbar.getButtonByIdent(tabFrameElt.id);
  tabButton.addClass('atr-tab-button-disabled-close');
  this.highlightElt(tabButton);
  this.showToast(message);
  return new Promise(function (resolve, reject) {
    function onClick() {
      tabButton.removeClass('atr-tab-button-disabled-close');
      tabButton.off('click', onClick);
      resolve();
    }

    thisC._rejectCb = function () {
      tabButton.removeClass('atr-tab-button-disabled-close');
      tabButton.off('click', onClick);
      reject();
    };

    thisC._clickCb = function () {
      if (wrongMessage) thisC.showTooltip(tabButton, wrongMessage);
      thisC.highlightElt(tabButton);
    };

    thisC.onlyClickTo(tabButton);
    tabButton.on('click', onClick);
  }).then(this.stop.bind(this));
};

UserSwitchTabIfNeed.attachEnv = function (tutor, env) {
  env.userSwitchTabIfNeed = function (eltPath, message, wrongMessage, notNeedMessage) {
    return new UserSwitchTabIfNeed(tutor, {
      eltPath: eltPath,
      message: message,
      wrongMessage: wrongMessage,
      notNeedMessage: notNeedMessage
    }).exec();
  };
};

_TutorNameManager.default.addAsync('userSwitchTabIfNeed');

_TACData.default.define('userSwitchTabIfNeed', {
  type: 'function',
  args: [{
    name: 'eltPath',
    type: '(string|AElement)'
  }, {
    name: 'message',
    type: 'string'
  }, {
    name: 'wrongMessage',
    type: 'string'
  }, {
    name: 'notNeedMessage',
    type: 'string'
  }],
  desc: "eltPath: phần tử bất kì trong tab cần bật, nếu đang mở đúng tab hiện tại, sử dụng notNeedMessage, delay 2s và nhảy lệnh " + "tiếp theo, nếu không có tab nào, lệnh không được thực hiện"
});

var _default = UserSwitchTabIfNeed;
exports.default = _default;

VaKeR 2022