UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) 7.45 kB
import{__esDecorate as l,__runInitializers as m}from"tslib";import{action as a}from"mobx";import{MOBILE_BREAKPOINT as y}from"../../constants";import{PREFIXES as C,SearchButtonType as r}from"./constants";import{extractPoiTypeId as B,getButtonConfig as g}from"./utils";let b=(()=>{let i=[],h,n,c,u,d,S,f,k,p;return class{static{const e=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;h=[a],n=[a],c=[a],u=[a],d=[a],S=[a],f=[a],k=[a],p=[a],l(this,null,h,{kind:"method",name:"handleSearchButtonClick",static:!1,private:!1,access:{has:t=>"handleSearchButtonClick"in t,get:t=>t.handleSearchButtonClick},metadata:e},null,i),l(this,null,n,{kind:"method",name:"handleExtendedSearchButtonClick",static:!1,private:!1,access:{has:t=>"handleExtendedSearchButtonClick"in t,get:t=>t.handleExtendedSearchButtonClick},metadata:e},null,i),l(this,null,c,{kind:"method",name:"handleMainButtonClick",static:!1,private:!1,access:{has:t=>"handleMainButtonClick"in t,get:t=>t.handleMainButtonClick},metadata:e},null,i),l(this,null,u,{kind:"method",name:"handleSessionsClick",static:!1,private:!1,access:{has:t=>"handleSessionsClick"in t,get:t=>t.handleSessionsClick},metadata:e},null,i),l(this,null,d,{kind:"method",name:"togglePoiType",static:!1,private:!1,access:{has:t=>"togglePoiType"in t,get:t=>t.togglePoiType},metadata:e},null,i),l(this,null,S,{kind:"method",name:"clearAllFilters",static:!1,private:!1,access:{has:t=>"clearAllFilters"in t,get:t=>t.clearAllFilters},metadata:e},null,i),l(this,null,f,{kind:"method",name:"showSubButtons",static:!1,private:!1,access:{has:t=>"showSubButtons"in t,get:t=>t.showSubButtons},metadata:e},null,i),l(this,null,k,{kind:"method",name:"hideSubButtons",static:!1,private:!1,access:{has:t=>"hideSubButtons"in t,get:t=>t.hideSubButtons},metadata:e},null,i),l(this,null,p,{kind:"method",name:"handleSubButtonClick",static:!1,private:!1,access:{has:t=>"handleSubButtonClick"in t,get:t=>t.handleSubButtonClick},metadata:e},null,i),e&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:e})}rootStore=m(this,i);state;filters;constructor(e,t,s){this.rootStore=e,this.state=t,this.filters=s}handleSearchButtonClick(e){const s={[r.BOOKMARKS]:()=>this.handleBookmarksClick(),[r.VISITED]:()=>this.handleVisitedClick(),[r.SESSIONS]:()=>this.handleSessionsClick(),[r.TOURS]:()=>this.handleToursClick(),[r.CATEGORIES]:()=>this.handleCategoriesClick(),[r.EXHIBITORS]:()=>this.handleExhibitorsClick()}[e];if(s){s();return}e.startsWith(C.POI_TYPE)&&this.handlePoiTypeClick(e)}handleExtendedSearchButtonClick(e){const t=g(e);if(!t)return;if(t.type==="link"){this.handleLinkClick(t);return}const s=t.children?.filter(o=>o.visible)||[];if(s.length===1&&s[0].type==="poi_types"&&s[0].name===t.name){this.handleSearchButtonClick(e);return}t.children&&s.length>0?this.handleParentButton(e,t):this.handleSearchButtonClick(e)}handleMainButtonClick(e){this.handleSearchButtonClick(e)}handleSessionsClick(){const{uiState:e}=this.rootStore;e.list.type==="sessions"?this.switchToSearch():(this.resetAllFilters(),e.details=null,e.menu=!1,e.list={type:"sessions",text:"",focused:!1},this.state.setSubButton(null),e.selectedTrack=null,this.state.subButtonsEnabled&&this.showSubButtons("sessions"),this.isMobile&&(e.desiredOverlaySize="full"))}togglePoiType(e){this.handleSearchButtonClick(`${C.POI_TYPE}${e}`)}clearAllFilters(){this.switchToSearch()}showSubButtons(e){this.state.subButtonsEnabled&&(this.state.setSubButtonParent(e),this.state.setSubButton(null),this.rootStore.uiState.subButtonsVisible=!0)}hideSubButtons(){this.state.setSubButtonParent(null),this.state.setSubButton(null),this.rootStore.uiState.subButtonsVisible=!1}handleSubButtonClick(e){this.state.activeSubButtonId!==e&&this.state.setSubButton(e)}toggleListView(e,t){this.rootStore.uiState.list.type===e?this.switchToSearch():(this.resetAllFilters(),t())}handleBookmarksClick(){this.toggleListView("bookmarks",()=>{this.rootStore.clickBookmarks()})}handleVisitedClick(){this.toggleListView("visited",()=>{this.rootStore.clickVisited()})}handleToursClick(){const{uiState:e}=this.rootStore;e.list.type==="tours"?this.switchToSearch():(this.resetAllFilters(),e.details=null,e.menu=!1,e.list={type:"tours",text:"",focused:!1},this.isMobile&&(e.desiredOverlaySize="full"))}handleCategoriesClick(){const{uiState:e}=this.rootStore;e.list.type!=="search"?this.switchToSearch():this.state.activePoiFilterId&&this.filters.clearPoiTypeFilters(),this.state.searchShortcutState.activeParentId&&(this.state.setActiveParentId(null),this.state.clearChildren(),this.state.showShortcuts(!1),this.filters.clearAllChildFilters()),this.rootStore.categoryFilterStore.openFilter()}handleExhibitorsClick(){const{uiState:e}=this.rootStore;e.list.type==="exhibitors"?this.switchToSearch():(this.resetAllFilters(),e.details=null,e.menu=!1,e.list={type:"exhibitors",text:"",focused:!1},this.isMobile&&(e.desiredOverlaySize="full"))}handlePoiTypeClick(e){const{uiState:t}=this.rootStore,s=t.list.type==="search"&&t.list.text||"";t.list.type!=="search"?this.switchToSearch(!0):t.selectedCategoryFilters.length>0&&this.filters.clearCategoryFilters(),this.state.searchShortcutState.activeParentId&&(this.state.setActiveParentId(null),this.state.clearChildren(),this.state.showShortcuts(!1),this.filters.clearAllChildFilters()),this.state.activePoiFilterId===e?this.filters.clearPoiTypeFilters():this.setPoiFilterFromString(e),s&&t.list.type==="search"&&(t.list={type:"search",text:s,focused:!1}),this.rootStore.searchStore.selectSearchAndFocus(s)}handleLinkClick(e){const t=e.children?.find(s=>s.type==="link");t&&"linkUrl"in t&&window.open(t.linkUrl,"_blank")}handleParentButton(e,t){const{uiState:s}=this.rootStore;if(this.state.searchShortcutState.activeParentId===e){this.state.setActiveParentId(null),this.state.clearChildren(),this.state.showShortcuts(!1),this.filters.clearAllChildFilters(),this.rootStore.urlFilterManager.clearAllFilters(),s.centerMap=!0,s.overlaySize==="full"&&s.searchFocused&&this.rootStore.searchStore.setFocused(!1);return}s.list.type!=="search"&&this.switchToSearch(),this.state.activePoiFilterId&&this.state.setPoiFilter(null),this.state.setActiveParentId(e),this.state.showShortcuts(!0),this.state.clearChildren(),this.filters.applyAllChildrenFilters(t),this.rootStore.searchStore.selectSearchAndFocus()}preserveSearchText(e){const{uiState:t}=this.rootStore,s=t.list.type==="search"&&t.list.text||"";e(),t.list.type==="search"&&s&&(t.list={type:"search",text:s,focused:!1})}switchToSearch(e=!1){const t=()=>{this.resetAllFilters(),this.rootStore.uiState.details=null,this.rootStore.uiState.menu=!1,this.rootStore.uiState.list={type:"search",text:"",focused:!1}};e?this.preserveSearchText(t):t()}resetAllFilters(){this.state.reset(),this.rootStore.uiState.selectedPoiTypeFilters=[],this.rootStore.uiState.selectedCategoryFilters=[],this.rootStore.uiState.categoryFilterOpen=!1,this.rootStore.categoryFilterStore.state.selectedItems=[],this.rootStore.categoryFilterStore.state.pendingItems=[],this.rootStore.urlFilterManager.clearAllFilters(),this.rootStore.fp.hidePathways()}setPoiFilterFromString(e){this.state.setPoiFilter(e);const t=B(e);if(t!==null){const s=this.rootStore.poiTypeStore.poiTypes.find(o=>o.id===t);s&&(this.rootStore.uiState.selectedPoiTypeFilters=[s],this.rootStore.urlFilterManager.setPoiType(s.name))}}get isMobile(){return typeof window<"u"&&window.innerWidth<=y}}})();export{b as SearchButtonsActions};