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/sale/checkout-form/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/sale/checkout-form/dist/checkout-form.bundle.js
this.BX = this.BX || {};
this.BX.Sale = this.BX.Sale || {};
(function (exports,rest_client,main_core,main_core_events) {
	'use strict';

	function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

	function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

	function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

	var Model = /*#__PURE__*/function () {
	  function Model(fields) {
	    babelHelpers.classCallCheck(this, Model);
	    babelHelpers.defineProperty(this, "fields", null);
	    babelHelpers.defineProperty(this, "originalFields", null);
	    this.initFields(fields);
	  }

	  babelHelpers.createClass(Model, [{
	    key: "initFields",
	    value: function initFields(fields) {
	      this.fields = new Map(Object.entries(fields));
	      this.originalFields = new Map(Object.entries(fields));
	    }
	  }, {
	    key: "hasField",
	    value: function hasField(name) {
	      return this.fields.has(name);
	    }
	  }, {
	    key: "getFields",
	    value: function getFields() {
	      var fields = {};

	      var _iterator = _createForOfIteratorHelper(this.fields),
	          _step;

	      try {
	        for (_iterator.s(); !(_step = _iterator.n()).done;) {
	          var _step$value = babelHelpers.slicedToArray(_step.value, 2),
	              k = _step$value[0],
	              v = _step$value[1];

	          fields[k] = v;
	        }
	      } catch (err) {
	        _iterator.e(err);
	      } finally {
	        _iterator.f();
	      }

	      return fields;
	    }
	  }, {
	    key: "getField",
	    value: function getField(name) {
	      var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
	      return this.fields.has(name) ? this.fields.get(name) : defaultValue;
	    }
	  }, {
	    key: "getOriginalField",
	    value: function getOriginalField(name) {
	      return this.originalFields.has(name) ? this.originalFields.get(name) : null;
	    }
	  }, {
	    key: "setField",
	    value: function setField(name, value) {
	      this.fields.set(name, value);
	      return this.getOriginalField(name) === value;
	    }
	  }]);
	  return Model;
	}();

	function _templateObject() {
	  var data = babelHelpers.taggedTemplateLiteral(["<div></div>"]);

	  _templateObject = function _templateObject() {
	    return data;
	  };

	  return data;
	}
	var BaseBlock = /*#__PURE__*/function (_EventEmitter) {
	  babelHelpers.inherits(BaseBlock, _EventEmitter);

	  function BaseBlock(form) {
	    var _this;

	    var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
	    babelHelpers.classCallCheck(this, BaseBlock);
	    _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(BaseBlock).call(this));
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "form", null);
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "settings", null);
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "cache", new main_core.Cache.MemoryCache());
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "mode", BaseBlock.EDIT_MODE);

	    _this.setEventNamespace('BX.Sale.CheckoutForm.Block');

	    _this.form = form;
	    _this.settings = settings;
	    return _this;
	  }

	  babelHelpers.createClass(BaseBlock, [{
	    key: "getForm",
	    value: function getForm() {
	      return this.form;
	    }
	  }, {
	    key: "getModel",
	    value: function getModel() {
	      return this.getForm().getModel();
	    }
	  }, {
	    key: "getCache",
	    value: function getCache() {
	      return this.cache;
	    }
	  }, {
	    key: "getWrapper",
	    value: function getWrapper() {
	      var _this2 = this;

	      return this.getCache().remember('wrapper', function () {
	        var wrapper;

	        if (_this2.hasSetting('wrapperId')) {
	          wrapper = document.getElementById(_this2.getSetting('wrapperId'));

	          if (!main_core.Type.isDomNode(wrapper)) {
	            throw new Error("Can't find block wrapper with id '".concat(_this2.getSetting('wrapperId'), "'."));
	          }
	        } else {
	          wrapper = main_core.Tag.render(_templateObject());

	          _this2.getForm().getContainer().appendChild(wrapper);
	        }

	        return wrapper;
	      });
	    }
	  }, {
	    key: "hasSetting",
	    value: function hasSetting(name) {
	      return name in this.settings;
	    }
	  }, {
	    key: "getSetting",
	    value: function getSetting(name) {
	      var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
	      return this.settings[name] || defaultValue;
	    }
	  }, {
	    key: "getMode",
	    value: function getMode() {
	      return this.mode;
	    }
	  }, {
	    key: "setMode",
	    value: function setMode(mode) {
	      this.mode = mode;
	    }
	  }, {
	    key: "getType",
	    value: function getType() {
	      return this.getSetting('type');
	    }
	  }, {
	    key: "getStage",
	    value: function getStage() {
	      return this.getSetting('stage', Stage.INITIAL);
	    }
	  }, {
	    key: "isSuccess",
	    value: function isSuccess() {
	      return this.getSetting('type') === BlockType.SUCCESS;
	    }
	  }, {
	    key: "refreshLayout",
	    value: function refreshLayout() {
	      var forceLayout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
	      var mode;
	      var formStage = this.getForm().getStage();
	      var blockStage = this.getStage();

	      if (main_core.Type.isPlainObject(blockStage)) {
	        var viewStage = blockStage.view,
	            editStage = blockStage.edit,
	            hideStage = blockStage.hide;
	        var currentStage = 0;

	        while (currentStage <= formStage) {
	          if (currentStage === hideStage) {
	            mode = undefined;
	          } else if (currentStage === editStage) {
	            mode = BaseBlock.EDIT_MODE;
	          } else if (currentStage === viewStage) {
	            mode = BaseBlock.VIEW_MODE;
	          }

	          currentStage++;
	        }
	      } else if (main_core.Type.isNumber(blockStage)) {
	        if (blockStage <= formStage) {
	          mode = BaseBlock.EDIT_MODE;
	        }
	      }

	      this.clearLayout();

	      if (mode || forceLayout) {
	        if (mode) {
	          this.setMode(mode);
	        }

	        this.layout();
	      }
	    }
	  }, {
	    key: "clearLayout",
	    value: function clearLayout() {
	      if (this.getCache().has('wrapper')) {
	        var wrapper = this.getWrapper();

	        if (main_core.Type.isDomNode(wrapper)) {
	          main_core.Event.unbindAll(wrapper);

	          if (this.hasSetting('wrapperId')) {
	            main_core.Dom.clean(wrapper);
	          } else {
	            main_core.Dom.remove(wrapper);
	          }

	          this.getCache().delete('wrapper');
	        }
	      }
	    }
	  }, {
	    key: "layout",
	    value: function layout() {
	      throw new Error('Not implemented method.');
	    }
	  }]);
	  return BaseBlock;
	}(main_core_events.EventEmitter);
	babelHelpers.defineProperty(BaseBlock, "VIEW_MODE", 'view');
	babelHelpers.defineProperty(BaseBlock, "EDIT_MODE", 'edit');

	function _templateObject5() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-item-price-discount-container d-flex justify-content-between align-items-center\">\n\t\t\t\t<span class=\"checkout-item-price-discount\">", "</span>\n\t\t\t\t<span class=\"checkout-item-price-discount-diff\">-", "</span>\n\t\t\t</div>\n\t\t"]);

	  _templateObject5 = function _templateObject5() {
	    return data;
	  };

	  return data;
	}

	function _templateObject4() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<table>\n\t\t\t\t<tr class=\"checkout-item-summary\">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-summary\">\n\t\t\t\t\t\t\t<span>", "</span>\n<!--\t\t\t\t\t\t\t<span class=\"checkout-icon-helper\"></span>-->\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-item-price-block\">\n\t\t\t\t\t\t\t", "\n\t\t\t\t\t\t\t<span class=\"checkout-item-price\">", "</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t"]);

	  _templateObject4 = function _templateObject4() {
	    return data;
	  };

	  return data;
	}

	function _templateObject3() {
	  var data = babelHelpers.taggedTemplateLiteral(["<div class=\"checkout-item-props\">", ": ", "</div>"]);

	  _templateObject3 = function _templateObject3() {
	    return data;
	  };

	  return data;
	}

	function _templateObject2() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-item-price-discount-container d-flex justify-content-between align-items-center\">\n\t\t\t\t<span class=\"checkout-item-price-discount\">", "</span>\n\t\t\t\t<span class=\"checkout-item-price-discount-diff\">-", "</span>\n\t\t\t</div>\n\t\t"]);

	  _templateObject2 = function _templateObject2() {
	    return data;
	  };

	  return data;
	}

	function _templateObject$1() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t<table>\n\t\t\t\t\t<tr class=\"checkout-item\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div class=\"checkout-item-info\">\n\t\t\t\t\t\t\t\t<div class=\"checkout-item-image-block\">\n\t\t\t\t\t\t\t\t\t<div \n\t\t\t\t\t\t\t\t\t\tclass=\"checkout-item-remove-btn\" \n\t\t\t\t\t\t\t\t\t\tdata-item-id=\"", "\"\n\t\t\t\t\t\t\t\t\t\tonclick=\"", "\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<svg class=\"checkout-item-remove-btn-icon\"  width=\"8\" height=\"9\" viewBox=\"0 0 8 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.18631 0.79834L0.0958433 1.88881L2.70705 4.50001L0.0957031 7.11136L1.18617 8.20182L3.79752 5.59048L6.40848 8.20145L7.49895 7.11098L4.88798 4.50001L7.49881 1.88918L6.40834 0.798718L3.79752 3.40955L1.18631 0.79834Z\" fill=\"#C4C4C4\"/>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<img src=\"", "\" alt=\"\" class=\"checkout-item-image\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"checkout-item-name-block\">\n\t\t\t\t\t\t\t\t\t<h2 class=\"checkout-item-name\">", "</h2>\n\t\t\t\t\t\t\t\t\t<div>", "</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"checkout-item-quantity-block\">\n\t\t\t\t\t\t\t\t\t<div class=\"checkout-item-quantity-field-container\">\n<!--\t\t\t\t\t\t\t\t\t\t<div class=\"checkout-item-quantity-btn-minus no-select\"></div>-->\n\t\t\t\t\t\t\t\t\t\t<div class=\"checkout-item-quantity-field-block\">\n\t\t\t\t\t\t\t\t\t\t<input class=\"checkout-item-quantity-field\" type=\"text\" inputmode=\"numeric\" value=\"", "\">\n\t\t\t\t\t\t\t\t\t\t</div>\n<!--\t\t\t\t\t\t\t\t\t\t<div class=\"checkout-item-quantity-btn-plus no-select\"></div>-->\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<span class=\"checkout-item-quantity-description\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"checkout-item-quantity-description-text\">", "</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"checkout-item-quantity-description-price\"></span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div class=\"checkout-item-price-block\">\n\t\t\t\t\t\t\t\t", "\n\t\t\t\t\t\t\t\t<span class=\"checkout-item-price\">", "</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t"]);

	  _templateObject$1 = function _templateObject() {
	    return data;
	  };

	  return data;
	}
	var Basket = /*#__PURE__*/function (_BaseBlock) {
	  babelHelpers.inherits(Basket, _BaseBlock);

	  function Basket(form) {
	    var _this;

	    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
	    babelHelpers.classCallCheck(this, Basket);
	    _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Basket).call(this, form, options));
	    _this.deleteItemHandler = _this.delete.bind(babelHelpers.assertThisInitialized(_this));
	    return _this;
	  }

	  babelHelpers.createClass(Basket, [{
	    key: "delete",
	    value: function _delete(event) {
	      var _this2 = this;

	      var div = event.target;

	      if (!main_core.Type.isDomNode(div)) {
	        return;
	      }

	      var itemId = div.getAttribute('data-item-id');
	      main_core.ajax.runAction('sale.entity.deletebasketitem', {
	        data: {
	          id: itemId
	        }
	      }).then(function (response) {
	        var redirectPath = _this2.getForm().getParameter('currentPage');

	        if (main_core.Type.isStringFilled(redirectPath)) {
	          document.location.href = redirectPath;
	        }
	      });
	    }
	  }, {
	    key: "layout",
	    value: function layout() {
	      this.getWrapper().appendChild( // workaround: Tag.render`` can't render table with dynamic rows content
	      main_core.Dom.create('table', {
	        attrs: {
	          className: 'checkout-item-list'
	        },
	        children: [].concat(babelHelpers.toConsumableArray(this.getProducts()), [this.getTotalNode()])
	      }));
	    }
	  }, {
	    key: "getBasketItems",
	    value: function getBasketItems() {
	      return this.getForm().getSchemeField('basketItems', []);
	    }
	  }, {
	    key: "getBasketPositionsCount",
	    value: function getBasketPositionsCount() {
	      return this.getBasketItems().length;
	    }
	  }, {
	    key: "getProducts",
	    value: function getProducts() {
	      var _this3 = this;

	      var itemNodes = [];
	      this.getBasketItems().forEach(function (item) {
	        var discountNode = _this3.getItemDiscountNode(item);

	        var propsNode = _this3.getItemPropsNode(item);

	        var imageSrc = item.catalogProduct.frontImage ? item.catalogProduct.frontImage.src : '';
	        var itemNode = main_core.Tag.render(_templateObject$1(), item.id, _this3.deleteItemHandler, imageSrc, main_core.Text.encode(item.name), propsNode, item.quantity, main_core.Text.encode(item.measureText), discountNode, item.sum);
	        itemNodes.push(_this3.getFirstRowFromTable(itemNode));
	      });
	      return itemNodes;
	    }
	  }, {
	    key: "getItemDiscountNode",
	    value: function getItemDiscountNode(item) {
	      if (item.sumDiscountDiff === 0) {
	        return '';
	      }

	      return main_core.Tag.render(_templateObject2(), item.sumBaseFormated, item.sumDiscountDiffFormated);
	    }
	  }, {
	    key: "getItemPropsNode",
	    value: function getItemPropsNode(item) {
	      if (item.props === 0) {
	        return '';
	      }

	      var propsItems = {};
	      var propsItemsDom = [];
	      item.props.forEach(function (i) {
	        propsItems[i] = {
	          name: i.name,
	          value: i.value
	        };
	        var domRender = main_core.Tag.render(_templateObject3(), propsItems[i].name, propsItems[i].value);
	        propsItemsDom.push(domRender);
	      });
	      return propsItemsDom;
	    }
	  }, {
	    key: "getTotalData",
	    value: function getTotalData() {
	      return this.getForm().getSchemeField('orderPriceTotal', {});
	    }
	  }, {
	    key: "getTotalNode",
	    value: function getTotalNode() {
	      var total = this.getTotalData();
	      var discountNode = this.getTotalDiscountNode(total);
	      var subTotalNode = main_core.Tag.render(_templateObject4(), main_core.Loc.getMessage('SALE_BLOCKS_BASKET_ITEMS'), discountNode, total.orderPriceFormated);
	      return this.getFirstRowFromTable(subTotalNode);
	    }
	  }, {
	    key: "getTotalDiscountNode",
	    value: function getTotalDiscountNode(total) {
	      if (total.basketPriceDiscountDiffValue === 0) {
	        return '';
	      }

	      return main_core.Tag.render(_templateObject5(), total.priceWithoutDiscount, total.basketPriceDiscountDiff);
	    } // workaround: Tag.render`` can't render tr/td nodes without table node

	  }, {
	    key: "getFirstRowFromTable",
	    value: function getFirstRowFromTable(table) {
	      return table.rows[0];
	    }
	  }]);
	  return Basket;
	}(BaseBlock);

	function _templateObject5$1() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<table>\n\t\t\t\t<tr class=\"checkout-summary-item checkout-summary-item-total\">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-summary\">\n\t\t\t\t\t\t\t<span>", "</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-item-price-block\">\n<!--\t\t\t\t\t\t\t<span class=\"checkout-item-price\">", "</span>-->\n\t\t\t\t\t\t\t<span class=\"checkout-item-price\">", "</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t"]);

	  _templateObject5$1 = function _templateObject5() {
	    return data;
	  };

	  return data;
	}

	function _templateObject4$1() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<table>\n\t\t\t\t<tr class=\"checkout-summary-item\">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-summary\">\n\t\t\t\t\t\t\t<span>", "</span>\n\t\t\t\t\t\t\t<span class=\"checkout-icon-helper\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-item-price-block\">\n\t\t\t\t\t\t\t<span class=\"checkout-item-price\">$13.99</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t"]);

	  _templateObject4$1 = function _templateObject4() {
	    return data;
	  };

	  return data;
	}

	function _templateObject3$1() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<table>\n\t\t\t\t<tr class=\"checkout-summary-item\">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-summary\">\n\t\t\t\t\t\t\t<span>", "</span>\n<!--\t\t\t\t\t\t\t<span class=\"checkout-icon-helper\"></span>-->\n\t\t\t\t\t\t\t<div class=\"checkout-summary-item-description\">", "</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-item-price-block\">\n\t\t\t\t\t\t\t<span class=\"checkout-item-price\">$10.55</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t"]);

	  _templateObject3$1 = function _templateObject3() {
	    return data;
	  };

	  return data;
	}

	function _templateObject2$1() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<table>\n\t\t\t\t<tr class=\"checkout-summary-item checkout-summary-item-discount\">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-summary\">\n\t\t\t\t\t\t\t<span>", "</span>\n<!--\t\t\t\t\t\t\t<span class=\"checkout-icon-helper\"></span>-->\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-item-price-block\">\n\t\t\t\t\t\t\t<span class=\"checkout-summary-item-price-discount\">-", "</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t"]);

	  _templateObject2$1 = function _templateObject2() {
	    return data;
	  };

	  return data;
	}

	function _templateObject$2() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<table>\n\t\t\t\t<tr class=\"checkout-summary-item checkout-summary-item-subtotal\">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-summary\">\n\t\t\t\t\t\t\t<span>", "</span>\n<!--\t\t\t\t\t\t\t<span class=\"checkout-icon-helper\"></span>-->\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<div class=\"checkout-item-price-block\">\n\t\t\t\t\t\t\t<span class=\"checkout-item-price\">", "</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t"]);

	  _templateObject$2 = function _templateObject() {
	    return data;
	  };

	  return data;
	}
	var Total = /*#__PURE__*/function (_BaseBlock) {
	  babelHelpers.inherits(Total, _BaseBlock);

	  function Total() {
	    babelHelpers.classCallCheck(this, Total);
	    return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Total).apply(this, arguments));
	  }

	  babelHelpers.createClass(Total, [{
	    key: "layout",
	    value: function layout() {
	      var total = this.getForm().getSchemeField('orderPriceTotal');
	      this.getWrapper().appendChild( // workaround: Tag.render`` can't render table with dynamic rows content
	      main_core.Dom.create('table', {
	        attrs: {
	          className: 'checkout-summary-list'
	        },
	        children: [this.getBasketTotalNode(total), this.getDiscountNode(total), this.getShippingNode(total), this.getTaxesNode(total), this.getSummaryNode(total)]
	      }));
	    }
	  }, {
	    key: "getBasketPositionsCount",
	    value: function getBasketPositionsCount() {
	      return this.getForm().getSchemeField('basketItems', []).length;
	    }
	  }, {
	    key: "getBasketTotalNode",
	    value: function getBasketTotalNode(total) {
	      return this.getFirstRowFromTable(main_core.Tag.render(_templateObject$2(), main_core.Loc.getMessage('SALE_BLOCKS_TOTAL_ITEMS'), total.priceWithoutDiscount));
	    }
	  }, {
	    key: "getDiscountNode",
	    value: function getDiscountNode(total) {
	      if (total.discountPrice === 0) {
	        return '';
	      }

	      return this.getFirstRowFromTable(main_core.Tag.render(_templateObject2$1(), main_core.Loc.getMessage('SALE_BLOCKS_TOTAL_DISCOUNT'), total.discountPriceFormated));
	    }
	  }, {
	    key: "getShippingNode",
	    value: function getShippingNode(total) {
	      {
	        return '';
	      }

	      return this.getFirstRowFromTable(main_core.Tag.render(_templateObject3$1(), main_core.Loc.getMessage('SALE_BLOCKS_TOTAL_NAME'), main_core.Loc.getMessage('SALE_BLOCKS_TOTAL_DESCRIPTION')));
	    }
	  }, {
	    key: "getTaxesNode",
	    value: function getTaxesNode(total) {
	      {
	        return '';
	      }

	      return this.getFirstRowFromTable(main_core.Tag.render(_templateObject4$1(), main_core.Loc.getMessage('SALE_BLOCKS_TOTAL_TAXES')));
	    }
	  }, {
	    key: "getSummaryNode",
	    value: function getSummaryNode(total) {
	      return this.getFirstRowFromTable(main_core.Tag.render(_templateObject5$1(), main_core.Loc.getMessage('SALE_BLOCKS_TOTAL_TOTAL'), total.orderTotalPriceFormated, total.orderPriceFormated));
	    } // workaround: Tag.render`` can't render tr/td nodes without table node

	  }, {
	    key: "getFirstRowFromTable",
	    value: function getFirstRowFromTable(table) {
	      return table.rows[0];
	    }
	  }]);
	  return Total;
	}(BaseBlock);

	var Loader = /*#__PURE__*/function (_BaseBlock) {
	  babelHelpers.inherits(Loader, _BaseBlock);

	  function Loader() {
	    babelHelpers.classCallCheck(this, Loader);
	    return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Loader).apply(this, arguments));
	  }

	  babelHelpers.createClass(Loader, [{
	    key: "layout",
	    value: function layout() {
	      this.getWrapper();
	      this.clearLayout();
	    }
	  }]);
	  return Loader;
	}(BaseBlock);

	function _templateObject2$2() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-checkout-method-list\">\n\t\t\t\t", "\n\t\t\t</div>\n\t\t"]);

	  _templateObject2$2 = function _templateObject2() {
	    return data;
	  };

	  return data;
	}

	function _templateObject$3() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t<div class=\"checkout-checkout-method\">\n\t\t\t\t\t<div class=\"checkout-checkout-method-image-block\">\n\t\t\t\t\t\t<img src=\"", "\" alt=\"\" class=\"checkout-checkout-method-img\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"checkout-checkout-method-name-block\">\n\t\t\t\t\t\t<div class=\"checkout-checkout-method-name\">", "</div>\n\t\t\t\t\t\t<div class=\"checkout-checkout-method-description\">", "</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"checkout-checkout-method-btn-block\">\n\t\t\t\t\t\t<button \n\t\t\t\t\t\t\tclass=\"btn btn-primary checkout-checkout-btn btn-sm rounded-pill\"\n\t\t\t\t\t\t\tdata-paysystem-id=\"", "\"\n\t\t\t\t\t\t\tonclick=\"", "\"\n\t\t\t\t\t\t>Checkout</button>\n<!--\t\t\t\t\t\t<button class=\"checkout-checkout-btn checkout-checkout-btn-selected btn btn-sm rounded-pill\">Selected</button>-->\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t"]);

	  _templateObject$3 = function _templateObject() {
	    return data;
	  };

	  return data;
	}
	var Payments = /*#__PURE__*/function (_BaseBlock) {
	  babelHelpers.inherits(Payments, _BaseBlock);

	  function Payments() {
	    babelHelpers.classCallCheck(this, Payments);
	    return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Payments).apply(this, arguments));
	  }

	  babelHelpers.createClass(Payments, [{
	    key: "refreshLayout",
	    value: function refreshLayout() {
	      var forceLayout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
	      var mode;
	      var formStage = this.getForm().getStage();
	      var blockStage = this.getStage();

	      if (main_core.Type.isPlainObject(blockStage)) {
	        var viewStage = blockStage.view,
	            editStage = blockStage.edit,
	            hideStage = blockStage.hide;
	        var currentStage = 0;

	        while (currentStage <= formStage) {
	          if (currentStage === hideStage) {
	            mode = undefined;
	          } else if (currentStage === editStage) {
	            mode = BaseBlock.EDIT_MODE;
	          } else if (currentStage === viewStage) {
	            mode = BaseBlock.VIEW_MODE;
	          }

	          currentStage++;
	        }
	      } else if (main_core.Type.isNumber(blockStage)) {
	        if (blockStage <= formStage) {
	          mode = BaseBlock.EDIT_MODE;
	        }
	      }

	      this.clearLayout();

	      if (mode || forceLayout) {
	        if (mode) {
	          this.setMode(mode);
	        }

	        this.layout();
	      }
	    }
	  }, {
	    key: "layout",
	    value: function layout() {
	      var access = this.getForm().getSchemeField('hash');
	      var paySystemReturnUrl = this.getForm().getParameter('paySystemReturnUrl');
	      var payments = this.getForm().getField('payments');
	      var paymentId = 0;
	      Object.keys(payments).forEach(function (id) {
	        paymentId = id;
	        return false;
	      });
	      main_core.ajax.runAction('sale.entity.paymentpay', {
	        data: {
	          fields: {
	            paymentId: paymentId,
	            accessCode: access,
	            returnUrl: paySystemReturnUrl
	          }
	        }
	      }).then(this.getPaySystemsList.bind(this)); //${this.getPaySystemNodes()}
	    }
	  }, {
	    key: "getPaySystemsList",
	    value: function getPaySystemsList(response) {
	      var _this = this;

	      var wrapper = this.getWrapper();

	      if (BX.type.isPlainObject(response.data) && BX.type.isNotEmptyString(response.data.html)) {
	        BX.html(wrapper, response.data.html);
	        BX.addCustomEvent('onChangePaySystems', function () {
	          _this.getForm().refreshLayout();
	        });
	      }
	    }
	  }, {
	    key: "getPaySystems",
	    value: function getPaySystems() {
	      return this.getForm().getSchemeField('paySystems', []);
	    }
	  }, {
	    key: "getPaySystemNodes",
	    value: function getPaySystemNodes() {
	      var _this2 = this;

	      var paySystemNodes = [];
	      this.getPaySystems().forEach(function (item) {
	        paySystemNodes.push(main_core.Tag.render(_templateObject$3(), item.logotipSrc, main_core.Text.encode(item.name), main_core.Text.encode(item.description), item.id, _this2.handleCheckoutClick.bind(_this2)));
	      });
	      return main_core.Tag.render(_templateObject2$2(), paySystemNodes);
	    }
	  }, {
	    key: "handleCheckoutClick",
	    value: function handleCheckoutClick(event) {
	      var paySystemId = main_core.Text.toNumber(event.target.getAttribute('data-paysystem-id'));
	      this.getForm().setFieldNoDemand('paySystemId', paySystemId);
	      event.target.setAttribute('disabled', 'disabled');
	      main_core.Dom.addClass(event.target, 'checkout-checkout-btn-selected');
	      event.target.innerHTML = '<span class="spinner-border spinner-border-sm mr-2"></span>' + event.target.innerHTML;
	      var payments = this.getForm().getField('payments');
	      var paymentId = 0;
	      Object.keys(payments).forEach(function (id) {
	        paymentId = id;
	        return false;
	      });
	      main_core.ajax.runAction('sale.entity.paymentpay', {
	        data: {
	          fields: {
	            ID: paymentId
	          }
	        }
	      }).then(function (response) {
	        if (BX.type.isPlainObject(response.data) && BX.type.isNotEmptyString(response.data.html)) {
	          BX.html(event.target, response.data.html);
	        }
	      });
	    }
	  }]);
	  return Payments;
	}(BaseBlock);

	function _templateObject4$2() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t<div class=\"checkout-btn-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"btn btn-primary product-item-detail-buy-button btn-md rounded-pill\"\n\t\t\t\t\t\tonclick=\"", "\"\n\t\t\t\t\t\t>", "</button>\n\t\t\t\t</div>\n\t\t\t"]);

	  _templateObject4$2 = function _templateObject4() {
	    return data;
	  };

	  return data;
	}

	function _templateObject3$2() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t \t<label class=\"checkout-agreement-container\">\n\t\t \t\t<div class=\"checkout-agreement-block\">\n\t\t \t\t\t<input type=\"checkbox\" class=\"checkout-agreement-input\" checked=\"checked\">\n\t\t \t\t</div>\n\t\t \t\t<div class=\"checkout-agreement-block\">\n\t\t \t\t\t<div class=\"checkout-agreement-text\">", "</div>\n\t\t \t\t</div>\n\t\t \t</label>\n\t\t "]);

	  _templateObject3$2 = function _templateObject3() {
	    return data;
	  };

	  return data;
	}

	function _templateObject2$3() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t", "\n\t\t\t\t\t\t\t", "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"]);

	  _templateObject2$3 = function _templateObject2() {
	    return data;
	  };

	  return data;
	}

	function _templateObject$4() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t", "\n\t\t\t\t\t\t\t", "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"]);

	  _templateObject$4 = function _templateObject() {
	    return data;
	  };

	  return data;
	}
	var PlaceOrder = /*#__PURE__*/function (_BaseBlock) {
	  babelHelpers.inherits(PlaceOrder, _BaseBlock);

	  function PlaceOrder(form) {
	    var _this;

	    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
	    babelHelpers.classCallCheck(this, PlaceOrder);
	    _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(PlaceOrder).call(this, form, options));
	    _this.saveOrderHandler = _this.saveOrder.bind(babelHelpers.assertThisInitialized(_this));

	    var properties = _this.getForm().getParameter('userConsentPropertyData');

	    _this.userConsent = {
	      id: 1,
	      title: main_core.Loc.getMessage('SALE_BLOCKS_PLACE_ORDER_NOW'),
	      isLoaded: 'Y',
	      autoSave: 'Y',
	      isChecked: 'Y',
	      submitEventName: 'onUserConsent',
	      fields: main_core.Type.isArrayFilled(properties) ? JSON.stringify(properties) : []
	    };
	    _this.isAllowedSubmitting = _this.userConsent.isChecked === 'Y';
	    return _this;
	  }

	  babelHelpers.createClass(PlaceOrder, [{
	    key: "layout_",
	    value: function layout_() {
	      this.getWrapper().appendChild(main_core.Tag.render(_templateObject$4(), this.getConsent(), this.getSaveButton()));
	    }
	  }, {
	    key: "layout",
	    value: function layout() {
	      var _this2 = this;

	      var wrapper = this.getWrapper();
	      main_core.ajax.runAction('sale.entity.userconsentrequest', {
	        data: {
	          fields: this.userConsent
	        }
	      }).then(function (response) {
	        if (BX.type.isPlainObject(response.data) && BX.type.isNotEmptyString(response.data.html)) {
	          var consent = response.data.html;
	          wrapper.appendChild(main_core.Tag.render(_templateObject2$3(), consent, _this2.getSaveButton()));

	          if (BX.UserConsent !== undefined) {
	            var control = BX.UserConsent.load(wrapper);
	            BX.addCustomEvent(control, BX.UserConsent.events.accepted, function () {
	              return _this2.isAllowedSubmitting = true;
	            });
	            BX.addCustomEvent(control, BX.UserConsent.events.refused, function () {
	              return _this2.isAllowedSubmitting = false;
	            });
	          }
	        }
	      });
	    }
	  }, {
	    key: "getConsent",
	    value: function getConsent() {
	      // todo replace with existing consent api
	      return main_core.Tag.render(_templateObject3$2(), main_core.Loc.getMessage('SALE_BLOCKS_PLACE_ORDER_TEXT'));
	    }
	  }, {
	    key: "getSaveButton",
	    value: function getSaveButton() {
	      var _this3 = this;

	      return this.getCache().remember('save-button', function () {
	        return main_core.Tag.render(_templateObject4$2(), _this3.saveOrderHandler, main_core.Loc.getMessage('SALE_BLOCKS_PLACE_ORDER_NOW'));
	      });
	    }
	  }, {
	    key: "saveOrder",
	    value: function saveOrder() {
	      BX.onCustomEvent(this.userConsent.submitEventName, []);

	      if (this.isAllowedSubmitting) {
	        this.getSaveButton().disabled = true;
	        this.getForm().requestSave();
	      }
	    }
	  }]);
	  return PlaceOrder;
	}(BaseBlock);

	function _templateObject3$3() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t\t<input \n\t\t\t\t\t\ttype=\"", "\"\n\t\t\t\t\t\tclass=\"form-control form-control-lg\"\n\t\t\t\t\t\tplaceholder=\"", "\"\n\t\t\t\t\t\tvalue=\"", "\"\n\t\t\t\t\t\tdata-property-id=\"", "\"\n\t\t\t\t\t\tonchange=\"", "\"\n\t\t\t\t\t\tonfocusout=\"", "\">\n\t\t\t"]);

	  _templateObject3$3 = function _templateObject3() {
	    return data;
	  };

	  return data;
	}

	function _templateObject2$4() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-form-container\">\n\t\t\t\t<div class=\"checkout-form-header\">\n\t\t\t\t\t<div class=\"checkout-form-title\">", "</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"checkout-form-block\">\n\t\t\t\t\t<form>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t", "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t"]);

	  _templateObject2$4 = function _templateObject2() {
	    return data;
	  };

	  return data;
	}

	function _templateObject$5() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div style=\"border-bottom: 1px solid #cecece;\">\n\t\t\t\t<tr class=\"checkout-summary-item\">\n\t\t\t\t\t<td colspan=\"2\">\n\t\t\t\t\t\t<div class=\"checkout-item-personal-order-info\">\n\t\t\t\t\t\t\t<div class=\"checkout-item-personal-order-payment\">\n\t\t\t\t\t\t\t\t<strong>", "</strong>\n\t\t\t\t\t\t\t\t<div>", "</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"checkout-item-personal-order-shipping\">\n\t\t\t\t\t\t\t\t<strong>", "</strong>\n\t\t\t\t\t\t\t\t<div>", "</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</div>\n\t\t"]);

	  _templateObject$5 = function _templateObject() {
	    return data;
	  };

	  return data;
	}
	var Properties = /*#__PURE__*/function (_BaseBlock) {
	  babelHelpers.inherits(Properties, _BaseBlock);

	  function Properties() {
	    babelHelpers.classCallCheck(this, Properties);
	    return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Properties).apply(this, arguments));
	  }

	  babelHelpers.createClass(Properties, [{
	    key: "layout",
	    value: function layout() {
	      this.getWrapper().appendChild(this.getMode() === BaseBlock.VIEW_MODE ? this.getViewLayout() : this.getEditLayout());
	    }
	  }, {
	    key: "getPropertiesShort",
	    value: function getPropertiesShort() {
	      var propertyValues = this.getForm().getField('properties');
	      var properties = [];

	      for (var propertyId in propertyValues) {
	        if (propertyValues.hasOwnProperty(propertyId) && main_core.Type.isStringFilled(propertyValues[propertyId])) {
	          properties.push(propertyValues[propertyId]);
	        }
	      }

	      return properties.join(', ');
	    }
	  }, {
	    key: "getViewLayout",
	    value: function getViewLayout() {
	      var orderNumber = this.getForm().getSchemeField('accountNumber');
	      var propertiesInfo = this.getPropertiesShort();
	      return main_core.Tag.render(_templateObject$5(), main_core.Loc.getMessage('SALE_BLOCKS_PROPERTIES_ORDER_TITLE').replace('#ORDER_NUMBER#', orderNumber), propertiesInfo, main_core.Loc.getMessage('SALE_BLOCKS_PROPERTIES_SHIPPING_METHOD'), main_core.Loc.getMessage('SALE_BLOCKS_PROPERTIES_SHIPPING_METHOD_DESCRIPTION'));
	    }
	  }, {
	    key: "getEditLayout",
	    value: function getEditLayout() {
	      return main_core.Tag.render(_templateObject2$4(), main_core.Loc.getMessage('SALE_BLOCKS_PROPERTIES_TITLE'), this.getProperties());
	    }
	  }, {
	    key: "getProperties",
	    value: function getProperties() {
	      var _this = this;

	      var properties = [];
	      this.getForm().getSchemeField('properties', []).forEach(function (item) {
	        if (item.type === 'STRING') {
	          var value = _this.getForm().getField('properties', {})[item.id] || '';
	          var type = item.isPhone === 'Y' ? 'tel' : 'text';
	          var propertyNode = main_core.Tag.render(_templateObject3$3(), type, main_core.Text.encode(item.name), main_core.Text.encode(value), item.id, _this.onChangeHandler.bind(_this), _this.onFocusOutHandler.bind(_this));
	          BX.addCustomEvent("BX.Sale.Checkout.Property.Error:onSave_" + item.id, function () {
	            main_core.Dom.addClass(propertyNode, 'border-danger');
	            main_core.Dom.removeClass(propertyNode, 'border-success');
	          });
	          properties.push(propertyNode);
	        }
	      });
	      return properties;
	    }
	  }, {
	    key: "onChangeHandler",
	    value: function onChangeHandler(event) {
	      var input = event.target;

	      if (!main_core.Type.isDomNode(input)) {
	        return;
	      }

	      var propertyId = input.getAttribute('data-property-id');
	      var properties = this.getForm().getField('properties');
	      properties[propertyId] = input.value;
	      this.getForm().setFieldNoDemand('properties', properties);
	    }
	  }, {
	    key: "onFocusOutHandler",
	    value: function onFocusOutHandler(event) {
	      var input = event.target;

	      if (!main_core.Type.isDomNode(input)) {
	        return;
	      }

	      if (main_core.Type.isStringFilled(input.value)) {
	        main_core.Dom.addClass(input, 'border-success');
	        main_core.Dom.removeClass(input, 'border-danger');
	      } else {
	        main_core.Dom.addClass(input, 'border-danger');
	        main_core.Dom.removeClass(input, 'border-success');
	      }
	    }
	  }]);
	  return Properties;
	}(BaseBlock);

	function _templateObject8() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-order-status-btn-container\">\n\t\t\t\t<button\n\t\t\t\t\tclass=\"btn btn-checkout-order-status btn-md rounded-pill\"\n\t\t\t\t\tonclick=\"", "\"\n\t\t\t\t>", "</button>\n\t\t\t</div>\n\t\t"]);

	  _templateObject8 = function _templateObject8() {
	    return data;
	  };

	  return data;
	}

	function _templateObject7() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-order-status-btn-container\">\n\t\t\t\t<button\n\t\t\t\t\tclass=\"btn btn-checkout-order-status btn-md rounded-pill\"\n\t\t\t\t\tonclick=\"", "\"\n\t\t\t\t>", "</button>\n\t\t\t</div>\n\t\t"]);

	  _templateObject7 = function _templateObject7() {
	    return data;
	  };

	  return data;
	}

	function _templateObject6() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-order-section-separator\">", "</div>\n\t\t"]);

	  _templateObject6 = function _templateObject6() {
	    return data;
	  };

	  return data;
	}

	function _templateObject5$2() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-order-common-container\">\n\t\t\t\t<div class=\"checkout-order-common-row\">\n\t\t\t\t\t<svg class=\"checkout-order-common-row-icon\" width=\"26\" height=\"27\" viewBox=\"0 0 26 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.9124 26.6569C20.0093 26.6569 25.7624 20.9038 25.7624 13.807C25.7624 6.71014 20.0093 0.957031 12.9124 0.957031C5.81561 0.957031 0.0625 6.71014 0.0625 13.807C0.0625 20.9038 5.81561 26.6569 12.9124 26.6569Z\" fill=\"white\"/>\n\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.8218 19.498L5.72461 14.5304L7.50861 12.7918L10.8218 16.0207L18.3182 8.71484L20.1022 10.4535L10.8218 19.498Z\" fill=\"#65A90F\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div>", "</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"checkout-order-common-row\">\n\t\t\t\t\t<div>", "</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t"]);

	  _templateObject5$2 = function _templateObject5() {
	    return data;
	  };

	  return data;
	}

	function _templateObject4$3() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-order-common-container\">\n\t\t\t\t<div class=\"checkout-order-common-row\">\n\t\t\t\t\t<svg class=\"checkout-order-common-row-icon\" width=\"26\" height=\"27\" viewBox=\"0 0 26 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.9124 26.6569C20.0093 26.6569 25.7624 20.9038 25.7624 13.807C25.7624 6.71014 20.0093 0.957031 12.9124 0.957031C5.81561 0.957031 0.0625 6.71014 0.0625 13.807C0.0625 20.9038 5.81561 26.6569 12.9124 26.6569Z\" fill=\"white\"/>\n\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.8218 19.498L5.72461 14.5304L7.50861 12.7918L10.8218 16.0207L18.3182 8.71484L20.1022 10.4535L10.8218 19.498Z\" fill=\"#65A90F\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div>", "</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t"]);

	  _templateObject4$3 = function _templateObject4() {
	    return data;
	  };

	  return data;
	}

	function _templateObject3$4() {
	  var data = babelHelpers.taggedTemplateLiteral(["\t\t\t\n\t\t\t<div class=\"checkout-order-status-text\">\n\t\t\t\t<strong>", " #", "</strong>\n\t\t\t</div>\n\t\t"]);

	  _templateObject3$4 = function _templateObject3() {
	    return data;
	  };

	  return data;
	}

	function _templateObject2$5() {
	  var data = babelHelpers.taggedTemplateLiteral(["\t\t\t\n\t\t\t<div class=\"checkout-order-status-text\">\n\t\t\t\t<strong>", " #", "</strong> ", "\n\t\t\t</div>\n\t\t"]);

	  _templateObject2$5 = function _templateObject2() {
	    return data;
	  };

	  return data;
	}

	function _templateObject$6() {
	  var data = babelHelpers.taggedTemplateLiteral(["\n\t\t\t<div class=\"checkout-order-status-successful\">\n\t\t\t\t<svg class=\"checkout-order-status-icon\" width=\"105\" height=\"106\" viewBox=\"0 0 105 106\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<path opacity=\"0.6\" stroke=\"#fff\" stroke-width=\"3\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M52.5 104C80.6665 104 103.5 81.1665 103.5 53C103.5 24.8335 80.6665 2 52.5 2C24.3335 2 1.5 24.8335 1.5 53C1.5 81.1665 24.3335 104 52.5 104Z\"/>\n\t\t\t\t\t<path fill=\"#fff\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M45.517 72L28.5 55.4156L34.4559 49.611L45.517 60.3909L70.5441 36L76.5 41.8046L45.517 72Z\"/>\n\t\t\t\t</svg>\t\t\t\t\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t</div>\n\t\t"]);

	  _templateObject$6 = function _templateObject() {
	    return data;
	  };

	  return data;
	}
	var Success = /*#__PURE__*/function (_BaseBlock) {
	  babelHelpers.inherits(Success, _BaseBlock);

	  function Success() {
	    babelHelpers.classCallCheck(this, Success);
	    return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Success).apply(this, arguments));
	  }

	  babelHelpers.createClass(Success, [{
	    key: "layout",
	    value: function layout() {
	      this.getWrapper().appendChild(main_core.Tag.render(_templateObject$6(), this.showBeforePayment(), this.showAfterPayment()));
	      main_core.Dom.addClass(document.body, 'container-overflow-hidden');
	    }
	  }, {
	    key: "clearLayout",
	    value: function clearLayout() {
	      babelHelpers.get(babelHelpers.getPrototypeOf(Success.prototype), "clearLayout", this).call(this);
	      main_core.Dom.removeClass(document.body, 'container-overflow-hidden');
	    }
	  }, {
	    key: "showOrderStatus",
	    value: function showOrderStatus() {
	      var orderNumber = this.getForm().getSchemeField('ACCOUNT_NUMBER');
	      return main_core.Tag.render(_templateObject2$5(), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_ORDER'), main_core.Text.encode(orderNumber), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_ORDER_CREATED'));
	    }
	  }, {
	    key: "showPaymentStatus",
	    value: function showPaymentStatus() {
	      var orderNumber = this.getForm().getSchemeField('ACCOUNT_NUMBER');
	      return main_core.Tag.render(_templateObject3$4(), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_ORDER'), main_core.Text.encode(orderNumber));
	    }
	  }, {
	    key: "showManagerWillCall",
	    value: function showManagerWillCall() {
	      return main_core.Tag.render(_templateObject4$3(), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_CALL'));
	    }
	  }, {
	    key: "showPaymentSum",
	    value: function showPaymentSum() {
	      var total = this.getForm().getSchemeField('ORDER_PRICE_TOTAL');
	      return main_core.Tag.render(_templateObject5$2(), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_TO_PAID').replace('#PAID#', total.orderTotalPriceFormated), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_DELIVERY'));
	    }
	  }, {
	    key: "showSeparator",
	    value: function showSeparator() {
	      return main_core.Tag.render(_templateObject6(), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_OR'));
	    }
	  }, {
	    key: "showContinueProcessing",
	    value: function showContinueProcessing() {
	      return main_core.Tag.render(_templateObject7(), this.onContinueProcessingHandler.bind(this), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_CHECKOUT'));
	    }
	  }, {
	    key: "onContinueProcessingHandler",
	    value: function onContinueProcessingHandler(event) {
	      // todo setField()
	      var url = this.getForm().parameters['paySystemReturnUrl']; //todo

	      url = this.addLinkParam(url, 'orderId', this.getForm().getSchemeField('orderId'));
	      url = this.addLinkParam(url, 'access', this.getForm().getSchemeField('hash'));
	      this.getForm().parameters['paySystemReturnUrl'] = url; // todo refresh layout with paysystems

	      this.getForm().refreshLayout(); // todo

	      delete BX.UserConsent;
	      this.pushState({
	        orderId: this.getForm().getSchemeField('orderId'),
	        access: this.getForm().getSchemeField('hash')
	      });
	    }
	  }, {
	    key: "getCurrentUrl",
	    value: function getCurrentUrl() {
	      return window.location.protocol + "//" + window.location.hostname + (window.location.port != '' ? ':' + window.location.port : '') + window.location.pathname + window.location.search;
	    }
	  }, {
	    key: "addLinkParam",
	    value: function addLinkParam(link, name, value) {
	      if (!link.length) {
	        return '?' + name + '=' + value;
	      }

	      link = BX.Uri.removeParam(link, name);

	      if (link.indexOf('?') != -1) {
	        return link + '&' + name + '=' + value;
	      }

	      return link + '?' + name + '=' + value;
	    }
	  }, {
	    key: "pushState",
	    value: function pushState(params) {
	      var url = '';
	      url = this.getCurrentUrl();
	      url = this.addLinkParam(url, 'orderId', params.orderId);
	      url = this.addLinkParam(url, 'access', params.access);
	      window.history.pushState(null, null, url);
	    }
	  }, {
	    key: "showContinueShopping",
	    value: function showContinueShopping() {
	      return main_core.Tag.render(_templateObject8(), this.onContinueShoppingHandler.bind(this), main_core.Loc.getMessage('SALE_BLOCKS_SUCCESS_CONTINUE'));
	    }
	  }, {
	    key: "onContinueShoppingHandler",
	    value: function onContinueShoppingHandler(event) {
	      event.target.disable = true;
	      var redirectPath = this.getForm().getParameter('emptyBasketHintPath');

	      if (main_core.Type.isStringFilled(redirectPath)) {
	        document.location.href = redirectPath;
	      }
	    }
	  }, {
	    key: "isContinueProcessingEnabled",
	    value: function isContinueProcessingEnabled() {
	      return this.getForm().getParameter('showContinueProcessing', false);
	    }
	  }, {
	    key: "isPaymentSelected",
	    value: function isPaymentSelected() {
	      return this.getForm().getField('paySystemId', 0) > 0;
	    }
	  }, {
	    key: "hasPaySystems",
	    value: function hasPaySystems() {
	      return this.getForm().getSchemeField('paySystems', []).length > 0;
	    }
	  }, {
	    key: "showBeforePayment",
	    value: function showBeforePayment() {
	      if (!this.isContinueProcessingEnabled || this.isPaymentSelected()) {
	        return '';
	      }

	      if (this.hasPaySystems()) {
	        return [this.showOrderStatus(), this.showManagerWillCall(), this.showSeparator(), this.showContinueProcessing()];
	      } else {
	        return [this.showOrderStatus(), this.showManagerWillCall()];
	      }
	    }
	  }, {
	    key: "showAfterPayment",
	    value: function showAfterPayment() {
	      if (!this.isPaymentSelected()) {
	        return '';
	      }

	      return [this.showPaymentStatus(), this.showPaymentSum(), this.showContinueShopping()];
	    }
	  }]);
	  return Success;
	}(BaseBlock);

	var BlockType = function BlockType() {
	  babelHelpers.classCallCheck(this, BlockType);
	};
	babelHelpers.defineProperty(BlockType, "BASKET", 'basket');
	babelHelpers.defineProperty(BlockType, "LOADER", 'loader');
	babelHelpers.defineProperty(BlockType, "PAYMENTS", 'payments');
	babelHelpers.defineProperty(BlockType, "PLACE_ORDER", 'place-order');
	babelHelpers.defineProperty(BlockType, "PROPERTIES", 'properties');
	babelHelpers.defineProperty(BlockType, "SUCCESS", 'success');
	babelHelpers.defineProperty(BlockType, "TOTAL", 'total');
	var blocks = [{
	  type: BlockType.BASKET,
	  entity: Basket
	}, {
	  type: BlockType.LOADER,
	  entity: Loader
	}, {
	  type: BlockType.PAYMENTS,
	  entity: Payments
	}, {
	  type: BlockType.PLACE_ORDER,
	  entity: PlaceOrder
	}, {
	  type: BlockType.PROPERTIES,
	  entity: Properties
	}, {
	  type: BlockType.SUCCESS,
	  entity: Success
	}, {
	  type: BlockType.TOTAL,
	  entity: Total
	}];

	var Factory = /*#__PURE__*/function (_EventEmitter) {
	  babelHelpers.inherits(Factory, _EventEmitter);

	  function Factory() {
	    babelHelpers.classCallCheck(this, Factory);
	    return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Factory).apply(this, arguments));
	  }

	  babelHelpers.createClass(Factory, null, [{
	    key: "create",
	    value: function create(type, form) {
	      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
	      this.emit('BX.Sale.Checkout.Factory:onBeforeCreateBlock', blocks);
	      var entity = blocks.find(function (item) {
	        return item.type === type;
	      })['entity'];

	      if (!entity) {
	        var eventData = {};
	        this.emit('BX.Sale.Checkout.Factory:onCreate', eventData);

	        if (eventData[type]) {
	          entity = eventData[type];
	        }
	      }

	      if (main_core.Type.isFunction(entity)) {
	        return new entity(form, options);
	      }

	      return null;
	    }
	  }]);
	  return Factory;
	}(main_core_events.EventEmitter);

	function _createForOfIteratorHelper$1(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

	function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }

	function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

	var Scheme = /*#__PURE__*/function () {
	  function Scheme(fields) {
	    babelHelpers.classCallCheck(this, Scheme);
	    babelHelpers.defineProperty(this, "fields", null);
	    this.initFields(fields);
	  }

	  babelHelpers.createClass(Scheme, [{
	    key: "initFields",
	    value: function initFields(fields) {
	      this.fields = new Map(Object.entries(fields));
	    }
	  }, {
	    key: "hasField",
	    value: function hasField(name) {
	      return this.fields.has(name);
	    }
	  }, {
	    key: "getFields",
	    value: function getFields() {
	      var fields = {};

	      var _iterator = _createForOfIteratorHelper$1(this.fields),
	          _step;

	      try {
	        for (_iterator.s(); !(_step = _iterator.n()).done;) {
	          var _step$value = babelHelpers.slicedToArray(_step.value, 2),
	              k = _step$value[0],
	              v = _step$value[1];

	          fields[k] = v;
	        }
	      } catch (err) {
	        _iterator.e(err);
	      } finally {
	        _iterator.f();
	      }

	      return fields;
	    }
	  }, {
	    key: "getField",
	    value: function getField(name) {
	      var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
	      return this.fields.has(name) ? this.fields.get(name) : defaultValue;
	    }
	  }]);
	  return Scheme;
	}();

	var Stage = function Stage() {
	  babelHelpers.classCallCheck(this, Stage);
	};
	babelHelpers.defineProperty(Stage, "INITIAL", 1);
	babelHelpers.defineProperty(Stage, "VIEW", 2);

	var Form = /*#__PURE__*/function (_EventEmitter) {
	  babelHelpers.inherits(Form, _EventEmitter);

	  function Form(model, scheme) {
	    var _this;

	    var parameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
	    babelHelpers.classCallCheck(this, Form);
	    _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Form).call(this));
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "model", null);
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "scheme", null);
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "parameters", null);
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "stage", null);
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "container", null);
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "blocks", null);

	    _this.setEventNamespace('BX.Sale.CheckoutForm');

	    _this.model = model;
	    _this.scheme = scheme;
	    _this.parameters = parameters;
	    return _this;
	  }

	  babelHelpers.createClass(Form, [{
	    key: "setStage",
	    value: function setStage(stage) {
	      this.stage = stage;
	      return this;
	    }
	  }, {
	    key: "setModel",
	    value: function setModel(fields) {
	      this.model.initFields(fields);
	    } // todo model and fields

	  }, {
	    key: "hasField",
	    value: function hasField(name) {
	      return this.model.hasField(name);
	    }
	  }, {
	    key: "getField",
	    value: function getField(name, defaultValue) {
	      return this.model.getField(name, defaultValue);
	    }
	  }, {
	    key: "setField",
	    value: function setField(name, value) {
	      var isChanged = this.setFieldNoDemand(name, value);

	      if (isChanged) {
	        this.requestRefresh();
	      }

	      return isChanged;
	    }
	  }, {
	    key: "setFieldNoDemand",
	    value: function setFieldNoDemand(name, value) {
	      return this.model.setField(name, value);
	    }
	  }, {
	    key: "setScheme",
	    value: function setScheme(fields) {
	      for (var name in fields) {
	        if (fields.hasOwnProperty(name)) {
	          this.scheme.fields.set(name, fields[name]);
	        }
	      } // todo init when all fields come from api request
	      // this.scheme.initFields(fields);

	    }
	  }, {
	    key: "getSchemeField",
	    value: function getSchemeField(name, defaultValue) {
	      return this.scheme.getField(name, defaultValue);
	    }
	  }, {
	    key: "getParameter",
	    value: function getParameter(name) {
	      var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
	      return this.parameters[name] || defaultValue;
	    }
	  }, {
	    key: "getStage",
	    value: function getStage() {
	      return this.stage;
	    }
	  }, {
	    key: "getContainer",
	    value: function getContainer() {
	      return this.container;
	    }
	  }, {
	    key: "setContainer",
	    value: function setContainer(container) {
	      if (!main_core.Type.isDomNode(container)) {
	        throw new Error('Wrong target node to render');
	      }

	      var oldContainer = this.getContainer();

	      if (main_core.Type.isDomNode(oldContainer)) {
	        this.clearContainer(oldContainer);
	      }

	      this.container = container;
	    }
	  }, {
	    key: "clearContainer",
	    value: function clearContainer(container) {
	      main_core.Event.unbindAll(container);
	      main_core.Dom.clean(container);
	    }
	  }, {
	    key: "buildBlocks",
	    value: function buildBlocks() {
	      var _this2 = this;

	      var blocks = [];
	      this.getParameter('blocks', []).forEach(function (setting) {
	        blocks.push(Factory.create(setting.type, _this2, setting));
	      });
	      return blocks;
	    }
	  }, {
	    key: "getBlocks",
	    value: function getBlocks() {
	      if (this.blocks === null) {
	        this.blocks = this.buildBlocks();
	      }

	      return this.blocks;
	    }
	  }, {
	    key: "refreshLayout",
	    value: function refreshLayout() {
	      this.getBlocks().forEach(function (block) {
	        block.refreshLayout();
	      });
	    }
	  }, {
	    key: "renderTo",
	    value: function renderTo(target) {
	      if (main_core.Type.isString(target)) {
	        target = document.getElementById(target);
	      }

	      this.setContainer(target);
	      this.refreshLayout();
	    }
	  }, {
	    key: "layoutSuccessBlock",
	    value: function layoutSuccessBlock() {
	      var finalBlock = this.getBlocks().find(function (block) {
	        return block.isSuccess();
	      });

	      if (finalBlock) {
	        finalBlock.refreshLayout(true);
	      }
	    }
	  }, {
	    key: "requestRefresh",
	    value: function requestRefresh() {
	      main_core.ajax.runAction('sale.entity.refreshorder', {
	        data: {
	          fields: this.prepareFields()
	        }
	      }).then(this.handleRefreshResponse.bind(this));
	    }
	  }, {
	    key: "handleRefreshResponse",
	    value: function handleRefreshResponse(response) {
	      if (response.status === 'success') {
	        var modelFields = this.extractModelFields(response.data);
	        this.setModel(modelFields);
	        var schemeFields = this.extractSchemeFields(response.data);
	        this.setModel(schemeFields);
	        this.refreshLayout();
	      }
	    }
	  }, {
	    key: "getPropertyErrorCollection",
	    value: function getPropertyErrorCollection() {
	      var collection = this.getField('ERROR_COLLECTION', {});
	      return collection.hasOwnProperty('PROPERTIES') && main_core.Type.isArrayFilled(collection.PROPERTIES) ? collection.PROPERTIES : [];
	    }
	  }, {
	    key: "verify",
	    value: function verify() {
	      return this.verifyProperty();
	    }
	  }, {
	    key: "verifyProperty",
	    value: function verifyProperty() {
	      var list = [];
	      var properties = this.getField('properties');
	      this.getSchemeField('properties', []).forEach(function (item) {
	        if (item.type === 'STRING' && item.required === 'Y') {
	          //console.log('properties', properties[item.ID]);
	          if (main_core.Type.isStringFilled(properties[item.id]) === false) {
	            list.push({
	              id: item.id,
	              message: ''
	            });
	          }
	        }
	      });
	      this.setFieldNoDemand('ERROR_COLLECTION', {
	        PROPERTIES: list
	      });
	      return main_core.Type.isArrayFilled(list) === false;
	    }
	  }, {
	    key: "requestSave",
	    value: function requestSave() {
	      var _this3 = this;

	      if (this.verify()) {
	        main_core.ajax.runAction('sale.entity.saveorder', {
	          data: {
	            fields: this.prepareFields()
	          }
	        }).then(this.handleSaveResponse.bind(this), function (response) {
	          if (response.status === 'error') {
	            _this3.fillErrorCollection(response.errors);

	            _this3.getPropertyErrorCollection().forEach(function (error) {
	              BX.onCustomEvent("BX.Sale.Checkout.Property.Error:onSave_" + error.id);
	            });
	          }
	        });
	      } else {
	        this.getPropertyErrorCollection().forEach(function (error) {
	          BX.onCustomEvent("BX.Sale.Checkout.Property.Error:onSave_" + error.id);
	        });
	      }
	    }
	  }, {
	    key: "handleSaveResponse",
	    value: function handleSaveResponse(response) {
	      if (response.status === 'success') {
	        var modelFields = this.extractModelFields(response.data);
	        this.setModel(modelFields);
	        var schemeFields = this.extractSchemeFields(response.data);
	        this.setScheme(schemeFields);
	        this.layoutSuccessBlock();
	        this.stage++;
	      }
	    }
	  }, {
	    key: "fillErrorCollection",
	    value: function fillErrorCollection(errors) {
	      var list = [];

	      if (main_core.Type.isArrayFilled(errors)) {
	        errors.forEach(function (error) {
	          if (error.code === 'properties') {
	            list.push({
	              id: error.customData.id,
	              message: error.customData.message
	            });
	          }
	        });
	        this.setFieldNoDemand('ERROR_COLLECTION', {
	          PROPERTIES: list
	        });
	      }
	    }
	  }, {
	    key: "prepareFields",
	    value: function prepareFields() {
	      var fields = {
	        'siteId': this.getSchemeField('siteId'),
	        'products': this.getField('basketItems'),
	        'properties': this.getField('properties')
	      };
	      var userId = this.getSchemeField('userId');

	      if (userId) {
	        fields['userId'] = userId;
	      }

	      return fields;
	    }
	  }, {
	    key: "extractModelFields",
	    value: function extractModelFields(data) {
	      var basketItems = {};
	      data.basketItems.forEach(function (item) {
	        basketItems[item.id] = {
	          productId: item.productId,
	          quantity: item.quantity,
	          props: item.props
	        };
	      });
	      var properties = {};
	      data.properties.forEach(function (item) {
	        properties[item.orderPropsId] = item.value;
	      });
	      var payments = {};
	      data.payments.forEach(function (item) {
	        payments[item.id] = {
	          id: item.id,
	          sum: item.sum
	        };
	      });
	      return {
	        basketItems: basketItems,
	        properties: properties,
	        payments: payments
	      };
	    }
	  }, {
	    key: "extractSchemeFields",
	    value: function extractSchemeFields(data) {
	      return {
	        siteId: data.lid,
	        userId: data.userId,
	        accountNumber: data.accountNumber,
	        orderId: data.id,
	        paySystems: data.paySystems,
	        //SIGNED_PARAMETERS: data.SIGNED_PARAMETERS,
	        hash: data.hash // ToDo TOTAL, BASKET_ITEMS, PROPERTIES

	      };
	    }
	  }]);
	  return Form;
	}(main_core_events.EventEmitter);

	var EntityType = function EntityType() {
	  babelHelpers.classCallCheck(this, EntityType);
	};
	babelHelpers.defineProperty(EntityType, "FORM", 'form');
	babelHelpers.defineProperty(EntityType, "MODEL", 'model');
	babelHelpers.defineProperty(EntityType, "SCHEME", 'scheme');
	var entities = [{
	  type: EntityType.FORM,
	  entity: Form
	}, {
	  type: EntityType.MODEL,
	  entity: Model
	}, {
	  type: EntityType.SCHEME,
	  entity: Scheme
	}];

	var Factory$1 = /*#__PURE__*/function (_EventEmitter) {
	  babelHelpers.inherits(Factory, _EventEmitter);

	  function Factory() {
	    babelHelpers.classCallCheck(this, Factory);
	    return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Factory).apply(this, arguments));
	  }

	  babelHelpers.createClass(Factory, null, [{
	    key: "createForm",
	    value: function createForm(model, scheme, parameters) {
	      var modelEntity = this.create(EntityType.MODEL, model);
	      var schemeEntity = this.create(EntityType.SCHEME, scheme);
	      return this.create(EntityType.FORM, modelEntity, schemeEntity, parameters);
	    }
	  }, {
	    key: "create",
	    value: function create(type) {
	      this.emit('BX.Sale.Checkout.Factory:onBeforeCreate', entities);
	      var entity = entities.find(function (item) {
	        return item.type === type;
	      })['entity'];

	      if (!entity) {
	        var eventData = {};
	        this.emit('BX.Sale.Checkout.Factory:onCreate', eventData);

	        if (eventData[type]) {
	          entity = eventData[type];
	        }
	      }

	      if (main_core.Type.isFunction(entity)) {
	        for (var _len = arguments.length, options = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
	          options[_key - 1] = arguments[_key];
	        }

	        return babelHelpers.construct(entity, options);
	      }

	      return null;
	    }
	  }]);
	  return Factory;
	}(main_core_events.EventEmitter);

	exports.Factory = Factory$1;
	exports.EntityType = EntityType;
	exports.Stage = Stage;

}((this.BX.Sale.CheckoutForm = this.BX.Sale.CheckoutForm || {}),BX,BX,BX.Event));
//# sourceMappingURL=checkout-form.bundle.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit