UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) 807 B
export class SubButtonRegistry{providers=new Map;cache=new Map;register(e){this.providers.set(e.id,e),this.cache.delete(e.id)}unregister(e){this.providers.delete(e),this.cache.delete(e)}getSubButtons(e){const t=this.providers.get(e);return t?t.createSubButtons():[]}handleSubButtonClick(e,t){const i=this.providers.get(e);i&&i.handleSubButtonClick(t)}shouldShowSubButtons(e){const t=this.providers.get(e);return t?t.shouldShowSubButtons?t.shouldShowSubButtons():!0:!1}invalidateCache(e){this.cache.delete(e);const t=this.providers.get(e);t?.invalidateCache&&t.invalidateCache()}invalidateAllCache(){this.cache.clear(),this.providers.forEach(e=>{e.invalidateCache&&e.invalidateCache()})}getRegisteredProviders(){return Array.from(this.providers.keys())}isProviderRegistered(e){return this.providers.has(e)}}