Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/landing/ui/card/iconoptionscard/dist/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/landing/ui/card/iconoptionscard/dist/iconoptionscard.bundle.js

this.BX = this.BX || {};
this.BX.Landing = this.BX.Landing || {};
this.BX.Landing.UI = this.BX.Landing.UI || {};
(function (exports,main_core,landing_ui_card_basecard,landing_loc,ui_fonts_opensans,landing_ui_panel_iconpanel) {
	'use strict';

	var _templateObject, _templateObject2;
	/**
	 * @memberOf BX.Landing.UI.Card
	 */

	var IconOptionsCard = /*#__PURE__*/function (_BaseCard) {
	  babelHelpers.inherits(IconOptionsCard, _BaseCard);

	  function IconOptionsCard() {
	    var _this;

	    babelHelpers.classCallCheck(this, IconOptionsCard);
	    _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(IconOptionsCard).call(this));
	    babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "options", []);

	    _this.setEventNamespace('BX.Landing.UI.Card.IconOptionsCard');

	    return _this;
	  }

	  babelHelpers.createClass(IconOptionsCard, [{
	    key: "getLayout",
	    value: function getLayout() {
	      return this.cache.remember('layout', function () {
	        return main_core.Tag.render(_templateObject || (_templateObject = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t<div class=\"landing-ui-card landing-ui-card-icon-options --hide\">\n\t\t\t\t\t<div class=\"landing-ui-card-icon-options-title\">", "</div>\n\t\t\t\t\t<div class=\"landing-ui-card-icon-options-items\"></div>\n\t\t\t\t</div>\n\t\t\t"])), landing_loc.Loc.getMessage('LANDING_ICONS_CHANGE_STYLE'));
	      });
	    }
	  }, {
	    key: "getOptionsLayout",
	    value: function getOptionsLayout() {
	      return this.getLayout().querySelector('.landing-ui-card-icon-options-items');
	    }
	  }, {
	    key: "getOptions",
	    value: function getOptions() {
	      return this.options;
	    }
	  }, {
	    key: "setOptions",
	    value: function setOptions(options, activeOption) {
	      var _this2 = this;

	      if (options.length > 0) {
	        this.options = options;
	        main_core.Dom.clean(this.getOptionsLayout());
	        main_core.Dom.removeClass(this.getLayout(), '--hide');
	        options.forEach(function (option) {
	          var isActive = option === activeOption ? ' --active' : '';
	          var optionLayout = main_core.Tag.render(_templateObject2 || (_templateObject2 = babelHelpers.taggedTemplateLiteral(["<span class=\"", "", "\"></span>"])), option, isActive);
	          main_core.Event.bind(optionLayout, 'click', _this2.onOptionClick.bind(_this2, option));
	          main_core.Dom.append(optionLayout, _this2.getOptionsLayout());
	        });
	      }
	    }
	  }, {
	    key: "onOptionClick",
	    value: function onOptionClick(option) {
	      this.getOptionsLayout().querySelectorAll('span').forEach(function (optionItem) {
	        main_core.Dom.removeClass(optionItem, '--active');

	        if (main_core.Dom.hasClass(optionItem, option)) {
	          main_core.Dom.addClass(optionItem, '--active');
	        }
	      });
	      this.emit('onChange', {
	        option: option
	      });
	    }
	  }, {
	    key: "setOptionsByItem",
	    value: function setOptionsByItem(classList) {
	      var _this3 = this;

	      landing_ui_panel_iconpanel.IconPanel.getLibraries().then(function (libraries) {
	        if (classList.length > 0) {
	          var iconOptions = new Set();
	          var iconOptionActive;
	          libraries.forEach(function (library) {
	            library.categories.forEach(function (category) {
	              category.items.forEach(function (item) {
	                if (main_core.Type.isObject(item)) {
	                  var foundedOptions = item.options.filter(function (option) {
	                    return classList.every(function (iconClass) {
	                      return option.split(' ').includes(iconClass);
	                    });
	                  });

	                  if (foundedOptions.length > 0) {
	                    item.options.forEach(function (option) {
	                      iconOptions.add(option);
	                    });
	                    iconOptionActive = foundedOptions[0];
	                  }
	                } else {
	                  if (classList.every(function (iconClass) {
	                    return item.split(' ').includes(iconClass);
	                  })) {
	                    iconOptions.add(item);
	                    iconOptionActive = item;
	                  }
	                }
	              });
	            });
	          });

	          if (iconOptions.size > 0) {
	            _this3.setOptions(babelHelpers.toConsumableArray(iconOptions), iconOptionActive);
	          }
	        }
	      });
	    }
	  }]);
	  return IconOptionsCard;
	}(landing_ui_card_basecard.BaseCard);

	exports.IconOptionsCard = IconOptionsCard;

}((this.BX.Landing.UI.Card = this.BX.Landing.UI.Card || {}),BX,BX.Landing.UI.Card,BX.Landing,BX,BX.Landing.UI.Panel));
//# sourceMappingURL=iconoptionscard.bundle.js.map