@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 4.56 kB
JavaScript
import{__esDecorate as i,__runInitializers as n}from"tslib";import{computed as c}from"mobx";import{BaseShortcutProvider as u}from"../ShortcutProvider";let d=(()=>{let a=u,r=[],l;return class extends a{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;l=[c],i(this,null,l,{kind:"getter",name:"computedShortcuts",static:!1,private:!1,access:{has:e=>"computedShortcuts"in e,get:e=>e.computedShortcuts},metadata:t},null,r),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}rootStore=n(this,r);id="sessions";constructor(t){super(),this.rootStore=t}get computedShortcuts(){const{sessionsFilterStore:t,eventStore:e}=this.rootStore,{filters:s}=t.state,o=[];return o.push({id:"bookmarks",icon:"icon-bookmark",enabled:!0,active:s.showBookmarksOnly.value,tooltip:"Show bookmarked events only",variant:"default",action:"toggle",showResetButton:!1}),e.tracks.length>0&&o.push({id:"tracks",label:"Tracks",badge:s.selectedTracks.value.length>0?s.selectedTracks.value.length:void 0,enabled:!0,active:s.selectedTracks.value.length>0,tooltip:"Show events by tracks",variant:"default",action:"custom",showResetButton:!0}),this.rootStore.speakerStore.speakers.length>0&&o.push({id:"speakers",label:"Speakers",enabled:!0,active:!1,tooltip:"Open speakers list",variant:"default",action:"custom",showResetButton:!1}),e.liveEvents.length>0&&o.push({id:"live",label:"Live",enabled:!0,active:s.showLiveOnly.value,tooltip:"Show events happening now",variant:"default",action:"toggle",showResetButton:!1}),e.todayEvents.length>0&&o.push({id:"today",label:"Today",enabled:!0,active:s.date.value==="today",tooltip:"Show today's events",variant:"default",action:"toggle",showResetButton:!1}),e.tomorrowEvents.length>0&&o.push({id:"tomorrow",label:"Tomorrow",enabled:!0,active:s.date.value==="tomorrow",tooltip:"Show tomorrow's events",variant:"default",action:"toggle",showResetButton:!1}),e.pastEvents.length>0&&o.push({id:"past",label:"Past",enabled:!0,active:s.date.value==="past",tooltip:"Show past events",variant:"default",action:"toggle",showResetButton:!1}),e.venues.length>0&&o.push({id:"venues",label:"Venues",badge:s.selectedVenues.value.length>0?s.selectedVenues.value.length:void 0,enabled:!0,active:s.selectedVenues.value.length>0,tooltip:"Show events by venues",variant:"default",action:"custom",showResetButton:!0}),o}createShortcuts(){return this.computedShortcuts}handleShortcutClick(t){switch(t){case"live":this.toggleLiveFilter();break;case"bookmarks":this.toggleBookmarksFilter();break;case"tracks":this.rootStore.sessionsFilterStore.openFilterWithSections(["tracks"]);break;case"venues":this.rootStore.sessionsFilterStore.openFilterWithSections(["venues"]);break;case"speakers":this.rootStore.selectSpeakers();break;case"today":this.toggleDateFilter("today");break;case"tomorrow":this.toggleDateFilter("tomorrow");break;case"past":this.toggleDateFilter("past");break;case"earliest":this.toggleSortOrder();break;default:console.warn(`Unknown shortcut ID: ${t}`)}}handleShortcutReset(t){const{sessionsFilterStore:e}=this.rootStore;switch(t){case"live":e.setPending("showLiveOnly",!1),e.applyFilters();break;case"tracks":e.setPending("selectedTracks",[]),e.applyFilters();break;case"venues":e.setPending("selectedVenues",[]),e.applyFilters();break;case"bookmarks":e.setPending("showBookmarksOnly",!1),e.applyFilters();break;case"today":e.setPending("date","all"),e.applyFilters();break;case"tomorrow":e.setPending("date","all"),e.applyFilters();break;case"past":e.setPending("date","all"),e.applyFilters();break;default:console.warn(`Unknown shortcut reset ID: ${t}`)}}shouldShowShortcuts(){return this.rootStore.uiState.list.type==="sessions"&&this.rootStore.uiState.details===null}toggleBookmarksFilter(){const{sessionsFilterStore:t}=this.rootStore,e=!t.state.filters.showBookmarksOnly.value;t.setPending("showBookmarksOnly",e),t.applyFilters()}toggleLiveFilter(){const{sessionsFilterStore:t}=this.rootStore,e=!t.state.filters.showLiveOnly.value;t.setPending("showLiveOnly",e),t.applyFilters()}setDateFilter(t){const{sessionsFilterStore:e}=this.rootStore;e.setPending("date",t),e.applyFilters()}toggleDateFilter(t){const{sessionsFilterStore:e}=this.rootStore;e.state.filters.date.value===t?e.setPending("date","all"):e.setPending("date",t),e.applyFilters()}toggleSortOrder(){const{sessionsFilterStore:t}=this.rootStore,e=t.state.filters.sortOrder.value==="asc"?"desc":"asc";t.setPending("sortOrder",e),t.applyFilters()}}})();export{d as SessionsShortcutProvider};