![]() 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 : |
/*** 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;