Your IP : 172.71.120.4


Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/dialogs/checkbox-list/dist/
Upload File :
Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/dialogs/checkbox-list/dist/bundle.js

this.BX = this.BX || {};
(function (exports,ui_designTokens,main_popup,ui_vue3,ui_switcher,ui_forms,main_core_events,main_core) {
	'use strict';

	var CheckboxListSections = {
	  props: ['sections'],
	  methods: {
	    handleClick: function handleClick(key) {
	      this.$emit('sectionToggled', key);
	    },
	    getSectionsItemClassName: function getSectionsItemClassName(sectionValue) {
	      return ['ui-checkbox-list__sections-item', {
	        '--checked': sectionValue
	      }];
	    }
	  },
	  template: "\n\t\t<div class=\"ui-checkbox-list__sections\">\n\t\t\t<div \n\t\t\t\tv-for=\"section in sections\"\n\t\t\t\t:key=\"section.key\"\n\t\t\t\t:title=\"section.title\"\n\t\t\t\t:class=\"getSectionsItemClassName(section.value)\"\n\t\t\t\t@click=\"handleClick(section.key)\"\n\t\t\t>\n\t\t\t\t<div class=\"ui-checkbox-list__check-box\"></div>\n\t\t\t\t{{ section.title }}\n\t\t\t</div>\n\t\t</div>\n\t"
	};

	var CheckboxListCategory = {
	  props: ['columnCount', 'category', 'options'],
	  methods: {
	    handleCheckBox: function handleCheckBox(id) {
	      this.$emit('changeOption', id);
	    },
	    getOptionClassName: function getOptionClassName(optionValue) {
	      return ['ui-ctl', 'ui-ctl-checkbox', 'ui-checkbox-list__field-item_label', {
	        '--checked': optionValue
	      }];
	    }
	  },
	  template: "\n\t\t<div class=\"ui-checkbox-list__category\">\n\t\t\t<div class=\"ui-checkbox-list__categories-title\">\n\t\t\t\t{{ category.title }}\n\t\t\t</div>\n\t\t\t<div \n\t\t\t\tclass=\"ui-checkbox-list__options\"\n\t\t\t\t:style=\"{'-webkit-column-count': columnCount, \n\t\t\t\t\t\t '-moz-column-count': columnCount, \n\t\t\t\t\t\t 'column-count': columnCount,\n\t\t\t\t\t\t }\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"option in options\"\n\t\t\t\t\t:key=\"option.id\"\n\t\t\t\t>\n\t\t\t\t\t<label\n\t\t\t\t\t\t:title=\"option.title\"\n\t\t\t\t\t\t:class=\"getOptionClassName(option.value)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"ui-ctl-element ui-checkbox-list__field-item_input\"\n\t\t\t\t\t\t\t:checked=\"option.value\"\n\t\t\t\t\t\t\t@click=\"handleCheckBox(option.id)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"ui-ctl-label-text ui-checkbox-list__field-item_text\">{{ option.title }}</div>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t"
	};

	var Content = {
	  components: {
	    CheckboxListSections: CheckboxListSections,
	    CheckboxListCategory: CheckboxListCategory
	  },
	  props: ['dialog', 'popup', 'columnCount', 'compactField', 'lang', 'sections', 'categories', 'options'],
	  data: function data() {
	    return {
	      dataSections: this.sections,
	      dataCategories: this.categories,
	      dataOptions: this.options,
	      dataCompactField: this.compactField,
	      search: '',
	      longContent: false,
	      scrollIsBottom: true,
	      scrollIsTop: false
	    };
	  },
	  methods: {
	    renderSwitcher: function renderSwitcher() {
	      var _this = this;

	      if (this.dataCompactField) {
	        var switcher = new BX.UI.Switcher({
	          node: this.$refs.switcher,
	          checked: this.dataCompactField.value,
	          size: 'small',
	          handlers: {
	            toggled: function toggled() {
	              return _this.handleSwitcherToggled();
	            }
	          }
	        });
	      }
	    },
	    handleSwitcherToggled: function handleSwitcherToggled() {
	      this.dataCompactField.value = !this.dataCompactField.value;
	    },
	    handleCheckBoxToggled: function handleCheckBoxToggled(id) {
	      var item = this.dataOptions.find(function (option) {
	        return option.id === id;
	      });

	      if (item) {
	        item.value = !item.value;
	      }
	    },
	    clearSearch: function clearSearch() {
	      this.search = '';
	    },
	    handleClearSearchButtonClick: function handleClearSearchButtonClick() {
	      this.$refs.searchInput.focus();
	      this.clearSearch();
	    },
	    handleSectionsToggled: function handleSectionsToggled(key) {
	      var section = this.dataSections.find(function (section) {
	        return section.key === key;
	      });

	      if (section) {
	        section.value = !section.value;
	      }
	    },
	    getOptionsByCategory: function getOptionsByCategory(category) {
	      return this.optionsByTitle.filter(function (item) {
	        return item.categoryKey === category;
	      });
	    },
	    getCheckedOptionsId: function getCheckedOptionsId() {
	      return this.dataOptions.filter(function (option) {
	        return option.value === true;
	      }).map(function (option) {
	        return option.id;
	      });
	    },
	    checkLongContent: function checkLongContent() {
	      if (this.$refs.container) {
	        this.longContent = this.$refs.container.clientHeight < this.$refs.container.scrollHeight;
	      } else {
	        this.longContent = false;
	      }
	    },
	    getBottomIndent: function getBottomIndent() {
	      this.scrollIsBottom = !(this.$refs.container.scrollTop + this.$refs.container.clientHeight >= this.$refs.container.scrollHeight - 10);
	    },
	    getTopIndent: function getTopIndent() {
	      this.scrollIsTop = this.$refs.container.scrollTop;
	    },
	    handleScroll: function handleScroll() {
	      this.getBottomIndent();
	      this.getTopIndent();
	    },
	    handleSearchEscKeyUp: function handleSearchEscKeyUp() {
	      this.$refs.container.focus();
	      this.clearSearch();
	    },
	    defaultSettings: function defaultSettings() {
	      this.clearSearch();

	      if (this.dataCompactField && this.dataCompactField.value !== this.dataCompactField.defaultValue) {
	        this.$refs.switcher.click();
	      }

	      this.dataOptions.forEach(function (option) {
	        return option.value = option.defaultValue;
	      });

	      if (Array.isArray(this.dataSections)) {
	        this.dataSections.forEach(function (sections) {
	          return sections.value = true;
	        });
	      }
	    },
	    selectAll: function selectAll() {
	      var _this2 = this;

	      this.categoryBySection.forEach(function (category) {
	        _this2.getOptionsByCategory(category.key).forEach(function (option) {
	          return option.value = true;
	        });
	      });
	    },
	    deselectAll: function deselectAll() {
	      var _this3 = this;

	      this.categoryBySection.forEach(function (category) {
	        _this3.getOptionsByCategory(category.key).forEach(function (option) {
	          return option.value = false;
	        });
	      });
	    },
	    cancel: function cancel() {
	      this.popup.destroy();
	    },
	    apply: function apply() {
	      main_core_events.EventEmitter.emit(this.dialog, 'onApply', {
	        switcher: this.dataCompactField,
	        fields: this.getCheckedOptionsId()
	      });
	      this.popup.destroy();
	    }
	  },
	  watch: {
	    search: function search() {
	      var _this4 = this;

	      this.$nextTick(function () {
	        _this4.checkLongContent();
	      });
	    },
	    categoryBySection: function categoryBySection() {
	      var _this5 = this;

	      this.$nextTick(function () {
	        _this5.checkLongContent();
	      });
	    }
	  },
	  computed: {
	    visibleOptions: function visibleOptions() {
	      var _this6 = this;

	      if (!Array.isArray(this.dataSections) || !this.dataSections.length) {
	        return this.optionsByTitle;
	      }

	      return this.optionsByTitle.filter(function (option) {
	        var category = _this6.dataCategories.find(function (category) {
	          return category.key === option.categoryKey;
	        });

	        var section = _this6.dataSections.find(function (section) {
	          return section.key === category.sectionKey;
	        });

	        return section === null || section === void 0 ? void 0 : section.value;
	      });
	    },
	    isEmptyContent: function isEmptyContent() {
	      return this.visibleOptions.length > 0;
	    },
	    isSearchDisabled: function isSearchDisabled() {
	      if (this.dataSections) {
	        return !this.dataSections.some(function (section) {
	          return section.value;
	        });
	      }

	      return false;
	    },
	    optionsByTitle: function optionsByTitle() {
	      var _this7 = this;

	      return this.dataOptions.filter(function (item) {
	        return item.title.toLowerCase().indexOf(_this7.search.toLowerCase()) !== -1;
	      });
	    },
	    categoryBySection: function categoryBySection() {
	      var _this8 = this;

	      if (!Array.isArray(this.dataSections) || !main_core.Type.isArrayFilled(this.dataSections)) {
	        return this.dataCategories;
	      }

	      return this.dataCategories.filter(function (category) {
	        var section = _this8.dataSections.find(function (section) {
	          return category.sectionKey === section.key;
	        });

	        return section === null || section === void 0 ? void 0 : section.value;
	      });
	    },
	    wrapperClassName: function wrapperClassName() {
	      return ['ui-checkbox-list__wrapper', {
	        '--long': this.longContent
	      }, {
	        '--bottom': this.scrollIsBottom
	      }, {
	        '--top': this.scrollIsTop
	      }];
	    },
	    searchClassName: function searchClassName() {
	      return ['ui-checkbox-list__search', {
	        '--disabled': this.isSearchDisabled
	      }];
	    },
	    SwitcherText: function SwitcherText() {
	      return main_core.Type.isStringFilled(this.lang.switcher) ? this.lang.switcher : main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_SETTINGS_SWITCHER');
	    },
	    placeholderText: function placeholderText() {
	      return main_core.Type.isStringFilled(this.lang.placeholder) ? this.lang.placeholder : main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_SETTINGS_PLACEHOLDER');
	    },
	    defaultSettingsBtnText: function defaultSettingsBtnText() {
	      return main_core.Type.isStringFilled(this.lang.defaultBtn) ? this.lang.defaultBtn : main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_SETTINGS');
	    },
	    applyBtnText: function applyBtnText() {
	      return main_core.Type.isStringFilled(this.lang.acceptBtn) ? this.lang.acceptBtn : main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_ACCEPT_BUTTON');
	    },
	    cancelBtnText: function cancelBtnText() {
	      return main_core.Type.isStringFilled(this.lang.cancelBtn) ? this.lang.cancelBtn : main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_CANCEL_BUTTON');
	    },
	    selectAllBtnText: function selectAllBtnText() {
	      return main_core.Type.isStringFilled(this.lang.selectAllBtn) ? this.lang.selectAllBtn : main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_SELECT_ALL');
	    },
	    deselectAllBtnText: function deselectAllBtnText() {
	      return main_core.Type.isStringFilled(this.lang.deselectAllBtn) ? this.lang.deselectAllBtn : main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_SETTINGS_DESELECT_ALL');
	    },
	    emptyStateTitleText: function emptyStateTitleText() {
	      return main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_SETTINGS_EMPTY_STATE_TITLE');
	    },
	    emptyStateDescriptionText: function emptyStateDescriptionText() {
	      return main_core.Loc.getMessage('UI_CHECKBOX_LIST_DEFAULT_SETTINGS_EMPTY_STATE_DESCRIPTION');
	    }
	  },
	  mounted: function mounted() {
	    var _this9 = this;

	    this.renderSwitcher();
	    this.$nextTick(function () {
	      _this9.checkLongContent();
	    });
	  },
	  template: "\n\t\t<div class=\"ui-checkbox-list\">\n\t\t<div class=\"ui-checkbox-list__header\">\n\n\t\t\t<checkbox-list-sections\n\t\t\t\tv-if=\"sections\"\n\t\t\t\t:sections=\"dataSections\"\n\t\t\t\t@sectionToggled=\"handleSectionsToggled\"\n\t\t\t/>\n\n\t\t\t<div class=\"ui-checkbox-list__header_options\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"compactField\"\n\t\t\t\t\tclass=\"ui-checkbox-list__switcher\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"ui-checkbox-list__switcher-text\">\n\t\t\t\t\t\t{{ SwitcherText }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"switcher\" ref=\"switcher\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t:class=\"searchClassName\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"ui-checkbox-list__search-wrapper\">\n\t\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-before-icon ui-ctl-after-icon ui-ctl-w100\">\n\n\t\t\t\t\t\t\t<div class=\"ui-ctl-before ui-ctl-icon-search\"></div>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t@click=\"handleClearSearchButtonClick\"\n\t\t\t\t\t\t\t\tclass=\"ui-ctl-after ui-ctl-icon-clear ui-checkbox-list__search-clear\"\n\t\t\t\t\t\t\t></button>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t:placeholder=\"placeholderText\"\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tclass=\"ui-ctl-element\"\n\t\t\t\t\t\t\t\tv-model=\"search\"\n\t\t\t\t\t\t\t\t@keyup.esc.stop=\"handleSearchEscKeyUp\"\n\t\t\t\t\t\t\t\tref=\"searchInput\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div\n\t\t\tref=\"wrapper\"\n\t\t\t:class=\"wrapperClassName\"\n\t\t>\n\t\t\t<div\n\t\t\t\tref=\"container\"\n\t\t\t\tclass=\"ui-checkbox-list__container\"\n\t\t\t\t@scroll=\"handleScroll\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tv-if=\"isEmptyContent\"\n\t\t\t>\n\t\t\t\t<checkbox-list-category\n\t\t\t\t\tv-for=\"category in categoryBySection\"\n\t\t\t\t\t:key=\"category.key\"\n\t\t\t\t\t:category=\"category\"\n\t\t\t\t\t:columnCount=\"columnCount\"\n\t\t\t\t\t:options=\"getOptionsByCategory(category.key)\"\n\t\t\t\t\t@changeOption=\"handleCheckBoxToggled\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-else\n\t\t\t\tclass=\"ui-checkbox-list__empty\"\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc=\"/bitrix/js/ui/dialogs/checkbox-list/images/ui-checkbox-list-empty.svg\"\n\t\t\t\t\t:alt=\"emptyStateTitleText\">\n\t\t\t\t<div class=\"ui-checkbox-list__empty-title\">\n\t\t\t\t\t{{ emptyStateTitleText }}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-checkbox-list__empty-description\">\n\t\t\t\t\t{{ emptyStateDescriptionText }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"ui-checkbox-list__footer\">\n\t\t\t<div class=\"ui-checkbox-list__footer-block\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ui-checkbox-list__footer-link --default\"\n\t\t\t\t\t@click=\"defaultSettings()\"\n\t\t\t\t>\n\t\t\t\t\t{{ defaultSettingsBtnText }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"ui-checkbox-list__footer-block\">\n\t\t\t\t<button\n\t\t\t\t\t@click=\"apply()\"\n\t\t\t\t\tclass=\"ui-btn ui-btn-success\">\n\t\t\t\t\t{{ applyBtnText }}\n\t\t\t\t</button>\n\n\t\t\t\t<button\n\t\t\t\t\t@click=\"cancel()\"\n\t\t\t\t\tclass=\"ui-btn ui-btn-link\"\n\t\t\t\t>\n\t\t\t\t\t{{ cancelBtnText }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"ui-checkbox-list__footer-block --right\">\n\t\t\t\t<div\n\t\t\t\t\t@click=\"selectAll()\"\n\t\t\t\t\tclass=\"ui-checkbox-list__footer-link\"\n\t\t\t\t>\n\t\t\t\t\t{{ selectAllBtnText }}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t@click=\"deselectAll()\"\n\t\t\t\t\tclass=\"ui-checkbox-list__footer-link\"\n\t\t\t\t>\n\t\t\t\t\t{{ deselectAllBtnText }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t</div>\n\t"
	};

	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; }

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

	  function CheckboxList(options) {
	    var _this;

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

	    _this.setEventNamespace('BX.UI.Dialogs.CheckboxList');

	    _this.subscribeFromOptions(options.events);

	    if (!main_core.Type.isArrayFilled(options.categories)) {
	      throw new Error('CheckboxList: "categories" parameter is required.');
	    }

	    _this.categories = options.categories;

	    if (!main_core.Type.isArrayFilled(options.options)) {
	      throw new Error('CheckboxList: "options" parameter is required.');
	    }

	    _this.options = options.options;
	    _this.compactField = main_core.Type.isPlainObject(options.compactField) ? options.compactField : null;
	    _this.sections = main_core.Type.isArray(options.sections) ? options.sections : null;
	    _this.lang = main_core.Type.isPlainObject(options.lang) ? options.lang : {};
	    _this.popup = null;
	    _this.columnCount = main_core.Type.isNumber(options.columnCount) ? options.columnCount : 4;
	    _this.popupOptions = main_core.Type.isPlainObject(options.popupOptions) ? options.popupOptions : {};
	    return _this;
	  }

	  babelHelpers.createClass(CheckboxList, [{
	    key: "getPopup",
	    value: function getPopup() {
	      var container = main_core.Dom.create('div');
	      main_core.Dom.addClass(container, 'ui-checkbox-list__app-container');

	      if (!this.popup) {
	        this.popup = new main_popup.Popup(_objectSpread({
	          className: 'ui-checkbox-list-popup',
	          width: 997,
	          overlay: true,
	          autoHide: true,
	          minHeight: 422,
	          borderRadius: 20,
	          contentPadding: 0,
	          contentBackground: 'transparent',
	          animation: 'fading-slide',
	          titleBar: this.lang.title,
	          content: container,
	          closeIcon: true,
	          closeByEsc: true
	        }, this.popupOptions));
	        ui_vue3.BitrixVue.createApp(Content, {
	          compactField: this.compactField,
	          lang: this.lang,
	          sections: this.sections,
	          categories: this.categories,
	          options: this.options,
	          popup: this.popup,
	          columnCount: this.columnCount,
	          dialog: this
	        }).mount(container);
	      }

	      return this.popup;
	    }
	  }, {
	    key: "show",
	    value: function show() {
	      this.getPopup().show();
	    }
	  }, {
	    key: "hide",
	    value: function hide() {
	      this.getPopup().hide();
	    }
	  }]);
	  return CheckboxList;
	}(main_core_events.EventEmitter);

	exports.CheckboxList = CheckboxList;

}((this.BX.UI = this.BX.UI || {}),BX,BX.Main,BX.Vue3,BX,BX,BX.Event,BX));
//# sourceMappingURL=bundle.js.map