Your IP : 216.73.216.86


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

this.BX = this.BX || {};
this.BX.Landing = this.BX.Landing || {};
this.BX.Landing.UI = this.BX.Landing.UI || {};
(function (exports,main_core_events,main_core) {
	'use strict';

	var defaultOptions = {
	  id: main_core.Text.getRandom(),
	  text: '',
	  html: '',
	  onClick: function onClick() {},
	  attrs: {},
	  disabled: false,
	  className: null
	};

	var _templateObject, _templateObject2;

	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; }
	/**
	 * @memberOf BX.Landing.UI.Button
	 */

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

	  function BaseButton(id, options) {
	    var _this;

	    babelHelpers.classCallCheck(this, BaseButton);
	    _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(BaseButton).call(this));

	    _this.setEventNamespace('BX.Landing.UI.Button.BaseButton');

	    var compatOptions = function () {
	      if (main_core.Type.isPlainObject(options)) {
	        return options;
	      }

	      if (main_core.Type.isPlainObject(id)) {
	        return id;
	      }

	      return {};
	    }();

	    var compatId = function () {
	      if (main_core.Type.isStringFilled(id)) {
	        return id;
	      }

	      if (main_core.Type.isStringFilled(compatOptions.id)) {
	        return compatOptions.id;
	      }

	      return main_core.Text.getRandom();
	    }();

	    _this.options = _objectSpread(_objectSpread({}, defaultOptions), compatOptions);
	    _this.id = compatId;
	    _this.cache = new main_core.Cache.MemoryCache();
	    _this.layout = _this.getLayout();

	    if (main_core.Type.isStringFilled(_this.options.html)) {
	      _this.setHtml(_this.options.html);
	    } else {
	      _this.setText(_this.options.text);
	    }

	    if (main_core.Type.isFunction(_this.options.onClick)) {
	      main_core.Event.bind(_this.getLayout(), 'click', _this.options.onClick);
	    }

	    if (main_core.Type.isPlainObject(_this.options.attrs)) {
	      main_core.Dom.attr(_this.getLayout(), _this.options.attrs);
	    }

	    if (main_core.Type.isArray(_this.options.className) || main_core.Type.isStringFilled(_this.options.className)) {
	      main_core.Dom.addClass(_this.layout, _this.options.className);
	    }

	    if (_this.options.active) {
	      _this.activate();
	    }

	    if (_this.options.disabled) {
	      _this.disable();
	    }

	    main_core.Event.bind(_this.getLayout(), 'click', function (event) {
	      event.preventDefault();

	      _this.emit('onClick');
	    });
	    return _this;
	  }

	  babelHelpers.createClass(BaseButton, [{
	    key: "getLayout",
	    value: function getLayout() {
	      var _this2 = this;

	      return this.cache.remember('layout', function () {
	        return main_core.Tag.render(_templateObject || (_templateObject = babelHelpers.taggedTemplateLiteral(["\n\t\t\t\t<button \n\t\t\t\t\tclass=\"landing-ui-button\" \n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tdata-id=\"", "\"\n\t\t\t\t>", "</button>\n\t\t\t"])), _this2.id, _this2.getTextLayout());
	      });
	    }
	  }, {
	    key: "getTextLayout",
	    value: function getTextLayout() {
	      return this.cache.remember('textLayout', function () {
	        return main_core.Tag.render(_templateObject2 || (_templateObject2 = babelHelpers.taggedTemplateLiteral(["<span class=\"landing-ui-button-text\"></span>"])));
	      });
	    }
	  }, {
	    key: "setHtml",
	    value: function setHtml(html) {
	      this.getTextLayout().innerHTML = html;
	    }
	  }, {
	    key: "setText",
	    value: function setText(text) {
	      this.getTextLayout().innerHTML = main_core.Text.encode(text);
	    }
	    /**
	     * @deprecated
	     */

	  }, {
	    key: "on",
	    value: function on(event, handler, context) {
	      if (main_core.Type.isString(event) && main_core.Type.isFunction(handler)) {
	        main_core.Event.bind(this.layout, event, BX.proxy(handler, context));
	      }
	    }
	  }, {
	    key: "setAttributes",
	    value: function setAttributes(attrs) {
	      main_core.Dom.attr(this.layout, attrs);
	    }
	  }, {
	    key: "setAttribute",
	    value: function setAttribute(key, value) {
	      main_core.Dom.attr(this.layout, key, value);
	    }
	  }, {
	    key: "disable",
	    value: function disable() {
	      main_core.Dom.addClass(this.layout, 'landing-ui-disabled');
	    }
	  }, {
	    key: "enable",
	    value: function enable() {
	      main_core.Dom.removeClass(this.layout, 'landing-ui-disabled');
	      main_core.Dom.attr(this.layout, 'disabled', null);
	    }
	  }, {
	    key: "isEnabled",
	    value: function isEnabled() {
	      return !main_core.Dom.hasClass(this.layout, 'landing-ui-disabled');
	    }
	  }, {
	    key: "show",
	    value: function show() {
	      return BX.Landing.Utils.show(this.layout);
	    }
	  }, {
	    key: "hide",
	    value: function hide() {
	      return BX.Landing.Utils.hide(this.layout);
	    }
	  }, {
	    key: "activate",
	    value: function activate() {
	      main_core.Dom.addClass(this.layout, 'landing-ui-active');
	    }
	  }, {
	    key: "deactivate",
	    value: function deactivate() {
	      main_core.Dom.removeClass(this.layout, 'landing-ui-active');
	    }
	  }, {
	    key: "isActive",
	    value: function isActive() {
	      return main_core.Dom.hasClass(this.layout, 'landing-ui-active');
	    }
	  }]);
	  return BaseButton;
	}(main_core_events.EventEmitter);

	exports.BaseButton = BaseButton;

}((this.BX.Landing.UI.Button = this.BX.Landing.UI.Button || {}),BX.Event,BX));
//# sourceMappingURL=basebutton.bundle.js.map