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/calendar/open-events/list/dist/ |
Upload File : |
this.BX=this.BX||{};this.BX.Calendar=this.BX.Calendar||{};(function(e,t,s,a,i,r,n,l,o,c,d,v,u,h,p,b,g,m){"use strict";var L=babelHelpers.classPrivateFieldLooseKey("id");var f=babelHelpers.classPrivateFieldLooseKey("closed");var P=babelHelpers.classPrivateFieldLooseKey("name");var F=babelHelpers.classPrivateFieldLooseKey("description");var y=babelHelpers.classPrivateFieldLooseKey("eventsCount");var E=babelHelpers.classPrivateFieldLooseKey("permissions");var B=babelHelpers.classPrivateFieldLooseKey("channelId");var H=babelHelpers.classPrivateFieldLooseKey("isMuted");var C=babelHelpers.classPrivateFieldLooseKey("isBanned");var T=babelHelpers.classPrivateFieldLooseKey("newCount");var _=babelHelpers.classPrivateFieldLooseKey("updatedAt");var O=babelHelpers.classPrivateFieldLooseKey("channel");var A=babelHelpers.classPrivateFieldLooseKey("isSelected");class I{constructor(e={}){Object.defineProperty(this,L,{writable:true,value:void 0});Object.defineProperty(this,f,{writable:true,value:void 0});Object.defineProperty(this,P,{writable:true,value:void 0});Object.defineProperty(this,F,{writable:true,value:void 0});Object.defineProperty(this,y,{writable:true,value:void 0});Object.defineProperty(this,E,{writable:true,value:void 0});Object.defineProperty(this,B,{writable:true,value:void 0});Object.defineProperty(this,H,{writable:true,value:void 0});Object.defineProperty(this,C,{writable:true,value:void 0});Object.defineProperty(this,T,{writable:true,value:void 0});Object.defineProperty(this,_,{writable:true,value:0});Object.defineProperty(this,O,{writable:true,value:void 0});Object.defineProperty(this,A,{writable:true,value:void 0});babelHelpers.classPrivateFieldLooseBase(this,L)[L]=e.id;babelHelpers.classPrivateFieldLooseBase(this,f)[f]=e.closed;babelHelpers.classPrivateFieldLooseBase(this,P)[P]=e.name;babelHelpers.classPrivateFieldLooseBase(this,F)[F]=e.description;babelHelpers.classPrivateFieldLooseBase(this,y)[y]=e.eventsCount;babelHelpers.classPrivateFieldLooseBase(this,E)[E]=e.permissions;babelHelpers.classPrivateFieldLooseBase(this,B)[B]=e.channelId;babelHelpers.classPrivateFieldLooseBase(this,H)[H]=e.isMuted;babelHelpers.classPrivateFieldLooseBase(this,C)[C]=e.isBanned;babelHelpers.classPrivateFieldLooseBase(this,T)[T]=e.newCount;babelHelpers.classPrivateFieldLooseBase(this,_)[_]=e.updatedAt||0;babelHelpers.classPrivateFieldLooseBase(this,O)[O]=e.channel;babelHelpers.classPrivateFieldLooseBase(this,A)[A]=false;this.fields=e}get id(){return babelHelpers.classPrivateFieldLooseBase(this,L)[L]}get closed(){return babelHelpers.classPrivateFieldLooseBase(this,f)[f]}get name(){return babelHelpers.classPrivateFieldLooseBase(this,P)[P]}get description(){return babelHelpers.classPrivateFieldLooseBase(this,F)[F]}get eventsCount(){return babelHelpers.classPrivateFieldLooseBase(this,y)[y]}get permissions(){return babelHelpers.classPrivateFieldLooseBase(this,E)[E]}get channelId(){return babelHelpers.classPrivateFieldLooseBase(this,B)[B]}get isMuted(){return babelHelpers.classPrivateFieldLooseBase(this,H)[H]}set isMuted(e){babelHelpers.classPrivateFieldLooseBase(this,H)[H]=e}get isBanned(){return babelHelpers.classPrivateFieldLooseBase(this,C)[C]}set isBanned(e){babelHelpers.classPrivateFieldLooseBase(this,C)[C]=e}get newCount(){return babelHelpers.classPrivateFieldLooseBase(this,T)[T]}get isSelected(){return babelHelpers.classPrivateFieldLooseBase(this,A)[A]}set isSelected(e){babelHelpers.classPrivateFieldLooseBase(this,A)[A]=e}get updatedAt(){return babelHelpers.classPrivateFieldLooseBase(this,_)[_]}get channel(){return babelHelpers.classPrivateFieldLooseBase(this,O)[O]}set channel(e){babelHelpers.classPrivateFieldLooseBase(this,O)[O]=e}}var M=babelHelpers.classPrivateFieldLooseKey("update");var w=babelHelpers.classPrivateFieldLooseKey("create");var N=babelHelpers.classPrivateFieldLooseKey("delete");var S=babelHelpers.classPrivateFieldLooseKey("eventScorerUpdated");class D extends l.EventEmitter{constructor(){super();Object.defineProperty(this,S,{value:K});Object.defineProperty(this,N,{value:$});Object.defineProperty(this,w,{value:j});Object.defineProperty(this,M,{value:R});this.setEventNamespace("Calendar.OpenEvents.List.CategoryManager.PullRequests")}getModuleId(){return"calendar"}getMap(){return{EVENT_CATEGORY_CREATED:babelHelpers.classPrivateFieldLooseBase(this,w)[w].bind(this),EVENT_CATEGORY_UPDATED:babelHelpers.classPrivateFieldLooseBase(this,M)[M].bind(this),EVENT_CATEGORY_DELETED:babelHelpers.classPrivateFieldLooseBase(this,N)[N].bind(this),OPEN_EVENT_SCORER_UPDATED:babelHelpers.classPrivateFieldLooseBase(this,S)[S].bind(this)}}}function R(e){this.emit("update",e)}function j(e){this.emit("create",e)}function $(e){this.emit("delete",e)}function K(e){this.emit("eventScorerUpdated",e)}class U{static async list(e){const t=await BX.ajax.runAction("calendar.open-events.Category.list",{data:e});return t.data}static async add(e){const t=await BX.ajax.runAction("calendar.open-events.Category.add",{data:{name:e.name,description:e.description,closed:e.closed,attendees:e.attendees,departmentIds:e.departmentIds,channelId:e.channelId}});return t.data}static update(e){return BX.ajax.runAction("calendar.open-events.Category.update",{data:{id:e.id,name:e.name,description:e.description}})}static setMute(e,t){return BX.ajax.runAction("calendar.open-events.Category.setMute",{data:{id:e,muteState:t}})}static setBan(e,t){return BX.ajax.runAction("calendar.open-events.Category.setBan",{data:{id:e,banState:t}})}static async getChannelInfo(e){const t=await BX.ajax.runAction("calendar.open-events.Category.getChannelInfo",{data:{id:e}});return t.data}}const Y=Object.freeze({notBanned:"notBanned",banned:"banned",search:"search"});var x=babelHelpers.classPrivateFieldLooseKey("categories");var V=babelHelpers.classPrivateFieldLooseKey("categoryIds");var k=babelHelpers.classPrivateFieldLooseKey("categoryPromises");var X=babelHelpers.classPrivateFieldLooseKey("lastLoadedPage");var G=babelHelpers.classPrivateFieldLooseKey("loadedLists");var W=babelHelpers.classPrivateFieldLooseKey("query");var Q=babelHelpers.classPrivateFieldLooseKey("subscribeToPull");var q=babelHelpers.classPrivateFieldLooseKey("createCategoryPull");var z=babelHelpers.classPrivateFieldLooseKey("updateCategoryPull");var J=babelHelpers.classPrivateFieldLooseKey("deleteCategoryPull");var Z=babelHelpers.classPrivateFieldLooseKey("onPullEventScorerUpdated");var ee=babelHelpers.classPrivateFieldLooseKey("addNewCategory");var te=babelHelpers.classPrivateFieldLooseKey("prepareCategories");var se=babelHelpers.classPrivateFieldLooseKey("getListIds");var ae=babelHelpers.classPrivateFieldLooseKey("loadCategories");var ie=babelHelpers.classPrivateFieldLooseKey("getListKey");var re=babelHelpers.classPrivateFieldLooseKey("loadCategoryById");var ne=babelHelpers.classPrivateFieldLooseKey("updateCounters");var le=babelHelpers.classPrivateFieldLooseKey("getCategory");var oe=babelHelpers.classPrivateFieldLooseKey("updateCategory");var ce=babelHelpers.classPrivateFieldLooseKey("buildCategoryModel");class de extends l.EventEmitter{constructor(){super();Object.defineProperty(this,ce,{value:He});Object.defineProperty(this,oe,{value:Be});Object.defineProperty(this,le,{value:Ee});Object.defineProperty(this,ne,{value:ye});Object.defineProperty(this,re,{value:Fe});Object.defineProperty(this,ie,{value:Pe});Object.defineProperty(this,ae,{value:fe});Object.defineProperty(this,se,{value:Le});Object.defineProperty(this,te,{value:me});Object.defineProperty(this,ee,{value:ge});Object.defineProperty(this,Z,{value:be});Object.defineProperty(this,J,{value:pe});Object.defineProperty(this,z,{value:he});Object.defineProperty(this,q,{value:ue});Object.defineProperty(this,Q,{value:ve});Object.defineProperty(this,x,{writable:true,value:[]});Object.defineProperty(this,V,{writable:true,value:{}});Object.defineProperty(this,k,{writable:true,value:{}});Object.defineProperty(this,X,{writable:true,value:{}});Object.defineProperty(this,G,{writable:true,value:{[Y.notBanned]:false,[Y.banned]:false,[Y.search]:false}});Object.defineProperty(this,W,{writable:true,value:void 0});this.setEventNamespace("Calendar.OpenEvents.List.CategoryManager");babelHelpers.classPrivateFieldLooseBase(this,Q)[Q]()}async addCategory(e){const t=await U.add(e);babelHelpers.classPrivateFieldLooseBase(this,ee)[ee](t)}async updateCategory(e){const t=babelHelpers.classPrivateFieldLooseBase(this,le)[le](e.id);t.channel.title=e.name;return U.update(e)}async setMute(e,t){babelHelpers.classPrivateFieldLooseBase(this,oe)[oe](e,{isMuted:t});void U.setMute(e,t)}async setBan(e,t){babelHelpers.classPrivateFieldLooseBase(this,oe)[oe](e,{isBanned:t});void U.setBan(e,t)}async getChannelInfo(e){var t;const s=babelHelpers.classPrivateFieldLooseBase(this,x)[x].find((t=>t.id===e));(t=s.channel)!=null?t:s.channel=await U.getChannelInfo(e);return s.channel}async bubbleUp(e){var t;const s=(t=babelHelpers.classPrivateFieldLooseBase(this,le)[le](e))!=null?t:await babelHelpers.classPrivateFieldLooseBase(this,re)[re](e);babelHelpers.classPrivateFieldLooseBase(this,oe)[oe](s.id,{updatedAt:Date.now()})}async searchMore(){var e;if(babelHelpers.classPrivateFieldLooseBase(this,G)[G][Y.search]){return[]}const t=babelHelpers.classPrivateFieldLooseBase(this,W)[W];const s=babelHelpers.classPrivateFieldLooseBase(this,ie)[ie]({query:t});const a=babelHelpers.classPrivateFieldLooseBase(this,se)[se](s).length;const i=(e=babelHelpers.classPrivateFieldLooseBase(this,X)[X][s])!=null?e:-1;const r=await this.getCategories({query:t,page:i+1});if(r.length===a){babelHelpers.classPrivateFieldLooseBase(this,G)[G][s]=true}return r}async loadMore(){var e;if(babelHelpers.classPrivateFieldLooseBase(this,G)[G][Y.notBanned]&&babelHelpers.classPrivateFieldLooseBase(this,G)[G][Y.banned]){return[]}const t=babelHelpers.classPrivateFieldLooseBase(this,G)[G][Y.notBanned]&&!babelHelpers.classPrivateFieldLooseBase(this,G)[G][Y.banned];const s=babelHelpers.classPrivateFieldLooseBase(this,ie)[ie]({isBanned:t});const a=babelHelpers.classPrivateFieldLooseBase(this,se)[se](s).length;const i=(e=babelHelpers.classPrivateFieldLooseBase(this,X)[X][s])!=null?e:-1;const r=await this.getCategories({isBanned:t,page:i+1});if(r.length===a){babelHelpers.classPrivateFieldLooseBase(this,G)[G][s]=true;return this.loadMore()}return r}async searchCategories(e){if(e!==babelHelpers.classPrivateFieldLooseBase(this,W)[W]){babelHelpers.classPrivateFieldLooseBase(this,G)[G][Y.search]=false;delete babelHelpers.classPrivateFieldLooseBase(this,X)[X][Y.search];delete babelHelpers.classPrivateFieldLooseBase(this,k)[k][Y.search];delete babelHelpers.classPrivateFieldLooseBase(this,V)[V][Y.search]}babelHelpers.classPrivateFieldLooseBase(this,W)[W]=e;return this.getCategories({query:e})}async getCategories(e={isBanned:false}){var t,s;const a=babelHelpers.classPrivateFieldLooseBase(this,ie)[ie](e);const i=await babelHelpers.classPrivateFieldLooseBase(this,ae)[ae](e);const r=babelHelpers.classPrivateFieldLooseBase(this,x)[x].map((e=>e.id));const n=i.filter((e=>!r.includes(e.id)));babelHelpers.classPrivateFieldLooseBase(this,x)[x].push(...n);const l=babelHelpers.classPrivateFieldLooseBase(this,se)[se](a);const o=i.filter((e=>!l.includes(e.id)));(s=(t=babelHelpers.classPrivateFieldLooseBase(this,V)[V])[a])!=null?s:t[a]=[];babelHelpers.classPrivateFieldLooseBase(this,V)[V][a].push(...o.map((e=>e.id)));return babelHelpers.classPrivateFieldLooseBase(this,te)[te](a)}incrementNewCounter(e){const t=babelHelpers.classPrivateFieldLooseBase(this,le)[le](e);if(t===null){return}babelHelpers.classPrivateFieldLooseBase(this,oe)[oe](e,{newCount:t.newCount+1})}decrementNewCounter(e){const t=babelHelpers.classPrivateFieldLooseBase(this,le)[le](e);if(t===null){return}babelHelpers.classPrivateFieldLooseBase(this,oe)[oe](e,{newCount:t.newCount-1})}}function ve(){if(!BX.PULL){console.info("BX.PULL not initialized");return}const e=new D;e.subscribe("create",babelHelpers.classPrivateFieldLooseBase(this,q)[q].bind(this));e.subscribe("update",babelHelpers.classPrivateFieldLooseBase(this,z)[z].bind(this));e.subscribe("delete",babelHelpers.classPrivateFieldLooseBase(this,J)[J].bind(this));e.subscribe("eventScorerUpdated",babelHelpers.classPrivateFieldLooseBase(this,Z)[Z].bind(this));BX.PULL.subscribe(e)}function ue(e){const{fields:t}=e.getData();if(babelHelpers.classPrivateFieldLooseBase(this,le)[le](t.id)){return}babelHelpers.classPrivateFieldLooseBase(this,ee)[ee](t)}function he(e){const{fields:t}=e.getData();babelHelpers.classPrivateFieldLooseBase(this,oe)[oe](t.id,t)}function pe(e){const{fields:t}=e.getData();babelHelpers.classPrivateFieldLooseBase(this,x)[x]=babelHelpers.classPrivateFieldLooseBase(this,x)[x].filter((e=>e.id!==t.id));this.emit("update")}function be(e){const{fields:{categoriesCounter:t}}=e.getData();babelHelpers.classPrivateFieldLooseBase(this,ne)[ne](t)}function ge(e){var t;e.updatedAt=Date.now();const s=new I(e);babelHelpers.classPrivateFieldLooseBase(this,x)[x].push(s);(t=babelHelpers.classPrivateFieldLooseBase(this,V)[V][Y.notBanned])==null?void 0:t.push(s.id);this.emit("update")}function me(e){const t=babelHelpers.classPrivateFieldLooseBase(this,se)[se](e);return babelHelpers.classPrivateFieldLooseBase(this,x)[x].filter((e=>t.includes(e.id))).map((e=>new I(e.fields)))}function Le(e){const t=e===Y.search?[Y.search]:[Y.notBanned,Y.banned];const s=Object.entries(babelHelpers.classPrivateFieldLooseBase(this,V)[V]).filter((([e])=>t.includes(e))).flatMap((([,e])=>e));return[...new Set(s)]}async function fe(e){var t,s,a,i,r,n,l;const o=(t=e.isBanned)!=null?t:null;const c=(s=e.query)!=null?s:"";const d=(a=e.page)!=null?a:0;const v=babelHelpers.classPrivateFieldLooseBase(this,ie)[ie](e);(r=(i=babelHelpers.classPrivateFieldLooseBase(this,k)[k])[v])!=null?r:i[v]={};(l=(n=babelHelpers.classPrivateFieldLooseBase(this,k)[k][v])[d])!=null?l:n[d]=U.list({isBanned:o,query:c,page:d});const u=await babelHelpers.classPrivateFieldLooseBase(this,k)[k][v][d];babelHelpers.classPrivateFieldLooseBase(this,X)[X][v]=d;return u.map((e=>new I(e)))}function Pe({isBanned:e,query:t}){if(p.Type.isStringFilled(t)){return Y.search}if(e===true){return Y.banned}return Y.notBanned}async function Fe(e){var t,s,a,i,r;const n="byId";(s=(t=babelHelpers.classPrivateFieldLooseBase(this,k)[k])[n])!=null?s:t[n]={};(i=(a=babelHelpers.classPrivateFieldLooseBase(this,k)[k][n])[e])!=null?i:a[e]=U.list({categoryId:e});const l=await babelHelpers.classPrivateFieldLooseBase(this,k)[k][n][e];const o=l.find((t=>t.id===e));const c=new I(o);babelHelpers.classPrivateFieldLooseBase(this,x)[x].push(c);const d=c.isBanned?Y.banned:Y.notBanned;(r=babelHelpers.classPrivateFieldLooseBase(this,V)[V][d])==null?void 0:r.push(c.id);return c}function ye(e){for(const[t,s]of Object.entries(e)){const e=parseInt(t,10);const a=babelHelpers.classPrivateFieldLooseBase(this,le)[le](e);if(a===null){continue}const i=s>a.newCount;const r=i?Date.now():a.updatedAt;babelHelpers.classPrivateFieldLooseBase(this,oe)[oe](e,{newCount:s,updatedAt:r})}}function Ee(e){var t;return(t=babelHelpers.classPrivateFieldLooseBase(this,x)[x].find((t=>t.id===e)))!=null?t:null}function Be(e,t){babelHelpers.classPrivateFieldLooseBase(this,x)[x]=babelHelpers.classPrivateFieldLooseBase(this,x)[x].map((s=>{if(s.id!==e){return s}return babelHelpers.classPrivateFieldLooseBase(this,ce)[ce](s,t)}));this.emit("update")}function He(e,t={}){var s,a,i,r,n,l,o,c,d,v;return new I({id:e.id,closed:(s=t.closed)!=null?s:e.closed,name:(a=t.name)!=null?a:e.name,description:(i=t.description)!=null?i:e.description,eventsCount:(r=t.eventsCount)!=null?r:e.eventsCount,permissions:e.permissions,channelId:e.channelId,isMuted:(n=t.isMuted)!=null?n:e.isMuted,isBanned:(l=t.isBanned)!=null?l:e.isBanned,newCount:(o=t.newCount)!=null?o:e.newCount,isSelected:(c=t.isSelected)!=null?c:e.isSelected,updatedAt:(d=t.updatedAt)!=null?d:e.updatedAt,channel:(v=t.channel)!=null?v:e.channel})}const Ce=new de;var Te=babelHelpers.classPrivateFieldLooseKey("config");class _e{constructor(){Object.defineProperty(this,Te,{writable:true,value:void 0});babelHelpers.classPrivateFieldLooseBase(this,Te)[Te]=p.Extension.getSettings("calendar.open-events.list")}get currentUserId(){return p.Text.toNumber(babelHelpers.classPrivateFieldLooseBase(this,Te)[Te].currentUserId)}get openEventSection(){return babelHelpers.classPrivateFieldLooseBase(this,Te)[Te].openEventSection}get currentUserTimeOffset(){return p.Text.toNumber(babelHelpers.classPrivateFieldLooseBase(this,Te)[Te].currentUserTimeOffset)}get pullEventUserFieldsKey(){return babelHelpers.classPrivateFieldLooseBase(this,Te)[Te].pullEventUserFieldsKey.toString()}}const Oe=new _e;const Ae={data(){return{id:"calendar-open-events-category-edit-popup",params:{},category:null,create:false,popup:null,name:"",description:"",closed:false,selectedChannelId:null}},computed:{isEdit(){return!this.create}},methods:{show(e={}){var t;this.create=e.create;this.category=e.category;if(this.category){if(!this.category.channel){Ce.getChannelInfo(this.category.id).then((e=>{this.category.channel=e}))}this.name=this.category.name;this.description=this.category.description;this.closed=this.category.closed}(t=b.PopupManager.getPopupById(this.id))==null?void 0:t.destroy();this.popup=b.PopupManager.create({id:this.id,autoHide:true,autoHideHandler:e=>{const t=this.popup.getPopupContainer().contains(e.target);let s=false;if(this.userSelector){const t=this.userSelector.getDialog().getPopup();s=t.getPopupContainer().contains(e.target)}let a=false;if(this.channelSelector){const t=this.channelSelector.getDialog().getPopup();a=t.getPopupContainer().contains(e.target)}return!t&&!s&&!a},width:600,content:this.$refs.popupContent,className:"calendar-open-events-category-edit-popup-container",titleBar:true,draggable:true});this.renderSwitcher();if(this.create){this.renderChannelSelector();this.renderUserSelector()}this.popup.show();this.$refs.inputName.focus()},async onCreateButtonClick(){var e,t;const s=(e=this.userSelector)==null?void 0:e.getTags().filter((e=>e.entityId==="user")).map((e=>e.id));const a=(t=this.userSelector)==null?void 0:t.getTags().filter((e=>e.entityId==="department")).map((e=>e.id));await Ce.addCategory({name:this.name,description:this.description,closed:this.closed,attendees:this.closed?s:[],departmentIds:this.closed?a:[],channelId:this.selectedChannelId});this.clearFields();this.popup.close()},async onSaveButtonClick(){await Ce.updateCategory({id:this.category.id,name:this.name,description:this.description});this.clearFields();this.popup.close()},onCancelButtonClick(){this.clearFields();this.popup.close()},clearFields(){var e,t;this.name="";this.description="";this.closed=false;(e=this.userSelector)==null?void 0:e.getTags().forEach((e=>{if(e.getEntityId()==="user"&&e.getId()===Oe.currentUserId){return}this.userSelector.removeTag(e,false)}));(t=this.channelSelector)==null?void 0:t.getTags().forEach((e=>this.channelSelector.removeTag(e,false)));this.selectedChannelId=null},renderSwitcher(){if(this.switcher){this.switcher.check(this.closed);this.switcher.disable(Boolean(this.selectedChannelId));return}this.switcher=new a.Switcher({node:this.$refs.closedSwitcher,checked:this.closed,size:a.SwitcherSize.extraSmall,disabled:Boolean(this.selectedChannelId),handlers:{toggled:()=>{this.closed=this.switcher.isChecked()}}})},renderUserSelector(){if(this.userSelector){this.userSelector.renderTo(this.$refs.userSelector);return}const e=["user",Oe.currentUserId];this.userSelector=new s.TagSelector({dialogOptions:{context:"CALENDAR_OPEN_EVENTS_CATEGORY_EDIT_FORM",showAvatars:true,dropdownMode:true,preload:true,entities:[{id:"user"},{id:"department",options:{selectMode:"usersAndDepartments",allowFlatDepartments:true,allowSelectRootDepartment:true}}],preselectedItems:[e],undeselectedItems:[e]}});this.userSelector.renderTo(this.$refs.userSelector)},renderChannelSelector(){if(this.channelSelector){this.channelSelector.renderTo(this.$refs.channelSelector);return}this.channelSelector=new s.TagSelector({multiple:false,dialogOptions:{context:"CALENDAR_OPEN_EVENTS_CATEGORY_EDIT_FORM",dropdownMode:true,preload:true,entities:[{id:"im-channel",dynamicLoad:true}],events:{"Item:onSelect":this.onChannelSelected.bind(this),"Item:onDeselect":this.onChannelDeselected.bind(this)},multiple:false}});this.channelSelector.renderTo(this.$refs.channelSelector)},onChannelSelected(e){const{item:t}=e.getData();this.selectedChannelId=t.id;this.closed=t.customData.get("closed");if(!this.name||!this.userChangedName){this.name=t.getTitle()}this.renderSwitcher()},onChannelDeselected(e){const{item:t}=e.getData();this.selectedChannelId=null;this.closed=false;if(this.name===t.getTitle()){this.name="";this.userChangedName=false}this.renderSwitcher()},getFirstLetters(e){var t,s,a,i;const r=e.split(/[\s,]/).filter((e=>/[\p{L}\p{N} ]/u.test(e[0])));return((t=(s=r[0])==null?void 0:s[0])!=null?t:"")+((a=(i=r[1])==null?void 0:i[0])!=null?a:"")},onNameInput(){this.userChangedName=true}},template:`\n\t\t<div class="calendar-open-events-category-edit-popup" ref="popupContent">\n\t\t\t<input\n\t\t\t\tclass="calendar-open-events-category-edit-name-input"\n\t\t\t\t:placeholder="$Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_NAME')"\n\t\t\t\tv-model="name"\n\t\t\t\t@input="onNameInput"\n\t\t\t\tref="inputName"\n\t\t\t>\n\t\t\t<div class="calendar-open-events-category-edit-channel --edit" v-show="create">\n\t\t\t\t<div class="ui-icon-set --speaker-mouthpiece" v-if="create"></div>\n\t\t\t\t<div class="calendar-open-events-category-edit-channel-text" v-if="create">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_CHOOSE_CHANNEL') }}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tclass="calendar-open-events-category-edit-channel-selector"\n\t\t\t\t\tref="channelSelector"\n\t\t\t\t\tv-show="create"\n\t\t\t\t></div>\n\t\t\t</div>\n\t\t\t<div class="calendar-open-events-category-edit-channel --edit" v-if="!create && !category?.channel">\n\t\t\t\t<div class="ui-icon-set --speaker-mouthpiece"></div>\n\t\t\t\t<div class="calendar-open-events-category-edit-channel-loader"></div>\n\t\t\t</div>\n\t\t\t<div class="calendar-open-events-category-edit-channel" v-if="category?.channel">\n\t\t\t\t<div class="ui-icon-set --speaker-mouthpiece"></div>\n\t\t\t\t<img\n\t\t\t\t\tv-if="category.channel.avatar"\n\t\t\t\t\tclass="calendar-open-events-category-edit-channel-avatar"\n\t\t\t\t\t:src="category.channel.avatar"\n\t\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-if="!category.channel.avatar && getFirstLetters(category.channel.title)"\n\t\t\t\t\tclass="calendar-open-events-category-edit-channel-avatar"\n\t\t\t\t\t:style="'background-color: ' + category.channel.color"\n\t\t\t\t>\n\t\t\t\t\t{{ getFirstLetters(category.channel.title) }}\n\t\t\t\t</div>\n\t\t\t\t<div class="calendar-open-events-category-edit-channel-name">{{ category.channel.title }}</div>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclass="calendar-open-events-category-edit-close"\n\t\t\t\t:class="{\n\t\t\t\t\t'--closed': closed,\n\t\t\t\t\t'--disabled': !create,\n\t\t\t\t}"\n\t\t\t>\n\t\t\t\t<div class="calendar-open-events-category-edit-close-switcher">\n\t\t\t\t\t<div ref="closedSwitcher"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class="calendar-open-events-category-edit-close-body">\n\t\t\t\t\t<div class="calendar-open-events-category-edit-close-title">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_CLOSE') }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="calendar-open-events-category-edit-close-hint">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_CLOSE_HINT') }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass="calendar-open-events-category-edit-close-users"\n\t\t\t\t\t\tref="userSelector"\n\t\t\t\t\t\tv-show="create && closed && !selectedChannelId"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<textarea\n\t\t\t\tclass="calendar-open-events-category-edit-description-textarea"\n\t\t\t\t:placeholder="$Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_DESCRIPTION')"\n\t\t\t\tv-model="description"\n\t\t\t></textarea>\n\t\t\t<div class="calendar-open-events-category-edit-buttons">\n\t\t\t\t<div\n\t\t\t\t\tv-if="create"\n\t\t\t\t\tclass="calendar-open-events-category-edit-button-create"\n\t\t\t\t\t@click="onCreateButtonClick"\n\t\t\t\t>\n\t\t\t\t\t<div class="ui-icon-set --calendar-1"></div>\n\t\t\t\t\t<div class="calendar-open-events-category-edit-button-create-text">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_CREATE') }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-if="isEdit"\n\t\t\t\t\tclass="calendar-open-events-category-edit-button-create"\n\t\t\t\t\t@click="onSaveButtonClick"\n\t\t\t\t>\n\t\t\t\t\t<div class="ui-icon-set --calendar-1"></div>\n\t\t\t\t\t<div class="calendar-open-events-category-edit-button-create-text">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_SAVE') }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="calendar-open-events-category-edit-button-cancel" @click="onCancelButtonClick">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORY_CANCEL') }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};const Ie={methods:{onSearchClick(){this.$store.dispatch("setSearchMode",true)},onAddClick(){this.$refs.editForm.show({create:true})}},components:{CategoryEditForm:Ae},template:`\n\t\t<div class="calendar-open-events-list-categories-title">\n\t\t\t<div class="calendar-open-events-list-categories-title-text">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_CATEGORIES') }}\n\t\t\t</div>\n\t\t\t<div class="calendar-open-events-list-categories-title-button" @click="onSearchClick()">\n\t\t\t\t<div class="ui-icon-set --search-2"></div>\n\t\t\t</div>\n\t\t\t<div class="calendar-open-events-list-categories-title-button" @click="onAddClick()">\n\t\t\t\t<div class="ui-icon-set --plus-30"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<CategoryEditForm ref="editForm"/>\n\t`};const Me={created(){this.searchDebounced=p.Runtime.debounce(this.search,500,this)},mounted(){this.$refs.input.focus();p.Event.bind(document,"click",this.handleAutoHide,true)},unmounted(){p.Event.unbind(document,"click",this.handleAutoHide,true)},methods:{handleAutoHide(e){if(this.shouldHideForm(e)){void this.closeSearch()}},shouldHideForm(e){const t=!p.Type.isStringFilled(this.getSearchQuery());const s=this.$refs.search.contains(e.target);return t&&!s},onCloseSearchClick(){void this.closeSearch()},async closeSearch(){const e=await Ce.getCategories();await this.$store.dispatch("setCategories",e);await this.$store.dispatch("setSearchMode",false)},async onSearchInput(){const e=this.getSearchQuery();if(p.Type.isStringFilled(e)){this.searchDebounced(e)}else{const e=await Ce.getCategories();this.$store.dispatch("setCategories",e)}},async search(e){await this.$store.dispatch("setCategoriesQuery",e);const t=await Ce.searchCategories(e);if(e===this.getSearchQuery()){this.$store.dispatch("setCategories",t)}},getSearchQuery(){return this.$refs.input.value.trim()}},template:`\n\t\t<div class="calendar-open-events-list-categories-search" ref="search">\n\t\t\t<input\n\t\t\t\tref="input"\n\t\t\t\tclass="calendar-open-events-list-categories-search-input"\n\t\t\t\ttype="text"\n\t\t\t\t:placeholder="$Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_SEARCH_CATEGORY')"\n\t\t\t\t@input="onSearchInput()"\n\t\t\t>\n\t\t\t<div class="calendar-open-events-list-categories-close-search-button" @click="onCloseSearchClick()">\n\t\t\t\t<div class="ui-icon-set --cross-circle-70"></div>\n\t\t\t</div>\n\t\t</div>\n\t`};const we={computed:{...m.mapGetters({isSearchMode:"isSearchMode"})},components:{CategoriesTitle:Ie,CategoriesSearch:Me},template:`\n\t\t<div class="calendar-open-events-list-categories-title-container">\n\t\t\t<CategoriesSearch v-if="isSearchMode"/>\n\t\t\t<CategoriesTitle v-else/>\n\t\t</div>\n\t`};var Ne=babelHelpers.classPrivateFieldLooseKey("create");var Se=babelHelpers.classPrivateFieldLooseKey("update");var De=babelHelpers.classPrivateFieldLooseKey("delete");class Re extends l.EventEmitter{constructor(){super();Object.defineProperty(this,De,{value:Ke});Object.defineProperty(this,Se,{value:$e});Object.defineProperty(this,Ne,{value:je});this.setEventNamespace("Calendar.OpenEvents.List.EventManager.PullRequests")}getModuleId(){return"calendar"}getMap(){return{OPEN_EVENT_CREATED:babelHelpers.classPrivateFieldLooseBase(this,Ne)[Ne].bind(this),OPEN_EVENT_UPDATED:babelHelpers.classPrivateFieldLooseBase(this,Se)[Se].bind(this),OPEN_EVENT_DELETED:babelHelpers.classPrivateFieldLooseBase(this,De)[De].bind(this)}}}function je(e){this.emit("create",e)}function $e(e){this.emit("update",e)}function Ke(e){this.emit("delete",e)}var Ue=babelHelpers.classPrivateFieldLooseKey("id");var Ye=babelHelpers.classPrivateFieldLooseKey("name");var xe=babelHelpers.classPrivateFieldLooseKey("isFullDay");var Ve=babelHelpers.classPrivateFieldLooseKey("dateFromTs");var ke=babelHelpers.classPrivateFieldLooseKey("dateToTs");var Xe=babelHelpers.classPrivateFieldLooseKey("commentsCount");var Ge=babelHelpers.classPrivateFieldLooseKey("isAttendee");var We=babelHelpers.classPrivateFieldLooseKey("attendeesCount");var Qe=babelHelpers.classPrivateFieldLooseKey("creatorId");var qe=babelHelpers.classPrivateFieldLooseKey("eventOptions");var ze=babelHelpers.classPrivateFieldLooseKey("categoryId");var Je=babelHelpers.classPrivateFieldLooseKey("categoryName");var Ze=babelHelpers.classPrivateFieldLooseKey("color");var et=babelHelpers.classPrivateFieldLooseKey("categoryChannelId");var tt=babelHelpers.classPrivateFieldLooseKey("threadId");var st=babelHelpers.classPrivateFieldLooseKey("isNew");var at=babelHelpers.classPrivateFieldLooseKey("rrule");var it=babelHelpers.classPrivateFieldLooseKey("rruleDescription");var rt=babelHelpers.classPrivateFieldLooseKey("exdate");var nt=babelHelpers.classPrivateFieldLooseKey("initFields");var lt=babelHelpers.classPrivateFieldLooseKey("getDateCode");class ot{constructor(e={}){Object.defineProperty(this,lt,{value:dt});Object.defineProperty(this,nt,{value:ct});Object.defineProperty(this,Ue,{writable:true,value:void 0});Object.defineProperty(this,Ye,{writable:true,value:void 0});Object.defineProperty(this,xe,{writable:true,value:void 0});Object.defineProperty(this,Ve,{writable:true,value:void 0});Object.defineProperty(this,ke,{writable:true,value:void 0});Object.defineProperty(this,Xe,{writable:true,value:void 0});Object.defineProperty(this,Ge,{writable:true,value:false});Object.defineProperty(this,We,{writable:true,value:void 0});Object.defineProperty(this,Qe,{writable:true,value:void 0});Object.defineProperty(this,qe,{writable:true,value:void 0});Object.defineProperty(this,ze,{writable:true,value:void 0});Object.defineProperty(this,Je,{writable:true,value:void 0});Object.defineProperty(this,Ze,{writable:true,value:void 0});Object.defineProperty(this,et,{writable:true,value:void 0});Object.defineProperty(this,tt,{writable:true,value:void 0});Object.defineProperty(this,st,{writable:true,value:void 0});Object.defineProperty(this,at,{writable:true,value:void 0});Object.defineProperty(this,it,{writable:true,value:void 0});Object.defineProperty(this,rt,{writable:true,value:void 0});babelHelpers.classPrivateFieldLooseBase(this,nt)[nt](e)}updateFields(e){if("name"in e){babelHelpers.classPrivateFieldLooseBase(this,Ye)[Ye]=e.name}if(!p.Type.isBoolean(e.isAttendee)){delete e.isAttendee}if(!p.Type.isNumber(e.commentsCount)){delete e.commentsCount}if("isAttendee"in e){if(!babelHelpers.classPrivateFieldLooseBase(this,Ge)[Ge]&&e.isAttendee){this.incrementAttendeesCount()}if(babelHelpers.classPrivateFieldLooseBase(this,Ge)[Ge]&&!e.isAttendee){this.decrementAttendeesCount()}babelHelpers.classPrivateFieldLooseBase(this,Ge)[Ge]=e.isAttendee}if("attendeesCount"in e){babelHelpers.classPrivateFieldLooseBase(this,We)[We]=e.attendeesCount}Object.assign(this.fields,e)}get uniqueId(){return babelHelpers.classPrivateFieldLooseBase(this,Ue)[Ue].toString()+"|"+babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve].toString()}get id(){return babelHelpers.classPrivateFieldLooseBase(this,Ue)[Ue]}get name(){return babelHelpers.classPrivateFieldLooseBase(this,Ye)[Ye]}get commentsCount(){return babelHelpers.classPrivateFieldLooseBase(this,Xe)[Xe]}get isAttendee(){return babelHelpers.classPrivateFieldLooseBase(this,Ge)[Ge]}set isAttendee(e){babelHelpers.classPrivateFieldLooseBase(this,Ge)[Ge]=e;this.updateFields({isAttendee:e})}get attendeesCount(){return babelHelpers.classPrivateFieldLooseBase(this,We)[We]}set attendeesCount(e){babelHelpers.classPrivateFieldLooseBase(this,We)[We]=e;this.updateFields({attendeesCount:e})}incrementAttendeesCount(){this.attendeesCount=++this.attendeesCount}decrementAttendeesCount(){this.attendeesCount=--this.attendeesCount}get creatorId(){return babelHelpers.classPrivateFieldLooseBase(this,Qe)[Qe]}get eventOptions(){return babelHelpers.classPrivateFieldLooseBase(this,qe)[qe]}get categoryId(){return babelHelpers.classPrivateFieldLooseBase(this,ze)[ze]}get categoryName(){return babelHelpers.classPrivateFieldLooseBase(this,Je)[Je]}get duration(){return this.dateTo.getTime()-this.dateFrom.getTime()}get dateFrom(){return new Date(babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve]*1e3)}get dateTo(){return new Date(babelHelpers.classPrivateFieldLooseBase(this,ke)[ke]*1e3)}get formattedDateTime(){const e=babelHelpers.classPrivateFieldLooseBase(this,lt)[lt](babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve])===babelHelpers.classPrivateFieldLooseBase(this,lt)[lt](babelHelpers.classPrivateFieldLooseBase(this,ke)[ke]);const t=this.dateFrom.getFullYear()===(new Date).getFullYear();const s=this.dateTo.getFullYear()===(new Date).getFullYear();if(e){const e=t?"DAY_OF_WEEK_MONTH_FORMAT":"FULL_DATE_FORMAT";const s=d.DateTimeFormat.format(d.DateTimeFormat.getFormat(e),babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve]);if(this.isFullDay){return s}const a=d.DateTimeFormat.format(d.DateTimeFormat.getFormat("SHORT_TIME_FORMAT"),babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve]);const i=d.DateTimeFormat.format(d.DateTimeFormat.getFormat("SHORT_TIME_FORMAT"),babelHelpers.classPrivateFieldLooseBase(this,ke)[ke]);const r=p.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_FORMAT_TIME_RANGE",{"#FROM#":a,"#TO#":i});return p.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_FORMAT_DATE_TIME",{"#DATE#":s,"#TIME#":r})}const a=t?"DAY_MONTH_FORMAT":"LONG_DATE_FORMAT";const i=s?"DAY_MONTH_FORMAT":"LONG_DATE_FORMAT";const r=d.DateTimeFormat.format(d.DateTimeFormat.getFormat(a),babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve]);const n=d.DateTimeFormat.format(d.DateTimeFormat.getFormat(i),babelHelpers.classPrivateFieldLooseBase(this,ke)[ke]);if(this.isFullDay){return p.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_FORMAT_TIME_RANGE",{"#FROM#":r,"#TO#":n})}const l=d.DateTimeFormat.format(d.DateTimeFormat.getFormat("SHORT_TIME_FORMAT"),babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve]);const o=d.DateTimeFormat.format(d.DateTimeFormat.getFormat("SHORT_TIME_FORMAT"),babelHelpers.classPrivateFieldLooseBase(this,ke)[ke]);return p.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_FORMAT_DATE_TIME_RANGE",{"#FROM_DATE#":r,"#FROM_TIME#":l,"#TO_DATE#":n,"#TO_TIME#":o})}get color(){return babelHelpers.classPrivateFieldLooseBase(this,Ze)[Ze]}get isFullDay(){return babelHelpers.classPrivateFieldLooseBase(this,xe)[xe]}get threadId(){return babelHelpers.classPrivateFieldLooseBase(this,tt)[tt]}get categoryChannelId(){return babelHelpers.classPrivateFieldLooseBase(this,et)[et]}get isNew(){return babelHelpers.classPrivateFieldLooseBase(this,st)[st]}set isNew(e){babelHelpers.classPrivateFieldLooseBase(this,st)[st]=e;this.updateFields({isNew:e})}get exdate(){return babelHelpers.classPrivateFieldLooseBase(this,rt)[rt]}get rrule(){return babelHelpers.classPrivateFieldLooseBase(this,at)[at]}get rruleDescription(){return babelHelpers.classPrivateFieldLooseBase(this,it)[it]}}function ct(e){var t;babelHelpers.classPrivateFieldLooseBase(this,Ue)[Ue]=parseInt(e.id,10);babelHelpers.classPrivateFieldLooseBase(this,Ye)[Ye]=e.name;babelHelpers.classPrivateFieldLooseBase(this,xe)[xe]=e.isFullDay;const s=this.isFullDay?(new Date).getTimezoneOffset()*60:0;babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve]=e.dateFromTs+s;babelHelpers.classPrivateFieldLooseBase(this,ke)[ke]=e.dateToTs+s;babelHelpers.classPrivateFieldLooseBase(this,Xe)[Xe]=e.commentsCount;babelHelpers.classPrivateFieldLooseBase(this,Ge)[Ge]=e.isAttendee;babelHelpers.classPrivateFieldLooseBase(this,We)[We]=e.attendeesCount;babelHelpers.classPrivateFieldLooseBase(this,Qe)[Qe]=parseInt(e.creatorId,10);babelHelpers.classPrivateFieldLooseBase(this,qe)[qe]={maxAttendees:((t=e.eventOptions)==null?void 0:t.maxAttendees)||0};babelHelpers.classPrivateFieldLooseBase(this,ze)[ze]=parseInt(e.categoryId,10);babelHelpers.classPrivateFieldLooseBase(this,Je)[Je]=e.categoryName;babelHelpers.classPrivateFieldLooseBase(this,Ze)[Ze]=e.color;babelHelpers.classPrivateFieldLooseBase(this,et)[et]=e.categoryChannelId;babelHelpers.classPrivateFieldLooseBase(this,tt)[tt]=e.threadId;babelHelpers.classPrivateFieldLooseBase(this,st)[st]=e.isNew;babelHelpers.classPrivateFieldLooseBase(this,at)[at]=ut.parseRrule(e.rrule);babelHelpers.classPrivateFieldLooseBase(this,it)[it]=e.rruleDescription;if(p.Type.isNumber(e.recursionAmount)){babelHelpers.classPrivateFieldLooseBase(this,at)[at].amount=e.recursionAmount}if(p.Type.isNumber(e.recursionNum)){babelHelpers.classPrivateFieldLooseBase(this,at)[at].num=e.recursionNum}babelHelpers.classPrivateFieldLooseBase(this,rt)[rt]=e.exdate;this.fields=e}function dt(e){return d.DateTimeFormat.format("d.m.Y",e)}const vt=2038;class ut{static parseRecursion(e,{fromLimit:t,toLimit:s}){if(e.rrule===null){return new ot(e.fields)}const{timestamps:a}=this.parseTimestamps(e,{fromLimit:t,toLimit:s});const i=this.getAmount(e);return a.map((({fromTs:t,num:s})=>new ot({...e.fields,dateFromTs:t/1e3,dateToTs:t/1e3+e.duration/1e3,recursionAmount:i,recursionNum:s+1})))}static getAmount(e){const t=parseInt(e.rrule.COUNT,10)||0;if(t>0){return t}const s=d.DateTimeFormat.parse(e.rrule.UNTIL);if(s.getFullYear()===vt){return Infinity}const{count:a}=this.parseTimestamps(e,{fromLimit:null,toLimit:s});return a}static parseTimestamps(e,{fromLimit:t,toLimit:s}){const a=[];const i=e.rrule;const r=e.exdate.split(";");const n=e.isFullDay?(new Date).getTimezoneOffset()*6e4:0;let l=new Date(e.dateFrom.getTime()-n);const o=new Date(Math.min(s,d.DateTimeFormat.parse(i.UNTIL)));o.setHours(l.getHours(),l.getMinutes());const c=l.getFullYear();const v=l.getMonth();const u=l.getDate();const h=l.getHours();const b=l.getMinutes();let g=0;const m=d.DateTimeFormat.getFormat("FORMAT_DATE");while(l<=o){if(i.COUNT>0&&g>=i.COUNT){break}const n=r.includes(d.DateTimeFormat.format(m,l.getTime()/1e3));const o=!n&&(!t||l.getTime()>=t.getTime())&&(!s||l.getTime()+e.duration<=s.getTime());if(i.FREQ==="WEEKLY"){const e=this.getWeekDayByInd(d.DateTimeFormat.format("w",l.getTime()/1e3));if(p.Type.isStringFilled(i.BYDAY[e])){if(o){a.push({fromTs:l.getTime(),num:g})}g++}const t=(i.INTERVAL-1)*7+1;const s=e==="SU"?t:1;l=new Date(l.getFullYear(),l.getMonth(),l.getDate()+s,h,b)}if(["DAILY","MONTHLY","YEARLY"].includes(i.FREQ)){if(o){a.push({fromTs:l.getTime(),num:g})}g++;switch(i.FREQ){case"DAILY":l=new Date(c,v,u+g*i.INTERVAL,h,b,0,0);break;case"MONTHLY":l=new Date(c,v+g*i.INTERVAL,u,h,b,0,0);break;case"YEARLY":l=new Date(c+g*i.INTERVAL,v,u,h,b,0,0);break}}}return{timestamps:a,count:g}}static getWeekDayByInd(e){return["SU","MO","TU","WE","TH","FR","SA"][e]}static parseRrule(e){if(!p.Type.isStringFilled(e)){return null}const t={};const s=e.split(";").map((e=>e.split("="))).filter((([e])=>p.Type.isStringFilled(e)));for(const[e,l]of s){if(e==="FREQ"&&["DAILY","WEEKLY","MONTHLY","YEARLY"].includes(l)){t.FREQ=l}if(["COUNT","INTERVAL"].includes(e)){var a;t[e]=Math.max(1,(a=parseInt(l,10))!=null?a:0)}if(e==="UNTIL"){t.UNTIL=l}if(e==="BYDAY"){var i;const e=/(([-+])?\d+)?(MO|TU|WE|TH|FR|SA|SU)/;for(const s of l.split(",").filter((t=>e.test(t)))){var r,n;const a=[...s.match(e)];(r=t.BYDAY)!=null?r:t.BYDAY={};t.BYDAY[a[3]]=(n=a[1])!=null?n:a[3]}(i=t.BYDAY)!=null?i:t.BYDAY={MO:"MO"}}}return t}}class ht{static async list(e){const{categoryId:t,fromMonth:s,fromYear:a,toMonth:i,toYear:r}=e;const n=await BX.ajax.runAction("calendar.open-events.Event.list",{data:{categoryId:t,fromMonth:s,fromYear:a,toMonth:i,toYear:r}});return n.data}static async getTsRange(e){const t=await BX.ajax.runAction("calendar.open-events.Event.getTsRange",{data:{categoryId:e}});return{from:new Date(parseInt(t.data.from,10)*1e3),to:new Date(parseInt(t.data.to,10)*1e3)}}static async setAttendeeStatus(e,t){const s=await BX.ajax.runAction("calendar.open-events.Event.setAttendeeStatus",{data:{eventId:e,attendeeStatus:t}});return s.data}static async setWatched(e){const t=await BX.ajax.runAction("calendar.open-events.Event.setWatched",{data:{eventIds:e}});return t.data}}class pt{static async query(e){const{filterId:t,fromDate:s,fromMonth:a,fromYear:i,toDate:r,toMonth:n,toYear:l}=e;const o=await BX.ajax.runAction("calendar.open-events.Filter.query",{data:{filterId:t,fromDate:s,fromMonth:a,fromYear:i,toDate:r,toMonth:n,toYear:l}});return o.data}static async getTsRange(e){const t=await BX.ajax.runAction("calendar.open-events.Filter.getTsRange",{data:{filterId:e}});return{from:new Date(parseInt(t.data.from,10)*1e3),to:new Date(parseInt(t.data.to,10)*1e3)}}}const bt=-1;var gt=babelHelpers.classPrivateFieldLooseKey("filter");var mt=babelHelpers.classPrivateFieldLooseKey("events");var Lt=babelHelpers.classPrivateFieldLooseKey("eventIds");var ft=babelHelpers.classPrivateFieldLooseKey("shownRanges");var Pt=babelHelpers.classPrivateFieldLooseKey("loadedRanges");var Ft=babelHelpers.classPrivateFieldLooseKey("tsRanges");var yt=babelHelpers.classPrivateFieldLooseKey("eventPromises");var Et=babelHelpers.classPrivateFieldLooseKey("tsRangePromises");var Bt=babelHelpers.classPrivateFieldLooseKey("subscribeToPull");var Ht=babelHelpers.classPrivateFieldLooseKey("createEventPull");var Ct=babelHelpers.classPrivateFieldLooseKey("updateEventPull");var Tt=babelHelpers.classPrivateFieldLooseKey("deletePullEvent");var _t=babelHelpers.classPrivateFieldLooseKey("updateEvent");var Ot=babelHelpers.classPrivateFieldLooseKey("deleteEvent");var At=babelHelpers.classPrivateFieldLooseKey("getEvent");var It=babelHelpers.classPrivateFieldLooseKey("getFirstDayOfPreviousMonth");var Mt=babelHelpers.classPrivateFieldLooseKey("getLastDayOfNextMonth");var wt=babelHelpers.classPrivateFieldLooseKey("prepareEvents");var Nt=babelHelpers.classPrivateFieldLooseKey("loadEvents");var St=babelHelpers.classPrivateFieldLooseKey("getDateKey");var Dt=babelHelpers.classPrivateFieldLooseKey("getDateCode");var Rt=babelHelpers.classPrivateFieldLooseKey("requestEvents");var jt=babelHelpers.classPrivateFieldLooseKey("loadTsRange");var $t=babelHelpers.classPrivateFieldLooseKey("requestTsRange");class Kt extends l.EventEmitter{constructor(){super();Object.defineProperty(this,$t,{value:ss});Object.defineProperty(this,jt,{value:ts});Object.defineProperty(this,Rt,{value:es});Object.defineProperty(this,Dt,{value:Zt});Object.defineProperty(this,St,{value:Jt});Object.defineProperty(this,Nt,{value:zt});Object.defineProperty(this,wt,{value:qt});Object.defineProperty(this,Mt,{value:Qt});Object.defineProperty(this,It,{value:Wt});Object.defineProperty(this,At,{value:Gt});Object.defineProperty(this,Ot,{value:Xt});Object.defineProperty(this,_t,{value:kt});Object.defineProperty(this,Tt,{value:Vt});Object.defineProperty(this,Ct,{value:xt});Object.defineProperty(this,Ht,{value:Yt});Object.defineProperty(this,Bt,{value:Ut});Object.defineProperty(this,gt,{writable:true,value:void 0});Object.defineProperty(this,mt,{writable:true,value:[]});Object.defineProperty(this,Lt,{writable:true,value:{}});Object.defineProperty(this,ft,{writable:true,value:{}});Object.defineProperty(this,Pt,{writable:true,value:{}});Object.defineProperty(this,Ft,{writable:true,value:{}});Object.defineProperty(this,yt,{writable:true,value:{}});Object.defineProperty(this,Et,{writable:true,value:{}});this.setEventNamespace("Calendar.OpenEvents.List.EventManager");babelHelpers.classPrivateFieldLooseBase(this,Bt)[Bt]()}setFilter(e){babelHelpers.classPrivateFieldLooseBase(this,gt)[gt]=e}async setEventAttendee(e,t){babelHelpers.classPrivateFieldLooseBase(this,_t)[_t](e,{isAttendee:t});try{await ht.setAttendeeStatus(e,t)}catch(s){babelHelpers.classPrivateFieldLooseBase(this,_t)[_t](e,{isAttendee:!t})}}async setEventWatched(e){const t=babelHelpers.classPrivateFieldLooseBase(this,At)[At](e);if(!t.isNew){return}babelHelpers.classPrivateFieldLooseBase(this,_t)[_t](e,{isNew:false});try{await ht.setWatched([e]);Ce.decrementNewCounter(t.categoryId)}catch{babelHelpers.classPrivateFieldLooseBase(this,_t)[_t](e,{isNew:true})}}async filterEvents(){const e=babelHelpers.classPrivateFieldLooseBase(this,gt)[gt].getFilterFieldsKey();if(e!==this.filterEvents.previousFilterKey){delete babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][bt];delete babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt][bt];delete babelHelpers.classPrivateFieldLooseBase(this,Lt)[Lt][bt];delete babelHelpers.classPrivateFieldLooseBase(this,yt)[yt][bt];delete babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][bt];delete babelHelpers.classPrivateFieldLooseBase(this,Et)[Et][bt]}this.filterEvents.previousFilterKey=e;return this.getEvents(bt)}filterNext(){return this.getNext(bt)}filterPrevious(){return this.getPrevious(bt)}async getNext(e=0){const t=babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt][e].to>=babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].to;const s=babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].to>=babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].to;const a=babelHelpers.classPrivateFieldLooseBase(this,wt)[wt](e);if(s){return a}babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].to=babelHelpers.classPrivateFieldLooseBase(this,Mt)[Mt](babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].to);const i=babelHelpers.classPrivateFieldLooseBase(this,wt)[wt](e);if(t){if(i.length===a.length){return this.getNext(e)}return i}const r=await this.getEvents(e,{from:babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].to,to:babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].to});if(r.length===i.length){await this.getEvents(e,{from:babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].to,to:babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].to});return this.getNext(e)}return r}async getPrevious(e=0){const t=babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt][e].from<=babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].from;const s=babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].from<=babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].from;const a=babelHelpers.classPrivateFieldLooseBase(this,wt)[wt](e);if(s){return a}babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].from=babelHelpers.classPrivateFieldLooseBase(this,It)[It](babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].from);const i=babelHelpers.classPrivateFieldLooseBase(this,wt)[wt](e);if(t){if(i.length===a.length){return this.getPrevious(e)}return i}const r=await this.getEvents(e,{from:babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].from,to:babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].from});if(r.length===i.length){await this.getEvents(e,{from:babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].from,to:babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].from});return this.getPrevious(e)}return r}async getEvents(e=0,t={}){var s,a,i,r,n,l,o,c,d,v,u;(a=(s=babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft])[e])!=null?a:s[e]=await babelHelpers.classPrivateFieldLooseBase(this,jt)[jt](e);const h=new Date;let p=(i=t.from)!=null?i:babelHelpers.classPrivateFieldLooseBase(this,It)[It](h);let b=(r=t.to)!=null?r:babelHelpers.classPrivateFieldLooseBase(this,Mt)[Mt](h);if(e===bt&&babelHelpers.classPrivateFieldLooseBase(this,gt)[gt].isDateFieldApplied()){p=babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].from;b=babelHelpers.classPrivateFieldLooseBase(this,Ft)[Ft][e].to}(l=(n=babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt])[e])!=null?l:n[e]={from:p,to:b};(c=(o=babelHelpers.classPrivateFieldLooseBase(this,ft)[ft])[e])!=null?c:o[e]={from:p,to:b};babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt][e].from=new Date(Math.min(p,babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt][e].from));babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt][e].to=new Date(Math.max(b,babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt][e].to));const g=await babelHelpers.classPrivateFieldLooseBase(this,Nt)[Nt](e,{from:p,to:b});const m=Object.values(babelHelpers.classPrivateFieldLooseBase(this,Lt)[Lt]).flat();const L=g.filter((e=>!m.includes(e.id)));babelHelpers.classPrivateFieldLooseBase(this,mt)[mt].push(...L);const f=(d=babelHelpers.classPrivateFieldLooseBase(this,Lt)[Lt][e])!=null?d:[];const P=g.filter((e=>!f.includes(e.id)));(u=(v=babelHelpers.classPrivateFieldLooseBase(this,Lt)[Lt])[e])!=null?u:v[e]=[];babelHelpers.classPrivateFieldLooseBase(this,Lt)[Lt][e].push(...P.map((e=>e.id)));return babelHelpers.classPrivateFieldLooseBase(this,wt)[wt](e)}}function Ut(){if(!BX.PULL){console.info("BX.PULL not initialized");return}const e=new Re;e.subscribe("create",babelHelpers.classPrivateFieldLooseBase(this,Ht)[Ht].bind(this));e.subscribe("update",babelHelpers.classPrivateFieldLooseBase(this,Ct)[Ct].bind(this));e.subscribe("delete",babelHelpers.classPrivateFieldLooseBase(this,Tt)[Tt].bind(this));BX.PULL.subscribe(e)}function Yt(e){const{fields:t}=e.getData();const s=new ot(t);babelHelpers.classPrivateFieldLooseBase(this,mt)[mt].push(s);[0,s.categoryId].forEach((e=>{var t;return(t=babelHelpers.classPrivateFieldLooseBase(this,Lt)[Lt][e])==null?void 0:t.push(s.id)}));if(s.creatorId!==Oe.currentUserId){s.isNew=true;[0,s.categoryId].forEach((e=>Ce.incrementNewCounter(e)))}Ce.bubbleUp(s.categoryId);this.emit("update",{eventId:s.id})}function xt(e){const{fields:t,[Oe.pullEventUserFieldsKey]:s}=e.getData();Object.assign(t,s||{});babelHelpers.classPrivateFieldLooseBase(this,_t)[_t](t.id,t)}function Vt(e){const{fields:{eventId:t}}=e.getData();babelHelpers.classPrivateFieldLooseBase(this,Ot)[Ot](t)}function kt(e,t){const s=babelHelpers.classPrivateFieldLooseBase(this,At)[At](e);if(!s){return}s.updateFields(t);this.emit("update",{eventId:e})}function Xt(e){babelHelpers.classPrivateFieldLooseBase(this,mt)[mt]=babelHelpers.classPrivateFieldLooseBase(this,mt)[mt].filter((t=>t.id!==e));this.emit("delete",{eventId:e})}function Gt(e){var t;return(t=babelHelpers.classPrivateFieldLooseBase(this,mt)[mt].find((t=>t.id===e)))!=null?t:null}function Wt(e){return new Date(e.getFullYear(),e.getMonth()-1,1)}function Qt(e){return new Date(e.getFullYear(),e.getMonth()+2,0,23,59,59)}function qt(e){const t=babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].from;const s=babelHelpers.classPrivateFieldLooseBase(this,ft)[ft][e].to;return babelHelpers.classPrivateFieldLooseBase(this,mt)[mt].filter((t=>babelHelpers.classPrivateFieldLooseBase(this,Lt)[Lt][e].includes(t.id))).flatMap((e=>ut.parseRecursion(e,{fromLimit:t,toLimit:s}))).filter((e=>e.dateFrom>=t&&e.dateTo<=s))}async function zt(e,t){var s,a,i,r;const n=babelHelpers.classPrivateFieldLooseBase(this,St)[St](t);(a=(s=babelHelpers.classPrivateFieldLooseBase(this,yt)[yt])[e])!=null?a:s[e]={};(r=(i=babelHelpers.classPrivateFieldLooseBase(this,yt)[yt][e])[n])!=null?r:i[n]=babelHelpers.classPrivateFieldLooseBase(this,Rt)[Rt](e,t);const l=await babelHelpers.classPrivateFieldLooseBase(this,yt)[yt][e][n];return l.map((e=>new ot(e)))}function Jt(e){return`${babelHelpers.classPrivateFieldLooseBase(this,Dt)[Dt](e.from)}-${babelHelpers.classPrivateFieldLooseBase(this,Dt)[Dt](e.to)}`}function Zt(e){return d.DateTimeFormat.format("d.m.Y",e)}function es(e,t){if(e===bt){return pt.query({filterId:babelHelpers.classPrivateFieldLooseBase(this,gt)[gt].id,fromDate:t.from.getDate(),fromMonth:t.from.getMonth()+1,fromYear:t.from.getFullYear(),toDate:t.to.getDate(),toMonth:t.to.getMonth()+1,toYear:t.to.getFullYear()})}return ht.list({categoryId:e,fromMonth:t.from.getMonth()+1,fromYear:t.from.getFullYear(),toMonth:t.to.getMonth()+1,toYear:t.to.getFullYear()})}async function ts(e){var t,s;(s=(t=babelHelpers.classPrivateFieldLooseBase(this,Et)[Et])[e])!=null?s:t[e]=babelHelpers.classPrivateFieldLooseBase(this,$t)[$t](e);return babelHelpers.classPrivateFieldLooseBase(this,Et)[Et][e]}function ss(e){if(e===bt){return pt.getTsRange(babelHelpers.classPrivateFieldLooseBase(this,gt)[gt].id)}return ht.getTsRange(e)}const as=new Kt;const is={props:{category:I},computed:{...m.mapGetters({selectedCategoryId:"selectedCategoryId"})},methods:{async onClick(){await this.$store.dispatch("selectCategory",this.category.id);await this.$store.dispatch("setEventsLoading",true);const e=await as.getEvents(this.category.id);if(this.selectedCategoryId!==this.category.id){return}await this.$store.dispatch("setEvents",e);await this.$store.dispatch("setEventsLoading",false)},getEventCountPhrase(e){return p.Loc.getMessagePlural("CALENDAR_OPEN_EVENTS_LIST_CATEGORY_EVENTS_COUNT",e,{"#COUNT#":e})},renderCounter(){this.$refs.counter.innerHTML="";if(this.category.newCount>0){new g.Counter({value:this.category.newCount,color:this.category.isMuted?g.Counter.Color.GRAY:g.Counter.Color.DANGER}).renderTo(this.$refs.counter)}}},mounted(){this.renderCounter()},watch:{category(){this.renderCounter()}},template:`\n\t\t<div\n\t\t\tclass="calendar-open-events-list-category"\n\t\t\t:class="{\n\t\t\t\t'--banned': category.isBanned,\n\t\t\t\t'--selected': category.isSelected,\n\t\t\t\t'--all-category': category.id === 0,\n\t\t\t}"\n\t\t\t:data-category-id="category.id"\n\t\t>\n\t\t\t<div class="calendar-open-events-list-category-inner" @click="onClick">\n\t\t\t\t<div class="calendar-open-events-list-category-title">\n\t\t\t\t\t<div class="ui-icon-set --calendar-2" v-if="category.id === 0"></div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass="calendar-open-events-list-category-title-name"\n\t\t\t\t\t\t:title="category.name"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>{{ category.name }}</span>\n\t\t\t\t\t\t<div class="ui-icon-set --sound-off" v-if="category.isMuted && !category.isBanned"></div>\n\t\t\t\t\t\t<div class="ui-icon-set --lock" v-if="category.closed"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div ref="counter"></div>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tclass="calendar-open-events-list-category-info"\n\t\t\t\t\tv-html="getEventCountPhrase(category.eventsCount)"\n\t\t\t\t\tv-if="category.id !== 0"\n\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};const rs={computed:{...m.mapGetters({categories:"categories",isSearchMode:"isSearchMode",categoriesQuery:"categoriesQuery"}),allCategory(){return this.categories.find((e=>e.id===0))},sortedCategories(){return[...this.categories].filter((e=>e.id>0)).sort(((e,t)=>{if(e.isBanned!==t.isBanned){return e.isBanned-t.isBanned}return t.updatedAt-e.updatedAt}))}},mounted(){void this.loadOnScroll();this.$refs.categoryList.addEventListener("scroll",this.loadOnScroll);Ce.subscribe("update",this.onCategoriesUpdatedHandler)},beforeUnmount(){this.$refs.categoryList.removeEventListener("scroll",this.loadOnScroll);Ce.unsubscribe("update",this.onCategoriesUpdatedHandler)},watch:{categories(){void this.$nextTick((()=>this.loadOnScroll()))}},methods:{async onCategoriesUpdatedHandler(){const e=await this.getCategories();this.$store.dispatch("setCategories",e)},async loadOnScroll(){const e=this.$refs.categoryList.scrollTop;const t=this.$refs.categoryList.scrollHeight;const s=this.$refs.categoryList.offsetHeight;if(e+1>=t-s){const e=await this.loadMore();if(e.length>0){this.$store.dispatch("setCategories",e)}}},getCategories(){if(this.isSearchMode){return Ce.searchCategories(this.categoriesQuery)}return Ce.getCategories()},loadMore(){if(this.isSearchMode){return Ce.searchMore()}return Ce.loadMore()}},components:{Category:is},template:`\n\t\t<div class="calendar-open-events-list-category-list --calendar-scroll-bar" ref="categoryList">\n\t\t\t<Category :category="allCategory" v-show="!isSearchMode"/>\n\t\t\t<Category v-for="category of sortedCategories" :category="category"/>\n\t\t</div>\n\t`};const ns={computed:{...m.mapGetters({isFilterMode:"isFilterMode"})},components:{CategoriesHeader:we,CategoryList:rs},template:`\n\t\t<div class="calendar-open-events-list-categories" :class="{ '--filter': isFilterMode }" >\n\t\t\t<CategoriesHeader/>\n\t\t\t<CategoryList/>\n\t\t</div>\n\t`};const ls={props:{category:I},data(){return{menu:b.Menu}},methods:{openMenu(){this.menu=new b.Menu({bindElement:this.$refs.menuIcon,closeByEsc:true,items:this.getMenuItems()});this.menu.show()},redrawMenu(){const e=this.menu.getMenuItems().map((e=>e.getId()));e.forEach((e=>this.menu.removeMenuItem(e,{destroyEmptyPopup:false})));this.getMenuItems().forEach((e=>this.menu.addMenuItem(e)))},getMenuItems(){const e=[this.getInfoItem(),this.getOpenChatItem()];if(!this.category.isBanned){e.push(this.getMuteItem())}e.push(this.getBanItem());if(this.category.permissions.edit===true){e.push(this.getEditItem())}if(this.category.permissions.delete===true){e.push(this.getDeleteItem())}return e},getInfoItem(){return{html:`\n\t\t\t\t\t<div class="calendar-open-events-list-menu-item">\n\t\t\t\t\t\t<div class="ui-icon-set --info-circle"></div>\n\t\t\t\t\t\t<span>${this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_ABOUT_CATEGORY")}</span>\n\t\t\t\t\t</div>\n\t\t\t\t`,onclick:()=>{this.menu.close();alert("info")}}},getOpenChatItem(){return{html:`\n\t\t\t\t\t<div class="calendar-open-events-list-menu-item">\n\t\t\t\t\t\t<div class="ui-icon-set --chats-2"></div>\n\t\t\t\t\t\t<span>${this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_OPEN_CHANNEL")}</span>\n\t\t\t\t\t</div>\n\t\t\t\t`,onclick:()=>{this.menu.close();o.Messenger.openChat(`chat${this.category.channelId}`)}}},getMuteItem(){return{html:this.renderMuteItem(),onclick:()=>{this.category.isMuted=!this.category.isMuted;this.muteCategory(this.category.isMuted);this.redrawMenu()}}},renderMuteItem(){const e=this.category.isMuted?"--notifications-off":"--bell-1";const t=this.category.isMuted?this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_ENABLE_NOTIFY"):this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_DISABLE_NOTIFY");return`\n\t\t\t\t<div class="calendar-open-events-list-menu-item">\n\t\t\t\t\t<div class="ui-icon-set ${e}"></div>\n\t\t\t\t\t<span>${t}</span>\n\t\t\t\t</div>\n\t\t\t`},getBanItem(){return{html:this.renderBanItem(),onclick:()=>{this.category.isBanned=!this.category.isBanned;this.banCategory(this.category.isBanned);this.redrawMenu()}}},renderBanItem(){const e=this.category.isBanned?"--bell-1":"--unavailable";const t=this.category.isBanned?this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_SUBSCRIBE"):this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_UNSUBSCRIBE");return`\n\t\t\t\t<div class="calendar-open-events-list-menu-item">\n\t\t\t\t\t<div class="ui-icon-set ${e}"></div>\n\t\t\t\t\t<span>${t}</span>\n\t\t\t\t</div>\n\t\t\t`},getEditItem(){return{html:`\n\t\t\t\t\t<div class="calendar-open-events-list-menu-item">\n\t\t\t\t\t\t<div class="ui-icon-set --pencil-40"></div>\n\t\t\t\t\t\t<span>${this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_EDIT")}</span>\n\t\t\t\t\t</div>\n\t\t\t\t`,onclick:()=>{this.menu.close();this.openEditCategoryForm()}}},getDeleteItem(){return{html:`\n\t\t\t\t\t<div class="calendar-open-events-list-menu-item">\n\t\t\t\t\t\t<div class="ui-icon-set --cross-40"></div>\n\t\t\t\t\t\t<span>${this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_MENU_DELETE")}</span>\n\t\t\t\t\t</div>\n\t\t\t\t`,onclick:()=>{this.menu.close();this.deleteCategory()}}},muteCategory(e){void Ce.setMute(this.category.id,e)},banCategory(e){void Ce.setBan(this.category.id,e)},openEditCategoryForm(){this.$refs.editForm.show({category:this.category})},deleteCategory(){alert("delete category "+this.category.id)}},components:{CategoryEditForm:Ae},template:`\n\t\t<div\n\t\t\tclass="calendar-open-events-list-item__list-header__menu ui-icon-set --more-information"\n\t\t\t@click="openMenu"\n\t\t\tref="menuIcon"\n\t\t></div>\n\t\t<CategoryEditForm ref="editForm"/>\n\t`};const os={computed:{...m.mapGetters({isFilterMode:"isFilterMode",category:"selectedCategory"}),title(){var e;if(this.isFilterMode){return this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_SEARCH_RESULT")}return(e=this.category)==null?void 0:e.name}},components:{TitleMenu:ls},template:`\n\t\t<div class="calendar__open-event__list-header">\n\t\t\t<div class="calendar__open-event__list-header__title" :title="title">\n\t\t\t\t{{ title }}\n\t\t\t</div>\n\t\t\t<div class="calendar__open-event__list-header__icon ui-icon-set --lock" v-if="category.closed"></div>\n\t\t\t<TitleMenu v-if="!isFilterMode && category.id" :category="category"/>\n\t\t</div>\n\t`};const cs={props:{event:ot},computed:{calendarDate(){return this.event.dateFrom.getDate()},calendarMonth(){return d.DateTimeFormat.format("f",this.event.dateFrom)},calendarTime(){if(this.event.isFullDay){return this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_ALL_DAY")}const e=d.DateTimeFormat.getFormat("SHORT_TIME_FORMAT");const t=d.DateTimeFormat.format(e,this.event.dateFrom);const s=d.DateTimeFormat.format("D",this.event.dateFrom);return this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_FORMAT_WEEKDAY_TIME",{"#WEEKDAY#":s,"#TIME#":t})},isCreator(){return this.event.creatorId===Oe.currentUserId}},template:`\n\t\t<div class="calendar-open-events-list-calendar-sheet" :style="{ borderColor: event.color }">\n\t\t\t<div class="calendar-open-events-list-calendar-sheet-header" :style="{ backgroundColor: event.color }">\n\t\t\t\t<div class="calendar-open-events-list-calendar-sheet-header-hole"></div>\n\t\t\t\t<div class="calendar-open-events-list-calendar-sheet-header-hole"></div>\n\t\t\t</div>\n\t\t\t<div class="calendar-open-events-list-calendar-sheet-content">\n\t\t\t\t<div class="calendar-open-events-list-calendar-sheet-date">\n\t\t\t\t\t{{ calendarDate }}\n\t\t\t\t</div>\n\t\t\t\t<div class="calendar-open-events-list-calendar-sheet-month">\n\t\t\t\t\t{{ calendarMonth }}\n\t\t\t\t</div>\n\t\t\t\t<div class="calendar-open-events-list-calendar-sheet-time" :style="{ color: event.color }">\n\t\t\t\t\t{{ calendarTime }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclass="calendar-open-events-list-calendar-sheet-crown"\n\t\t\t\tv-if="isCreator"\n\t\t\t\t:title="$Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_EVENT_YOU_ARE_OWNER')"\n\t\t\t>\n\t\t\t\t<div class="ui-icon-set --crown-2"></div>\n\t\t\t</div>\n\t\t</div>\n\t`};const ds={props:{isAttendee:Boolean},methods:{renderButton(){const e=new u.Button({color:this.isAttendee?u.ButtonColor.LIGHT_BORDER:u.ButtonColor.SUCCESS,size:u.ButtonSize.SMALL,round:true,className:this.isAttendee?"calendar-open-events-list-item__attend-button --off":"calendar-open-events-list-item__attend-button --on"});this.$refs.bindBtn.innerHTML="";e.renderTo(this.$refs.bindBtn)}},watch:{isAttendee(){this.renderButton()}},mounted(){this.renderButton()},template:`\n\t\t<div ref="bindBtn"></div>\n\t`};const vs={props:{commentsCount:Number},methods:{renderCounter(){const e=this.commentsCount;const t=e?g.Counter.Color.PRIMARY:g.Counter.Color.GRAY;this.$refs.counter.innerHTML="";new g.Counter({value:e,color:t,size:g.Counter.Size.LARGE}).renderTo(this.$refs.counter)}},mounted(){this.renderCounter()},watch:{commentsCount(){this.renderCounter()}},template:`\n\t\t<div class="calendar-open-events-list-item-comment-counter">\n\t\t\t<div class="ui-icon-set --chats-1"></div>\n\t\t\t<div ref="counter"></div>\n\t\t</div>\n\t`};const us={props:{attendeesCount:Number,maxAttendees:Number|null},computed:{attendeesValue(){if(this.maxAttendees){return this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_EVENT_ATTENDEE_VALUE",{"#COUNT#":this.attendeesCount,"#COUNT_MAX#":this.maxAttendees})}else{return this.attendeesCount}}},template:`\n\t\t<div class="calendar-open-events-list-item-attendee-counter">\n\t\t\t<div class="ui-icon-set --persons-2"></div>\n\t\t\t<div v-html="attendeesValue"></div>\n\t\t</div>\n\t`};const hs={emits:["openEvent"],props:{event:ot},computed:{...m.mapGetters({selectedCategoryId:"selectedCategoryId"}),formattedRrule(){if(this.event.rrule.amount===0||this.event.rrule.amount===Infinity){return""}return this.$Bitrix.Loc.getMessage("CALENDAR_OPEN_EVENTS_LIST_NUM_MEETING_OF_AMOUNT",{"#NUM#":this.event.rrule.num,"#AMOUNT#":this.event.rrule.amount})}},methods:{renderCounter(){this.$refs.counter.innerHTML="";if(this.event.isNew){new g.Counter({value:1,color:g.Counter.Color.DANGER}).renderTo(this.$refs.counter)}},bindRrulePopup(){if(!this.$refs.rrule){return}const e=new b.Popup({bindElement:this.$refs.rrule,content:this.event.rruleDescription,darkMode:true,bindOptions:{position:"top"},offsetTop:-10,angle:true,autoHide:true});this.bindShowOnHover(e)},bindShowOnHover(e){if(e instanceof b.Menu){e=e.getPopupWindow()}const t=e.bindElement;const s=e.getPopupContainer();let a=null;const i=()=>{setTimeout((()=>{if(!s.contains(a)&&!t.contains(a)){e.close()}}),100)};const r=()=>{setTimeout((()=>{if(t.contains(a)){e.show()}}),300)};const n=()=>{if(!e.isShown()){e.show()}};p.Event.bind(document,"mouseover",(e=>{a=e.target}));p.Event.bind(t,"mouseenter",r);p.Event.bind(t,"mouseleave",i);p.Event.bind(s,"mouseleave",i);p.Event.bind(t,"click",n);const l=()=>{const t=b.Popup.getOption("angleMinBottom");const s=e.getPopupContainer().offsetWidth;const a=e.bindElement.offsetWidth;e.setOffset({offsetLeft:a/2-s/2});e.adjustPosition();if(e.angle){e.setAngle({offset:s/2+t})}};e.subscribeFromOptions({onShow:()=>{l();document.addEventListener("scroll",l,true)},onClose:()=>{document.removeEventListener("scroll",l,true)}})}},mounted(){this.renderCounter();this.bindRrulePopup()},watch:{event(){this.renderCounter()}},template:`\n\t\t<div class="calendar-open-events-list-item-name">\n\t\t\t<div\n\t\t\t\tclass="calendar-open-events-list-item__event-name-with-counter"\n\t\t\t\t@click="$emit('openEvent')"\n\t\t\t>\n\t\t\t\t<div class="calendar-open-events-list-event-name-category" v-if="selectedCategoryId === 0">\n\t\t\t\t\t{{ event.categoryName }}\n\t\t\t\t</div>\n\t\t\t\t<div v-show="event.isNew" ref="counter"></div>\n\t\t\t\t<div class="calendar-open-events-list-item__event-name" :title="event.name">\n\t\t\t\t\t{{ event.name }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="calendar-open-events-list-event-time">\n\t\t\t\t<div class="calendar-open-events-list-event-time-datetime">\n\t\t\t\t\t{{ event.formattedDateTime }}\n\t\t\t\t</div>\n\t\t\t\t<div class="calendar-open-events-list-event-time-full-day" v-if="event.isFullDay">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_ALL_DAY') }}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tclass="calendar-open-events-list-event-time-recursion"\n\t\t\t\t\tref="rrule"\n\t\t\t\t\tv-if="event.rrule"\n\t\t\t\t>\n\t\t\t\t\t<div class="ui-icon-set --refresh-3"></div>\n\t\t\t\t\t<div class="calendar-open-events-list-event-time-rrule" v-if="formattedRrule">\n\t\t\t\t\t\t{{ formattedRrule }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};const ps={props:{event:ot},computed:{...m.mapGetters({selectedCategoryId:"selectedCategoryId"})},methods:{async openComments(){const e=this.event.categoryChannelId;const t=this.event.threadId;await o.Messenger.openChat(`chat${e}`,t);l.EventEmitter.emit(c.EventType.dialog.openComments,{messageId:t})},async openEvent(){const{EntryManager:e,Entry:t,CalendarSection:s}=await p.Runtime.loadExtension("calendar.entry");const a=new s({...Oe.openEventSection,PERM:{view_time:true,view_title:true,view_full:true,add:false,edit:false,edit_section:false,access:false}});const i=new t({data:{ID:this.event.id,NAME:this.event.name,SKIP_TIME:this.event.isFullDay,dateFrom:this.event.dateFrom,dateTo:this.event.dateTo,SECT_ID:a.getId(),RRULE:this.event.fields.rrule,COLOR:this.event.color,"~RRULE_DESCRIPTION":this.event.rruleDescription}});e.openCompactViewForm({entry:i,sections:[a]});if(this.event.isNew){as.setEventWatched(this.event.id)}},async attendEvent(e){as.setEventAttendee(this.event.id,e)}},components:{CalendarSheet:cs,AttendButton:ds,CommentCounter:vs,AttendeeCounter:us,NameWithCounter:hs},template:`\n\t\t<div class="calendar-open-events-list-item">\n\t\t\t<div class="calendar-open-events-list-item-info">\n\t\t\t\t<CalendarSheet :event="event"/>\n\t\t\t\t<NameWithCounter\n\t\t\t\t\t:event="event"\n\t\t\t\t\t@openEvent="openEvent()"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class="calendar-open-events-list-item-actions">\n\t\t\t\t<CommentCounter :commentsCount="event.commentsCount" @click="openComments()"/>\n\t\t\t\t<AttendeeCounter\n\t\t\t\t\t:attendeesCount="event.attendeesCount"\n\t\t\t\t\t:maxAttendees="event.eventOptions.maxAttendees"\n\t\t\t\t/>\n\t\t\t\t<AttendButton :isAttendee="event.isAttendee" @click="attendEvent(!event.isAttendee)"/>\n\t\t\t</div>\n\t\t</div>\n\t`};const bs={template:`\n\t\t<div class="calendar-open-events-list-events-empty">\n\t\t\t<div class="calendar-open-events-list-events-empty-icon"></div>\n\t\t\t<div class="calendar-open-events-list-events-empty-title">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_OPEN_EVENTS_LIST_EMPTY_STATE') }}\n\t\t\t</div>\n\t\t</div>\n\t`};const gs=2e3;const ms={data(){return{observedEvents:new Map,eventRefs:[]}},computed:{...m.mapGetters({events:"events",selectedCategoryId:"selectedCategoryId",isFilterMode:"isFilterMode"}),sortedEvents(){return[...this.events].sort(((e,t)=>{if(e.dateFrom.getTime()===t.dateFrom.getTime()){if(e.dateTo.getTime()===t.dateTo.getTime()){return parseInt(e.id)-parseInt(t.id)}return e.dateTo.getTime()-t.dateTo.getTime()}return e.dateFrom.getTime()-t.dateFrom.getTime()}))}},methods:{initObserver(){this.observer=new IntersectionObserver(this.observerCallback,{root:this.$refs.eventList,threshold:.9})},observerCallback(e){e.forEach((e=>{if(e.isIntersecting){this.processIntersectedElement(e.target)}}))},processIntersectedElement(e){const t=parseInt(e.dataset.eventId,10);if(this.observedEvents.has(t)){return}this.observedEvents.set(t,t);setTimeout((()=>{this.observer.unobserve(e);as.setEventWatched(t)}),gs)},scrollToUpcomingEvent(){const e=new Date;e.setHours(0,0,0,0);const t=this.sortedEvents.find((t=>t.dateFrom>=e));if(!t){return}this.$refs.eventList.scrollTop=this.eventRefs[t.uniqueId].offsetTop},async loadOnScroll(){const e=this.$refs.eventList.scrollTop;const t=this.$refs.eventList.scrollHeight;const s=this.$refs.eventList.offsetHeight;if(e+1>=t-s){await this.$store.dispatch("setEventsUpdating",true);const e=await this.getNext();await this.$store.dispatch("setEvents",e);await this.$store.dispatch("setEventsUpdating",false)}if(e<=0){await this.$store.dispatch("setEventsUpdating",true);const e=await this.getPrevious();await this.$store.dispatch("setEvents",e);await this.$store.dispatch("setEventsUpdating",false);this.$refs.eventList.scrollTop+=this.$refs.eventList.scrollHeight-t}},getNext(){if(this.isFilterMode){return as.filterNext()}return as.getNext(this.selectedCategoryId)},getPrevious(){if(this.isFilterMode){return as.filterPrevious()}return as.getPrevious(this.selectedCategoryId)},setEventRef(e){if(!e){return}const{event:t,$el:s}=e;this.eventRefs[t.uniqueId]=s;if(t.isNew){this.observer.observe(s)}}},created(){this.initObserver()},mounted(){this.scrollToUpcomingEvent();void this.loadOnScroll();this.$refs.eventList.addEventListener("scroll",this.loadOnScroll)},beforeUnmount(){this.observer.disconnect();this.$refs.eventList.removeEventListener("scroll",this.loadOnScroll)},components:{Event:ps,EmptyState:bs},template:`\n\t\t<div class="calendar-open-events-list-events-list --calendar-scroll-bar" ref="eventList">\n\t\t\t<Event\n\t\t\t\tv-for="event of sortedEvents"\n\t\t\t\t:event="event"\n\t\t\t\t:data-event-id="event.id"\n\t\t\t\t:ref="setEventRef"\n\t\t\t/>\n\t\t\t<EmptyState v-if="events.length === 0"/>\n\t\t</div>\n\t`};const Ls={computed:{...m.mapGetters({selectedCategoryId:"selectedCategoryId",areEventsUpdating:"areEventsUpdating",isFilterMode:"isFilterMode",events:"events"})},mounted(){as.subscribe("update",this.eventManagerUpdateHandler);as.subscribe("delete",this.eventManagerDeleteHandler);(new r.Loader).show(this.$refs.events)},beforeUnmount(){as.unsubscribe("update",this.eventManagerUpdateHandler);as.unsubscribe("delete",this.eventManagerDeleteHandler)},methods:{async eventManagerUpdateHandler(e){const{eventId:t}=e.getData();const s=await this.getEvents();if(!s.find((e=>e.id===t))){return}this.$store.dispatch("setEvents",s)},async eventManagerDeleteHandler(e){const{eventId:t}=e.getData();if(!this.events.find((e=>e.id===t))){return}const s=await this.getEvents();this.$store.dispatch("setEvents",s)},async getEvents(){if(this.isFilterMode){return as.filterEvents()}return as.getEvents(this.selectedCategoryId)}},components:{EventListTitle:os,EventList:ms},template:`\n\t\t<div\n\t\t\tclass="calendar-open-events-list-events"\n\t\t\t:class="{ '--updating': areEventsUpdating }"\n\t\t\tref="events"\n\t\t>\n\t\t\t<EventListTitle/>\n\t\t\t<EventList/>\n\t\t</div>\n\t`};const fs={computed:{...m.mapGetters({areEventsLoading:"areEventsLoading"})},components:{Categories:ns,Events:Ls},template:`\n\t\t<Categories/>\n\t\t<div class="calendar-open-events-list-events-loader" v-if="areEventsLoading"></div>\n\t\t<Events v-else/>\n\t`};const Ps={state(){return{isSearchMode:false,categoriesQuery:""}},actions:{setSearchMode:(e,t)=>{e.commit("setSearchMode",t)},setCategoriesQuery:(e,t)=>{e.commit("setCategoriesQuery",t)}},mutations:{setSearchMode:(e,t)=>{e.isSearchMode=t},setCategoriesQuery:(e,t)=>{e.categoriesQuery=t}},getters:{isSearchMode:e=>e.isSearchMode,categoriesQuery:e=>e.categoriesQuery}};const Fs={state(){return{selectedCategoryId:0,categories:[]}},actions:{setCategories:(e,t)=>{e.commit("setCategories",t)},selectCategory:(e,t)=>{e.commit("selectCategory",t)}},mutations:{setCategories:(e,t)=>{e.categories=t},selectCategory:(e,t)=>{e.selectedCategoryId=t}},getters:{categories:e=>e.categories.map((t=>{t.isSelected=t.id===e.selectedCategoryId;return t})),selectedCategory:e=>e.categories.find((t=>t.id===e.selectedCategoryId)),selectedCategoryId:e=>e.selectedCategoryId}};const ys={state(){return{events:[],areEventsLoading:false,areEventsUpdating:false,isFilterMode:false}},actions:{setEventsLoading:(e,t)=>{e.commit("setEventsLoading",t)},setEventsUpdating:(e,t)=>{e.commit("setEventsUpdating",t)},setEvents:(e,t)=>{e.commit("setEvents",t)},setFilterMode:(e,t)=>{e.commit("setFilterMode",t)}},mutations:{setEventsLoading:(e,t)=>{e.areEventsLoading=t},setEventsUpdating:(e,t)=>{e.areEventsUpdating=t},setEvents:(e,t)=>{e.events=t},setFilterMode:(e,t)=>{e.isFilterMode=t}},getters:{areEventsLoading:e=>e.areEventsLoading,areEventsUpdating:e=>e.areEventsUpdating,events:e=>e.events,isFilterMode:e=>e.isFilterMode}};const Es=m.createStore({modules:{categories:Fs,categoriesSearch:Ps,events:ys}});var Bs=babelHelpers.classPrivateFieldLooseKey("params");var Hs=babelHelpers.classPrivateFieldLooseKey("application");var Cs=babelHelpers.classPrivateFieldLooseKey("mountApplication");class Ts{constructor(e){Object.defineProperty(this,Cs,{value:_s});Object.defineProperty(this,Bs,{writable:true,value:void 0});Object.defineProperty(this,Hs,{writable:true,value:void 0});babelHelpers.classPrivateFieldLooseBase(this,Bs)[Bs]=e;babelHelpers.classPrivateFieldLooseBase(this,Cs)[Cs]()}}function _s(){babelHelpers.classPrivateFieldLooseBase(this,Hs)[Hs]=t.BitrixVue.createApp({name:"List",props:{filterId:String},data(){return{isLoading:true}},computed:{...m.mapGetters({selectedCategoryId:"selectedCategoryId"})},async mounted(){this.bindFilter(this.filterId);const e=await Ce.getCategories();const t=await as.getEvents(this.selectedCategoryId);this.isLoading=false;this.$store.dispatch("setCategories",e);this.$store.dispatch("setEvents",t)},methods:{bindFilter(e){const t=new i.Filter(e);as.setFilter(t);t.subscribe("beforeApply",(()=>{this.isLoading=true}));t.subscribe("apply",(async()=>{const e=await as.filterEvents();this.$store.dispatch("setEvents",e);this.$store.dispatch("setFilterMode",true);this.isLoading=false}));t.subscribe("clear",(async()=>{const e=await as.getEvents(this.selectedCategoryId);this.$store.dispatch("setEvents",e);this.$store.dispatch("setFilterMode",false);this.isLoading=false}))}},components:{BaseComponent:fs},template:`\n\t\t\t\t\t<div class="calendar-open-events-list-loader" v-if="isLoading"></div>\n\t\t\t\t\t<BaseComponent v-else/>\n\t\t\t\t`},{filterId:babelHelpers.classPrivateFieldLooseBase(this,Bs)[Bs].filterId});babelHelpers.classPrivateFieldLooseBase(this,Hs)[Hs].use(Es);babelHelpers.classPrivateFieldLooseBase(this,Hs)[Hs].mount(babelHelpers.classPrivateFieldLooseBase(this,Bs)[Bs].container)}e.List=Ts})(this.BX.Calendar.OpenEvents=this.BX.Calendar.OpenEvents||{},BX.Vue3,BX.UI.EntitySelector,BX.UI,BX.Calendar.OpenEvents,BX,BX,BX.Event,BX.Messenger.v2.Lib,BX.Messenger.v2.Const,BX.Main,BX,BX.UI,BX,BX,BX.Main,BX.UI,BX.Vue3.Vuex); //# sourceMappingURL=list.bundle.map.js