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/product-model/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/catalog/product-model/dist/product-model.bundle.js
/* eslint-disable */
this.BX = this.BX || {};
(function (exports,main_core_events,catalog_productCalculator,main_core,catalog_productModel) {
	'use strict';

	var ErrorCollection = /*#__PURE__*/function () {
	  function ErrorCollection() {
	    var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    babelHelpers.classCallCheck(this, ErrorCollection);
	    babelHelpers.defineProperty(this, "errors", new Map());
	    this.model = model;
	  }
	  babelHelpers.createClass(ErrorCollection, [{
	    key: "getErrors",
	    value: function getErrors() {
	      return Object.fromEntries(this.errors);
	    }
	  }, {
	    key: "setError",
	    value: function setError(code, text) {
	      this.errors.set(code, {
	        code: code,
	        text: text
	      });
	      this.model.onErrorCollectionChange();
	      return this;
	    }
	  }, {
	    key: "removeError",
	    value: function removeError(code) {
	      if (this.errors.has(code)) {
	        this.errors["delete"](code);
	      }
	      this.model.onErrorCollectionChange();
	      return this;
	    }
	  }, {
	    key: "clearErrors",
	    value: function clearErrors() {
	      this.errors.clear();
	      this.model.onErrorCollectionChange();
	      return this;
	    }
	  }, {
	    key: "hasErrors",
	    value: function hasErrors() {
	      return this.errors.size > 0;
	    }
	  }]);
	  return ErrorCollection;
	}();

	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"); } }
	var _isEnabledSaving = /*#__PURE__*/new WeakMap();
	var _preview = /*#__PURE__*/new WeakMap();
	var _editInput = /*#__PURE__*/new WeakMap();
	var ImageCollection = /*#__PURE__*/function () {
	  function ImageCollection() {
	    var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    babelHelpers.classCallCheck(this, ImageCollection);
	    _classPrivateFieldInitSpec(this, _isEnabledSaving, {
	      writable: true,
	      value: false
	    });
	    _classPrivateFieldInitSpec(this, _preview, {
	      writable: true,
	      value: ''
	    });
	    _classPrivateFieldInitSpec(this, _editInput, {
	      writable: true,
	      value: ''
	    });
	    this.model = model;
	  }
	  babelHelpers.createClass(ImageCollection, [{
	    key: "isEnableFileSaving",
	    value: function isEnableFileSaving() {
	      return babelHelpers.classPrivateFieldGet(this, _isEnabledSaving);
	    }
	  }, {
	    key: "enableFileSaving",
	    value: function enableFileSaving() {
	      babelHelpers.classPrivateFieldSet(this, _isEnabledSaving, true);
	    }
	  }, {
	    key: "getMorePhotoValues",
	    value: function getMorePhotoValues() {
	      return this.morePhoto;
	    }
	  }, {
	    key: "setMorePhotoValues",
	    value: function setMorePhotoValues(values) {
	      this.morePhoto = main_core.Type.isPlainObject(values) ? values : {};
	    }
	  }, {
	    key: "removeMorePhotoItem",
	    value: function removeMorePhotoItem(fileId) {
	      for (var index in this.morePhoto) {
	        var value = this.morePhoto[index];
	        if (!main_core.Type.isObject(value)) {
	          value = main_core.Text.toInteger(value);
	        }
	        if (main_core.Type.isNumber(value) && value === main_core.Text.toInteger(fileId) || main_core.Type.isObject(value) && value.fileId === fileId) {
	          delete this.morePhoto[index];
	          return true;
	        }
	      }
	      return false;
	    }
	  }, {
	    key: "setPreview",
	    value: function setPreview(html) {
	      babelHelpers.classPrivateFieldSet(this, _preview, main_core.Type.isStringFilled(html) ? html : '');
	      return this;
	    }
	  }, {
	    key: "setEditInput",
	    value: function setEditInput(html) {
	      babelHelpers.classPrivateFieldSet(this, _editInput, main_core.Type.isStringFilled(html) ? html : '');
	      return this;
	    }
	  }, {
	    key: "getPreview",
	    value: function getPreview() {
	      return babelHelpers.classPrivateFieldGet(this, _preview) || '';
	    }
	  }, {
	    key: "getEditInput",
	    value: function getEditInput() {
	      return babelHelpers.classPrivateFieldGet(this, _editInput) || '';
	    }
	  }, {
	    key: "addMorePhotoItem",
	    value: function addMorePhotoItem(fileId, value) {
	      this.morePhoto[fileId] = value;
	    }
	  }]);
	  return ImageCollection;
	}();

	function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
	function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { babelHelpers.defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
	var FieldCollection = /*#__PURE__*/function () {
	  function FieldCollection() {
	    var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    babelHelpers.classCallCheck(this, FieldCollection);
	    babelHelpers.defineProperty(this, "changedFields", new Map());
	    babelHelpers.defineProperty(this, "fields", new Map());
	    this.model = model;
	  }
	  babelHelpers.createClass(FieldCollection, [{
	    key: "getFields",
	    value: function getFields() {
	      return Object.fromEntries(this.fields);
	    }
	  }, {
	    key: "getField",
	    value: function getField(fieldName) {
	      return this.fields.get(fieldName);
	    }
	  }, {
	    key: "setField",
	    value: function setField(fieldName, value) {
	      var oldValue = this.fields.get(fieldName);
	      this.fields.set(fieldName, value);
	      if (!this.changedFields.has(fieldName) && oldValue !== value) {
	        this.changedFields.set(fieldName, oldValue);
	      }
	      return this;
	    }
	  }, {
	    key: "isChanged",
	    value: function isChanged() {
	      return this.changedFields.size > 0;
	    }
	  }, {
	    key: "clearChanged",
	    value: function clearChanged() {
	      var _this = this;
	      var savingFieldNames = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
	      if (main_core.Type.isNil(savingFieldNames)) {
	        this.changedFields.clear();
	      } else {
	        savingFieldNames.forEach(function (name) {
	          _this.removeFromChanged(name);
	        });
	      }
	      return this;
	    }
	  }, {
	    key: "removeFromChanged",
	    value: function removeFromChanged(fieldName) {
	      this.changedFields["delete"](fieldName);
	      return this;
	    }
	  }, {
	    key: "getChangedFields",
	    value: function getChangedFields() {
	      var _this2 = this;
	      var changedFieldValues = {};
	      this.fields.forEach(function (value, key) {
	        if (_this2.changedFields.has(key)) {
	          changedFieldValues[key] = value;
	        }
	      });
	      return _objectSpread({}, changedFieldValues);
	    }
	  }, {
	    key: "getChangedValues",
	    value: function getChangedValues() {
	      var changedFieldValues = {};
	      this.changedFields.forEach(function (value, key) {
	        changedFieldValues[key] = value;
	      });
	      return _objectSpread({}, changedFieldValues);
	    }
	  }, {
	    key: "initFields",
	    value: function initFields(fields) {
	      var _this3 = this;
	      this.fields.clear();
	      this.clearChanged();
	      if (main_core.Type.isObject(fields)) {
	        Object.keys(fields).forEach(function (key) {
	          _this3.fields.set(key, fields[key]);
	        });
	      }
	      return this;
	    }
	  }]);
	  return FieldCollection;
	}();

	var RightActionDictionary = function RightActionDictionary() {
	  babelHelpers.classCallCheck(this, RightActionDictionary);
	};
	babelHelpers.defineProperty(RightActionDictionary, "ACTION_PRODUCT_VIEW", 'catalog_product_view');
	babelHelpers.defineProperty(RightActionDictionary, "ACTION_PRODUCT_EDIT", 'catalog_product_edit');
	babelHelpers.defineProperty(RightActionDictionary, "ACTION_PRODUCT_ADD", 'catalog_product_add');

	function _classPrivateMethodInitSpec(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(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
	var _map = /*#__PURE__*/new WeakMap();
	var _inited = /*#__PURE__*/new WeakMap();
	var _setInited = /*#__PURE__*/new WeakSet();
	var StoreCollection = /*#__PURE__*/function () {
	  function StoreCollection() {
	    var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    babelHelpers.classCallCheck(this, StoreCollection);
	    _classPrivateMethodInitSpec(this, _setInited);
	    _classPrivateFieldInitSpec$1(this, _map, {
	      writable: true,
	      value: new Map()
	    });
	    _classPrivateFieldInitSpec$1(this, _inited, {
	      writable: true,
	      value: false
	    });
	    this.model = model;
	  }
	  babelHelpers.createClass(StoreCollection, [{
	    key: "init",
	    value: function init(map) {
	      var _this = this;
	      _classPrivateMethodGet(this, _setInited, _setInited2).call(this, true);
	      Object.keys(map).forEach(function (key) {
	        var item = map[key];
	        if (item['STORE_ID'] > 0) {
	          babelHelpers.classPrivateFieldGet(_this, _map).set(main_core.Text.toNumber(item['STORE_ID']), {
	            AMOUNT: main_core.Text.toNumber(item['AMOUNT']),
	            QUANTITY_RESERVED: main_core.Text.toNumber(item['QUANTITY_RESERVED']),
	            STORE_ID: main_core.Text.toNumber(item['STORE_ID']),
	            STORE_TITLE: main_core.Text.encode(item['STORE_TITLE'])
	          });
	        }
	      });
	    }
	  }, {
	    key: "refresh",
	    value: function refresh() {
	      var _this2 = this;
	      this.clear();
	      if (this.model.getSkuId() > 0 && this.model.checkAccess(RightActionDictionary.ACTION_PRODUCT_VIEW)) {
	        main_core.ajax.runAction('catalog.storeSelector.getProductStores', {
	          json: {
	            productId: this.model.getSkuId()
	          }
	        }).then(function (response) {
	          _classPrivateMethodGet(_this2, _setInited, _setInited2).call(_this2, true);
	          response.data.forEach(function (item) {
	            if (!main_core.Type.isNil(item['STORE_ID'])) {
	              babelHelpers.classPrivateFieldGet(_this2, _map).set(main_core.Text.toNumber(item['STORE_ID']), {
	                AMOUNT: main_core.Text.toNumber(item['AMOUNT']),
	                QUANTITY_RESERVED: main_core.Text.toNumber(item['QUANTITY_RESERVED']),
	                STORE_ID: main_core.Text.toNumber(item['STORE_ID']),
	                STORE_TITLE: item['STORE_TITLE']
	              });
	            }
	          });
	          _this2.model.onChangeStoreData();
	        });
	      }
	    }
	  }, {
	    key: "getStoreAmount",
	    value: function getStoreAmount(storeId) {
	      var _babelHelpers$classPr;
	      return ((_babelHelpers$classPr = babelHelpers.classPrivateFieldGet(this, _map).get(main_core.Text.toNumber(storeId))) === null || _babelHelpers$classPr === void 0 ? void 0 : _babelHelpers$classPr.AMOUNT) || 0;
	    }
	  }, {
	    key: "getStoreReserved",
	    value: function getStoreReserved(storeId) {
	      var _babelHelpers$classPr2;
	      return ((_babelHelpers$classPr2 = babelHelpers.classPrivateFieldGet(this, _map).get(main_core.Text.toNumber(storeId))) === null || _babelHelpers$classPr2 === void 0 ? void 0 : _babelHelpers$classPr2.QUANTITY_RESERVED) || 0;
	    }
	  }, {
	    key: "getStoreAvailableAmount",
	    value: function getStoreAvailableAmount(storeId) {
	      return this.getStoreAmount(storeId) - this.getStoreReserved(storeId);
	    }
	  }, {
	    key: "getMaxFilledStore",
	    value: function getMaxFilledStore() {
	      var result = {
	        'STORE_ID': 0,
	        'AMOUNT': 0,
	        'STORE_TITLE': '',
	        'QUANTITY_RESERVED': 0
	      };
	      babelHelpers.classPrivateFieldGet(this, _map).forEach(function (item) {
	        result = item.AMOUNT > result.AMOUNT ? item : result;
	      });
	      return result;
	    }
	  }, {
	    key: "isInited",
	    value: function isInited() {
	      return babelHelpers.classPrivateFieldGet(this, _inited);
	    }
	  }, {
	    key: "clear",
	    value: function clear() {
	      babelHelpers.classPrivateFieldGet(this, _map).clear();
	      _classPrivateMethodGet(this, _setInited, _setInited2).call(this, false);
	      return this;
	    }
	  }]);
	  return StoreCollection;
	}();
	function _setInited2(inited) {
	  babelHelpers.classPrivateFieldSet(this, _inited, inited);
	}

	var _templateObject;
	function _classPrivateMethodInitSpec$1(obj, privateSet) { _checkPrivateRedeclaration$2(obj, privateSet); privateSet.add(obj); }
	function _classPrivateFieldInitSpec$2(obj, privateMap, value) { _checkPrivateRedeclaration$2(obj, privateMap); privateMap.set(obj, value); }
	function _checkPrivateRedeclaration$2(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 instances = new Map();
	var _fieldCollection = /*#__PURE__*/new WeakMap();
	var _errorCollection = /*#__PURE__*/new WeakMap();
	var _imageCollection = /*#__PURE__*/new WeakMap();
	var _storeCollection = /*#__PURE__*/new WeakMap();
	var _productRights = /*#__PURE__*/new WeakMap();
	var _calculator = /*#__PURE__*/new WeakMap();
	var _offerId = /*#__PURE__*/new WeakMap();
	var _skuTree = /*#__PURE__*/new WeakMap();
	var _getDefaultCalculationFields = /*#__PURE__*/new WeakSet();
	var _isStoreCollectionEnabled = /*#__PURE__*/new WeakSet();
	var _updateProduct = /*#__PURE__*/new WeakSet();
	var _createProduct = /*#__PURE__*/new WeakSet();
	var ProductModel = /*#__PURE__*/function () {
	  babelHelpers.createClass(ProductModel, null, [{
	    key: "getById",
	    value: function getById(id) {
	      return instances.get(id) || null;
	    }
	  }]);
	  function ProductModel() {
	    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    babelHelpers.classCallCheck(this, ProductModel);
	    _classPrivateMethodInitSpec$1(this, _createProduct);
	    _classPrivateMethodInitSpec$1(this, _updateProduct);
	    _classPrivateMethodInitSpec$1(this, _isStoreCollectionEnabled);
	    _classPrivateMethodInitSpec$1(this, _getDefaultCalculationFields);
	    _classPrivateFieldInitSpec$2(this, _fieldCollection, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec$2(this, _errorCollection, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec$2(this, _imageCollection, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec$2(this, _storeCollection, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec$2(this, _productRights, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec$2(this, _calculator, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec$2(this, _offerId, {
	      writable: true,
	      value: null
	    });
	    _classPrivateFieldInitSpec$2(this, _skuTree, {
	      writable: true,
	      value: null
	    });
	    this.options = options || {};
	    this.id = this.options.id || main_core.Text.getRandom();
	    babelHelpers.classPrivateFieldSet(this, _errorCollection, new ErrorCollection(this));
	    babelHelpers.classPrivateFieldSet(this, _imageCollection, new ImageCollection(this));
	    babelHelpers.classPrivateFieldSet(this, _fieldCollection, new FieldCollection(this));
	    babelHelpers.classPrivateFieldSet(this, _storeCollection, new StoreCollection(this));
	    var settings = main_core.Extension.getSettings('catalog.product-model');
	    babelHelpers.classPrivateFieldSet(this, _productRights, settings.get('catalogProductRights'));
	    if (settings.get('isExternalCatalog')) {
	      this.setOption('isSaveable', false);
	    }
	    if (main_core.Type.isObject(options.fields)) {
	      this.initFields(options.fields, false);
	    }
	    if (_classPrivateMethodGet$1(this, _isStoreCollectionEnabled, _isStoreCollectionEnabled2).call(this)) {
	      if (main_core.Type.isNil(options.storeMap)) {
	        babelHelpers.classPrivateFieldGet(this, _storeCollection).refresh();
	      } else {
	        babelHelpers.classPrivateFieldGet(this, _storeCollection).init(options.storeMap);
	      }
	    }
	    if (main_core.Type.isObject(options.skuTree)) {
	      this.setSkuTree(options.skuTree);
	    }
	    if (main_core.Type.isObject(options.imageInfo)) ;
	    babelHelpers.classPrivateFieldSet(this, _calculator, new catalog_productCalculator.ProductCalculator(_classPrivateMethodGet$1(this, _getDefaultCalculationFields, _getDefaultCalculationFields2).call(this), {
	      currencyId: this.options.currency,
	      pricePrecision: this.options.pricePrecision || 2,
	      commonPrecision: this.options.pricePrecision || 2
	    }));
	    babelHelpers.classPrivateFieldGet(this, _calculator).setCalculationStrategy(new catalog_productCalculator.TaxForPriceStrategy(babelHelpers.classPrivateFieldGet(this, _calculator)));
	    instances.set(this.id, this);
	  }
	  babelHelpers.createClass(ProductModel, [{
	    key: "checkAccess",
	    value: function checkAccess(action) {
	      var _babelHelpers$classPr;
	      return main_core.Text.toBoolean((_babelHelpers$classPr = babelHelpers.classPrivateFieldGet(this, _productRights)[action]) !== null && _babelHelpers$classPr !== void 0 ? _babelHelpers$classPr : false);
	    }
	  }, {
	    key: "getOption",
	    value: function getOption(name) {
	      var _this$options$name;
	      var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
	      return (_this$options$name = this.options[name]) !== null && _this$options$name !== void 0 ? _this$options$name : defaultValue;
	    }
	  }, {
	    key: "setOption",
	    value: function setOption(name) {
	      var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
	      this.options[name] = value;
	      return this;
	    }
	  }, {
	    key: "setSkuTree",
	    value: function setSkuTree() {
	      var skuTree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
	      babelHelpers.classPrivateFieldSet(this, _skuTree, skuTree);
	      return this;
	    }
	  }, {
	    key: "clearSkuTree",
	    value: function clearSkuTree() {
	      babelHelpers.classPrivateFieldSet(this, _skuTree, null);
	      return this;
	    }
	  }, {
	    key: "getSkuTree",
	    value: function getSkuTree() {
	      return babelHelpers.classPrivateFieldGet(this, _skuTree);
	    }
	  }, {
	    key: "getCalculator",
	    value: function getCalculator() {
	      return babelHelpers.classPrivateFieldGet(this, _calculator);
	    }
	  }, {
	    key: "getErrorCollection",
	    value: function getErrorCollection() {
	      return babelHelpers.classPrivateFieldGet(this, _errorCollection);
	    }
	  }, {
	    key: "getImageCollection",
	    value: function getImageCollection() {
	      return babelHelpers.classPrivateFieldGet(this, _imageCollection);
	    }
	  }, {
	    key: "getFields",
	    value: function getFields() {
	      return babelHelpers.classPrivateFieldGet(this, _fieldCollection).getFields();
	    }
	  }, {
	    key: "getStoreCollection",
	    value: function getStoreCollection() {
	      return babelHelpers.classPrivateFieldGet(this, _storeCollection);
	    }
	  }, {
	    key: "getField",
	    value: function getField(fieldName) {
	      return babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField(fieldName);
	    }
	  }, {
	    key: "setField",
	    value: function setField(fieldName, value) {
	      babelHelpers.classPrivateFieldGet(this, _fieldCollection).setField(fieldName, value);
	      if ((fieldName === 'SKU_ID' || fieldName === 'PRODUCT_ID') && this.getSkuId() !== babelHelpers.classPrivateFieldGet(this, _offerId)) {
	        babelHelpers.classPrivateFieldSet(this, _offerId, this.getSkuId());
	        if (babelHelpers.classPrivateFieldGet(this, _offerId) > 0 && _classPrivateMethodGet$1(this, _isStoreCollectionEnabled, _isStoreCollectionEnabled2).call(this)) {
	          babelHelpers.classPrivateFieldGet(this, _storeCollection).refresh();
	        }
	      }
	      return this;
	    }
	  }, {
	    key: "setFields",
	    value: function setFields(fields) {
	      var _this = this;
	      Object.keys(fields).forEach(function (key) {
	        _this.setField(key, fields[key]);
	      });
	      return this;
	    }
	  }, {
	    key: "initFields",
	    value: function initFields(fields) {
	      var refreshStoreInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
	      babelHelpers.classPrivateFieldGet(this, _fieldCollection).initFields(fields);
	      babelHelpers.classPrivateFieldSet(this, _offerId, this.getSkuId());
	      if (refreshStoreInfo && _classPrivateMethodGet$1(this, _isStoreCollectionEnabled, _isStoreCollectionEnabled2).call(this)) {
	        babelHelpers.classPrivateFieldGet(this, _storeCollection).refresh();
	      }
	      return this;
	    }
	  }, {
	    key: "removeField",
	    value: function removeField(fieldName) {
	      babelHelpers.classPrivateFieldGet(this, _fieldCollection).removeField(fieldName);
	      return this;
	    }
	  }, {
	    key: "isChanged",
	    value: function isChanged() {
	      return babelHelpers.classPrivateFieldGet(this, _fieldCollection).isChanged();
	    }
	  }, {
	    key: "isNew",
	    value: function isNew() {
	      return this.getOption('isNew', false);
	    }
	  }, {
	    key: "getSkuId",
	    value: function getSkuId() {
	      return this.getField('SKU_ID') || this.getProductId();
	    }
	  }, {
	    key: "getProductId",
	    value: function getProductId() {
	      return this.getField('PRODUCT_ID') || null;
	    }
	  }, {
	    key: "isCatalogExisted",
	    value: function isCatalogExisted() {
	      return this.getSkuId() > 0;
	    }
	  }, {
	    key: "isEmpty",
	    value: function isEmpty() {
	      return this.getProductId() === null && !this.isSimple();
	    }
	  }, {
	    key: "isSimple",
	    value: function isSimple() {
	      return this.getOption('isSimpleModel', false);
	    }
	  }, {
	    key: "getIblockId",
	    value: function getIblockId() {
	      return this.getOption('iblockId', 0);
	    }
	  }, {
	    key: "getBasePriceId",
	    value: function getBasePriceId() {
	      return this.getOption('basePriceId', 0);
	    }
	  }, {
	    key: "getCurrency",
	    value: function getCurrency() {
	      return this.getOption('currency', null);
	    }
	  }, {
	    key: "getDetailPath",
	    value: function getDetailPath() {
	      return this.getOption('detailPath', '');
	    }
	  }, {
	    key: "setDetailPath",
	    value: function setDetailPath(value) {
	      this.options['detailPath'] = value || '';
	    }
	  }, {
	    key: "isService",
	    value: function isService() {
	      var type = parseInt(this.getField('TYPE'));
	      return type === 7; // \Bitrix\Catalog\ProductTable::TYPE_SERVICE
	    }
	  }, {
	    key: "showSaveNotifier",
	    value: function showSaveNotifier(id, options) {
	      if (!this.isCatalogExisted()) {
	        return;
	      }
	      var title = options.title || '';
	      var closeEventName = BX.UI.Notification.Event.getFullName('onClose');
	      var cancelEventName = BX.UI.Notification.Event.getFullName('onCancel');
	      new Promise(function (resolve) {
	        var currentBalloon = BX.UI.Notification.Center.getBalloonByCategory(ProductModel.SAVE_NOTIFICATION_CATEGORY);
	        if (currentBalloon && currentBalloon.getId() !== id) {
	          setTimeout(function () {
	            currentBalloon.close();
	            setTimeout(resolve, 400);
	          }, 200);
	        } else {
	          resolve();
	        }
	      }).then(function () {
	        var notify = BX.UI.Notification.Center.getBalloonById(id);
	        if (!notify) {
	          var notificationOptions = {
	            id: id,
	            closeButton: true,
	            category: ProductModel.SAVE_NOTIFICATION_CATEGORY,
	            autoHideDelay: 4000,
	            content: main_core.Tag.render(_templateObject || (_templateObject = babelHelpers.taggedTemplateLiteral(["<div>", "</div>"])), title)
	          };
	          if (options.disableCancel !== true) {
	            notificationOptions.actions = [{
	              title: options.declineCancelTitle || main_core.Loc.getMessage('CATALOG_PRODUCT_MODEL_SAVING_NOTIFICATION_DECLINE_SAVE'),
	              events: {
	                click: function click(event, balloon) {
	                  BX.removeAllCustomEvents(notify, closeEventName);
	                  balloon.fireEvent('onCancel');
	                  balloon.close();
	                }
	              }
	            }];
	          }
	          notify = BX.UI.Notification.Center.notify(notificationOptions);
	        }
	        BX.removeAllCustomEvents(notify, closeEventName);
	        notify.addEvent('onClose', function () {
	          var _options$events;
	          if (main_core.Type.isFunction(options === null || options === void 0 ? void 0 : (_options$events = options.events) === null || _options$events === void 0 ? void 0 : _options$events.onSave)) {
	            options.events.onSave();
	          }
	        });
	        BX.removeAllCustomEvents(notify, cancelEventName);
	        notify.addEvent('onCancel', function () {
	          var _options$events2;
	          if (main_core.Type.isFunction(options === null || options === void 0 ? void 0 : (_options$events2 = options.events) === null || _options$events2 === void 0 ? void 0 : _options$events2.onCancel)) {
	            options.events.onCancel();
	          }
	        });
	        notify.show();
	      });
	    }
	  }, {
	    key: "save",
	    value: function save(savingFieldNames) {
	      var _this2 = this;
	      if (!this.isSaveable()) {
	        return;
	      }
	      return new Promise(function (resolve, reject) {
	        var ajaxResult;
	        if (_this2.isSimple()) {
	          ajaxResult = _classPrivateMethodGet$1(_this2, _createProduct, _createProduct2).call(_this2);
	        } else {
	          ajaxResult = _classPrivateMethodGet$1(_this2, _updateProduct, _updateProduct2).call(_this2, savingFieldNames);
	        }
	        ajaxResult.then(function (event) {
	          babelHelpers.classPrivateFieldGet(_this2, _fieldCollection).clearChanged(savingFieldNames);
	          resolve(event);
	        })["catch"](reject);
	      });
	    }
	  }, {
	    key: "isSaveable",
	    value: function isSaveable() {
	      if (!this.getOption('isSaveable', true) || this.isEmpty()) {
	        return false;
	      }
	      return this.isSimple() ? this.checkAccess(RightActionDictionary.ACTION_PRODUCT_ADD) : this.checkAccess(RightActionDictionary.ACTION_PRODUCT_EDIT);
	    }
	  }, {
	    key: "onErrorCollectionChange",
	    value: function onErrorCollectionChange() {
	      main_core_events.EventEmitter.emit(this, 'onErrorsChange');
	    }
	  }, {
	    key: "onChangeStoreData",
	    value: function onChangeStoreData() {
	      main_core_events.EventEmitter.emit(this, 'onChangeStoreData');
	    }
	  }], [{
	    key: "getLastActiveSaveNotification",
	    value: function getLastActiveSaveNotification() {
	      return BX.UI.Notification.Center.getBalloonByCategory(ProductModel.SAVE_NOTIFICATION_CATEGORY);
	    }
	  }]);
	  return ProductModel;
	}();
	function _getDefaultCalculationFields2() {
	  var defaultPrice = main_core.Text.toNumber(babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('PRICE'));
	  var basePrice = main_core.Type.isNumber(babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('BASE_PRICE')) ? main_core.Text.toNumber(babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('BASE_PRICE')) : defaultPrice;
	  return {
	    'QUANTITY': main_core.Text.toNumber(babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('QUANTITY')),
	    'BASE_PRICE': basePrice,
	    'PRICE': defaultPrice,
	    'PRICE_NETTO': basePrice,
	    'PRICE_BRUTTO': defaultPrice,
	    'PRICE_EXCLUSIVE': babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('PRICE_EXCLUSIVE') || defaultPrice,
	    'DISCOUNT_TYPE_ID': babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('DISCOUNT_TYPE_ID') || catalog_productCalculator.DiscountType.PERCENTAGE,
	    'DISCOUNT_RATE': main_core.Text.toNumber(babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('DISCOUNT_RATE')),
	    'DISCOUNT_SUM': main_core.Text.toNumber(babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('DISCOUNT_SUM')),
	    'TAX_INCLUDED': babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('TAX_INCLUDED') || 'N',
	    'TAX_RATE': main_core.Text.toNumber(babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('TAX_RATE')) || 0,
	    'CUSTOMIZED': babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('CUSTOMIZED') || 'N'
	  };
	}
	function _isStoreCollectionEnabled2() {
	  return this.getOption('isStoreCollectable', true);
	}
	function _updateProduct2(savingFieldNames) {
	  var _this3 = this;
	  if (this.getIblockId() <= 0) {
	    return Promise.reject({
	      status: 'error',
	      errors: ['The iblock id is not set for the model.']
	    });
	  }
	  if (!babelHelpers.classPrivateFieldGet(this, _fieldCollection).isChanged()) {
	    return Promise.resolve({
	      status: 'success',
	      data: {
	        id: this.getSkuId()
	      }
	    });
	  }
	  var savedFields = {};
	  if (!main_core.Type.isArray(savingFieldNames) || savingFieldNames.length === 0) {
	    savedFields = babelHelpers.classPrivateFieldGet(this, _fieldCollection).getChangedFields();
	  } else {
	    var changedFields = babelHelpers.classPrivateFieldGet(this, _fieldCollection).getChangedFields();
	    Object.keys(changedFields).forEach(function (key) {
	      if (savingFieldNames.includes(key)) {
	        if (key === 'PRICE' || key === 'BASE_PRICE') {
	          savedFields['PRICES'] = savedFields['PRICES'] || {};
	          savedFields['PRICES'][_this3.getBasePriceId()] = {
	            PRICE: changedFields[key],
	            CURRENCY: _this3.getCurrency()
	          };
	        } else {
	          savedFields[key] = changedFields[key];
	        }
	      }
	    });
	  }
	  return main_core.ajax.runAction('catalog.productSelector.updateSku', {
	    json: {
	      id: this.getSkuId(),
	      updateFields: savedFields,
	      oldFields: babelHelpers.classPrivateFieldGet(this, _fieldCollection).getChangedValues()
	    }
	  });
	}
	function _createProduct2() {
	  var fields = {
	    NAME: babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('NAME', ''),
	    IBLOCK_ID: this.getIblockId()
	  };
	  var price = babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('BASE_PRICE', null);
	  if (!main_core.Type.isNil(price)) {
	    fields['PRICE'] = price;
	  }
	  var barcode = babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('BARCODE', null);
	  if (!main_core.Type.isNil(barcode)) {
	    fields['BARCODE'] = barcode;
	  }
	  fields['CURRENCY'] = this.getCurrency();
	  var currency = babelHelpers.classPrivateFieldGet(this, _fieldCollection).getField('CURRENCY', null);
	  if (main_core.Type.isStringFilled(currency)) {
	    fields['CURRENCY'] = currency;
	  }
	  return main_core.ajax.runAction('catalog.productSelector.createProduct', {
	    json: {
	      fields: fields
	    }
	  });
	}
	babelHelpers.defineProperty(ProductModel, "SAVE_NOTIFICATION_CATEGORY", 'MODEL_SAVE');

	exports.ProductModel = ProductModel;
	exports.RightActionDictionary = RightActionDictionary;

}((this.BX.Catalog = this.BX.Catalog || {}),BX.Event,BX.Catalog,BX,BX.Catalog));
//# sourceMappingURL=product-model.bundle.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit