403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/pull/queuemanager/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/pull/queuemanager/dist/queuemanager.js
/* eslint-disable */
this.BX = this.BX || {};
(function (exports,main_core_events,ui_notification,main_core) {
	'use strict';

	function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
	function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
	function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
	function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
	var LOAD_ITEMS_DELAY = 5000;
	var MAX_PENDING_ITEMS = 30;
	var _queue = /*#__PURE__*/new WeakMap();
	var _isProgress = /*#__PURE__*/new WeakMap();
	var _isFreeze = /*#__PURE__*/new WeakMap();
	var _loadItemsTimer = /*#__PURE__*/new WeakMap();
	var _callbacks = /*#__PURE__*/new WeakMap();
	var _loadItemsDelay = /*#__PURE__*/new WeakMap();
	var _maxPendingItems = /*#__PURE__*/new WeakMap();
	var _isExecuteInProgress = /*#__PURE__*/new WeakSet();
	var _isInaccessibleQueue = /*#__PURE__*/new WeakSet();
	var _isFrozen = /*#__PURE__*/new WeakSet();
	var Queue = /*#__PURE__*/function () {
	  function Queue(options) {
	    babelHelpers.classCallCheck(this, Queue);
	    _classPrivateMethodInitSpec(this, _isFrozen);
	    _classPrivateMethodInitSpec(this, _isInaccessibleQueue);
	    _classPrivateMethodInitSpec(this, _isExecuteInProgress);
	    _classPrivateFieldInitSpec(this, _queue, {
	      writable: true,
	      value: new Map()
	    });
	    _classPrivateFieldInitSpec(this, _isProgress, {
	      writable: true,
	      value: false
	    });
	    _classPrivateFieldInitSpec(this, _isFreeze, {
	      writable: true,
	      value: false
	    });
	    _classPrivateFieldInitSpec(this, _loadItemsTimer, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec(this, _callbacks, {
	      writable: true,
	      value: void 0
	    });
	    _classPrivateFieldInitSpec(this, _loadItemsDelay, {
	      writable: true,
	      value: LOAD_ITEMS_DELAY
	    });
	    _classPrivateFieldInitSpec(this, _maxPendingItems, {
	      writable: true,
	      value: MAX_PENDING_ITEMS
	    });
	    if (main_core.Type.isPlainObject(options.callbacks)) {
	      babelHelpers.classPrivateFieldSet(this, _callbacks, options.callbacks);
	    }
	    if (main_core.Type.isNumber(options.loadItemsDelay)) {
	      babelHelpers.classPrivateFieldSet(this, _loadItemsDelay, options.loadItemsDelay);
	    }
	    if (main_core.Type.isNumber(options.maxPendingItems)) {
	      babelHelpers.classPrivateFieldSet(this, _maxPendingItems, options.maxPendingItems);
	    }
	  }
	  babelHelpers.createClass(Queue, [{
	    key: "loadItem",
	    value: function loadItem() {
	      var _this = this;
	      var ignoreProgressStatus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
	      var ignoreDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
	      if (babelHelpers.classPrivateFieldGet(this, _loadItemsTimer) && !ignoreDelay) {
	        return;
	      }
	      babelHelpers.classPrivateFieldSet(this, _loadItemsTimer, setTimeout(function () {
	        return _this.loadItemHandler(ignoreProgressStatus);
	      }, ignoreDelay ? 0 : babelHelpers.classPrivateFieldGet(this, _loadItemsDelay)));
	    }
	  }, {
	    key: "loadItemHandler",
	    value: function loadItemHandler() {
	      var _this2 = this;
	      var ignoreProgressStatus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
	      if (_classPrivateMethodGet(this, _isExecuteInProgress, _isExecuteInProgress2).call(this, ignoreProgressStatus) || _classPrivateMethodGet(this, _isInaccessibleQueue, _isInaccessibleQueue2).call(this)) {
	        babelHelpers.classPrivateFieldSet(this, _loadItemsTimer, null);
	        return;
	      }
	      var items = this.getAllAsArray();
	      babelHelpers.classPrivateFieldGet(this, _queue).clear();
	      if (!main_core.Type.isArrayFilled(items)) {
	        return;
	      }
	      var promise = null;
	      var _babelHelpers$classPr = babelHelpers.classPrivateFieldGet(this, _callbacks),
	        onBeforeExecute = _babelHelpers$classPr.onBeforeExecute;
	      if (main_core.Type.isFunction(onBeforeExecute)) {
	        // eslint-disable-next-line no-promise-executor-return
	        promise = new Promise(function (resolve) {
	          return onBeforeExecute(items).then(resolve);
	        });
	      } else {
	        promise = Promise.resolve();
	      }

	      // eslint-disable-next-line promise/catch-or-return
	      promise.then(function () {
	        return _this2.process(items);
	      });
	    }
	  }, {
	    key: "process",
	    value: function process(items) {
	      babelHelpers.classPrivateFieldSet(this, _isProgress, true);
	      var _babelHelpers$classPr2 = babelHelpers.classPrivateFieldGet(this, _callbacks),
	        onExecute = _babelHelpers$classPr2.onExecute;
	      if (main_core.Type.isFunction(onExecute)) {
	        onExecute(items).then(this.loadNextOnSuccess.bind(this), this.doNothingOnError.bind(this))["catch"](function () {
	          return console.error('error');
	        });
	      } else {
	        this.loadNextOnSuccess();
	      }
	    }
	  }, {
	    key: "loadNextOnSuccess",
	    value: function loadNextOnSuccess() {
	      babelHelpers.classPrivateFieldSet(this, _loadItemsTimer, null);
	      if (!this.isEmpty()) {
	        this.loadItem(true);
	      }
	      babelHelpers.classPrivateFieldSet(this, _isProgress, false);
	    }
	  }, {
	    key: "doNothingOnError",
	    value: function doNothingOnError() {
	      babelHelpers.classPrivateFieldSet(this, _loadItemsTimer, null);
	    }
	  }, {
	    key: "push",
	    value: function push(id, item) {
	      if (this.has(id)) {
	        this["delete"](id);
	      }
	      babelHelpers.classPrivateFieldGet(this, _queue).set(id, item);
	      return this;
	    }
	  }, {
	    key: "getAllAsArray",
	    value: function getAllAsArray() {
	      return Array.from(babelHelpers.classPrivateFieldGet(this, _queue), function (_ref) {
	        var _ref2 = babelHelpers.slicedToArray(_ref, 2),
	          id = _ref2[0],
	          data = _ref2[1];
	        return {
	          id: id,
	          data: data
	        };
	      });
	    }
	  }, {
	    key: "delete",
	    value: function _delete(id) {
	      babelHelpers.classPrivateFieldGet(this, _queue)["delete"](id);
	    }
	  }, {
	    key: "has",
	    value: function has(id) {
	      return babelHelpers.classPrivateFieldGet(this, _queue).has(id);
	    }
	  }, {
	    key: "clear",
	    value: function clear() {
	      babelHelpers.classPrivateFieldGet(this, _queue).clear();
	    }
	  }, {
	    key: "isOverflow",
	    value: function isOverflow() {
	      return babelHelpers.classPrivateFieldGet(this, _queue).size > babelHelpers.classPrivateFieldGet(this, _maxPendingItems);
	    }
	  }, {
	    key: "isEmpty",
	    value: function isEmpty() {
	      return babelHelpers.classPrivateFieldGet(this, _queue).size === 0;
	    }
	  }, {
	    key: "freeze",
	    value: function freeze() {
	      babelHelpers.classPrivateFieldSet(this, _isFreeze, true);
	    }
	  }, {
	    key: "unfreeze",
	    value: function unfreeze() {
	      babelHelpers.classPrivateFieldSet(this, _isFreeze, false);
	    }
	  }, {
	    key: "getLoadItemsDelay",
	    value: function getLoadItemsDelay() {
	      return babelHelpers.classPrivateFieldGet(this, _loadItemsDelay);
	    }
	  }]);
	  return Queue;
	}();
	function _isExecuteInProgress2(ignoreProgressStatus) {
	  return babelHelpers.classPrivateFieldGet(this, _isProgress) && !ignoreProgressStatus;
	}
	function _isInaccessibleQueue2() {
	  return document.hidden || this.isOverflow() || _classPrivateMethodGet(this, _isFrozen, _isFrozen2).call(this);
	}
	function _isFrozen2() {
	  return babelHelpers.classPrivateFieldGet(this, _isFreeze);
	}

	function _classPrivateMethodInitSpec$1(obj, privateSet) { _checkPrivateRedeclaration$1(obj, privateSet); privateSet.add(obj); }
	function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }
	function _checkPrivateRedeclaration$1(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
	function _classPrivateMethodGet$1(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
	var _options = /*#__PURE__*/new WeakMap();
	var _queue$1 = /*#__PURE__*/new WeakMap();
	var _notifier = /*#__PURE__*/new WeakMap();
	var _openedSlidersCount = /*#__PURE__*/new WeakMap();
	var _hasManyOpenSliders = /*#__PURE__*/new WeakSet();
	var _getSliderInstance = /*#__PURE__*/new WeakSet();
	var _createAndShowNotify = /*#__PURE__*/new WeakSet();
	var QueueManager = /*#__PURE__*/function () {
	  babelHelpers.createClass(QueueManager, null, [{
	    key: "registerRandomEventId",
	    value: function registerRandomEventId() {
	      var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
	      var eventId = main_core.Text.getRandom(12);
	      if (main_core.Type.isStringFilled(prefix)) {
	        eventId = "".concat(prefix, "-").concat(eventId);
	      }
	      this.registerEventId(eventId);
	      return eventId;
	    }
	  }, {
	    key: "registerEventId",
	    value: function registerEventId(eventId) {
	      this.eventIds.add(eventId);
	    }
	  }]);
	  function QueueManager(options) {
	    var _this = this;
	    babelHelpers.classCallCheck(this, QueueManager);
	    _classPrivateMethodInitSpec$1(this, _createAndShowNotify);
	    _classPrivateMethodInitSpec$1(this, _getSliderInstance);
	    _classPrivateMethodInitSpec$1(this, _hasManyOpenSliders);
	    _classPrivateFieldInitSpec$1(this, _options, {
	      writable: true,
	      value: void 0
	    });
	    _classPrivateFieldInitSpec$1(this, _queue$1, {
	      writable: true,
	      value: void 0
	    });
	    _classPrivateFieldInitSpec$1(this, _notifier, {
	      writable: true,
	      value: void 0
	    });
	    _classPrivateFieldInitSpec$1(this, _openedSlidersCount, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldSet(this, _options, options);
	    var config = options.config,
	      callbacks = options.callbacks;
	    babelHelpers.classPrivateFieldSet(this, _queue$1, new Queue({
	      loadItemsDelay: config === null || config === void 0 ? void 0 : config.loadItemsDelay,
	      maxPendingItems: config === null || config === void 0 ? void 0 : config.maxPendingItems,
	      callbacks: {
	        onBeforeExecute: callbacks.onBeforeQueueExecute,
	        onExecute: callbacks.onQueueExecute
	      }
	    }));
	    babelHelpers.classPrivateFieldSet(this, _openedSlidersCount, 0);
	    this.initEventEmitter();
	    var moduleId = options.moduleId,
	      userId = options.userId;
	    if (main_core.Type.isStringFilled(moduleId) && userId > 0) {
	      main_core.Event.ready(function () {
	        return _this.init();
	      });
	    }
	  }
	  babelHelpers.createClass(QueueManager, [{
	    key: "initEventEmitter",
	    value: function initEventEmitter() {
	      this.eventEmitter = new main_core_events.EventEmitter();
	      this.eventEmitter.setEventNamespace('BX.Pull.QueueManager');
	    }
	  }, {
	    key: "init",
	    value: function init() {
	      if (!BX.PULL) {
	        console.error('BX.PULL is not initialized');
	        return;
	      }
	      this.subscribe();
	      this.bindEvents();
	    }
	  }, {
	    key: "subscribe",
	    value: function subscribe() {
	      var _this2 = this;
	      var _babelHelpers$classPr = babelHelpers.classPrivateFieldGet(this, _options),
	        moduleId = _babelHelpers$classPr.moduleId,
	        pullTag = _babelHelpers$classPr.pullTag;
	      BX.PULL.subscribe({
	        moduleId: moduleId,
	        callback: function callback(data) {
	          return _this2.onPullSubscribeCallback(data);
	        }
	      });
	      if (main_core.Type.isStringFilled(pullTag)) {
	        BX.PULL.extendWatch(pullTag);
	      }
	    }
	  }, {
	    key: "bindEvents",
	    value: function bindEvents() {
	      var _this3 = this;
	      if (main_core.Type.isPlainObject(babelHelpers.classPrivateFieldGet(this, _options).events)) {
	        var _loop = function _loop() {
	          var _Object$entries$_i = babelHelpers.slicedToArray(_Object$entries[_i], 2),
	            eventName = _Object$entries$_i[0],
	            callback = _Object$entries$_i[1];
	          if (main_core.Type.isFunction(callback)) {
	            _this3.eventEmitter.subscribe(eventName, function (event) {
	              return callback(event);
	            });
	          }
	        };
	        for (var _i = 0, _Object$entries = Object.entries(babelHelpers.classPrivateFieldGet(this, _options).events); _i < _Object$entries.length; _i++) {
	          _loop();
	        }
	      }
	      main_core.Event.bind(document, 'visibilitychange', function () {
	        return _this3.onDocumentVisibilityChange();
	      });
	      main_core_events.EventEmitter.subscribe('SidePanel.Slider:onOpen', function () {
	        var _this$openedSlidersCo, _this$openedSlidersCo2;
	        babelHelpers.classPrivateFieldSet(_this3, _openedSlidersCount, (_this$openedSlidersCo = babelHelpers.classPrivateFieldGet(_this3, _openedSlidersCount), _this$openedSlidersCo2 = _this$openedSlidersCo++, _this$openedSlidersCo)), _this$openedSlidersCo2;
	        babelHelpers.classPrivateFieldGet(_this3, _queue$1).freeze();
	      });
	      main_core_events.EventEmitter.subscribe('SidePanel.Slider:onClose', function () {
	        var _this$openedSlidersCo3, _this$openedSlidersCo4;
	        babelHelpers.classPrivateFieldSet(_this3, _openedSlidersCount, (_this$openedSlidersCo3 = babelHelpers.classPrivateFieldGet(_this3, _openedSlidersCount), _this$openedSlidersCo4 = _this$openedSlidersCo3--, _this$openedSlidersCo3)), _this$openedSlidersCo4;
	        if (babelHelpers.classPrivateFieldGet(_this3, _openedSlidersCount) <= 0) {
	          babelHelpers.classPrivateFieldSet(_this3, _openedSlidersCount, 0);
	          babelHelpers.classPrivateFieldGet(_this3, _queue$1).unfreeze();
	          _this3.onTabActivated();
	        }
	      });
	    }
	  }, {
	    key: "onDocumentVisibilityChange",
	    value: function onDocumentVisibilityChange() {
	      if (!document.hidden) {
	        this.onTabActivated();
	      }
	    }
	  }, {
	    key: "onPullSubscribeCallback",
	    value: function onPullSubscribeCallback(pullData) {
	      var _this4 = this;
	      var _babelHelpers$classPr2 = babelHelpers.classPrivateFieldGet(this, _options),
	        pullTag = _babelHelpers$classPr2.pullTag;
	      var _babelHelpers$classPr3 = babelHelpers.classPrivateFieldGet(this, _options),
	        additionalPullTags = _babelHelpers$classPr3.additionalPullTags;
	      if (!main_core.Type.isArray(additionalPullTags)) {
	        additionalPullTags = [];
	      }
	      if (main_core.Type.isStringFilled(pullTag) && pullData.command !== pullTag && !additionalPullTags.includes(pullTag)) {
	        return;
	      }
	      var event = new main_core_events.BaseEvent({
	        data: {
	          pullData: pullData,
	          queueItems: babelHelpers.classPrivateFieldGet(this, _queue$1).getAllAsArray(),
	          options: babelHelpers.classPrivateFieldGet(this, _options),
	          promises: []
	        }
	      });
	      this.eventEmitter.emit('onBeforePull', event);
	      if (event.isDefaultPrevented()) {
	        return;
	      }
	      var params = pullData.params;
	      if (!main_core.Type.isStringFilled(params.eventName)) {
	        return;
	      }
	      if (QueueManager.eventIds.has(params.eventId)) {
	        return;
	      }
	      if (babelHelpers.classPrivateFieldGet(this, _queue$1).isOverflow()) {
	        return;
	      }
	      this.eventEmitter.emit('onPull', event);
	      if (event.isDefaultPrevented()) {
	        return;
	      }
	      void Promise.all(event.data.promises).then(function (values) {
	        if (!main_core.Type.isArrayFilled(values)) {
	          return;
	        }
	        values.forEach(function (item) {
	          var data = item.data;
	          babelHelpers.classPrivateFieldGet(_this4, _queue$1).push("".concat(data.id, "_").concat(params.eventName), data);
	        });
	        babelHelpers.classPrivateFieldGet(_this4, _queue$1).loadItem(false, params.ignoreDelay || false);
	      });
	    }
	  }, {
	    key: "showOutdatedDataDialog",
	    value: function showOutdatedDataDialog() {
	      if (_classPrivateMethodGet$1(this, _hasManyOpenSliders, _hasManyOpenSliders2).call(this)) {
	        return;
	      }
	      var sliderInstance = _classPrivateMethodGet$1(this, _getSliderInstance, _getSliderInstance2).call(this);
	      if (sliderInstance) {
	        main_core_events.EventEmitter.subscribe(sliderInstance, 'SidePanel.Slider:onClose', _classPrivateMethodGet$1(this, _createAndShowNotify, _createAndShowNotify2).bind(this));
	      } else {
	        _classPrivateMethodGet$1(this, _createAndShowNotify, _createAndShowNotify2).call(this);
	      }
	    }
	  }, {
	    key: "onTabActivated",
	    value: function onTabActivated() {
	      if (babelHelpers.classPrivateFieldGet(this, _queue$1).isOverflow()) {
	        this.showOutdatedDataDialog();
	        return;
	      }
	      if (!babelHelpers.classPrivateFieldGet(this, _queue$1).isEmpty()) {
	        babelHelpers.classPrivateFieldGet(this, _queue$1).loadItem();
	      }
	    }
	  }, {
	    key: "hasInQueue",
	    value: function hasInQueue(id) {
	      return babelHelpers.classPrivateFieldGet(this, _queue$1).has(id);
	    }
	  }, {
	    key: "deleteFromQueue",
	    value: function deleteFromQueue(id) {
	      babelHelpers.classPrivateFieldGet(this, _queue$1)["delete"](id);
	    }
	  }, {
	    key: "getLoadItemsDelay",
	    value: function getLoadItemsDelay() {
	      return babelHelpers.classPrivateFieldGet(this, _queue$1).getLoadItemsDelay();
	    }
	  }]);
	  return QueueManager;
	}();
	function _hasManyOpenSliders2() {
	  return top.BX && top.BX.SidePanel && top.BX.SidePanel.Instance.getOpenSlidersCount() > 1;
	}
	function _getSliderInstance2() {
	  if (top.BX && top.BX.SidePanel) {
	    var slider = top.BX.SidePanel.Instance.getTopSlider();
	    if (slider && slider.isOpen()) {
	      return slider;
	    }
	  }
	  return null;
	}
	function _createAndShowNotify2() {
	  var _babelHelpers$classPr4,
	    _this5 = this;
	  var showOutdatedDataDialog = (_babelHelpers$classPr4 = babelHelpers.classPrivateFieldGet(this, _options).config) === null || _babelHelpers$classPr4 === void 0 ? void 0 : _babelHelpers$classPr4.showOutdatedDataDialog;
	  var onReload = babelHelpers.classPrivateFieldGet(this, _options).callbacks.onReload;
	  if (main_core.Type.isBoolean(showOutdatedDataDialog) && showOutdatedDataDialog === false || !main_core.Type.isFunction(onReload)) {
	    return;
	  }
	  if (babelHelpers.classPrivateFieldGet(this, _notifier)) {
	    if (babelHelpers.classPrivateFieldGet(this, _notifier).getState() === BX.UI.Notification.State.OPENING || babelHelpers.classPrivateFieldGet(this, _notifier).getState() === BX.UI.Notification.State.OPEN) {
	      return;
	    }
	    babelHelpers.classPrivateFieldGet(this, _notifier).show();
	    return;
	  }
	  babelHelpers.classPrivateFieldSet(this, _notifier, ui_notification.UI.Notification.Center.notify({
	    content: main_core.Loc.getMessage('PULL_QUEUEMANAGER_NOTIFY_OUTDATED_DATA'),
	    closeButton: false,
	    autoHide: false,
	    actions: [{
	      title: main_core.Loc.getMessage('PULL_QUEUEMANAGER_RELOAD'),
	      events: {
	        click: function click(event, balloon) {
	          balloon.close();
	          onReload();
	          babelHelpers.classPrivateFieldGet(_this5, _queue$1).clear();
	        }
	      }
	    }]
	  }));
	}
	babelHelpers.defineProperty(QueueManager, "eventIds", new Set());

	exports.QueueManager = QueueManager;

}((this.BX.Pull = this.BX.Pull || {}),BX.Event,BX,BX));
//# sourceMappingURL=queuemanager.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit