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/catalog/config/settings/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/catalog/config/settings/dist/settings.bundle.js
/* eslint-disable */
this.BX = this.BX || {};
this.BX.Catalog = this.BX.Catalog || {};
(function (exports,ui_progressbar,ui_notification,catalog_externalCatalogPlacement,catalog_toolAvailabilityManager,ui_label,main_popup,ui_buttons,ui_alerts,ui_formElements_field,ui_formElements_view,ui_section,ui_iconSet_crm,ui_iconSet_editor,catalog_storeEnableWizard,main_core,main_core_events) {
	'use strict';

	class ProductSettingsUpdater {
	  constructor(params) {
	    this.url = '/bitrix/tools/catalog/product_settings.php';
	    this.stepOptions = {
	      ajaxSessionID: '',
	      maxExecutionTime: 30,
	      maxOperationCounter: 10
	    };
	    this.finish = false;
	    this.currentState = {
	      counter: 0,
	      operationCounter: 0,
	      errorCounter: 0,
	      lastID: 0
	    };
	    this.ajaxParams = {
	      operation: 'Y'
	    };
	    this.iblocks = [];
	    this.iblockIndex = -1;
	    this.stepOptions.ajaxSessionID = 'productSettings';
	    this.currentState.counter = 0;
	    this.events = params.events;
	    this.settings = params.settings;
	  }
	  nextStep() {
	    for (let key in this.stepOptions) {
	      if (this.stepOptions.hasOwnProperty(key)) {
	        this.ajaxParams[key] = this.stepOptions[key];
	      }
	    }
	    for (let key in this.currentState) {
	      if (this.currentState.hasOwnProperty(key)) {
	        this.ajaxParams[key] = this.currentState[key];
	      }
	    }
	    this.ajaxParams.sessid = BX.bitrix_sessid();
	    this.ajaxParams.lang = BX.message('LANGUAGE_ID');
	    BX.ajax.loadJSON(this.url, this.ajaxParams, BX.proxy(this.nextStepResult, this));
	  }
	  nextStepResult(result) {
	    if (BX.type.isPlainObject(result)) {
	      this.currentState.lastID = result.lastID;
	      this.stepOptions.maxOperationCounter = result.maxOperationCounter;
	      this.currentState.operationCounter = parseInt(result.operationCounter, 10);
	      if (isNaN(this.currentState.operationCounter)) {
	        this.currentState.operationCounter = 0;
	      }
	      this.currentState.errorCounter = parseInt(result.errorCounter, 10);
	      if (isNaN(this.currentState.errorCounter)) {
	        this.currentState.errorCounter = 0;
	      }
	      if (this.events.onProgress) {
	        this.events.onProgress({
	          allCnt: result.allCounter,
	          doneCnt: result.allOperationCounter,
	          currentIblockName: this.iblocks[this.iblockIndex].NAME
	        });
	      }
	      if (this.finish) {
	        this.finishOperation();
	      } else {
	        this.checkOperation(result.finishOperation);
	      }
	    }
	  }
	  finishOperation() {
	    this.currentState.operationCounter = 0;
	    this.currentState.errorCounter = 0;
	    this.currentState.lastID = 0;
	    this.finish = false;
	    if (this.events.onComplete) {
	      this.events.onComplete();
	    }
	  }
	  startOperation() {
	    BX.ajax.loadJSON(this.url, {
	      sessid: BX.bitrix_sessid(),
	      changeSettings: 'Y',
	      ...this.settings
	    }, BX.proxy(this.changeSettingsResult, this));
	  }
	  changeSettingsResult(result) {
	    if (!BX.type.isPlainObject(result)) {
	      return;
	    }
	    if (result.success === 'Y') {
	      this.loadIblockList();
	    } else {
	      this.stopOperation();
	    }
	  }
	  stopOperation() {
	    this.finish = true;
	  }
	  checkIblockIndex() {
	    return !(this.iblocks.length === 0 || this.iblockIndex < 0 || this.iblockIndex >= this.iblocks.length);
	  }
	  loadIblockList() {
	    BX.ajax.loadJSON(this.url, {
	      sessid: BX.bitrix_sessid(),
	      getIblock: 'Y'
	    }, result => {
	      if (BX.type.isArray(result)) {
	        this.iblocks = result;
	        if (this.iblocks.length > 0) {
	          this.iblockIndex = 0;
	          this.iblockReindex();
	        } else {
	          this.stopOperation();
	        }
	      }
	    });
	  }
	  iblockReindex() {
	    if (this.finish || !this.checkIblockIndex()) {
	      return;
	    }
	    this.initStep();
	    this.nextStep();
	  }
	  initStep() {
	    this.currentState.iblockId = this.iblocks[this.iblockIndex].ID;
	    this.currentState.counter = this.iblocks[this.iblockIndex].COUNT;
	    this.currentState.operationCounter = 0;
	    this.currentState.errorCounter = 0;
	    this.currentState.lastID = 0;
	  }
	  checkOperation(result) {
	    if (!!result) {
	      this.iblockIndex++;
	      if (this.iblockIndex >= this.iblocks.length || this.currentState.errorCounter > 0) {
	        this.finishOperation();
	        if (this.currentState.errorCounter == 0) {
	          this.finalRequest();
	        }
	      } else {
	        this.initStep();
	        this.nextStep();
	      }
	    } else {
	      this.nextStep();
	    }
	  }
	  finalRequest() {
	    let iblockList = [];
	    if (this.iblocks.length > 0) {
	      for (let i = 0; i < this.iblocks.length; i++) {
	        iblockList[iblockList.length] = this.iblocks[i].ID;
	      }
	      BX.ajax.get(this.url, {
	        sessid: BX.bitrix_sessid(),
	        finalRequest: 'Y',
	        iblockList
	      });
	    }
	  }
	}

	let _ = t => t,
	  _t,
	  _t2,
	  _t3,
	  _t4;
	var _settings = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("settings");
	var _currentIblockName = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("currentIblockName");
	var _allCount = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("allCount");
	var _doneCount = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("doneCount");
	var _onComplete = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("onComplete");
	var _elements = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("elements");
	var _getProgressWidth = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getProgressWidth");
	var _redraw = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("redraw");
	class ProductUpdater {
	  constructor(props) {
	    Object.defineProperty(this, _redraw, {
	      value: _redraw2
	    });
	    Object.defineProperty(this, _getProgressWidth, {
	      value: _getProgressWidth2
	    });
	    Object.defineProperty(this, _settings, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _currentIblockName, {
	      writable: true,
	      value: null
	    });
	    Object.defineProperty(this, _allCount, {
	      writable: true,
	      value: 0
	    });
	    Object.defineProperty(this, _doneCount, {
	      writable: true,
	      value: 0
	    });
	    Object.defineProperty(this, _onComplete, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _elements, {
	      writable: true,
	      value: {}
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _settings)[_settings] = props.settings;
	    babelHelpers.classPrivateFieldLooseBase(this, _onComplete)[_onComplete] = props.onComplete;
	    new ProductSettingsUpdater({
	      settings: babelHelpers.classPrivateFieldLooseBase(this, _settings)[_settings],
	      events: {
	        onProgress: data => {
	          babelHelpers.classPrivateFieldLooseBase(this, _currentIblockName)[_currentIblockName] = data.currentIblockName;
	          babelHelpers.classPrivateFieldLooseBase(this, _allCount)[_allCount] = data.allCnt;
	          babelHelpers.classPrivateFieldLooseBase(this, _doneCount)[_doneCount] = data.doneCnt;
	          babelHelpers.classPrivateFieldLooseBase(this, _redraw)[_redraw]();
	        },
	        onComplete: () => {
	          babelHelpers.classPrivateFieldLooseBase(this, _onComplete)[_onComplete]();
	        }
	      }
	    }).startOperation();
	  }
	  render() {
	    const processedText = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_OUT_OF').replace('#PROCESSED#', babelHelpers.classPrivateFieldLooseBase(this, _doneCount)[_doneCount]).replace('#TOTAL#', babelHelpers.classPrivateFieldLooseBase(this, _allCount)[_allCount]);
	    babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].text = main_core.Tag.render(_t || (_t = _`
			<div class="ui-progressbar-text-after">
				${0}
			</div>
		`), processedText);
	    babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].currentIblock = main_core.Tag.render(_t2 || (_t2 = _`
			<div style="padding-top: 10px;">
			</div>
		`));
	    babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].progressBar = main_core.Tag.render(_t3 || (_t3 = _`
			<div class="ui-progressbar-bar"></div>
		`));
	    main_core.Dom.style(babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].progressBar, 'width', babelHelpers.classPrivateFieldLooseBase(this, _getProgressWidth)[_getProgressWidth]());
	    return main_core.Tag.render(_t4 || (_t4 = _`
			<div>
				<div class="ui-progressbar ui-progressbar-column">
					<div style="font-weight: bold;" class="ui-progressbar-text-before">
						${0}
					</div>
					<div class="ui-progressbar-track">
						${0}
					</div>
					${0}
				</div>
				<div style="color: rgb(83, 92, 105); font-size: 12px;">
					${0}
					${0}
				</div>
			</div>
		`), main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_SETTINGS_UPDATE_TITLE'), babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].progressBar, babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].text, main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_SETTINGS_UPDATE_WAIT'), babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].currentIblock);
	  }
	}
	function _getProgressWidth2() {
	  let width = 0;
	  if (babelHelpers.classPrivateFieldLooseBase(this, _allCount)[_allCount] > 0) {
	    width = Math.round(babelHelpers.classPrivateFieldLooseBase(this, _doneCount)[_doneCount] / babelHelpers.classPrivateFieldLooseBase(this, _allCount)[_allCount] * 100);
	  }
	  return `${width}%`;
	}
	function _redraw2() {
	  babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].text.innerHTML = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_OUT_OF').replace('#PROCESSED#', babelHelpers.classPrivateFieldLooseBase(this, _doneCount)[_doneCount]).replace('#TOTAL#', babelHelpers.classPrivateFieldLooseBase(this, _allCount)[_allCount]);
	  babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].currentIblock.innerHTML = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_SETTINGS_CURRENT_CATALOG').replace('#CATALOG_NAME#', babelHelpers.classPrivateFieldLooseBase(this, _currentIblockName)[_currentIblockName]);
	  main_core.Dom.style(babelHelpers.classPrivateFieldLooseBase(this, _elements)[_elements].progressBar, 'width', babelHelpers.classPrivateFieldLooseBase(this, _getProgressWidth)[_getProgressWidth]());
	}

	var _parentPage = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("parentPage");
	var _costPriceCalculationParams = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("costPriceCalculationParams");
	class CostPriceCalculation {
	  constructor(params) {
	    Object.defineProperty(this, _parentPage, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _costPriceCalculationParams, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _costPriceCalculationParams)[_costPriceCalculationParams] = params.costPriceCalculationParams;
	    babelHelpers.classPrivateFieldLooseBase(this, _parentPage)[_parentPage] = params.parentPage;
	  }
	  buildSection() {
	    const section = new ui_section.Section({
	      title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_COST_PRICE_CALCULATION_SECTION_TITLE'),
	      titleIconClasses: 'ui-icon-set --numbered-list',
	      isOpen: true
	    });
	    const costPriceCalculationSection = new ui_formElements_field.SettingsSection({
	      parent: babelHelpers.classPrivateFieldLooseBase(this, _parentPage)[_parentPage],
	      section
	    });
	    section.append(new ui_section.Row({
	      content: new ui_alerts.Alert({
	        text: `
							${main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_COST_PRICE_CALCULATION_SECTION_HINT')}
							<a class="ui-section__link" onclick="top.BX.Helper.show('redirect=detail&code=17858278')">
								${main_core.Loc.getMessage('INTRANET_SETTINGS_CANCEL_MORE')}
							</a>
						`,
	        inline: true,
	        size: ui_alerts.AlertSize.SMALL,
	        color: ui_alerts.AlertColor.PRIMARY
	      }).getContainer()
	    }).render());
	    const selector = new ui_formElements_view.Selector({
	      label: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_COST_PRICE_CALCULATION_METHOD'),
	      name: 'costPriceCalculationMethod',
	      items: babelHelpers.classPrivateFieldLooseBase(this, _costPriceCalculationParams)[_costPriceCalculationParams].items,
	      hints: babelHelpers.classPrivateFieldLooseBase(this, _costPriceCalculationParams)[_costPriceCalculationParams].hints,
	      isFieldDisabled: true
	    });
	    selector.getInputNode().setAttribute('required', 'required');
	    main_core.Event.bind(selector.getInputNode(), 'change', () => {
	      const alert = new ui_alerts.Alert({
	        text: `
					${main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_COST_PRICE_CALCULATION_SECTION_WARNING')}
					<a class="ui-section__link" onclick="top.BX.Helper.show('redirect=detail&code=17858278')">
						${main_core.Loc.getMessage('INTRANET_SETTINGS_CANCEL_MORE')}
					</a>
				`,
	        inline: true,
	        size: ui_alerts.AlertSize.SMALL,
	        color: ui_alerts.AlertColor.WARNING
	      }).getContainer();
	      const row = new ui_section.Row({
	        content: alert
	      }).render();
	      section.prepend(row);
	    });
	    new ui_formElements_field.SettingsRow({
	      parent: costPriceCalculationSection,
	      child: new ui_formElements_field.SettingsField({
	        fieldView: selector
	      })
	    });
	    return costPriceCalculationSection;
	  }
	}

	let _$1 = t => t,
	  _t$1,
	  _t2$1;
	var _isInventoryManagementEnabled = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isInventoryManagementEnabled");
	var _is1cRestricted = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("is1cRestricted");
	var _currentMode = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("currentMode");
	var _onecStatusUrl = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("onecStatusUrl");
	var _rootElement = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("rootElement");
	var _refreshAppLink = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("refreshAppLink");
	var _refreshStatus = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("refreshStatus");
	var _render = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("render");
	var _getSettingsLinkElement = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getSettingsLinkElement");
	class ModeStatus {
	  constructor(params) {
	    Object.defineProperty(this, _getSettingsLinkElement, {
	      value: _getSettingsLinkElement2
	    });
	    Object.defineProperty(this, _render, {
	      value: _render2
	    });
	    Object.defineProperty(this, _refreshStatus, {
	      value: _refreshStatus2
	    });
	    Object.defineProperty(this, _refreshAppLink, {
	      value: _refreshAppLink2
	    });
	    Object.defineProperty(this, _isInventoryManagementEnabled, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _is1cRestricted, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _currentMode, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _onecStatusUrl, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _rootElement, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _isInventoryManagementEnabled)[_isInventoryManagementEnabled] = params.isInventoryManagementEnabled;
	    babelHelpers.classPrivateFieldLooseBase(this, _is1cRestricted)[_is1cRestricted] = params.is1cRestricted;
	    babelHelpers.classPrivateFieldLooseBase(this, _currentMode)[_currentMode] = params.currentMode;
	    babelHelpers.classPrivateFieldLooseBase(this, _onecStatusUrl)[_onecStatusUrl] = params.onecStatusUrl;
	    babelHelpers.classPrivateFieldLooseBase(this, _rootElement)[_rootElement] = main_core.Tag.render(_t$1 || (_t$1 = _$1`
			<div id="inventoryManagementStatus">
			</div>
		`));
	  }
	  initialize() {
	    let statusText = '';
	    let statusColor = '';
	    let labelStatus = '';
	    if (babelHelpers.classPrivateFieldLooseBase(this, _currentMode)[_currentMode] === catalog_storeEnableWizard.ModeList.MODE_1C) {
	      if (babelHelpers.classPrivateFieldLooseBase(this, _isInventoryManagementEnabled)[_isInventoryManagementEnabled]) {
	        statusText = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_STATUS_CHECKING');
	        statusColor = ui_label.LabelColor.LIGHT;
	        labelStatus = 'loading';
	        catalog_externalCatalogPlacement.ExternalCatalogPlacement.create().initialize().then(() => {
	          this.update({
	            text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_STATUS_CONNECTED'),
	            color: ui_label.LabelColor.LIGHT_GREEN
	          });
	        }).catch(() => {
	          this.update({
	            text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_STATUS_1C_NOT_CONNECTED'),
	            color: ui_label.LabelColor.LIGHT_RED
	          });
	        });
	      } else {
	        statusText = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_STATUS_1C_NOT_CONNECTED');
	        statusColor = ui_label.LabelColor.LIGHT;
	      }
	    }
	    const label = new ui_label.Label({
	      text: statusText,
	      color: statusColor,
	      size: ui_label.LabelSize.LG,
	      fill: true,
	      status: labelStatus
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _render)[_render](label);
	    return babelHelpers.classPrivateFieldLooseBase(this, _rootElement)[_rootElement];
	  }
	  update({
	    text,
	    color
	  }) {
	    if (!babelHelpers.classPrivateFieldLooseBase(this, _rootElement)[_rootElement]) {
	      return;
	    }
	    const label = new ui_label.Label({
	      text,
	      color,
	      size: ui_label.LabelSize.LG,
	      fill: true
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _render)[_render](label);
	  }
	}
	function _refreshAppLink2() {
	  main_core.ajax.runComponentAction('bitrix:catalog.config.settings', 'refreshAppLink', {
	    mode: 'class'
	  }).then(response => {
	    if (!response.data) {
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _onecStatusUrl)[_onecStatusUrl] = response.data;
	  });
	}
	function _refreshStatus2() {
	  catalog_externalCatalogPlacement.ExternalCatalogPlacement.create().reset();
	}
	function _render2(label) {
	  const settingsLinkElement = babelHelpers.classPrivateFieldLooseBase(this, _getSettingsLinkElement)[_getSettingsLinkElement]();
	  const labelElement = label.render();
	  let clickHandler = () => {};
	  if (babelHelpers.classPrivateFieldLooseBase(this, _is1cRestricted)[_is1cRestricted]) {
	    clickHandler = event => {
	      event.preventDefault();
	      catalog_toolAvailabilityManager.OneCPlanRestrictionSlider.show();
	    };
	  } else if (babelHelpers.classPrivateFieldLooseBase(this, _onecStatusUrl)[_onecStatusUrl].type === 'app') {
	    clickHandler = event => {
	      event.preventDefault();
	      top.BX.rest.AppLayout.openApplication(babelHelpers.classPrivateFieldLooseBase(this, _onecStatusUrl)[_onecStatusUrl].value, {
	        source: 'inventory-management'
	      }, false, () => {
	        babelHelpers.classPrivateFieldLooseBase(this, _refreshStatus)[_refreshStatus]();
	        this.initialize();
	      });
	    };
	  } else {
	    clickHandler = event => {
	      event.preventDefault();
	      BX.SidePanel.Instance.open(babelHelpers.classPrivateFieldLooseBase(this, _onecStatusUrl)[_onecStatusUrl].value, {
	        customLeftBoundary: 0,
	        cacheable: false,
	        loader: 'market:detail',
	        width: 1162,
	        events: {
	          onClose: () => {
	            babelHelpers.classPrivateFieldLooseBase(this, _refreshAppLink)[_refreshAppLink]();
	            babelHelpers.classPrivateFieldLooseBase(this, _refreshStatus)[_refreshStatus]();
	            this.initialize();
	          }
	        }
	      });
	    };
	  }
	  main_core.Event.bind(settingsLinkElement, 'click', clickHandler);
	  main_core.Dom.clean(babelHelpers.classPrivateFieldLooseBase(this, _rootElement)[_rootElement]);
	  main_core.Dom.append(labelElement, babelHelpers.classPrivateFieldLooseBase(this, _rootElement)[_rootElement]);
	  main_core.Dom.append(settingsLinkElement, babelHelpers.classPrivateFieldLooseBase(this, _rootElement)[_rootElement]);
	}
	function _getSettingsLinkElement2() {
	  const before = babelHelpers.classPrivateFieldLooseBase(this, _is1cRestricted)[_is1cRestricted] ? '<span class="tariff-lock"></span>' : '';
	  return main_core.Tag.render(_t2$1 || (_t2$1 = _$1`
			<span class="catalog-settings-inventory-management-mode-settings-container">
				${0}
				<a href="${0}" class="catalog-settings-inventory-management-mode-settings" data-slider-ignore-autobinding="true">
					${0}
				</a>
			</span>
		`), before, babelHelpers.classPrivateFieldLooseBase(this, _onecStatusUrl)[_onecStatusUrl].value, main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_STATUS_SETTINGS'));
	}

	let _$2 = t => t,
	  _t$2,
	  _t2$2,
	  _t3$1,
	  _t4$1;
	var _parentPage$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("parentPage");
	var _inventoryManagementParams = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("inventoryManagementParams");
	var _configCatalogSource = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("configCatalogSource");
	var _inventoryManagementDisabler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("inventoryManagementDisabler");
	var _getCurrentModeBlock = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getCurrentModeBlock");
	var _sendEvent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("sendEvent");
	var _getHelpLink = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getHelpLink");
	class Mode {
	  constructor(params) {
	    Object.defineProperty(this, _getHelpLink, {
	      value: _getHelpLink2
	    });
	    Object.defineProperty(this, _sendEvent, {
	      value: _sendEvent2
	    });
	    Object.defineProperty(this, _getCurrentModeBlock, {
	      value: _getCurrentModeBlock2
	    });
	    Object.defineProperty(this, _parentPage$1, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _inventoryManagementParams, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _configCatalogSource, {
	      writable: true,
	      value: null
	    });
	    Object.defineProperty(this, _inventoryManagementDisabler, {
	      writable: true,
	      value: null
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _parentPage$1)[_parentPage$1] = params.parentPage;
	    babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams] = params.inventoryManagementParams;
	    babelHelpers.classPrivateFieldLooseBase(this, _configCatalogSource)[_configCatalogSource] = params.configCatalogSource;
	    babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementDisabler)[_inventoryManagementDisabler] = new catalog_storeEnableWizard.Disabler({
	      hasConductedDocumentsOrQuantities: babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].hasConductedDocumentsOrQuantities,
	      events: {
	        onDisabled: () => {
	          babelHelpers.classPrivateFieldLooseBase(this, _parentPage$1)[_parentPage$1].onInventoryManagementModeChanged({
	            isEnabled: false,
	            mode: catalog_storeEnableWizard.ModeList.MODE_B24
	          });
	        }
	      }
	    });
	  }
	  buildSection() {
	    const section = new ui_section.Section({
	      title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_SECTION_TITLE'),
	      titleIconClasses: 'ui-icon-set --settings',
	      isOpen: true
	    });
	    const modeSection = new ui_formElements_field.SettingsSection({
	      parent: babelHelpers.classPrivateFieldLooseBase(this, _parentPage$1)[_parentPage$1],
	      section
	    });
	    section.append(new ui_section.Row({
	      content: babelHelpers.classPrivateFieldLooseBase(this, _getCurrentModeBlock)[_getCurrentModeBlock]()
	    }).render());
	    return modeSection;
	  }
	  openInventoryManagementSlider() {
	    let sliderUrl = '/bitrix/components/bitrix/catalog.store.enablewizard/slider.php';
	    if (babelHelpers.classPrivateFieldLooseBase(this, _configCatalogSource)[_configCatalogSource]) {
	      sliderUrl += `?inventoryManagementSource=${babelHelpers.classPrivateFieldLooseBase(this, _configCatalogSource)[_configCatalogSource]}`;
	    }
	    new catalog_storeEnableWizard.EnableWizardOpener().open(sliderUrl, {
	      urlParams: {
	        analyticsContextSection: catalog_storeEnableWizard.AnalyticsContextList.SETTINGS
	      }
	    }).then(slider => {
	      if (!slider) {
	        return;
	      }
	      const isEnabled = slider.getData().get('isInventoryManagementEnabled');
	      const mode = slider.getData().get('inventoryManagementMode');
	      if (isEnabled !== undefined && isEnabled !== babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].isEnabled || mode !== undefined && mode !== babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].currentMode) {
	        var _document$querySelect;
	        babelHelpers.classPrivateFieldLooseBase(this, _parentPage$1)[_parentPage$1].onInventoryManagementModeChanged({
	          isEnabled,
	          mode
	        });
	        (_document$querySelect = document.querySelector('.catalog-settings-inventory-management-mode-wrapper')) == null ? void 0 : _document$querySelect.scrollIntoView();
	        if (babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].isEnabled && isEnabled && mode !== babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].currentMode) {
	          ui_notification.UI.Notification.Center.notify({
	            content: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_CHANGED')
	          });
	          babelHelpers.classPrivateFieldLooseBase(this, _parentPage$1)[_parentPage$1].updateDataAfterSave();
	        }
	      }
	    });
	  }
	}
	function _getCurrentModeBlock2() {
	  const isInventoryManagementEnabled = babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].isEnabled;
	  const currentMode = babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].currentMode;
	  const is1cRestricted = babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].is1cRestricted;
	  let modeLogo = '';
	  if (currentMode === catalog_storeEnableWizard.ModeList.MODE_1C) {
	    modeLogo = main_core.Tag.render(_t$2 || (_t$2 = _$2`
				<div class="catalog-settings-inventory-management-mode-external-logo"></div>
			`));
	  } else {
	    modeLogo = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_B24_LOGO').replace('[color]', '<span class="catalog-settings-inventory-management-mode-b24-numbers">').replace('[/color]', '</span>');
	    modeLogo = main_core.Tag.render(_t2$2 || (_t2$2 = _$2`
				<span class="catalog-settings-inventory-management-mode-b24-name">${0}</span>
			`), modeLogo);
	  }
	  const changeModeButton = new ui_buttons.Button({
	    text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_CHANGE'),
	    color: ui_buttons.ButtonColor.LIGHT,
	    onclick: (button, event) => {
	      babelHelpers.classPrivateFieldLooseBase(this, _sendEvent)[_sendEvent]('disable_clicked');
	      this.openInventoryManagementSlider();
	    }
	  });
	  const toggleButton = new ui_buttons.Button({
	    text: isInventoryManagementEnabled ? main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_DISABLE') : main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_ENABLE'),
	    color: isInventoryManagementEnabled ? ui_buttons.ButtonColor.LIGHT : ui_buttons.ButtonColor.PRIMARY,
	    onclick: (button, event) => {
	      if (isInventoryManagementEnabled) {
	        babelHelpers.classPrivateFieldLooseBase(this, _sendEvent)[_sendEvent]('change_mode_clicked');
	        babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementDisabler)[_inventoryManagementDisabler].open();
	      } else {
	        this.openInventoryManagementSlider();
	      }
	    },
	    round: !isInventoryManagementEnabled
	  });
	  const showChangeModeButton = babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].availableModes.includes(catalog_storeEnableWizard.ModeList.MODE_1C) && isInventoryManagementEnabled;
	  let descriptionContent = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_B24_MODE_DESCRIPTION');
	  let descriptionClass = 'catalog-settings-inventory-management-mode-description';
	  if (currentMode === catalog_storeEnableWizard.ModeList.MODE_1C) {
	    const onecStatusUrl = babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].onecStatusUrl;
	    descriptionContent = new ModeStatus({
	      currentMode,
	      isInventoryManagementEnabled,
	      onecStatusUrl,
	      is1cRestricted
	    }).initialize();
	    descriptionClass = 'catalog-settings-inventory-management-mode-status';
	  }
	  return main_core.Tag.render(_t3$1 || (_t3$1 = _$2`
			<div>
				<div class="catalog-settings-inventory-management-mode-wrapper">
					<div class="catalog-settings-inventory-management-mode-inner">
						<div class="catalog-settings-inventory-management-mode-selected ${0}">
							<div class="catalog-settings-inventory-management-mode-name">${0}</div>
							<div class="${0}">
								${0}
							</div>
						</div>
						<div class="catalog-settings-inventory-management-mode-buttons">
							${0}
							${0}
						</div>
					</div>
				</div>
				<div>
					<p class="catalog-settings-inventory-management-mode-warning">
						${0}
					</p>
					${0}
				</div>
			</div>
		`), isInventoryManagementEnabled ? '' : '--disabled', modeLogo, descriptionClass, descriptionContent, showChangeModeButton ? changeModeButton.render() : '', toggleButton.render(), main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_CHANGE_WARNING').replace('[break]', '<br/>'), babelHelpers.classPrivateFieldLooseBase(this, _getHelpLink)[_getHelpLink]());
	}
	function _sendEvent2(event) {
	  main_core.Runtime.loadExtension('ui.analytics').then(exports => {
	    const {
	      sendData
	    } = exports;
	    sendData({
	      tool: 'inventory',
	      category: 'settings',
	      c_section: 'settings',
	      p1: `mode_${babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].currentMode}`,
	      event
	    });
	  });
	}
	function _getHelpLink2() {
	  const result = main_core.Tag.render(_t4$1 || (_t4$1 = _$2`
			<a class="catalog-settings-inventory-management-mode-help ui-section__link">
				${0}
			</a>
		`), main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_HELP'));
	  main_core.Event.bind(result, 'click', () => {
	    if (top.BX && top.BX.Helper) {
	      const helpCode = babelHelpers.classPrivateFieldLooseBase(this, _inventoryManagementParams)[_inventoryManagementParams].availableModes.length > 1 ? '20233748' : '15992592';
	      top.BX.Helper.show(`redirect=detail&code=${helpCode}`);
	    }
	  });
	  return result;
	}

	let _$3 = t => t,
	  _t$3,
	  _t2$3;
	var _parentPage$2 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("parentPage");
	var _values = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("values");
	var _showQuantityTracePopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("showQuantityTracePopup");
	var _showNewCardPopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("showNewCardPopup");
	var _createWarningProductCardPopupForBitrix = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("createWarningProductCardPopupForBitrix24");
	var _createWarningProductCardPopupForBUS = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("createWarningProductCardPopupForBUS");
	var _createWarningProductCardPopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("createWarningProductCardPopup");
	class Products {
	  constructor(params) {
	    Object.defineProperty(this, _createWarningProductCardPopup, {
	      value: _createWarningProductCardPopup2
	    });
	    Object.defineProperty(this, _createWarningProductCardPopupForBUS, {
	      value: _createWarningProductCardPopupForBUS2
	    });
	    Object.defineProperty(this, _createWarningProductCardPopupForBitrix, {
	      value: _createWarningProductCardPopupForBitrix2
	    });
	    Object.defineProperty(this, _showNewCardPopup, {
	      value: _showNewCardPopup2
	    });
	    Object.defineProperty(this, _showQuantityTracePopup, {
	      value: _showQuantityTracePopup2
	    });
	    Object.defineProperty(this, _parentPage$2, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _values, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _parentPage$2)[_parentPage$2] = params.parentPage;
	    babelHelpers.classPrivateFieldLooseBase(this, _values)[_values] = params.values;
	  }
	  buildSection() {
	    const productsSection = new ui_formElements_field.SettingsSection({
	      parent: babelHelpers.classPrivateFieldLooseBase(this, _parentPage$2)[_parentPage$2],
	      section: {
	        title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCTS_SECTION_TITLE'),
	        titleIconClasses: 'ui-icon-set --cubes-3',
	        isOpen: true
	      }
	    });
	    new ui_formElements_field.SettingsRow({
	      parent: productsSection,
	      child: new ui_formElements_field.SettingsField({
	        fieldView: new ui_formElements_view.Checker({
	          inputName: 'defaultSubscribe',
	          title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DEFAULT_SUBSCRIBE'),
	          checked: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].defaultSubscribe === 'Y'
	        })
	      })
	    });
	    const isInventoryManagementEnabled = babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].isEnabledInventoryManagement;
	    const isEmptyCostPriceCalculationMethod = babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].costPriceCalculationMethod.current === '';
	    const isCanBuyZeroInDocsVisible = isInventoryManagementEnabled && isEmptyCostPriceCalculationMethod;
	    if (isCanBuyZeroInDocsVisible) {
	      new ui_formElements_field.SettingsRow({
	        parent: productsSection,
	        child: new ui_formElements_field.SettingsField({
	          fieldView: new ui_formElements_view.Checker({
	            inputName: 'checkRightsOnDecreaseStoreAmount',
	            title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DEFAULT_CAN_BUY_ZERO_IN_DOCS'),
	            checked: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].checkRightsOnDecreaseStoreAmount === 'Y',
	            hintOn: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DEFAULT_CAN_BUY_ZERO_IN_DOCS_HINT').replace('[link]', '<a class="ui-section__link" onclick="top.BX.Helper.show(\'redirect=detail&code=15706692&anchor=products\')">').replace('[/link]', '</a>')
	          })
	        })
	      });
	    }
	    new ui_formElements_field.SettingsRow({
	      parent: productsSection,
	      child: new ui_formElements_field.SettingsField({
	        fieldView: new ui_formElements_view.Checker({
	          inputName: 'defaultProductVatIncluded',
	          title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_SET_VAT_IN_PRICE_FOR_NEW_PRODUCTS'),
	          checked: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].defaultProductVatIncluded === 'Y'
	        })
	      })
	    });
	    const isDefaultCanBuyZeroVisible = babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].isReservationUsed && babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].hasAccessToChangeCanBuyZero;
	    if (isDefaultCanBuyZeroVisible) {
	      new ui_formElements_field.SettingsRow({
	        parent: productsSection,
	        child: new ui_formElements_field.SettingsField({
	          fieldView: new ui_formElements_view.Checker({
	            inputName: 'defaultCanBuyZero',
	            title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DEFAULT_CAN_BUY_ZERO'),
	            checked: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].defaultCanBuyZero === 'Y',
	            hintOn: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DEFAULT_CAN_BUY_ZERO_HINT')
	          })
	        })
	      });
	    }
	    const initDefaultQuantityTrace = babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].defaultQuantityTrace;
	    const isDefaultQuantityTraceVisible = initDefaultQuantityTrace === 'Y' && !isInventoryManagementEnabled;
	    if (isDefaultQuantityTraceVisible) {
	      const defaultQuantityTraceChecker = new ui_formElements_view.Checker({
	        inputName: 'defaultQuantityTrace',
	        title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DEFAULT_QUANTITY_TRACE'),
	        checked: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].defaultQuantityTrace === 'Y'
	      });
	      new ui_formElements_field.SettingsRow({
	        parent: productsSection,
	        child: new ui_formElements_field.SettingsField({
	          fieldView: defaultQuantityTraceChecker
	        })
	      });
	      main_core_events.EventEmitter.subscribe(defaultQuantityTraceChecker.switcher, 'toggled', () => {
	        if (defaultQuantityTraceChecker.isChecked()) {
	          return;
	        }
	        babelHelpers.classPrivateFieldLooseBase(this, _showQuantityTracePopup)[_showQuantityTracePopup]();
	      });
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].canEnableProductCardSlider) {
	      const canEnableProductCardSliderChecker = new ui_formElements_view.Checker({
	        inputName: 'productCardSliderEnabled',
	        title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD'),
	        checked: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].productCardSliderEnabled === 'Y'
	      });
	      new ui_formElements_field.SettingsRow({
	        parent: productsSection,
	        child: new ui_formElements_field.SettingsField({
	          fieldView: canEnableProductCardSliderChecker
	        })
	      });
	      main_core_events.EventEmitter.subscribe(canEnableProductCardSliderChecker.switcher, 'toggled', () => {
	        if (!canEnableProductCardSliderChecker.isChecked()) {
	          return;
	        }
	        babelHelpers.classPrivateFieldLooseBase(this, _showNewCardPopup)[_showNewCardPopup](canEnableProductCardSliderChecker);
	      });
	    }
	    Object.keys(babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].vats.hints).forEach(hint => {
	      babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].vats.hints[hint] = babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].vats.hints[hint].replace('#MORE_DETAILS#', `
				<a class="ui-section__link"
					onclick="top.BX.Helper.show('redirect=detail&code=15706692&anchor=products')">${main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_MODE_HELP')}</a>
			`);
	    });
	    const vatSelector = new ui_formElements_view.Selector({
	      label: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DEFAULT_VAT'),
	      name: 'defaultProductVatId',
	      items: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].vats.items,
	      hints: babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].vats.hints
	    });
	    new ui_formElements_field.SettingsRow({
	      parent: productsSection,
	      child: new ui_formElements_field.SettingsField({
	        fieldView: vatSelector
	      })
	    });
	    return productsSection;
	  }
	  updateValues(newValues) {
	    Object.assign(babelHelpers.classPrivateFieldLooseBase(this, _values)[_values], newValues);
	  }
	}
	function _showQuantityTracePopup2() {
	  const warnPopup = new main_popup.Popup(null, null, {
	    events: {
	      onPopupClose: () => warnPopup.destroy()
	    },
	    content: main_core.Tag.render(_t$3 || (_t$3 = _$3`
				<div class="catalog-settings-popup-content">
					<h3>
						${0}
					</h3>
					<div class="catalog-settings-popup-text">
						${0}
					</div>
				</div>
			`), main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_TURN_OFF_QUANTITY_TRACE_TITLE'), main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_TURN_OFF_QUANTITY_TRACE_TEXT')),
	    maxWidth: 500,
	    overlay: true,
	    buttons: [new ui_buttons.Button({
	      text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_CLOSE'),
	      color: ui_buttons.Button.Color.PRIMARY,
	      onclick: () => warnPopup.close()
	    })]
	  });
	  warnPopup.show();
	}
	function _showNewCardPopup2(checker) {
	  const askPopup = babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].isBitrix24 === 'Y' ? babelHelpers.classPrivateFieldLooseBase(this, _createWarningProductCardPopupForBitrix)[_createWarningProductCardPopupForBitrix](checker) : babelHelpers.classPrivateFieldLooseBase(this, _createWarningProductCardPopupForBUS)[_createWarningProductCardPopupForBUS](checker);
	  askPopup.show();
	}
	function _createWarningProductCardPopupForBitrix2(checker) {
	  const askPopup = babelHelpers.classPrivateFieldLooseBase(this, _createWarningProductCardPopup)[_createWarningProductCardPopup](main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD_ASK_TEXT'), [new ui_buttons.Button({
	    text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD_ASK_DISAGREE'),
	    color: ui_buttons.Button.Color.PRIMARY,
	    onclick: () => {
	      checker.switcher.toggle();
	      askPopup.close();
	    }
	  }), new ui_buttons.Button({
	    text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD_ASK_AGREE'),
	    onclick: () => askPopup.close()
	  })], {
	    onPopupShow: () => {
	      const helpdeskLink = document.getElementById('catalog-settings-new-productcard-popup-helpdesk');
	      if (helpdeskLink) {
	        main_core.Event.bind(helpdeskLink, 'click', () => top.BX.Helper.show('redirect=detail&code=11657084'));
	      }
	    }
	  });
	  return askPopup;
	}
	function _createWarningProductCardPopupForBUS2(checker) {
	  const askPopup = babelHelpers.classPrivateFieldLooseBase(this, _createWarningProductCardPopup)[_createWarningProductCardPopup](main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD_ASK_BUS_TEXT').replace('#HELP_LINK#', babelHelpers.classPrivateFieldLooseBase(this, _values)[_values].busProductCardHelpLink), [new ui_buttons.Button({
	    text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD_ASK_AGREE'),
	    color: ui_buttons.Button.Color.SUCCESS,
	    onclick: () => askPopup.close()
	  }), new ui_buttons.Button({
	    text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD_ASK_BUS_DISAGREE'),
	    color: ui_buttons.Button.Color.LINK,
	    onclick: () => {
	      checker.switcher.toggle();
	      askPopup.close();
	    }
	  })]);
	  return askPopup;
	}
	function _createWarningProductCardPopup2(contentText, buttons, events = {}) {
	  const popupParams = {
	    events: {
	      onPopupClose: () => askPopup.destroy(),
	      ...events
	    },
	    content: main_core.Tag.render(_t2$3 || (_t2$3 = _$3`
				<div class="catalog-settings-new-productcard-popup-content">
					${0}
				</div>
			`), contentText),
	    className: 'catalog-settings-new-productcard-popup',
	    titleBar: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_PRODUCT_CARD_ENABLE_NEW_CARD_ASK_TITLE'),
	    maxWidth: 800,
	    overlay: true,
	    buttons
	  };
	  const askPopup = new main_popup.Popup(null, null, popupParams);
	  return askPopup;
	}

	let _$4 = t => t,
	  _t$4,
	  _t2$4,
	  _t3$2;
	var _mode = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("mode");
	var _period = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("period");
	var _getModeSelectorClasses = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getModeSelectorClasses");
	var _buildModeSelector = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("buildModeSelector");
	var _getPeriodClasses = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getPeriodClasses");
	var _buildPeriodInput = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("buildPeriodInput");
	class ReservationMode extends ui_formElements_view.BaseField {
	  constructor(params) {
	    super(params);
	    Object.defineProperty(this, _buildPeriodInput, {
	      value: _buildPeriodInput2
	    });
	    Object.defineProperty(this, _getPeriodClasses, {
	      value: _getPeriodClasses2
	    });
	    Object.defineProperty(this, _buildModeSelector, {
	      value: _buildModeSelector2
	    });
	    Object.defineProperty(this, _getModeSelectorClasses, {
	      value: _getModeSelectorClasses2
	    });
	    Object.defineProperty(this, _mode, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _period, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode] = params.mode;
	    babelHelpers.classPrivateFieldLooseBase(this, _period)[_period] = params.period;
	  }
	  prefixId() {
	    return 'reservation_';
	  }
	  renderContentField() {
	    return main_core.Tag.render(_t$4 || (_t$4 = _$4`
			<div id="${0}" class="ui-section__field-selector --field-separator">
				<div class="ui-section__field-container">
					<div class="ui-section__field-inline-box">
						<label class="ui-section__field-label" for="${0}">${0}</label> 
						<div class="ui-section__field-inline-label-separator"></div>
						<label class="ui-section__field-label" for="${0}">${0}</label>
					</div>
					<div class="ui-section__field-inline-box">
						<div class="ui-section__field">
							<div class="${0}">
								<div class="ui-ctl-after ui-ctl-icon-angle"></div>
								${0}
							</div>
						</div>
						<div class="ui-section__field-inline-separator"></div>
						<div class="${0}">
							${0}
						</div>
					</div>
				</div>
			</div>
		`), this.getId(), babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode].fieldName, babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode].setting.name, babelHelpers.classPrivateFieldLooseBase(this, _period)[_period].fieldName, babelHelpers.classPrivateFieldLooseBase(this, _period)[_period].setting.name, babelHelpers.classPrivateFieldLooseBase(this, _getModeSelectorClasses)[_getModeSelectorClasses](), babelHelpers.classPrivateFieldLooseBase(this, _buildModeSelector)[_buildModeSelector](), babelHelpers.classPrivateFieldLooseBase(this, _getPeriodClasses)[_getPeriodClasses](), babelHelpers.classPrivateFieldLooseBase(this, _buildPeriodInput)[_buildPeriodInput]());
	  }
	}
	function _getModeSelectorClasses2() {
	  let result = 'ui-ctl ui-ctl-w100 ui-ctl-after-icon ui-ctl-dropdown';
	  if (babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode].setting.disabled) {
	    result += ' ui-ctl-disabled';
	  }
	  return result;
	}
	function _buildModeSelector2() {
	  const options = [];
	  for (const {
	    code,
	    name
	  } of babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode].setting.values) {
	    let selectedAttr = '';
	    if (code === babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode].value) {
	      selectedAttr = 'selected';
	    }
	    options.push(main_core.Tag.render(_t2$4 || (_t2$4 = _$4`<option ${0} value="${0}">${0}</option>`), selectedAttr, code, name));
	  }
	  const selector = main_core.Dom.create('select', {
	    attrs: {
	      class: 'ui-ctl-element',
	      disabled: babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode].setting.disabled
	    },
	    children: options
	  });
	  selector.name = babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode].fieldName;
	  return selector;
	}
	function _getPeriodClasses2() {
	  let result = 'ui-section__hint';
	  if (babelHelpers.classPrivateFieldLooseBase(this, _period)[_period].setting.disabled) {
	    result += ' ui-ctl-disabled';
	  }
	  return result;
	}
	function _buildPeriodInput2() {
	  const periodInput = main_core.Tag.render(_t3$2 || (_t3$2 = _$4`
			<input
				value="${0}"
				name="${0}"
				type="text"
				class="ui-ctl-element"
			>
		`), main_core.Text.encode(babelHelpers.classPrivateFieldLooseBase(this, _period)[_period].value), babelHelpers.classPrivateFieldLooseBase(this, _period)[_period].fieldName);
	  if (babelHelpers.classPrivateFieldLooseBase(this, _period)[_period].setting.disabled) {
	    periodInput.disabled = true;
	  }
	  return periodInput;
	}

	var _reservationEntities = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("reservationEntities");
	var _parentPage$3 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("parentPage");
	class ReservationSection {
	  constructor(params) {
	    Object.defineProperty(this, _reservationEntities, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _parentPage$3, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _reservationEntities)[_reservationEntities] = params.reservationEntities;
	    babelHelpers.classPrivateFieldLooseBase(this, _parentPage$3)[_parentPage$3] = params.parentPage;
	  }

	  // todo: implement actual dynamic settings from the scheme parameter when reservation in other entities is implemented
	  buildSection() {
	    var _babelHelpers$classPr;
	    const section = new ui_section.Section({
	      title: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_RESERVATION_SECTION_TITLE'),
	      titleIconClasses: 'ui-icon-set --proposal-settings',
	      isOpen: true
	    });
	    const settingsSection = new ui_formElements_field.SettingsSection({
	      parent: babelHelpers.classPrivateFieldLooseBase(this, _parentPage$3)[_parentPage$3],
	      section
	    });
	    const dealSettings = (_babelHelpers$classPr = babelHelpers.classPrivateFieldLooseBase(this, _reservationEntities)[_reservationEntities][0]) == null ? void 0 : _babelHelpers$classPr.settings;
	    if (!dealSettings) {
	      return settingsSection;
	    }
	    section.append(new ui_section.Row({
	      content: new ui_alerts.Alert({
	        text: `
						${main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_RESERVATION_SECTION_DESCRIPTION')}
						<a class="ui-section__link" onclick="top.BX.Helper.show('redirect=detail&code=15706692&anchor=reservation')">
							${main_core.Loc.getMessage('INTRANET_SETTINGS_CANCEL_MORE')}
						</a>
					`,
	        inline: true,
	        size: ui_alerts.AlertSize.SMALL,
	        color: ui_alerts.AlertColor.PRIMARY
	      }).getContainer()
	    }).render());
	    const modeFieldName = ReservationSection.MODE_FIELD_NAME;
	    const modeSetting = dealSettings.scheme.find(schemeElement => {
	      return schemeElement.code === 'mode';
	    });
	    const modeValue = dealSettings.values.mode;
	    const periodFieldName = ReservationSection.PERIOD_FIELD_NAME;
	    const periodSetting = dealSettings.scheme.find(schemeElement => {
	      return schemeElement.code === 'period';
	    });
	    const periodValue = dealSettings.values.period;
	    new ui_formElements_field.SettingsRow({
	      row: {
	        separator: 'bottom',
	        className: '--block'
	      },
	      parent: settingsSection,
	      child: new ui_formElements_field.SettingsField({
	        fieldView: new ReservationMode({
	          mode: {
	            fieldName: modeFieldName,
	            setting: modeSetting,
	            value: modeValue
	          },
	          period: {
	            fieldName: periodFieldName,
	            setting: periodSetting,
	            value: periodValue
	          }
	        })
	      })
	    });
	    const autoWriteOffSetting = dealSettings.scheme.find(schemeElement => {
	      return schemeElement.code === 'autoWriteOffOnFinalize';
	    });
	    const autoWriteOffValue = dealSettings.values.autoWriteOffOnFinalize;
	    const checker = new ui_formElements_view.Checker({
	      inputName: ReservationSection.AUTO_WRITE_OFF_FIELD_NAME,
	      title: autoWriteOffSetting.name,
	      checked: autoWriteOffValue,
	      hintOn: autoWriteOffSetting.description,
	      isFieldDisabled: autoWriteOffSetting.disabled,
	      hideSeparator: true
	    });
	    new ui_formElements_field.SettingsRow({
	      parent: settingsSection,
	      child: new ui_formElements_field.SettingsField({
	        fieldView: checker
	      })
	    });
	    return settingsSection;
	  }
	}
	ReservationSection.MODE_FIELD_NAME = 'reservationSettings[deal][mode]';
	ReservationSection.PERIOD_FIELD_NAME = 'reservationSettings[deal][period]';
	ReservationSection.AUTO_WRITE_OFF_FIELD_NAME = 'reservationSettings[deal][autoWriteOffOnFinalize]';

	let _$5 = t => t,
	  _t$5,
	  _t2$5;
	var _productUpdaterPopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("productUpdaterPopup");
	var _initialData = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("initialData");
	var _slider = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("slider");
	var _getDataForSaving = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getDataForSaving");
	var _save = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("save");
	var _resetSaveButton = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("resetSaveButton");
	var _onSaveSuccess = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("onSaveSuccess");
	var _saveProductSettings = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("saveProductSettings");
	var _didProductSettingsChange = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("didProductSettingsChange");
	var _needProgressBarOnProductsUpdating = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("needProgressBarOnProductsUpdating");
	var _buildReservationSection = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("buildReservationSection");
	var _buildCostPriceCalculationSection = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("buildCostPriceCalculationSection");
	var _buildProductsSection = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("buildProductsSection");
	var _buildModeSection = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("buildModeSection");
	var _showNegativeBalancePopupIfNeeded = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("showNegativeBalancePopupIfNeeded");
	var _isReservationUsed = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isReservationUsed");
	var _isStoreBatchUsed = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isStoreBatchUsed");
	var _convertFormDataToObjectData = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("convertFormDataToObjectData");
	class CatalogPage extends ui_formElements_field.BaseSettingsPage {
	  constructor() {
	    super();
	    Object.defineProperty(this, _convertFormDataToObjectData, {
	      value: _convertFormDataToObjectData2
	    });
	    Object.defineProperty(this, _isStoreBatchUsed, {
	      value: _isStoreBatchUsed2
	    });
	    Object.defineProperty(this, _isReservationUsed, {
	      value: _isReservationUsed2
	    });
	    Object.defineProperty(this, _showNegativeBalancePopupIfNeeded, {
	      value: _showNegativeBalancePopupIfNeeded2
	    });
	    Object.defineProperty(this, _buildModeSection, {
	      value: _buildModeSection2
	    });
	    Object.defineProperty(this, _buildProductsSection, {
	      value: _buildProductsSection2
	    });
	    Object.defineProperty(this, _buildCostPriceCalculationSection, {
	      value: _buildCostPriceCalculationSection2
	    });
	    Object.defineProperty(this, _buildReservationSection, {
	      value: _buildReservationSection2
	    });
	    Object.defineProperty(this, _needProgressBarOnProductsUpdating, {
	      value: _needProgressBarOnProductsUpdating2
	    });
	    Object.defineProperty(this, _didProductSettingsChange, {
	      value: _didProductSettingsChange2
	    });
	    Object.defineProperty(this, _saveProductSettings, {
	      value: _saveProductSettings2
	    });
	    Object.defineProperty(this, _onSaveSuccess, {
	      value: _onSaveSuccess2
	    });
	    Object.defineProperty(this, _resetSaveButton, {
	      value: _resetSaveButton2
	    });
	    Object.defineProperty(this, _save, {
	      value: _save2
	    });
	    Object.defineProperty(this, _getDataForSaving, {
	      value: _getDataForSaving2
	    });
	    Object.defineProperty(this, _productUpdaterPopup, {
	      writable: true,
	      value: null
	    });
	    Object.defineProperty(this, _initialData, {
	      writable: true,
	      value: {}
	    });
	    Object.defineProperty(this, _slider, {
	      writable: true,
	      value: null
	    });
	    this.titlePage = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_TITLE');
	    this.descriptionPage = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_DESCRIPTION');
	    main_core_events.EventEmitter.subscribe(main_core_events.EventEmitter.GLOBAL_TARGET, 'button-click', event => {
	      babelHelpers.classPrivateFieldLooseBase(this, _save)[_save]();
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _slider)[_slider] = BX.SidePanel.Instance.getTopSlider();
	  }

	  // temporary methods, to be removed after the page is integrated with the intranet settings
	  static init(settings) {
	    const page = new CatalogPage();
	    page.setData(settings);
	    babelHelpers.classPrivateFieldLooseBase(page, _initialData)[_initialData] = settings;
	    const permission = Boolean(settings.hasAccessToCatalogSettings) || Boolean(settings.hasAccessToReservationSettings);
	    page.setPermission({
	      canRead: () => permission,
	      canEdit: () => permission
	    });
	    return page;
	  }
	  onChange() {
	    BX.UI.ButtonPanel.show();
	  }
	  getType() {
	    return 'catalog';
	  }
	  appendSections(contentNode) {
	    if (babelHelpers.classPrivateFieldLooseBase(this, _isReservationUsed)[_isReservationUsed]() && this.getValue('hasAccessToReservationSettings')) {
	      const reservationSection = babelHelpers.classPrivateFieldLooseBase(this, _buildReservationSection)[_buildReservationSection]();
	      reservationSection.renderTo(contentNode);
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _isStoreBatchUsed)[_isStoreBatchUsed]() && this.getValue('hasAccessToCatalogSettings')) {
	      const costPriceCalculationSection = babelHelpers.classPrivateFieldLooseBase(this, _buildCostPriceCalculationSection)[_buildCostPriceCalculationSection]();
	      costPriceCalculationSection.renderTo(contentNode);
	    }
	    if (this.getValue('hasAccessToCatalogSettings')) {
	      const productsSection = babelHelpers.classPrivateFieldLooseBase(this, _buildProductsSection)[_buildProductsSection]();
	      productsSection.renderTo(contentNode);
	      const modeSection = babelHelpers.classPrivateFieldLooseBase(this, _buildModeSection)[_buildModeSection]();
	      modeSection.renderTo(contentNode);
	    }
	  }
	  onInventoryManagementModeChanged({
	    isEnabled,
	    mode
	  }) {
	    var _this$getValue;
	    if (babelHelpers.classPrivateFieldLooseBase(this, _slider)[_slider]) {
	      babelHelpers.classPrivateFieldLooseBase(this, _slider)[_slider].getData().set('isInventoryManagementChanged', true);
	      if (mode) {
	        babelHelpers.classPrivateFieldLooseBase(this, _slider)[_slider].getData().set('inventoryManagementMode', mode);
	        if (mode === catalog_storeEnableWizard.ModeList.MODE_1C) {
	          babelHelpers.classPrivateFieldLooseBase(this, _initialData)[_initialData].is1cRestricted = false;
	        }
	      }
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _initialData)[_initialData].isEnabledInventoryManagement = isEnabled;
	    if (mode && (_this$getValue = this.getValue('storeControlAvailableModes')) != null && _this$getValue.includes(mode)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _initialData)[_initialData].storeControlMode = mode;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _initialData)[_initialData].defaultQuantityTrace = isEnabled ? 'Y' : 'N';
	    this.setData(babelHelpers.classPrivateFieldLooseBase(this, _initialData)[_initialData]);
	  }
	  // reads the data from the form element and updates the page object's #data
	  updateDataAfterSave() {
	    this.setData(babelHelpers.classPrivateFieldLooseBase(this, _convertFormDataToObjectData)[_convertFormDataToObjectData]());
	  }
	}
	function _getDataForSaving2() {
	  return BX.ajax.prepareForm(this.getFormNode()).data;
	}
	function _save2() {
	  const isNegativeBalancePopupShown = babelHelpers.classPrivateFieldLooseBase(this, _showNegativeBalancePopupIfNeeded)[_showNegativeBalancePopupIfNeeded]();
	  if (isNegativeBalancePopupShown) {
	    return;
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _saveProductSettings)[_saveProductSettings]().then(() => {
	    const data = babelHelpers.classPrivateFieldLooseBase(this, _getDataForSaving)[_getDataForSaving]();
	    return main_core.ajax.runComponentAction('bitrix:catalog.config.settings', 'save', {
	      mode: 'class',
	      data: {
	        data
	      }
	    });
	  }).then(babelHelpers.classPrivateFieldLooseBase(this, _onSaveSuccess)[_onSaveSuccess].bind(this));
	}
	function _resetSaveButton2() {
	  const saveButton = document.getElementById('ui-button-panel-save');
	  main_core.Dom.removeClass(saveButton, 'ui-btn-wait');
	}
	function _onSaveSuccess2() {
	  BX.UI.ButtonPanel.hide();
	  babelHelpers.classPrivateFieldLooseBase(this, _resetSaveButton)[_resetSaveButton]();
	  this.updateDataAfterSave();
	  BX.SidePanel.Instance.postMessage(window, 'BX.Crm.Config.Catalog:onAfterSaveSettings');
	}
	function _saveProductSettings2() {
	  if (!babelHelpers.classPrivateFieldLooseBase(this, _didProductSettingsChange)[_didProductSettingsChange]()) {
	    return Promise.resolve();
	  }
	  const newData = babelHelpers.classPrivateFieldLooseBase(this, _getDataForSaving)[_getDataForSaving]();
	  const productUpdaterOptions = {
	    settings: {
	      default_quantity_trace: newData.defaultQuantityTrace,
	      default_can_buy_zero: newData.defaultCanBuyZero,
	      default_subscribe: newData.defaultSubscribe
	    }
	  };
	  return new Promise(resolve => {
	    productUpdaterOptions.onComplete = () => {
	      resolve();
	      if (babelHelpers.classPrivateFieldLooseBase(this, _needProgressBarOnProductsUpdating)[_needProgressBarOnProductsUpdating]()) {
	        babelHelpers.classPrivateFieldLooseBase(this, _productUpdaterPopup)[_productUpdaterPopup].destroy();
	      }
	    };
	    const productUpdater = new ProductUpdater(productUpdaterOptions).render();
	    if (babelHelpers.classPrivateFieldLooseBase(this, _needProgressBarOnProductsUpdating)[_needProgressBarOnProductsUpdating]()) {
	      babelHelpers.classPrivateFieldLooseBase(this, _productUpdaterPopup)[_productUpdaterPopup] = new main_popup.Popup({
	        content: productUpdater,
	        width: 310,
	        overlay: true,
	        padding: 17,
	        animation: 'fading-slide',
	        angle: false
	      });
	      babelHelpers.classPrivateFieldLooseBase(this, _productUpdaterPopup)[_productUpdaterPopup].show();
	    }
	  });
	}
	function _didProductSettingsChange2() {
	  const newData = babelHelpers.classPrivateFieldLooseBase(this, _getDataForSaving)[_getDataForSaving]();
	  const affectedSettings = ['defaultQuantityTrace', 'defaultCanBuyZero', 'defaultSubscribe', 'checkRightsOnDecreaseStoreAmount'];
	  const productSettingsResult = affectedSettings.find(code => {
	    return newData[code] !== undefined && newData[code] !== this.getValue(code);
	  });
	  const costPriceCalculationMethodResult = newData.costPriceCalculationMethod !== undefined && newData.costPriceCalculationMethod !== this.getValue('costPriceCalculationMethod').current;
	  return Boolean(productSettingsResult) || costPriceCalculationMethodResult;
	}
	function _needProgressBarOnProductsUpdating2() {
	  return this.getValue('productsCount') > 500;
	}
	function _buildReservationSection2() {
	  const storeControlMode = this.getValue('storeControlMode');
	  const reservationEntities = this.getValue('reservationEntities');
	  for (const reservationEntity of reservationEntities) {
	    for (const schemeItem of reservationEntity.settings.scheme) {
	      if (['mode', 'period'].includes(schemeItem.code)) {
	        schemeItem.disabled = storeControlMode === catalog_storeEnableWizard.ModeList.MODE_1C;
	      }
	    }
	    if (storeControlMode === catalog_storeEnableWizard.ModeList.MODE_1C) {
	      reservationEntity.settings.values.mode = 'onAddToDocument';
	    }
	  }
	  const reservationSection = new ReservationSection({
	    parentPage: this,
	    reservationEntities
	  });
	  return reservationSection.buildSection();
	}
	function _buildCostPriceCalculationSection2() {
	  const costPriceCalculationSection = new CostPriceCalculation({
	    parentPage: this,
	    costPriceCalculationParams: this.getValue('costPriceCalculationMethod')
	  });
	  return costPriceCalculationSection.buildSection();
	}
	function _buildProductsSection2() {
	  const values = {};
	  ['defaultSubscribe', 'isEnabledInventoryManagement', 'costPriceCalculationMethod', 'checkRightsOnDecreaseStoreAmount', 'defaultProductVatIncluded', 'defaultCanBuyZero', 'defaultQuantityTrace', 'canEnableProductCardSlider', 'isBitrix24', 'productCardSliderEnabled', 'showNegativeStoreAmountPopup', 'storeBalancePopupLink', 'hasAccessToChangeCanBuyZero', 'busProductCardHelpLink', 'vats'].forEach(code => {
	    values[code] = this.getValue(code);
	  });
	  values.isReservationUsed = babelHelpers.classPrivateFieldLooseBase(this, _isReservationUsed)[_isReservationUsed]();
	  const productsSection = new Products({
	    parentPage: this,
	    values
	  });
	  return productsSection.buildSection();
	}
	function _buildModeSection2() {
	  const modeSection = new Mode({
	    parentPage: this,
	    inventoryManagementParams: {
	      isEnabled: this.getValue('isEnabledInventoryManagement'),
	      currentMode: this.getValue('storeControlMode'),
	      availableModes: this.getValue('storeControlAvailableModes'),
	      onecStatusUrl: this.getValue('onecStatusUrl'),
	      is1cRestricted: this.getValue('is1cRestricted'),
	      hasConductedDocumentsOrQuantities: this.getValue('hasConductedDocumentsOrQuantities')
	    },
	    configCatalogSource: this.getValue('configCatalogSource')
	  });
	  return modeSection.buildSection();
	}
	function _showNegativeBalancePopupIfNeeded2() {
	  if (!babelHelpers.classPrivateFieldLooseBase(this, _getDataForSaving)[_getDataForSaving]().costPriceCalculationMethod || !this.getValue('showNegativeStoreAmountPopup')) {
	    return false;
	  }
	  const text = main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_NEGATIVE_STORE_BALANCE_POPUP_TEXT', {
	    '#STORE_BALANCE_LIST_LINK#': '<help-link></help-link>'
	  });
	  const content = main_core.Tag.render(_t$5 || (_t$5 = _$5`
			<div class="catalog-settings-popup-content">
				<div class="catalog-settings-popup-text">
					${0}
				</div>
			</div>
		`), text);
	  if (!main_core.Type.isUndefined(top.BX.SidePanel.Instance) && main_core.Type.isStringFilled(this.getValue('storeBalancePopupLink'))) {
	    const balanceInfoLink = main_core.Tag.render(_t2$5 || (_t2$5 = _$5`
				<a href="#" class="ui-form-link">
					${0}
				</a>
			`), main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_NEGATIVE_STORE_BALANCE_POPUP_LINK'));
	    main_core.Event.bind(balanceInfoLink, 'click', () => {
	      top.BX.SidePanel.Instance.open(String(this.getValue('storeBalancePopupLink')), {
	        requestMethod: 'post',
	        cacheable: false
	      });
	    });
	    main_core.Dom.replace(content.querySelector('help-link'), balanceInfoLink);
	  }
	  const popup = new main_popup.Popup({
	    id: 'catalog_settings_document_negative_balance_popup',
	    content,
	    overlay: true,
	    buttons: [new ui_buttons.Button({
	      text: main_core.Loc.getMessage('CAT_CONFIG_SETTINGS_RETURN'),
	      color: ui_buttons.ButtonColor.DANGER,
	      onclick: (button, event) => {
	        babelHelpers.classPrivateFieldLooseBase(this, _resetSaveButton)[_resetSaveButton]();
	        popup.destroy();
	      }
	    })]
	  });
	  popup.show();
	  return true;
	}
	function _isReservationUsed2() {
	  return this.getValue('isEnabledInventoryManagement') || this.getValue('defaultQuantityTrace') === 'Y';
	}
	function _isStoreBatchUsed2() {
	  return this.getValue('isStoreBatchUsed') || this.getValue('hasAccessToCatalogSettings');
	}
	function _convertFormDataToObjectData2() {
	  const formData = babelHelpers.classPrivateFieldLooseBase(this, _getDataForSaving)[_getDataForSaving]();
	  const objectData = babelHelpers.classPrivateFieldLooseBase(this, _initialData)[_initialData];

	  // reservation
	  if (formData.reservationSettings) {
	    formData.reservationSettings.deal.autoWriteOffOnFinalize = formData.reservationSettings.deal.autoWriteOffOnFinalize === 'Y';
	    Object.assign(objectData.reservationEntities[0].settings.values, formData.reservationSettings.deal);
	  }

	  // cost price calculation
	  if (formData.costPriceCalculationMethod) {
	    objectData.costPriceCalculationMethod.items.forEach(item => {
	      item.selected = item.value === formData.costPriceCalculationMethod;
	    });
	  }

	  // product settings
	  if (formData.defaultProductVatId) {
	    objectData.vats.items.forEach(item => {
	      item.selected = Number(item.value) === Number(formData.defaultProductVatId);
	    });
	  }
	  const options = ['defaultSubscribe', 'checkRightsOnDecreaseStoreAmount', 'defaultProductVatIncluded', 'defaultCanBuyZero', 'defaultQuantityTrace', 'productCardSliderEnabled'];
	  options.forEach(option => {
	    if (formData[option]) {
	      objectData[option] = formData[option];
	    }
	  });
	  return objectData;
	}

	class Slider {
	  static open(source = null, options = {}) {
	    Slider.closePopup();
	    let url = Slider.URL;
	    if (main_core.Type.isStringFilled(source)) {
	      url += `?configCatalogSource=${source}`;
	    }
	    main_core_events.EventEmitter.subscribe('SidePanel.Slider:onMessage', event => {
	      const [data] = event.getData();
	      if (data.eventId === 'BX.Crm.Config.Catalog:onAfterSaveSettings') {
	        main_core_events.EventEmitter.emit(window, 'onCatalogSettingsSave');
	      }
	    });
	    if (!options.events) {
	      options.events = {};
	    }
	    if (!options.events.onClose) {
	      options.events.onClose = event => {
	        var _event$getSlider;
	        if ((_event$getSlider = event.getSlider()) != null && _event$getSlider.getData().get('isInventoryManagementChanged')) {
	          if (event.getSlider().getData().get('inventoryManagementMode') === catalog_storeEnableWizard.ModeList.MODE_1C) {
	            top.document.location = '/crm/';
	          } else {
	            document.location.reload();
	          }
	        }
	      };
	    }
	    return new Promise(resolve => {
	      BX.SidePanel.Instance.open(url, {
	        width: 1000,
	        allowChangeHistory: false,
	        cacheable: false,
	        ...options
	      });
	    });
	  }
	  static openRigthsSlider() {
	    Slider.closePopup();
	    return new Promise(resolve => {
	      BX.SidePanel.Instance.open(Slider.URL_RIGHTS, {});
	    });
	  }
	  static openSeoSlider(url) {
	    Slider.closePopup();
	    return new Promise(resolve => {
	      BX.SidePanel.Instance.open(url, {
	        width: 1000,
	        allowChangeHistory: false,
	        cacheable: false
	      });
	    });
	  }
	  static closePopup() {
	    var _BX$PopupWindowManage;
	    (_BX$PopupWindowManage = BX.PopupWindowManager) == null ? void 0 : _BX$PopupWindowManage.getPopups().forEach(popup => {
	      popup.close();
	    });
	  }
	}
	Slider.URL = '/crm/configs/catalog/';
	Slider.URL_RIGHTS = '/shop/settings/permissions/';

	var _page = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("page");
	var _onEventChangeData = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("onEventChangeData");
	class CatalogSettings {
	  constructor(settings) {
	    Object.defineProperty(this, _onEventChangeData, {
	      value: _onEventChangeData2
	    });
	    Object.defineProperty(this, _page, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _page)[_page] = CatalogPage.init(settings);
	    babelHelpers.classPrivateFieldLooseBase(this, _page)[_page].subscribe('change', babelHelpers.classPrivateFieldLooseBase(this, _onEventChangeData)[_onEventChangeData].bind(this));
	  }
	  render() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _page)[_page].getPage();
	  }
	}
	function _onEventChangeData2() {
	  babelHelpers.classPrivateFieldLooseBase(this, _page)[_page].onChange();
	}

	exports.CatalogSettings = CatalogSettings;
	exports.Slider = Slider;

}((this.BX.Catalog.Config = this.BX.Catalog.Config || {}),BX.UI,BX,BX.Catalog,BX.Catalog,BX.UI,BX.Main,BX.UI,BX.UI,BX.UI.FormElements,BX.UI.FormElements,BX.UI,BX,BX,BX.Catalog.Store,BX,BX.Event));
//# sourceMappingURL=settings.bundle.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit