define(function(require,exports,module){const AppInit=require("utils/AppInit"),EventDispatcher=require("utils/EventDispatcher"),Metrics=require("utils/Metrics"),PreferencesManager=require("preferences/PreferencesManager"),WorkingSetView=require("project/WorkingSetView"),SIDEBAR_TAB_FILES="sidebar-tab-files",AI_TAB_GOOD_WIDTH=450,PREF_AI_WIDTH_SET_INITIAL="aiTabWidthSetInitial",EVENT_TAB_ADDED="tabAdded",EVENT_TAB_REMOVED="tabRemoved",EVENT_TAB_CHANGED="tabChanged";let $navTabBar,$sidebar;const _tabs=[],_tabContent={},_appendedNodes=new Set;let _activeTabId=SIDEBAR_TAB_FILES;const _EXCLUDED_IDS={mainNavBar:!0,navTabBar:!0},_EXCLUDED_CLASSES=["horz-resizer","vert-resizer"];function _isExcludedNode(node){if(_EXCLUDED_IDS[node.id])return!0;for(let i=0;i<_EXCLUDED_CLASSES.length;i++)if(node.classList.contains(_EXCLUDED_CLASSES[i]))return!0;return!1}function _rebuildTabBar(){$navTabBar.empty(),_tabs.sort(function(a,b){return a.priority-b.priority}),_tabs.forEach(function(tab){const $item=$('
");tab.id===_activeTabId&&$item.addClass("active"),tab.$tabItem=$item,$navTabBar.append($item)}),_tabs.length>=2?$navTabBar.addClass("has-tabs"):$navTabBar.removeClass("has-tabs")}function _isNodeInTab(node,tabId){return _tabContent[tabId]&&-1!==_tabContent[tabId].indexOf(node)}function _isNodeInAnyTab(node){const tabIds=Object.keys(_tabContent);for(let i=0;i0)return!1;let removed=!1;for(let i=_tabs.length-1;i>=0;i--)if(_tabs[i].id===id){_tabs.splice(i,1),removed=!0;break}return removed&&(delete _tabContent[id],_activeTabId===id&&(_activeTabId=SIDEBAR_TAB_FILES),_rebuildTabBar(),_applyTabVisibility(),exports.trigger(EVENT_TAB_REMOVED,id)),removed}function setActiveTab(id){let found=!1;for(let i=0;i<_tabs.length;i++)if(_tabs[i].id===id){found=!0;break}if(!found)return;const previousTabId=_activeTabId;if(_activeTabId=id,$navTabBar.find(".sidebar-tab").removeClass("active"),$navTabBar.find('.sidebar-tab[data-tab-id="'+id+'"]').addClass("active"),_applyTabVisibility(),id!==SIDEBAR_TAB_FILES&&$sidebar&&$sidebar.length&&!PreferencesManager.getViewState(PREF_AI_WIDTH_SET_INITIAL)){const SidebarView=require("project/SidebarView");SidebarView.getWidth()'),$sidebar.find("#mainNavBar").after($navTabBar),addTab(SIDEBAR_TAB_FILES,"Files","fa-solid fa-folder",{priority:0}),$navTabBar.on("click",".sidebar-tab",function(){const tabId=$(this).attr("data-tab-id");if(tabId){const label=tabId===SIDEBAR_TAB_FILES?"files":tabId;Metrics.countEvent(Metrics.EVENT_TYPE.UI,"navTab",label),setActiveTab(tabId)}})}),EventDispatcher.makeEventDispatcher(exports),exports.SIDEBAR_TAB_FILES=SIDEBAR_TAB_FILES,exports.EVENT_TAB_ADDED=EVENT_TAB_ADDED,exports.EVENT_TAB_REMOVED=EVENT_TAB_REMOVED,exports.EVENT_TAB_CHANGED=EVENT_TAB_CHANGED,exports.addTab=addTab,exports.addToTab=addToTab,exports.removeFromTab=removeFromTab,exports.removeTab=removeTab,exports.setActiveTab=setActiveTab,exports.getActiveTab=getActiveTab,exports.getAllTabs=getAllTabs});