forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDefaultPanelView.js
More file actions
1 lines (1 loc) · 3.66 KB
/
Copy pathDefaultPanelView.js
File metadata and controls
1 lines (1 loc) · 3.66 KB
1
define(function(require,exports,module){const AppInit=require("utils/AppInit"),Commands=require("command/Commands"),CommandManager=require("command/CommandManager"),Strings=require("strings"),WorkspaceManager=require("view/WorkspaceManager"),PanelView=require("view/PanelView"),Metrics=require("utils/Metrics"),_panelButtons=[{id:"problems",iconSvg:"styles/images/panel-icon-problems.svg",label:Strings.CMD_VIEW_TOGGLE_PROBLEMS||"Problems",commandID:Commands.VIEW_TOGGLE_PROBLEMS},{id:"git",iconSvg:"styles/images/panel-icon-git.svg",label:Strings.GIT_PANEL_TITLE||"Git",commandID:Commands.CMD_GIT_TOGGLE_PANEL,nativeOnly:!0},{id:"snippets",iconSvg:"styles/images/panel-icon-snippets.svg",label:Strings.CUSTOM_SNIPPETS_PANEL_TITLE||"Custom Snippets",commandID:Commands.CMD_CUSTOM_SNIPPETS_PANEL},{id:"shortcuts",iconSvg:"styles/images/panel-icon-shortcuts.svg",label:Strings.KEYBOARD_SHORTCUT_PANEL_TITLE||"Keyboard Shortcuts",commandID:Commands.HELP_TOGGLE_SHORTCUTS_PANEL},{id:"terminal",iconSvg:"styles/images/panel-icon-terminal.svg",label:"Terminal",commandID:Commands.VIEW_TERMINAL,nativeOnly:!0}];let _panel,_$panel;function _buildPanelHTML(){let $panel=$('<div id="default-panel" class="bottom-panel"></div>'),$content=$('<div class="default-panel-content"></div>'),$heading=$('<div class="default-panel-heading"></div>').text(Strings.BOTTOM_PANEL_DEFAULT_HEADING);$content.append($heading);let $buttonsRow=$('<div class="default-panel-buttons"></div>');return _panelButtons.forEach(function(btn){if(btn.nativeOnly&&!Phoenix.isNativeApp)return;let $button=$('<button class="default-panel-btn"></button>').attr("data-command",btn.commandID).attr("data-btn-id",btn.id).attr("title",btn.label),$icon=$('<span class="panel-titlebar-icon"></span>');const maskUrl="url('"+btn.iconSvg+"')";$icon[0].style.maskImage=maskUrl,$icon[0].style.webkitMaskImage=maskUrl;let $label=$('<span class="default-panel-btn-label"></span>').text(btn.label);$button.append($icon).append($label),$buttonsRow.append($button)}),$content.append($buttonsRow),$panel.append($content),$panel}function _isGitAvailable(){const $gitIcon=$("#git-toolbar-icon");return $gitIcon.length>0&&!$gitIcon.hasClass("forced-hidden")}function _updateButtonVisibility(){_$panel&&(Phoenix.isNativeApp||_$panel.find('.default-panel-btn[data-btn-id="git"]').toggle(_isGitAvailable()))}function _observeStateChanges(){const gitIcon=document.getElementById("git-toolbar-icon");if(gitIcon){const gitObserver=new MutationObserver(_updateButtonVisibility);gitObserver.observe(gitIcon,{attributes:!0,attributeFilter:["class"]})}}function _init(){_$panel=_buildPanelHTML(),_panel=WorkspaceManager.createBottomPanel(WorkspaceManager.DEFAULT_PANEL_ID,_$panel,void 0,Strings.BOTTOM_PANEL_DEFAULT_TITLE,{iconSvg:"styles/images/app-drawer.svg"}),_$panel.on("click",".default-panel-btn",function(){let commandID=$(this).attr("data-command");commandID&&CommandManager.execute(commandID)});const $drawerBtn=$("#app-drawer-button").attr("title",Strings.BOTTOM_PANEL_DEFAULT_TITLE);$drawerBtn.on("click",function(){if(Metrics.countEvent(Metrics.EVENT_TYPE.UI,"toolbarBtn","appDrawer"),WorkspaceManager.isInDesignMode())return CommandManager.execute(Commands.VIEW_TOGGLE_DESIGN_MODE),void _panel.show();_panel.isVisible()?_panel.hide():_panel.show()}),PanelView.on(PanelView.EVENT_PANEL_SHOWN,function(event,panelID){panelID===WorkspaceManager.DEFAULT_PANEL_ID&&_updateButtonVisibility(),$drawerBtn.toggleClass("selected-button",panelID===WorkspaceManager.DEFAULT_PANEL_ID)}),PanelView.on(PanelView.EVENT_PANEL_HIDDEN,function(event,panelID){panelID===WorkspaceManager.DEFAULT_PANEL_ID&&$drawerBtn.removeClass("selected-button")}),_updateButtonVisibility(),_observeStateChanges()}AppInit.appReady(_init)});