403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/entity-catalog/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/entity-catalog/dist/entity-catalog.bundle.js.map
{"version":3,"file":"entity-catalog.bundle.js","sources":["../src/directives/feedback.js","../src/components/group.js","../src/components/group-list.js","../src/components/main-groups.js","../src/components/item-list-advice.js","../src/components/button.js","../src/components/item.js","../src/components/item-list.js","../src/components/stubs/empty-content.js","../src/stores/global-state.js","../src/components/main-content.js","../src/components/titlebar-filter.js","../src/components/search.js","../src/components/application.js","../src/entity-catalog.js"],"sourcesContent":["import {Event} from \"main.core\";\nimport \"ui.feedback.form\";\n\nexport const feedback = {\n\tbeforeMount(element: HTMLElement, bindings): void\n\t{\n\t\tEvent.bind(element, 'click', (event) => {\n\t\t\tevent.preventDefault();\n\n\t\t\tBX.UI.Feedback.Form.open(bindings.value);\n\t\t});\n\t}\n};\n","import { Type } from 'main.core';\nimport { GroupData } from '@/types/group';\n\nimport '../css/group.css';\n\nexport const Group = {\n\temits: ['selected', 'unselected'],\n\n\tname: 'ui-entity-catalog-group',\n\tprops: {\n\t\tgroupData: {\n\t\t\ttype: GroupData,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\thasIcon(): boolean\n\t\t{\n\t\t\treturn Type.isStringFilled(this.groupData.icon);\n\t\t},\n\t},\n\tmethods: {\n\t\thandleClick()\n\t\t{\n\t\t\tif (this.groupData.deselectable)\n\t\t\t{\n\t\t\t\tthis.$emit(!this.groupData.selected ? 'selected' : 'unselected', this.groupData);\n\t\t\t}\n\t\t\telse if (!this.groupData.selected)\n\t\t\t{\n\t\t\t\tthis.$emit('selected', this.groupData);\n\t\t\t}\n\t\t},\n\t},\n\ttemplate: `\n\t\t<slot name=\"group\" v-bind:groupData=\"groupData\" v-bind:handleClick=\"handleClick\">\n\t\t\t<li \n\t\t\t\t:class=\"{\n\t\t\t\t\t'ui-entity-catalog__menu_item': true,\n\t\t\t\t\t'--active': groupData.selected,\n\t\t\t\t\t'--disabled': groupData.disabled\n\t\t\t\t}\"\n\t\t\t\t@click=\"handleClick\"\n\t\t\t>\n\t\t\t\t<span class=\"ui-entity-catalog__menu_item-icon\" v-if=\"hasIcon\" v-html=\"groupData.icon\"/>\n\t\t\t\t<span class=\"ui-entity-catalog__menu_item-text\">{{ groupData.name }}</span>\n\t\t\t</li>\n\t\t</slot>\n\t`,\n};","import { Group } from './group';\nimport type { GroupData } from '@/types/group';\n\nimport '../css/group-list.css';\n\nexport const GroupList = {\n\temits: ['groupSelected', 'groupUnselected'],\n\n\tname: 'ui-entity-selector-group-list',\n\tcomponents: {\n\t\tGroup,\n\t},\n\tprops: {\n\t\tgroups: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmethods: {\n\t\thandleGroupSelected(group: GroupData)\n\t\t{\n\t\t\tthis.$emit('groupSelected', group);\n\t\t},\n\t\thandleGroupUnselected(group: GroupData)\n\t\t{\n\t\t\tthis.$emit('groupUnselected', group);\n\t\t}\n\t},\n\ttemplate: `\n\t\t<ul class=\"ui-entity-catalog__menu\">\n\t\t\t<Group\n\t\t\t\t:group-data=\"group\"\n\t\t\t\t:key=\"group.id\"\n\t\t\t\tv-for=\"group in groups\"\n\t\t\t\t@selected=\"handleGroupSelected\"\n\t\t\t\t@unselected=\"handleGroupUnselected\"\n\t\t\t>\n\t\t\t\t<template #group=\"groupSlotProps\">\n\t\t\t\t\t<slot\n\t\t\t\t\t\tname=\"group\"\n\t\t\t\t\t\tv-bind:groupData=\"groupSlotProps.groupData\"\n\t\t\t\t\t\tv-bind:handleClick=\"groupSlotProps.handleClick\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t</Group>\n\t\t</ul>\n\t`,\n}","import { Loc } from 'main.core';\nimport { GroupList } from './group-list';\n\nimport { GroupData } from '@/type/group';\n\nimport '../css/main-groups.css';\n\nexport const MainGroups = {\n\temits: ['groupSelected'],\n\n\tname: 'ui-entity-catalog-main-groups',\n\tcomponents: {\n\t\tGroupList,\n\t},\n\tprops: {\n\t\trecentGroupData: {\n\t\t\ttype: GroupData,\n\t\t\trequired: false,\n\t\t},\n\t\tgroups: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tshowRecentGroup: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsearching: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t}\n\t},\n\tdata(): Object\n\t{\n\t\tconst recentGroup = this.getRecentGroup();\n\t\trecentGroup[0] = Object.assign(recentGroup[0], this.recentGroupData ?? {});\n\n\t\tlet selectedGroup = this.groups.find(group => group.selected) ?? null;\n\t\tif (!selectedGroup)\n\t\t{\n\t\t\tselectedGroup = recentGroup.find(group => group.selected) ?? null;\n\t\t}\n\n\t\treturn {\n\t\t\tshownGroups: this.groups,\n\t\t\tselectedGroup: null,\n\t\t\trecentGroup,\n\t\t};\n\t},\n\twatch: {\n\t\tselectedGroup(newGroup: ?GroupData)\n\t\t{\n\t\t\tconst newGroupId = newGroup ? newGroup.id : null;\n\n\t\t\tthis.shownGroups = this.shownGroups.map(groupList => groupList.map((group) => ({\n\t\t\t\t...group,\n\t\t\t\tselected: group.id === newGroupId,\n\t\t\t})));\n\n\t\t\tif (this.showRecentGroup && newGroupId !== this.recentGroup[0].id)\n\t\t\t{\n\t\t\t\tthis.recentGroup = [Object.assign(this.recentGroup[0], {selected: false})];\n\t\t\t}\n\n\t\t\tthis.$emit('groupSelected', newGroup);\n\t\t},\n\t},\n\tbeforeUpdate()\n\t{\n\t\tif (this.searching)\n\t\t{\n\t\t\tthis.shownGroups = this.shownGroups.map(groupList => groupList.map((group) => ({\n\t\t\t\t...group,\n\t\t\t\tselected: false,\n\t\t\t})));\n\n\t\t\tthis.recentGroup = [Object.assign(this.recentGroup[0], {selected: false})];\n\t\t}\n\t},\n\tmethods:{\n\t\tgetRecentGroup(): Array<GroupData>\n\t\t{\n\t\t\treturn [{\n\t\t\t\tid: 'recent',\n\t\t\t\tname: Loc.getMessage('UI_JS_ENTITY_CATALOG_GROUP_LIST_RECENT_GROUP_DEFAULT_NAME'),\n\t\t\t\ticon: `\n\t\t\t\t\t<svg width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<path class=\"ui-entity-catalog__svg-icon-blue\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.369 13.2593C13.0305 13.2593 15.9986 10.2911 15.9986 6.62965C15.9986 2.9682 13.0305 0 9.369 0C6.00693 0 3.22939 2.50263 2.79764 5.74663H0L3.69844 9.44506L7.39687 5.74663H4.48558C4.90213 3.4276 6.93006 1.66789 9.369 1.66789C12.1093 1.66789 14.3308 3.88935 14.3308 6.62965C14.3308 9.36995 12.1093 11.5914 9.369 11.5914C9.2435 11.5914 9.11909 11.5867 8.99593 11.5776V13.249C9.11941 13.2558 9.2438 13.2593 9.369 13.2593ZM10.0865 4.01429H8.41983V8.18096H9.65978H10.0865H12.1195V6.56367H10.0865V4.01429Z\"></path>\n\t\t\t\t\t</svg>\n\t\t\t\t`,\n\t\t\t}];\n\t\t},\n\t\thandleGroupSelected(group: GroupData)\n\t\t{\n\t\t\tthis.selectedGroup = group;\n\t\t},\n\t\thandleRecentGroupSelected(group: GroupData)\n\t\t{\n\t\t\tgroup.selected = true;\n\t\t\tthis.selectedGroup = group;\n\t\t},\n\t\thandleGroupUnselected()\n\t\t{\n\t\t\tthis.selectedGroup = null;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"ui-entity-catalog__main-groups\">\n\t\t\t<div class=\"ui-entity-catalog__main-groups-head\">\n\t\t\t\t<slot name=\"group-list-header\"/>\n\t\t\t</div>\n\t\t\t<div class=\"ui-entity-catalog__recently\" v-if=\"showRecentGroup\">\n\t\t\t\t<GroupList\n\t\t\t\t\t:groups=\"recentGroup\"\n\t\t\t\t\t@groupSelected=\"handleRecentGroupSelected\"\n\t\t\t\t\t@groupUnselected=\"handleGroupUnselected\"\n\t\t\t\t>\n\t\t\t\t\t<template #group=\"groupSlotProps\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\tname=\"group\"\n\t\t\t\t\t\t\tv-bind:groupData=\"groupSlotProps.groupData\"\n\t\t\t\t\t\t\tv-bind:handleClick=\"groupSlotProps.handleClick\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</template>\n\t\t\t\t</GroupList>\n\t\t\t</div>\n\t\t\t<div class=\"ui-entity-catalog__main-groups-content\">\n\t\t\t\t<GroupList\n\t\t\t\t\t:groups=\"groupList\"\n\t\t\t\t\tv-for=\"groupList in shownGroups\"\n\t\t\t\t\t@groupSelected=\"handleGroupSelected\"\n\t\t\t\t\t@groupUnselected=\"handleGroupUnselected\"\n\t\t\t\t>\n\t\t\t\t\t<template #group=\"groupSlotProps\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\tname=\"group\"\n\t\t\t\t\t\t\tv-bind:groupData=\"groupSlotProps.groupData\"\n\t\t\t\t\t\t\tv-bind:handleClick=\"groupSlotProps.handleClick\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</template>\n\t\t\t\t</GroupList>\n\t\t\t</div>\n\t\t\t<div class=\"ui-entity-catalog__main-groups-footer\">\n\t\t\t\t<slot name=\"group-list-footer\"/>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};","import { Type, Dom } from 'main.core';\nimport { GroupData } from '@/types/group';\nimport { Advice } from 'ui.advice';\n\nexport const ItemListAdvice = {\n\tname: 'ui-entity-catalog-item-list-advice',\n\tprops: {\n\t\tgroupData: {\n\t\t\ttype: GroupData,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tgetAvatar: function(): string\n\t\t{\n\t\t\treturn (\n\t\t\t\tType.isStringFilled(this.groupData.adviceAvatar)\n\t\t\t\t\t? this.groupData.adviceAvatar\n\t\t\t\t\t: '/bitrix/js/ui/entity-catalog/images/ui-entity-catalog--nata.jpg'\n\t\t\t);\n\t\t},\n\t},\n\n\tmethods: {\n\t\trenderAdvice() {\n\t\t\tDom.clean(this.$refs.container);\n\n\t\t\tconst advice = new Advice({\n\t\t\t\tcontent: this.groupData.adviceTitle,\n\t\t\t\tavatarImg: this.getAvatar,\n\t\t\t\tanglePosition: Advice.AnglePosition.BOTTOM,\n\t\t\t});\n\n\t\t\tadvice.renderTo(this.$refs.container);\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.renderAdvice();\n\t},\n\n\tupdated() {\n\t\tthis.renderAdvice();\n\t},\n\n\ttemplate: `\n\t\t<div ref=\"container\"></div>\n\t`,\n};","import { Loc, Type } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport { ButtonData } from '@/types/button';\n\nimport '../css/button.css';\n\nexport const Button = {\n\tname: 'ui-entity-catalog-button',\n\tprops: {\n\t\tbuttonData: {\n\t\t\ttype: ButtonData,\n\t\t\trequired: true,\n\t\t},\n\t\teventData: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tbuttonText(): string\n\t\t{\n\t\t\treturn (\n\t\t\t\tType.isStringFilled(this.buttonData.text)\n\t\t\t\t\t? this.buttonData.text\n\t\t\t\t\t: Loc.getMessage('UI_JS_ENTITY_CATALOG_ITEM_DEFAULT_BUTTON_TEXT')\n\t\t\t);\n\t\t},\n\t},\n\tmethods: {\n\t\thandleButtonClick(pointerEvent)\n\t\t{\n\t\t\tconst event = new BaseEvent({\n\t\t\t\tdata: {\n\t\t\t\t\teventData: this.eventData,\n\t\t\t\t\toriginalEvent: pointerEvent,\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (Type.isFunction(this.buttonData.action))\n\t\t\t{\n\t\t\t\tthis.buttonData.action.call(this, event);\n\t\t\t}\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"ui-entity-catalog__option-btn-block\">\n\t\t\t<div \n\t\t\t\tclass=\"ui-entity-catalog__btn\"\n\t\t\t\t:class=\"{'--lock': buttonData.locked}\"\n\t\t\t\t@click=\"handleButtonClick\"\n\t\t\t>{{buttonText}}</div>\n\t\t</div>\n\t`\n};","import { Type } from 'main.core';\nimport { Button } from './button';\nimport { ItemData } from '@/types/item';\nimport { ButtonData } from '@/types/button';\n\nimport '../css/item.css';\n\nexport const Item = {\n\tname: 'ui-entity-catalog-item',\n\tcomponents:{\n\t\tButton,\n\t},\n\tprops: {\n\t\titemData: {\n\t\t\ttype: ItemData,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tbuttonData(): ButtonData\n\t\t{\n\t\t\tif (!Type.isPlainObject(this.itemData.button))\n\t\t\t{\n\t\t\t\tthis.itemData.button = {};\n\t\t\t}\n\n\t\t\treturn this.itemData.button;\n\t\t}\n\t},\n\ttemplate: `\n\t\t<slot name=\"item\" v-bind:itemData=\"itemData\">\n\t\t\t<div class=\"ui-entity-catalog__option\">\n\t\t\t\t<div class=\"ui-entity-catalog__option-info\">\n\t\t\t\t\t<div class=\"ui-entity-catalog__option-info_name\">\n\t\t\t\t\t\t<span>{{itemData.title}}</span>\n\t\t\t\t\t\t<span class=\"ui-entity-catalog__option-info_label\" v-if=\"itemData.subtitle\">{{itemData.subtitle}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-entity-catalog__option-info_description\">\n\t\t\t\t\t\t{{itemData.description}}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<Button :buttonData=\"buttonData\" :event-data=\"itemData\"/>\n\t\t\t</div>\n\t\t</slot>\n\t`,\n}\n","import { Item } from './item';\n\nimport '../css/item-list.css';\n\nexport const ItemList = {\n\tname: 'ui-entity-selector-item-list',\n\tcomponents: {\n\t\tItem,\n\t},\n\tprops: {\n\t\titems: {\n\t\t\tType: Array,\n\t\t\trequired: true,\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"ui-entity-catalog__content\">\n\t\t\t<div class=\"ui-entity-catalog__options\">\n\t\t\t\t<Item \n\t\t\t\t\t:item-data=\"item\"\n\t\t\t\t\t:key=\"item.id\"\n\t\t\t\t\tv-for=\"item in items\"\n\t\t\t\t>\n\t\t\t\t\t<template #item=\"itemSlotProps\">\n\t\t\t\t\t\t<slot name=\"item\" v-bind:itemData=\"itemSlotProps.itemData\"/>\n\t\t\t\t\t</template>\n\t\t\t\t</Item>\n\t\t\t</div>\n\t\t</div>\n\t`,\n}","import '../../css/stubs/empty-content.css';\n\nexport const EmptyContent = {\n\ttemplate: `\n\t\t<div class=\"ui-entity-catalog__content --help-block\">\n\t\t\t<div class=\"ui-entity-catalog__empty-content\">\n\t\t\t\t<div class=\"ui-entity-catalog__empty-content_icon\">\n\t\t\t\t\t<img src=\"/bitrix/js/ui/entity-catalog/images/ui-entity-catalog--search-icon.svg\" alt=\"Choose a grouping\">\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-entity-catalog__empty-content_text\">\n\t\t\t\t\t<slot/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t`\n}","import { defineStore } from 'ui.vue3.pinia';\nimport { GroupData } from '@/types/group';\n\nexport const useGlobalState = defineStore('global-state', {\n\tstate: () => ({\n\t\tsearchQuery: '',\n\t\tsearchApplied: false,\n\t\tfiltersApplied: false,\n\t\tcurrentGroup: GroupData,\n\t\tshouldShowWelcomeStub: true,\n\t}),\n});\n","import { Type } from 'main.core';\nimport { mapState } from 'ui.vue3.pinia';\nimport { GroupData } from '@/types/group';\nimport { ItemListAdvice } from './item-list-advice';\nimport { ItemList} from './item-list';\nimport { EmptyContent } from './stubs/empty-content';\n\nimport { useGlobalState } from '../stores/global-state';\n\nimport '../css/main-content.css';\n\nexport const MainContent = {\n\tname: 'ui-entity-catalog-main-content',\n\tcomponents: {\n\t\tItemListAdvice,\n\t\tItemList,\n\t\tEmptyContent,\n\t},\n\tprops: {\n\t\titems: {\n\t\t\ttype: Array,\n\t\t\trequired: true\n\t\t},\n\t\titemsToShow: {\n\t\t\ttype: Array,\n\t\t},\n\t\tgroup: {\n\t\t\ttype: GroupData,\n\t\t\trequired: true,\n\t\t},\n\t\tsearching: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\t...mapState(useGlobalState, ['filtersApplied', 'shouldShowWelcomeStub']),\n\t\tshowAdvice(): boolean\n\t\t{\n\t\t\treturn this.group && Type.isStringFilled(this.group.adviceTitle) && !this.searching;\n\t\t},\n\t\thasItems(): boolean\n\t\t{\n\t\t\treturn this.group && this.items.length > 0;\n\t\t},\n\t\tshowWelcomeStub(): boolean\n\t\t{\n\t\t\treturn this.showNoSelectedGroupStub && this.shouldShowWelcomeStub;\n\t\t},\n\t\tshowNoSelectedGroupStub(): boolean\n\t\t{\n\t\t\treturn !this.group && !this.searching;\n\t\t},\n\t\tshowFiltersStub()\n\t\t{\n\t\t\tconst hasFilterStubTitle = !!this.$slots['main-content-filter-stub-title'];\n\n\t\t\treturn hasFilterStubTitle && this.hasItems && this.filtersApplied && (this.itemsToShow.length <= 0);\n\t\t},\n\t\tshowSearchStub(): boolean\n\t\t{\n\t\t\treturn (!this.group || this.hasItems) && this.searching && (this.itemsToShow.length <= 0);\n\t\t},\n\t\tshowEmptyGroupStub(): boolean\n\t\t{\n\t\t\treturn this.group && this.itemsToShow.length === 0;\n\t\t},\n\t\tshowSeparator(): boolean\n\t\t{\n\t\t\treturn this.showAdvice && (this.items.length <= 0);\n\t\t},\n\t},\n\tbeforeUpdate()\n\t{\n\t\tthis.$refs.content.scrollTop = 0;\n\t},\n\ttemplate: `\n\t\t<div class=\"ui-entity-catalog__main-content\">\n\t\t\t<div class=\"ui-entity-catalog__main-content-head\">\n\t\t\t\t<slot name=\"main-content-header\"/>\n\t\t\t</div>\n\t\t\t<ItemListAdvice v-if=\"showAdvice\" :groupData=\"group\" />\n\n\t\t\t<hr class=\"ui-entity-catalog__main-separator\" v-if=\"showSeparator\">\n\n\t\t\t<div class=\"ui-entity-catalog__main-content-body\" ref=\"content\">\n\t\t\t\t<slot name=\"main-content-welcome-stub\" v-if=\"showWelcomeStub\"/>\n\t\t\t\t<slot name=\"main-content-no-selected-group-stub\" v-else-if=\"showNoSelectedGroupStub\"/>\n\t\t\t\t<slot name=\"main-content-filter-stub\" v-if=\"showFiltersStub\">\n\t\t\t\t\t<EmptyContent>\n\t\t\t\t\t\t<slot name=\"main-content-filter-stub-title\"/>\n\t\t\t\t\t</EmptyContent>\n\t\t\t\t</slot>\n\t\t\t\t<slot name=\"main-content-search-stub\" v-else-if=\"showSearchStub\">\n\t\t\t\t\t<EmptyContent>\n\t\t\t\t\t\t<slot name=\"main-content-search-not-found-stub\"/>\n\t\t\t\t\t</EmptyContent>\n\t\t\t\t</slot>\n\t\t\t\t<slot name=\"main-content-empty-group-stub\" v-else-if=\"showEmptyGroupStub\">\n\t\t\t\t\t<EmptyContent>\n\t\t\t\t\t\t<slot name=\"main-content-empty-group-stub-title\"/>\n\t\t\t\t\t</EmptyContent> \n\t\t\t\t</slot>\n\t\t\t\t<ItemList v-else :items=\"itemsToShow\">\n\t\t\t\t\t<template #item=\"itemSlotProps\">\n\t\t\t\t\t\t<slot name=\"item\" v-bind:itemData=\"itemSlotProps.itemData\"/>\n\t\t\t\t\t</template>\n\t\t\t\t</ItemList>\n\t\t\t\t<div class=\"ui-entity-catalog__main-content-footer\">\n\t\t\t\t\t<slot name=\"main-content-footer\"/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};","import { Dom, Tag, Text, Loc } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport { MenuItemOptions, MenuManager, Menu } from 'main.popup';\n\nimport type { FilterData } from '@/types/filter'\n\nimport '../css/titlebar-filter.css';\n\nexport const TitleBarFilter = {\n\temits: ['onApplyFilters'],\n\tname: 'ui-entity-catalog-titlebar-filter',\n\tprops: {\n\t\tfilters: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tmultiple: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata(): Object\n\t{\n\t\treturn {\n\t\t\tappliedFilters: this.getAppliedFilters(),\n\t\t\tallFilters: this.filters,\n\t\t};\n\t},\n\tmethods: {\n\t\tshowMenu(): Menu\n\t\t{\n\t\t\tMenuManager.create({\n\t\t\t\tid: 'ui-entity-catalog-titlebar-filter-menu',\n\t\t\t\tbindElement: this.$el,\n\t\t\t\tminWidth: 271,\n\t\t\t\tautoHide: true,\n\t\t\t\tcontentColor: 'white',\n\t\t\t\tdraggable: false,\n\t\t\t\tcacheable: false,\n\t\t\t\titems: this.getItems(),\n\t\t\t}).show();\n\t\t},\n\t\tgetItems(): MenuItemOptions[]\n\t\t{\n\t\t\tconst items = [];\n\n\t\t\tfor (const key in this.allFilters)\n\t\t\t{\n\t\t\t\tconst html = Tag.render`\n\t\t\t\t\t<div style=\"display: flex\">\n\t\t\t\t\t\t<div>${Text.encode(this.filters[key].text)}</div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\n\t\t\t\tif (this.allFilters[key].applied)\n\t\t\t\t{\n\t\t\t\t\tDom.append(Tag.render`<div class=\"ui-entity-catalog__filter-block_selected\"></div>`, html);\n\t\t\t\t}\n\n\t\t\t\titems.push({\n\t\t\t\t\thtml,\n\t\t\t\t\tonclick: (event, item) => {\n\t\t\t\t\t\tif (this.allFilters[key].applied)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdelete this.appliedFilters[this.allFilters[key].id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (!this.multiple)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.clearAllAction();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.appliedFilters[this.allFilters[key].id] = this.allFilters[key];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.allFilters[key].applied = !this.allFilters[key].applied;\n\t\t\t\t\t\tthis.$emit('onApplyFilters', new BaseEvent({data: this.appliedFilters}));\n\n\n\t\t\t\t\t\titem.getMenuWindow().close();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\titems.push({\n\t\t\t\tdelimiter: true,\n\t\t\t});\n\n\t\t\titems.push(this.getClearAllFilter());\n\n\t\t\treturn items;\n\t\t},\n\t\tgetClearAllFilter(): MenuItemOptions\n\t\t{\n\t\t\treturn {\n\t\t\t\thtml: `\n\t\t\t\t\t<div style=\"display: flex\">\n\t\t\t\t\t\t<div>${Loc.getMessage('UI_JS_ENTITY_CATALOG_RESET_FILTER')}</div>\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t\tonclick: (event, item) => {\n\t\t\t\t\tthis.clearAllAction();\n\t\t\t\t\tthis.$emit('onApplyFilters', new BaseEvent({data: this.appliedFilters}));\n\n\t\t\t\t\titem.getMenuWindow().close();\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\tclearAllAction()\n\t\t{\n\t\t\tthis.appliedFilters = {};\n\t\t\tthis.allFilters = this.allFilters.map(filter => ({...filter, applied: false}));\n\t\t},\n\t\tgetAppliedFilters(): Object<string, FilterData>\n\t\t{\n\t\t\tconst appliedFilters = {};\n\n\t\t\tfor (const key in this.filters)\n\t\t\t{\n\t\t\t\tif (this.filters[key].applied)\n\t\t\t\t{\n\t\t\t\t\tappliedFilters[this.filters[key].id] = this.filters[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (Object.keys(appliedFilters).length > 0)\n\t\t\t{\n\t\t\t\tthis.$emit('onApplyFilters', new BaseEvent({data: appliedFilters}));\n\t\t\t}\n\n\t\t\treturn appliedFilters;\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div \n\t\t\t:class=\"{\n\t\t\t\t'ui-entity-catalog__titlebar_btn-filter': true,\n\t\t\t\t'--active': Object.keys(appliedFilters).length > 0\n\t\t\t}\"\n\t\t\t@click=\"showMenu\">\n\t\t</div>\n\t`,\n};","import { BaseEvent } from 'main.core.events';\nimport { Loc, debounce, Type } from 'main.core';\n\nexport const Search = {\n\temits: ['onSearch'],\n\tname: 'ui-entity-catalog-titlebar-search',\n\tdata(): Object\n\t{\n\t\treturn {\n\t\t\topened: false,\n\t\t\tdebounceSearchHandler: null,\n\t\t\tqueryString: '',\n\t\t\tshowClearSearch: false,\n\t\t};\n\t},\n\twatch:{\n\t\tqueryString(newString)\n\t\t{\n\t\t\tthis.showClearSearch = this.opened && this.$refs['search-input'] && Type.isStringFilled(newString);\n\t\t},\n\t},\n\tcreated()\n\t{\n\t\tthis.debounceSearchHandler = debounce((event) => {\n\t\t\tthis.onSearch(event.target.value);\n\t\t}, 255);\n\t},\n\tmethods: {\n\t\topenSearch()\n\t\t{\n\t\t\tthis.opened = true;\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs['search-input'].focus();\n\t\t\t});\n\t\t},\n\t\tonSearch(queryString)\n\t\t{\n\t\t\tthis.queryString = queryString;\n\t\t\tthis.$emit(\n\t\t\t\t'onSearch',\n\t\t\t\tnew BaseEvent({data: {queryString: queryString ? queryString.toString() : ''}})\n\t\t\t);\n\t\t},\n\t\tclearSearch()\n\t\t{\n\t\t\tif (this.showClearSearch)\n\t\t\t{\n\t\t\t\tthis.$refs['search-input'].value = '';\n\t\t\t\tthis.onSearch('');\n\t\t\t}\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"ui-ctl ui-ctl-after-icon ui-ctl-w100 ui-ctl-round\" @click.once=\"openSearch\">\n\t\t\t<a \n\t\t\t\t:class=\"{\n\t\t\t\t\t'ui-ctl-after': true,\n\t\t\t\t\t'ui-ctl-icon-search': !showClearSearch,\n\t\t\t\t\t'ui-ctl-icon-clear': showClearSearch\n\t\t\t\t}\"\n\t\t\t\t@click=\"clearSearch\"\n\t\t\t/>\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tclass=\"ui-ctl-element ui-ctl-textbox\"\n\t\t\t\tplaceholder=\"${Loc.getMessage('UI_JS_ENTITY_CATALOG_GROUP_LIST_SEARCH_PLACEHOLDER')}\"\n\t\t\t\tref=\"search-input\"\n\t\t\t\tv-if=\"opened\"\n\t\t\t\t@input=\"debounceSearchHandler\"\n\t\t\t/>\n\t\t</div>\n\t`,\n};","import { Type, Runtime } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport { mapWritableState } from 'ui.vue3.pinia';\nimport 'ui.icons';\n\nimport { MainGroups } from './main-groups';\nimport { MainContent } from './main-content';\nimport { TitleBarFilter } from './titlebar-filter';\nimport { Search } from './search';\n\nimport { useGlobalState } from '../stores/global-state';\n\nimport { GroupData } from '@/type/group';\nimport type { ItemData } from '@/type/item';\n\nimport '../css/application.css';\n\nexport const Application = {\n\tname: 'ui-entity-catalog-application',\n\tcomponents: {\n\t\tMainGroups,\n\t\tMainContent,\n\t\tTitleBarFilter,\n\t\tSearch,\n\t},\n\tprops: {\n\t\trecentGroupData: {\n\t\t\ttype: GroupData,\n\t\t\trequired: false,\n\t\t},\n\t\tgroups: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\titems: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tshowEmptyGroups: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tshowRecentGroup: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tfilterOptions: {\n\t\t\ttype: Object,\n\t\t\tdefault: {\n\t\t\t\tfilterItems: [],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t},\n\t},\n\tdata(): Object\n\t{\n\t\tlet selectedGroup = null;\n\t\tfor (const groupList of this.groups)\n\t\t{\n\t\t\tselectedGroup = groupList.find(group => group.selected);\n\t\t\tif (selectedGroup)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (Type.isNil(selectedGroup) && this.recentGroupData?.selected)\n\t\t{\n\t\t\tselectedGroup = {id: 'recent', ...(this.recentGroupData ?? {})};\n\t\t}\n\n\t\treturn {\n\t\t\tselectedGroup,\n\t\t\tselectedGroupId: selectedGroup?.id ?? null,\n\t\t\tshownItems: [],\n\t\t\tshownGroups: this.getDisplayedGroup(),\n\t\t\tlastSearchString: '',\n\t\t\tfilters: [],\n\t\t};\n\t},\n\tcomputed: {\n\t\titemsBySelectedGroupId(): Array<ItemData>\n\t\t{\n\t\t\tconst items = this.items.filter((item) => item.groupIds.some(id => id === this.selectedGroupId));\n\n\t\t\treturn this.selectedGroup?.compare ? items.sort(this.selectedGroup.compare) : items;\n\t\t},\n\t\t...mapWritableState(useGlobalState, {\n\t\t\tsearchQuery: 'searchQuery',\n\t\t\tsearching: 'searchApplied',\n\t\t\tfiltersApplied: 'filtersApplied',\n\t\t\tglobalGroup: 'currentGroup',\n\t\t\tshouldShowWelcomeStub: 'shouldShowWelcomeStub',\n\t\t}),\n\t},\n\twatch: {\n\t\tselectedGroup()\n\t\t{\n\t\t\tthis.shouldShowWelcomeStub = false;\n\t\t\tthis.globalGroup = this.selectedGroup;\n\t\t},\n\t\tselectedGroupId()\n\t\t{\n\t\t\tif (this.searching)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.shownItems = this.itemsBySelectedGroupId;\n\t\t\tthis.applyFilters();\n\t\t},\n\t},\n\tcreated()\n\t{\n\t\tthis.shownItems = this.itemsBySelectedGroupId;\n\t},\n\tmethods: {\n\t\tgetDisplayedGroup(): Array<Array<GroupData>>\n\t\t{\n\t\t\tif (this.showEmptyGroups)\n\t\t\t{\n\t\t\t\treturn Runtime.clone(this.groups);\n\t\t\t}\n\n\t\t\tconst groupIdsWithItems = new Set();\n\t\t\tthis.items.forEach((item: ItemData) => {\n\t\t\t\titem.groupIds.forEach((groupId: String | Number) => {\n\t\t\t\t\tgroupIdsWithItems.add(groupId)\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn (\n\t\t\t\tthis\n\t\t\t\t\t.groups\n\t\t\t\t\t.map((groupList: Array<GroupData>) => groupList.filter((group: GroupData) => groupIdsWithItems.has(group.id)\n\t\t\t\t\t))\n\t\t\t\t\t.filter(groupList => groupList.length > 0)\n\t\t\t);\n\t\t},\n\t\thandleGroupSelected(group: ?GroupData)\n\t\t{\n\t\t\tthis.searching = false;\n\t\t\tthis.$refs.search?.clearSearch();\n\n\t\t\tthis.selectedGroupId = group ? group.id : null;\n\t\t\tthis.selectedGroup = group ?? null;\n\t\t},\n\t\tonSearch(event: BaseEvent)\n\t\t{\n\t\t\tconst queryString = event.getData().queryString.toLowerCase();\n\t\t\tthis.lastSearchString = queryString;\n\t\t\tthis.searchQuery = queryString || '';\n\n\t\t\tif (!Type.isStringFilled(queryString))\n\t\t\t{\n\t\t\t\tthis.searching = false;\n\t\t\t\tthis.shownItems = [];\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.searching = true;\n\t\t\tthis.selectedGroup = null;\n\t\t\tthis.selectedGroupId = null;\n\n\t\t\tthis.shownItems = this.items.filter((item) => (\n\t\t\t\tString(item.title).toLowerCase().includes(queryString)\n\t\t\t\t|| String(item.description).toLowerCase().includes(queryString)\n\t\t\t\t|| item.tags?.some(tag => tag === queryString)\n\t\t\t));\n\n\t\t\tthis.applyFilters();\n\t\t},\n\t\tonApplyFilterClick(event: BaseEvent)\n\t\t{\n\t\t\tthis.filters = event.getData();\n\t\t\tif (this.searching)\n\t\t\t{\n\t\t\t\tthis.onSearch(new BaseEvent({data: {queryString: this.lastSearchString}}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.shownItems = this.itemsBySelectedGroupId;\n\t\t\tthis.applyFilters();\n\t\t},\n\t\tapplyFilters()\n\t\t{\n\t\t\tthis.filtersApplied = Object.values(this.filters).length > 0;\n\t\t\tfor (const filterId in this.filters)\n\t\t\t{\n\t\t\t\tthis.shownItems = this.shownItems.filter(this.filters[filterId].action);\n\t\t\t}\n\t\t},\n\t\tgetFilterNode(): ?Element\n\t\t{\n\t\t\treturn (this.$root.$app\n\t\t\t\t.getPopup()\n\t\t\t\t.getTitleContainer()\n\t\t\t\t.querySelector('[data-role=\"titlebar-filter\"]')\n\t\t\t);\n\t\t},\n\t\tgetSearchNode(): ?Element\n\t\t{\n\t\t\treturn (this.$root.$app\n\t\t\t\t.getPopup()\n\t\t\t\t.getTitleContainer()\n\t\t\t\t.querySelector('[data-role=\"titlebar-search\"]')\n\t\t\t);\n\t\t},\n\t\tstopPropagation(event)\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"ui-entity-catalog__main\">\n\t\t\t<MainGroups\n\t\t\t\t:recent-group-data=\"this.recentGroupData\"\n\t\t\t\t:groups=\"this.shownGroups\"\n\t\t\t\t:show-recent-group=\"showRecentGroup\"\n\t\t\t\t:searching=\"searching\"\n\t\t\t\t@group-selected=\"handleGroupSelected\"\n\t\t\t>\n\t\t\t\t<template #group-list-header>\n\t\t\t\t\t<slot name=\"group-list-header\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #group=\"groupSlotProps\">\n\t\t\t\t\t<slot\n\t\t\t\t\t\tname=\"group\"\n\t\t\t\t\t\tv-bind:groupData=\"groupSlotProps.groupData\"\n\t\t\t\t\t\tv-bind:handleClick=\"groupSlotProps.handleClick\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t\t<template #group-list-footer>\n\t\t\t\t\t<slot name=\"group-list-footer\"/>\n\t\t\t\t</template>\n\t\t\t</MainGroups>\n\t\t\t<MainContent\n\t\t\t\t:items=\"itemsBySelectedGroupId\"\n\t\t\t\t:items-to-show=\"shownItems\"\n\t\t\t\t:group=\"selectedGroup\"\n\t\t\t\t:searching=\"searching\"\n\t\t\t>\n\t\t\t\t<template #main-content-header>\n\t\t\t\t\t<slot name=\"main-content-header\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-no-selected-group-stub>\n\t\t\t\t\t<slot name=\"main-content-no-selected-group-stub\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-welcome-stub>\n\t\t\t\t\t<slot name=\"main-content-welcome-stub\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-filter-stub v-if=\"$slots['main-content-filter-stub']\">\n\t\t\t\t\t<slot name=\"main-content-filter-stub\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-filter-stub-title v-if=\"$slots['main-content-filter-stub-title']\">\n\t\t\t\t\t<slot name=\"main-content-filter-stub-title\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-search-stub>\n\t\t\t\t\t<slot name=\"main-content-search-stub\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-search-not-found-stub>\n\t\t\t\t\t<slot name=\"main-content-search-not-found-stub\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-empty-group-stub>\n\t\t\t\t\t<slot name=\"main-content-empty-group-stub\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-empty-group-stub-title>\n\t\t\t\t\t<slot name=\"main-content-empty-group-stub-title\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #item=\"itemSlotProps\">\n\t\t\t\t\t<slot name=\"item\" v-bind:itemData=\"itemSlotProps.itemData\"/>\n\t\t\t\t</template>\n\t\t\t\t<template #main-content-footer>\n\t\t\t\t\t<slot name=\"main-content-footer\"/>\n\t\t\t\t</template>\n\t\t\t</MainContent>\n\t\t\t<Teleport v-if=\"getFilterNode()\" :to=\"getFilterNode()\">\n\t\t\t\t<TitleBarFilter\n\t\t\t\t\t:filters=\"filterOptions.filterItems\"\n\t\t\t\t\t:multiple=\"filterOptions.multiple\"\n\t\t\t\t\t@onApplyFilters=\"onApplyFilterClick\"\n\t\t\t\t\t@mousedown=\"stopPropagation\"\n\t\t\t\t/>\n\t\t\t</Teleport>\n\t\t\t<Teleport v-if=\"getSearchNode()\" :to=\"getSearchNode()\">\n\t\t\t\t<Search @onSearch=\"onSearch\" ref=\"search\" @mousedown=\"stopPropagation\"/>\n\t\t\t</Teleport>\n\t\t</div>\n\t`,\n}","import { Loc, Tag, Text, Type } from 'main.core';\nimport { BaseEvent, EventEmitter } from 'main.core.events';\nimport { Popup, PopupOptions } from 'main.popup';\nimport { BitrixVue } from 'ui.vue3';\nimport { createPinia } from 'ui.vue3.pinia';\nimport { Hint } from \"ui.vue3.components.hint\";\nimport { feedback} from \"./directives/feedback\";\n\nimport { Application } from './components/application';\nimport { Button } from './components/button';\n\nimport 'ui.forms';\n\nimport './css/popup.css';\n\nimport type { GroupData } from './types/group';\nimport type { ItemData } from './types/item';\nimport type { FilterData} from './types/filter';\n\nexport type {\n\tGroupData,\n\tItemData,\n\tFilterData,\n};\n\nimport { EmptyContent } from './components/stubs/empty-content';\n\nimport { useGlobalState } from './stores/global-state';\n\nexport const Stubs = {\n\tEmptyContent,\n}\n\nexport const States = {\n\tuseGlobalState,\n}\n\nexport class EntityCatalog extends EventEmitter\n{\n\tstatic DEFAULT_POPUP_WIDTH = 881;\n\tstatic DEFAULT_POPUP_HEIGHT = 621;\n\tstatic DEFAULT_POPUP_COLOR = '#edeef0';\n\n\tstatic SLOT_GROUP_LIST_HEADER = 'group-list-header';\n\tstatic SLOT_GROUP = 'group';\n\tstatic SLOT_GROUP_LIST_FOOTER = 'group-list-footer';\n\tstatic SLOT_MAIN_CONTENT_HEADER = 'main-content-header';\n\tstatic SLOT_MAIN_CONTENT_FOOTER = 'main-content-footer';\n\tstatic SLOT_MAIN_CONTENT_FILTERS_STUB = 'main-content-filter-stub';\n\tstatic SLOT_MAIN_CONTENT_FILTERS_STUB_TITLE = 'main-content-filter-stub-title';\n\tstatic SLOT_MAIN_CONTENT_SEARCH_NOT_FOUND = 'search-not-found';\n\tstatic SLOT_MAIN_CONTENT_WELCOME_STUB = 'main-content-welcome-stub';\n\tstatic SLOT_MAIN_CONTENT_NO_SELECTED_GROUP_STUB = 'main-content-no-selected-group-stub';\n\tstatic SLOT_MAIN_CONTENT_EMPTY_GROUP_STUB = 'main-content-empty-group-stub';\n\tstatic SLOT_MAIN_CONTENT_EMPTY_GROUP_STUB_TITLE = 'main-content-empty-group-stub-title';\n\tstatic SLOT_MAIN_CONTENT_ITEM = 'main-content-item';\n\tstatic SLOT_MAIN_CONTENT_SEARCH_STUB = 'main-content-search-stub';\n\n\t#popup: ?Popup;\n\t#popupOptions: PopupOptions;\n\t#popupTitle: string;\n\t#customTitleBar: Element = null;\n\n\t#groups: Array<Array<GroupData>> = [];\n\t#items: Array<Item> = [];\n\t#recentGroupData: ?GroupData;\n\t#showEmptyGroups: boolean = false;\n\t#showRecentGroup: boolean = false;\n\t#showSearch: boolean = false;\n\t#filterOptions: {\n\t\tfilterItems: Array<FilterData>,\n\t\tmultiple: boolean,\n\t} = {\n\t\tfilterItems: [],\n\t\tmultiple: false,\n\t};\n\t#application;\n\t#slots: object;\n\t#customComponents: object;\n\n\tconstructor(props: {\n\t\tgroups?: Array<Array<GroupData>>,\n\t\titems?: Array<ItemData>,\n\t\trecentGroupData?: GroupData,\n\t\tcanDeselectGroups?: boolean,\n\t\tshowEmptyGroups?: boolean,\n\t\tshowRecentGroup?: boolean,\n\t\tshowSearch?: boolean,\n\t\tfilterOptions?: {\n\t\t\tfilterItems: Array<FilterData>,\n\t\t\tmultiple: boolean,\n\t\t},\n\t\tpopupOptions?: PopupOptions,\n\t\tcustomTitleBar?: string,\n\t\ttitle?: string,\n\t\tslots?: object,\n\t\tevents?: { [eventName: string]: (event: BaseEvent) => void },\n\t\tcustomComponents?: object,\n\t})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.EntityCatalog');\n\n\t\tthis.setGroups(Type.isArray(props.groups) ? props.groups : []);\n\t\tthis.setItems(Type.isArray(props.items) ? props.items : []);\n\t\tthis.#recentGroupData = props.recentGroupData;\n\n\t\tif (Type.isBoolean(props.canDeselectGroups))\n\t\t{\n\t\t\tthis.#groups.forEach((groupList) => {\n\t\t\t\tgroupList.forEach((group) => {\n\t\t\t\t\tgroup.deselectable = props.canDeselectGroups\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis.#showEmptyGroups = Type.isBoolean(props.showEmptyGroups) ? props.showEmptyGroups : false;\n\t\tthis.#showRecentGroup = Type.isBoolean(props.showRecentGroup) ? props.showRecentGroup : false;\n\t\tthis.#showSearch = Type.isBoolean(props.showSearch) ? props.showSearch : false;\n\n\t\tif (Type.isPlainObject(props.filterOptions))\n\t\t{\n\t\t\tthis.#filterOptions = props.filterOptions;\n\t\t}\n\n\t\tthis.#popupTitle = Type.isString(props.title) ? props.title : '';\n\t\tthis.#customTitleBar = props.customTitleBar ? props.customTitleBar : null;\n\t\tthis.#popupOptions = Object.assign(\n\t\t\tthis.#getDefaultPopupOptions(),\n\t\t\tType.isObject(props.popupOptions) ? props.popupOptions : {}\n\t\t);\n\t\tthis.#slots = props.slots ?? {};\n\t\tthis.#customComponents = props.customComponents ?? {};\n\n\t\tthis.subscribeFromOptions(props.events);\n\t}\n\n\tsetGroups(groups: Array<Array<GroupData> | GroupData>): this\n\t{\n\t\tthis.#groups = groups.map((groupList) => {\n\t\t\tif (!Type.isArray(groupList))\n\t\t\t{\n\t\t\t\tgroupList = [groupList]\n\t\t\t}\n\n\t\t\treturn groupList.map(group => ({\n\t\t\t\tselected: false,\n\t\t\t\tdeselectable: true,\n\t\t\t\t...group\n\t\t\t}));\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tgetItems(): Array<ItemData>\n\t{\n\t\treturn this.#items;\n\t}\n\n\tsetItems(items: Array<ItemData>): this\n\t{\n\t\titems = items.map(item => ({\n\t\t\tbutton: {},\n\t\t\t...item\n\t\t}));\n\n\t\tthis.#items.length = 0;\n\t\tthis.#items.push(...items);\n\n\t\treturn this;\n\t}\n\n\tshow()\n\t{\n\t\tthis.#attachTemplate();\n\t\tthis.getPopup().show();\n\t}\n\n\tisShown(): boolean\n\t{\n\t\treturn this.#popup && this.#popup.isShown();\n\t}\n\n\t#attachTemplate()\n\t{\n\t\tconst context = this;\n\n\t\tconst rootProps = {\n\t\t\trecentGroupData: this.#recentGroupData,\n\t\t\tgroups: this.#groups,\n\t\t\titems: this.#items,\n\t\t\tshowEmptyGroups: this.#showEmptyGroups,\n\t\t\tshowRecentGroups: this.#showRecentGroup,\n\t\t\tfilterOptions: this.#filterOptions,\n\t\t};\n\n\t\tthis.#application = BitrixVue.createApp(\n\t\t\t{\n\t\t\t\tname: 'ui-entity-catalog',\n\t\t\t\tcomponents: Object.assign(this.#customComponents, {\n\t\t\t\t\tApplication,\n\t\t\t\t\tHint,\n\t\t\t\t\tButton,\n\t\t\t\t}),\n\t\t\t\tdirectives: {\n\t\t\t\t\tfeedback\n\t\t\t\t},\n\t\t\t\tprops: {\n\t\t\t\t\trecentGroupData: Object,\n\t\t\t\t\tgroups: Array,\n\t\t\t\t\titems: Array,\n\t\t\t\t\tshowEmptyGroups: Boolean,\n\t\t\t\t\tshowRecentGroups: Boolean,\n\t\t\t\t\tfilterOptions: Object,\n\t\t\t\t},\n\t\t\t\tcreated()\n\t\t\t\t{\n\t\t\t\t\tthis.$app = context;\n\t\t\t\t},\n\t\t\t\ttemplate: `\n\t\t\t\t\t<Application\n\t\t\t\t\t\t:recent-group-data=\"recentGroupData\"\n\t\t\t\t\t\t:groups=\"groups\"\n\t\t\t\t\t\t:items=\"items\"\n\t\t\t\t\t\t:show-empty-groups=\"showEmptyGroups\"\n\t\t\t\t\t\t:show-recent-group=\"showRecentGroups\"\n\t\t\t\t\t\t:filter-options=\"filterOptions\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template #group-list-header>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_GROUP_LIST_HEADER] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #group=\"groupSlotProps\">\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_GROUP] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #group-list-footer>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_GROUP_LIST_FOOTER] ?? ''}\n\t\t\t\t\t\t</template>\n\n\t\t\t\t\t\t<template #main-content-header>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_HEADER] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-footer>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_FOOTER] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-filter-stub v-if=\"${!!this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_FILTERS_STUB]}\">\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_FILTERS_STUB]}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-filter-stub-title v-if=\"${!!this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_FILTERS_STUB_TITLE]}\">\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_FILTERS_STUB_TITLE]}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-search-not-found-stub>\n\t\t\t\t\t\t\t${\n\t\t\t\t\t\t\t\tthis.#slots[EntityCatalog.SLOT_MAIN_CONTENT_SEARCH_NOT_FOUND]\n\t\t\t\t\t\t\t\t?? Loc.getMessage('UI_JS_ENTITY_CATALOG_GROUP_LIST_ITEM_LIST_SEARCH_STUB_DEFAULT_TITLE')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-if=\"${Boolean(this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_SEARCH_STUB])}\" #main-content-search-stub>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_SEARCH_STUB]}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-welcome-stub>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_WELCOME_STUB] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-no-selected-group-stub>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_NO_SELECTED_GROUP_STUB] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-empty-group-stub>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_EMPTY_GROUP_STUB] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #main-content-empty-group-stub-title>\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_EMPTY_GROUP_STUB_TITLE] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #item=\"itemSlotProps\">\n\t\t\t\t\t\t\t${this.#slots[EntityCatalog.SLOT_MAIN_CONTENT_ITEM] ?? ''}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</Application>\n\t\t\t\t`,\n\t\t\t},\n\t\t\trootProps\n\t\t);\n\n\t\tthis.#application.use(createPinia()).mount(this.getPopup().getContentContainer());\n\t}\n\n\tgetPopup(): Popup\n\t{\n\t\tif (Type.isNil(this.#popup))\n\t\t{\n\t\t\tthis.#popup = new Popup(this.#popupOptions);\n\n\t\t\tthis.#popup.setResizeMode(true);\n\t\t}\n\n\t\treturn this.#popup;\n\t}\n\n\t#getDefaultPopupOptions(): PopupOptions\n\t{\n\t\treturn {\n\t\t\tclassName: 'ui-catalog-popup ui-entity-catalog__scope',\n\t\t\ttitleBar: this.#getPopupTitleBar(),\n\t\t\tnoAllPaddings: true,\n\t\t\tcloseByEsc: true,\n\t\t\tcontentBackground: EntityCatalog.DEFAULT_POPUP_COLOR,\n\t\t\tdraggable: true,\n\t\t\twidth: EntityCatalog.DEFAULT_POPUP_WIDTH,\n\t\t\theight: EntityCatalog.DEFAULT_POPUP_HEIGHT,\n\t\t\tminWidth: EntityCatalog.DEFAULT_POPUP_WIDTH,\n\t\t\tminHeight: EntityCatalog.DEFAULT_POPUP_HEIGHT,\n\t\t\tautoHide: false,\n\t\t};\n\t}\n\n\t#getPopupTitleBar(): Object\n\t{\n\t\tconst titleBar =\n\t\t\tthis.#customTitleBar\n\t\t\t\t? this.#customTitleBar\n\t\t\t\t: Tag.render`<div>${Text.encode(this.#popupTitle)}</div>`\n\t\t;\n\n\t\treturn {\n\t\t\tcontent: Tag.render`\n\t\t\t\t<div class=\"popup-window-titlebar-text ui-entity-catalog-popup-titlebar\">\n\t\t\t\t\t${titleBar}\n\t\t\t\t\t\n\t\t\t\t\t${this.#showSearch ? `<div class=\"ui-entity-catalog__titlebar_search\" data-role=\"titlebar-search\"></div>` : ''}\n\t\t\t\t\t${this.#filterOptions.filterItems.length > 0 ? '<div data-role=\"titlebar-filter\"></div>' : ''}\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"popup-window-close-icon popup-window-titlebar-close-icon\"\n\t\t\t\t\t\tonclick=\"${this.#handleClose.bind(this)}\"\n\t\t\t\t\t\t></span>\n\t\t\t\t</div>\n\t\t\t`\n\t\t};\n\t}\n\n\t#handleClose(): void\n\t{\n\t\tthis.close();\n\t}\n\n\tclose()\n\t{\n\t\tthis.#application.unmount();\n\t\tthis.getPopup().close();\n\t}\n}"],"names":["feedback","beforeMount","element","bindings","Event","bind","event","preventDefault","BX","UI","Feedback","Form","open","value","Group","emits","name","props","groupData","type","GroupData","required","computed","hasIcon","Type","isStringFilled","icon","methods","handleClick","deselectable","$emit","selected","template","GroupList","components","groups","Array","handleGroupSelected","group","handleGroupUnselected","MainGroups","recentGroupData","showRecentGroup","Boolean","default","searching","data","recentGroup","getRecentGroup","Object","assign","selectedGroup","find","shownGroups","watch","newGroup","newGroupId","id","map","groupList","beforeUpdate","Loc","getMessage","handleRecentGroupSelected","ItemListAdvice","getAvatar","adviceAvatar","renderAdvice","Dom","clean","$refs","container","advice","Advice","content","adviceTitle","avatarImg","anglePosition","AnglePosition","BOTTOM","renderTo","mounted","updated","Button","buttonData","ButtonData","eventData","buttonText","text","handleButtonClick","pointerEvent","BaseEvent","originalEvent","isFunction","action","call","Item","itemData","ItemData","isPlainObject","button","ItemList","items","EmptyContent","useGlobalState","defineStore","state","searchQuery","searchApplied","filtersApplied","currentGroup","shouldShowWelcomeStub","MainContent","itemsToShow","mapState","showAdvice","hasItems","length","showWelcomeStub","showNoSelectedGroupStub","showFiltersStub","hasFilterStubTitle","$slots","showSearchStub","showEmptyGroupStub","showSeparator","scrollTop","TitleBarFilter","filters","multiple","appliedFilters","getAppliedFilters","allFilters","showMenu","MenuManager","create","bindElement","$el","minWidth","autoHide","contentColor","draggable","cacheable","getItems","show","key","html","Tag","render","Text","encode","applied","append","push","onclick","item","clearAllAction","getMenuWindow","close","delimiter","getClearAllFilter","filter","keys","Search","opened","debounceSearchHandler","queryString","showClearSearch","newString","created","debounce","onSearch","target","openSearch","$nextTick","focus","toString","clearSearch","Application","showEmptyGroups","filterOptions","filterItems","isNil","selectedGroupId","shownItems","getDisplayedGroup","lastSearchString","itemsBySelectedGroupId","groupIds","some","compare","sort","mapWritableState","globalGroup","applyFilters","Runtime","clone","groupIdsWithItems","Set","forEach","groupId","add","has","search","getData","toLowerCase","String","title","includes","description","tags","tag","onApplyFilterClick","values","filterId","getFilterNode","$root","$app","getPopup","getTitleContainer","querySelector","getSearchNode","stopPropagation","Stubs","States","EntityCatalog","EventEmitter","constructor","setEventNamespace","setGroups","isArray","setItems","isBoolean","canDeselectGroups","showSearch","isString","customTitleBar","isObject","popupOptions","slots","customComponents","subscribeFromOptions","events","isShown","Popup","setResizeMode","unmount","context","rootProps","showRecentGroups","BitrixVue","createApp","Hint","directives","SLOT_GROUP_LIST_HEADER","SLOT_GROUP","SLOT_GROUP_LIST_FOOTER","SLOT_MAIN_CONTENT_HEADER","SLOT_MAIN_CONTENT_FOOTER","SLOT_MAIN_CONTENT_FILTERS_STUB","SLOT_MAIN_CONTENT_FILTERS_STUB_TITLE","SLOT_MAIN_CONTENT_SEARCH_NOT_FOUND","SLOT_MAIN_CONTENT_SEARCH_STUB","SLOT_MAIN_CONTENT_WELCOME_STUB","SLOT_MAIN_CONTENT_NO_SELECTED_GROUP_STUB","SLOT_MAIN_CONTENT_EMPTY_GROUP_STUB","SLOT_MAIN_CONTENT_EMPTY_GROUP_STUB_TITLE","SLOT_MAIN_CONTENT_ITEM","use","createPinia","mount","getContentContainer","className","titleBar","noAllPaddings","closeByEsc","contentBackground","DEFAULT_POPUP_COLOR","width","DEFAULT_POPUP_WIDTH","height","DEFAULT_POPUP_HEIGHT","minHeight"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit