Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/components/bitrix/landing.settings/templates/.default/
Upload File :
Current File : /var/www/homesaver/www/bitrix/components/bitrix/landing.settings/templates/.default/script.js

/* eslint-disable */
this.BX = this.BX || {};
this.BX.Landing = this.BX.Landing || {};
(function (exports,main_core,main_loader) {
	'use strict';

	var _templateObject, _templateObject2;
	var LandingSettings = /*#__PURE__*/function () {
	  /**
	   * Constructor.
	   */
	  function LandingSettings(options) {
	    var _this = this;
	    babelHelpers.classCallCheck(this, LandingSettings);
	    this.siteId = options.siteId;
	    this.landingId = options.landingId;
	    this.type = options.type;

	    // pages
	    this.pages = options.pages;
	    this.container = document.getElementById(options.containerId);
	    this.menu = document.getElementById(options.menuId);
	    for (var page in this.pages) {
	      this.pages[page].container = main_core.Tag.render(_templateObject || (_templateObject = babelHelpers.taggedTemplateLiteral(["<div class=\"landing-settings-page-container\"></div>"])));
	      main_core.Dom.append(this.pages[page].container, this.container);
	    }
	    this.loadingPages = [];
	    this.loaderContainer = main_core.Tag.render(_templateObject2 || (_templateObject2 = babelHelpers.taggedTemplateLiteral(["<div class=\"landing-settings-loader-container\"></div>"])));
	    main_core.Dom.insertAfter(this.loaderContainer, this.container);
	    this.loader = new main_loader.Loader({
	      target: this.loaderContainer
	    });

	    // links
	    this.links = [].slice.call(this.menu.querySelectorAll(LandingSettings.PAGE_LINK_SELECTOR));
	    var currentLink = this.links[0];
	    this.links.forEach(function (link) {
	      _this.bindMenuLink(link);
	      if (link.dataset.page && _this.pages[link.dataset.page] && _this.pages[link.dataset.page].current === true) {
	        currentLink = link;
	      }
	    });
	    if (currentLink) {
	      this.onMenuLinkClick(currentLink);
	    }

	    // save
	    this.saveButton = document.getElementById(options.saveButtonId);
	    this.onSave = this.onSave.bind(this);
	    main_core.Event.bind(this.saveButton, 'click', this.onSave);
	  }
	  babelHelpers.createClass(LandingSettings, [{
	    key: "showLoader",
	    value: function showLoader() {
	      this.loader.show();
	      main_core.Dom.show(this.loaderContainer);
	    }
	  }, {
	    key: "hideLoader",
	    value: function hideLoader() {
	      this.loader.hide();
	      main_core.Dom.hide(this.loaderContainer);
	    }
	  }, {
	    key: "bindMenuLink",
	    value: function bindMenuLink(link) {
	      var _this2 = this;
	      main_core.Event.bind(link, 'click', function (event) {
	        event.preventDefault();
	        event.stopPropagation();
	        _this2.onMenuLinkClick(link);
	      });
	    }
	  }, {
	    key: "bindPageLink",
	    value: function bindPageLink(pageLink) {
	      if (pageLink.dataset.page) {
	        var currentMenuLink = this.links.find(function (menuLink) {
	          return menuLink.dataset.page === pageLink.dataset.page;
	        });
	        if (currentMenuLink) {
	          main_core.Event.bind(pageLink, 'click', function (event) {
	            event.preventDefault();
	            event.stopPropagation();
	            currentMenuLink.click();
	          });
	        }
	      }
	    }
	  }, {
	    key: "onMenuLinkClick",
	    value: function onMenuLinkClick(link) {
	      if (link.dataset.page) {
	        this.onPageChange(link.dataset.page);
	      } else if (link.dataset.placement) {
	        // for open app pages in slider
	        if (typeof BX.rest !== 'undefined' && typeof BX.rest.Marketplace !== 'undefined') {
	          BX.rest.Marketplace.bindPageAnchors({});
	        }
	        BX.rest.AppLayout.openApplication(link.dataset.appId, {
	          SITE_ID: this.siteId,
	          LID: this.landingId
	        }, {
	          PLACEMENT: link.dataset.placement,
	          PLACEMENT_ID: link.dataset.placementId
	        });
	      }
	    }
	  }, {
	    key: "onPageChange",
	    value: function onPageChange(pageId) {
	      var _this3 = this;
	      var pageToLoad = this.pages[pageId];
	      if (pageToLoad) {
	        if (pageToLoad.container.childNodes.length === 0) {
	          this.showLoader();
	          this.loadingPages.push(pageId);
	          main_core.ajax.get(pageToLoad.link, function (result) {
	            pageToLoad.container.innerHTML = result;
	            _this3.loadingPages.splice(_this3.loadingPages.indexOf(pageId), 1);
	            if (_this3.loadingPages.length === 0) {
	              _this3.hideLoader();
	            }
	            var form = pageToLoad.container.querySelector('form.landing-form');
	            if (form) {
	              pageToLoad.form = form;
	            }
	            var pageLinks = pageToLoad.container.querySelectorAll(LandingSettings.PAGE_LINK_SELECTOR);
	            if (pageLinks.length > 0) {
	              pageLinks.forEach(function (link) {
	                return _this3.bindPageLink(link);
	              });
	            }
	            if (_this3.currentPage) {
	              _this3.currentPage.container.hidden = true;
	            }
	            _this3.currentPage = pageToLoad;
	            _this3.currentPage.container.hidden = false;
	          });
	        } else {
	          if (this.currentPage) {
	            this.currentPage.container.hidden = true;
	          }
	          this.currentPage = pageToLoad;
	          this.currentPage.container.hidden = false;
	        }
	      }
	    }
	  }, {
	    key: "onSave",
	    value: function onSave() {
	      var _this4 = this;
	      this.showLoader();
	      var submits = [];
	      for (var page in this.pages) {
	        var currPage = this.pages[page];
	        if (currPage.form) {
	          submits.push(fetch(currPage.linkToSave, {
	            method: 'POST',
	            body: new FormData(currPage.form),
	            headers: {
	              'Bx-ajax': true
	            }
	          }));
	        }
	      }
	      Promise.all(submits).then(function (results) {
	        var all = true;
	        results.forEach(function (result) {
	          all = all && result.ok;
	        });
	        if (all) {
	          top.window['landingSettingsSaved'] = true;
	          top.BX.onCustomEvent('BX.Landing.Filter:apply');
	          _this4.hideLoader();
	          if (_this4.type === 'KNOWLEDGE' || _this4.type === 'GROUP') {
	            BX.SidePanel.Instance.close();
	            BX.SidePanel.Instance.reload();
	          } else {
	            top.window.location.reload();
	            BX.SidePanel.Instance.close();
	          }
	        }
	      })["catch"](function (err) {
	        console.error(err);
	      });
	    }
	  }]);
	  return LandingSettings;
	}();
	babelHelpers.defineProperty(LandingSettings, "PAGE_LINK_SELECTOR", 'a[data-page], a[data-placement]');

	exports.LandingSettings = LandingSettings;

}((this.BX.Landing.Component = this.BX.Landing.Component || {}),BX,BX));
//# sourceMappingURL=script.js.map