Your IP : 18.224.0.57


Current Path : /var/www/www-root/data/www/www.monolith-realty.ru/bitrix/js/ui/switcher/dist/
Upload File :
Current File : /var/www/www-root/data/www/www.monolith-realty.ru/bitrix/js/ui/switcher/dist/ui.switcher.bundle.js

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

	let _ = t => t,
	  _t,
	  _t2;
	const SwitcherSize = Object.freeze({
	  medium: 'medium',
	  small: 'small',
	  extraSmall: 'extra-small'
	});
	const SwitcherColor = Object.freeze({
	  primary: 'primary',
	  green: 'green'
	});
	var _classNameSize = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("classNameSize");
	var _classNameColor = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("classNameColor");
	var _disabled = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("disabled");
	var _inputName = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("inputName");
	var _loading = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("loading");
	var _classNameOff = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("classNameOff");
	var _classNameLock = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("classNameLock");
	var _attributeName = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("attributeName");
	var _attributeInitName = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("attributeInitName");
	var _initNode = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("initNode");
	var _fireEvent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("fireEvent");
	class Switcher {
	  /**
	   * Switcher.
	   *
	   * @param {object} [options] - Options.
	   * @param {string} [options.attributeName] - Name of switcher attribute.
	   * @param {Element} [options.node] - Node.
	   * @param {string} [options.id] - ID.
	   * @param {123} [options.checked] - Checked.
	   * @param {string} [options.inputName] - Input name.
	   * @constructor
	   */
	  constructor(options) {
	    Object.defineProperty(this, _fireEvent, {
	      value: _fireEvent2
	    });
	    Object.defineProperty(this, _initNode, {
	      value: _initNode2
	    });
	    Object.defineProperty(this, _classNameSize, {
	      writable: true,
	      value: {
	        [SwitcherSize.extraSmall]: 'ui-switcher-size-xs',
	        [SwitcherSize.small]: 'ui-switcher-size-sm',
	        [SwitcherSize.medium]: ''
	      }
	    });
	    Object.defineProperty(this, _classNameColor, {
	      writable: true,
	      value: {
	        [SwitcherColor.primary]: '',
	        [SwitcherColor.green]: 'ui-switcher-color-green'
	      }
	    });
	    this.node = null;
	    this.checked = false;
	    this.id = '';
	    Object.defineProperty(this, _disabled, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _inputName, {
	      writable: true,
	      value: ''
	    });
	    Object.defineProperty(this, _loading, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _classNameOff, {
	      writable: true,
	      value: 'ui-switcher-off'
	    });
	    Object.defineProperty(this, _classNameLock, {
	      writable: true,
	      value: 'ui-switcher-lock'
	    });
	    Object.defineProperty(this, _attributeName, {
	      writable: true,
	      value: 'data-switcher'
	    });
	    this.init(options);
	    Switcher.list.push(this);
	  }
	  static getById(id) {
	    return Switcher.list.find(item => item.id === id) || null;
	  }
	  static initByClassName() {
	    const nodes = document.getElementsByClassName(Switcher.className);
	    Array.from(nodes).forEach(function (node) {
	      if (node.getAttribute(babelHelpers.classPrivateFieldLooseBase(Switcher, _attributeInitName)[_attributeInitName])) {
	        return;
	      }
	      new Switcher({
	        node: node
	      });
	    });
	  }
	  static getList() {
	    return Switcher.list;
	  }
	  init(options = {}) {
	    babelHelpers.classPrivateFieldLooseBase(this, _attributeName)[_attributeName] = main_core.Type.isString(options.attributeName) ? options.attributeName : babelHelpers.classPrivateFieldLooseBase(this, _attributeName)[_attributeName];
	    this.handlers = main_core.Type.isPlainObject(options.handlers) ? options.handlers : {};
	    babelHelpers.classPrivateFieldLooseBase(this, _inputName)[_inputName] = main_core.Type.isString(options.inputName) ? options.inputName : '';
	    babelHelpers.classPrivateFieldLooseBase(this, _loading)[_loading] = false;
	    this.events = {
	      toggled: 'toggled',
	      checked: 'checked',
	      unchecked: 'unchecked',
	      lock: 'lock',
	      unlock: 'unlock'
	    };
	    if (options.node) {
	      if (!main_core.Type.isDomNode(options.node)) {
	        throw new Error('Parameter `node` DOM Node expected.');
	      }
	      this.node = options.node;
	      let data = this.node.getAttribute(babelHelpers.classPrivateFieldLooseBase(this, _attributeName)[_attributeName]);
	      try {
	        data = JSON.parse(data) || {};
	      } catch (e) {
	        data = {};
	      }
	      if (data.id) {
	        this.id = data.id;
	      }
	      this.checked = Boolean(data.checked);
	      babelHelpers.classPrivateFieldLooseBase(this, _inputName)[_inputName] = data.inputName;
	      if (main_core.Type.isString(data.color) && Object.values(SwitcherColor).includes(data.color)) {
	        options.color = data.color;
	      }
	      if (main_core.Type.isString(data.size) && Object.values(SwitcherSize).includes(data.size)) {
	        options.size = data.size;
	      }
	    } else {
	      this.node = document.createElement('span');
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _classNameSize)[_classNameSize][options.size]) {
	      main_core.Dom.addClass(this.node, babelHelpers.classPrivateFieldLooseBase(this, _classNameSize)[_classNameSize][options.size]);
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _classNameColor)[_classNameColor][options.color]) {
	      main_core.Dom.addClass(this.node, babelHelpers.classPrivateFieldLooseBase(this, _classNameColor)[_classNameColor][options.color]);
	    }
	    if (main_core.Type.isString(options.id) || main_core.Type.isNumber(options.id)) {
	      this.id = options.id;
	    } else if (!this.id) {
	      this.id = Math.random();
	    }
	    if (main_core.Type.isString(options.inputName)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _inputName)[_inputName] = options.inputName;
	    }
	    this.checked = main_core.Type.isBoolean(options.checked) ? options.checked : this.checked;
	    babelHelpers.classPrivateFieldLooseBase(this, _disabled)[_disabled] = main_core.Type.isBoolean(options.disabled) ? options.disabled : babelHelpers.classPrivateFieldLooseBase(this, _disabled)[_disabled];
	    babelHelpers.classPrivateFieldLooseBase(this, _initNode)[_initNode]();
	    this.check(this.checked, false);
	    this.disable(babelHelpers.classPrivateFieldLooseBase(this, _disabled)[_disabled], false);
	  }
	  disable(disabled, fireEvents) {
	    if (this.isLoading()) {
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _disabled)[_disabled] = disabled;
	    fireEvents = fireEvents !== false;
	    if (disabled) {
	      main_core.Dom.addClass(this.node, babelHelpers.classPrivateFieldLooseBase(this, _classNameLock)[_classNameLock]);
	      fireEvents ? babelHelpers.classPrivateFieldLooseBase(this, _fireEvent)[_fireEvent](this.events.lock) : null;
	    } else {
	      main_core.Dom.removeClass(this.node, babelHelpers.classPrivateFieldLooseBase(this, _classNameLock)[_classNameLock]);
	      fireEvents ? babelHelpers.classPrivateFieldLooseBase(this, _fireEvent)[_fireEvent](this.events.unlock) : null;
	    }
	  }
	  check(checked, fireEvents) {
	    if (this.isLoading()) {
	      return;
	    }
	    this.checked = !!checked;
	    if (this.inputNode) {
	      this.inputNode.value = this.checked ? 'Y' : 'N';
	    }
	    fireEvents = fireEvents !== false;
	    if (this.checked) {
	      main_core.Dom.removeClass(this.node, babelHelpers.classPrivateFieldLooseBase(this, _classNameOff)[_classNameOff]);
	      fireEvents ? babelHelpers.classPrivateFieldLooseBase(this, _fireEvent)[_fireEvent](this.events.unchecked) : null;
	    } else {
	      main_core.Dom.addClass(this.node, babelHelpers.classPrivateFieldLooseBase(this, _classNameOff)[_classNameOff]);
	      fireEvents ? babelHelpers.classPrivateFieldLooseBase(this, _fireEvent)[_fireEvent](this.events.checked) : null;
	    }
	    if (fireEvents) {
	      babelHelpers.classPrivateFieldLooseBase(this, _fireEvent)[_fireEvent](this.events.toggled);
	    }
	  }
	  isDisabled() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _disabled)[_disabled];
	  }
	  isChecked() {
	    return this.checked;
	  }
	  toggle() {
	    if (this.isDisabled()) {
	      return;
	    }
	    this.check(!this.isChecked());
	  }
	  setLoading(mode) {
	    babelHelpers.classPrivateFieldLooseBase(this, _loading)[_loading] = Boolean(mode);
	    const cursor = this.getNode().querySelector('.ui-switcher-cursor');
	    if (babelHelpers.classPrivateFieldLooseBase(this, _loading)[_loading]) {
	      const svg = main_core.Tag.render(_t || (_t = _`
				<svg viewBox="25 25 50 50">
					<circle
						class="ui-sidepanel-wrapper-loader-path"
						cx="50"
						cy="50"
						r="19"
						fill="none"
						stroke-width="5"
						stroke-miterlimit="10"
					>
					</circle>
				</svg>
			`));
	      main_core.Dom.append(svg, cursor);
	    } else {
	      cursor.innerHTML = '';
	    }
	  }
	  isLoading() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _loading)[_loading];
	  }
	  renderTo(targetNode) {
	    if (!main_core.Type.isDomNode(targetNode)) {
	      throw new Error('Target node must be HTMLElement');
	    }
	    return main_core.Dom.append(this.getNode(), targetNode);
	  }
	  getNode() {
	    return this.node;
	  }
	  getAttributeName() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _attributeName)[_attributeName];
	  }
	  getInputName() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _inputName)[_inputName];
	  }
	}
	function _initNode2() {
	  if (this.node.getAttribute(babelHelpers.classPrivateFieldLooseBase(Switcher, _attributeInitName)[_attributeInitName])) {
	    return;
	  }
	  this.node.setAttribute(babelHelpers.classPrivateFieldLooseBase(Switcher, _attributeInitName)[_attributeInitName], 'y');
	  main_core.Dom.addClass(this.node, Switcher.className);
	  this.node.innerHTML = '<span class="ui-switcher-cursor"></span>\n' + '<span class="ui-switcher-enabled">' + main_core.Loc.getMessage('UI_SWITCHER_ON') + '</span>\n' + '<span class="ui-switcher-disabled">' + main_core.Loc.getMessage('UI_SWITCHER_OFF') + '</span>\n';
	  if (babelHelpers.classPrivateFieldLooseBase(this, _inputName)[_inputName]) {
	    this.inputNode = main_core.Tag.render(_t2 || (_t2 = _`
				<input type="hidden" name="${0}" />
			`), babelHelpers.classPrivateFieldLooseBase(this, _inputName)[_inputName]);
	    main_core.Dom.append(this.inputNode, this.node);
	  }
	  main_core.bind(this.node, 'click', this.toggle.bind(this));
	}
	function _fireEvent2(eventName) {
	  main_core.onCustomEvent(this, eventName);
	  if (this.handlers[eventName]) {
	    this.handlers[eventName].call(this);
	  }
	}
	Object.defineProperty(Switcher, _attributeInitName, {
	  writable: true,
	  value: 'data-switcher-init'
	});
	Switcher.list = [];
	Switcher.className = 'ui-switcher';

	exports.SwitcherSize = SwitcherSize;
	exports.SwitcherColor = SwitcherColor;
	exports.Switcher = Switcher;

}((this.BX.UI = this.BX.UI || {}),BX));
//# sourceMappingURL=ui.switcher.bundle.js.map