appRoot.component.pug 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. title-bar(
  2. *ngIf='ready && !hostWindow.isFullScreen && config.store.appearance.frame == "full" && config.store.appearance.dock == "off"',
  3. [class.inset]='hostApp.platform == Platform.macOS && !hostWindow.isFullScreen'
  4. )
  5. .content(
  6. *ngIf='ready',
  7. [class.tabs-on-top]='config.store.appearance.tabsLocation == "top" || config.store.appearance.tabsLocation == "left"',
  8. [class.tabs-on-side]='hasVerticalTabs()',
  9. )
  10. .tab-bar
  11. .inset.background(*ngIf='hostApp.platform == Platform.macOS \
  12. && !hostWindow.isFullScreen \
  13. && config.store.appearance.frame == "thin" \
  14. && (config.store.appearance.tabsLocation == "top" || config.store.appearance.tabsLocation == "left")')
  15. .tabs(
  16. cdkDropList,
  17. [cdkDropListOrientation]='(config.store.appearance.tabsLocation == "top" || config.store.appearance.tabsLocation == "bottom") ? "horizontal" : "vertical"',
  18. (cdkDropListDropped)='onTabsReordered($event)',
  19. cdkAutoDropGroup='app-tabs'
  20. )
  21. tab-header(
  22. *ngFor='let tab of app.tabs; let idx = index',
  23. cdkDrag,
  24. [cdkDragData]='tab',
  25. (cdkDragStarted)='onTabDragStart()',
  26. (cdkDragEnded)='onTabDragEnd()',
  27. [index]='idx',
  28. [tab]='tab',
  29. [active]='tab == app.activeTab',
  30. @animateTab,
  31. [@.disabled]='hasVerticalTabs()',
  32. (click)='app.selectTab(tab)',
  33. [class.fully-draggable]='hostApp.platform != Platform.macOS',
  34. [class.drag-region]='hostApp.platform == Platform.macOS && !(app.tabDragActive$|async)',
  35. )
  36. .btn-group.background
  37. .d-flex(
  38. *ngFor='let button of leftToolbarButtons',
  39. ngbDropdown,
  40. (openChange)='generateButtonSubmenu(button)',
  41. )
  42. button.btn.btn-secondary.btn-tab-bar(
  43. [title]='button.title',
  44. (click)='button.click && button.click()',
  45. [fastHtmlBind]='button.icon',
  46. ngbDropdownToggle,
  47. )
  48. div(*ngIf='button.submenu', ngbDropdownMenu)
  49. button.dropdown-item.d-flex.align-items-center(
  50. *ngFor='let item of button.submenuItems',
  51. (click)='item.click()',
  52. ngbDropdownItem,
  53. )
  54. .icon-wrapper(
  55. *ngIf='hasIcons(button.submenuItems)',
  56. [fastHtmlBind]='item.icon'
  57. )
  58. div([class.ml-3]='hasIcons(button.submenuItems)') {{item.title}}
  59. .d-flex(
  60. *ngIf='activeTransfers.length > 0',
  61. ngbDropdown,
  62. [(open)]='activeTransfersDropdownOpen'
  63. )
  64. button.btn.btn-secondary.btn-tab-bar(
  65. title='File transfers',
  66. ngbDropdownToggle
  67. ) !{require('../icons/download-solid.svg')}
  68. transfers-menu(ngbDropdownMenu, [(transfers)]='activeTransfers')
  69. .drag-space.background([class.persistent]='config.store.appearance.frame == "thin" && hostApp.platform != Platform.macOS')
  70. .btn-group.background
  71. .d-flex(
  72. *ngFor='let button of rightToolbarButtons',
  73. ngbDropdown,
  74. (openChange)='generateButtonSubmenu(button)',
  75. )
  76. button.btn.btn-secondary.btn-tab-bar(
  77. [title]='button.title',
  78. (click)='button.click && button.click()',
  79. [fastHtmlBind]='button.icon',
  80. ngbDropdownToggle,
  81. )
  82. div(*ngIf='button.submenu', ngbDropdownMenu)
  83. button.dropdown-item.d-flex.align-items-center(
  84. *ngFor='let item of button.submenuItems',
  85. (click)='item.click()',
  86. ngbDropdownItem,
  87. )
  88. .icon-wrapper(
  89. *ngIf='hasIcons(button.submenuItems)',
  90. [fastHtmlBind]='item.icon'
  91. )
  92. div([class.ml-3]='hasIcons(button.submenuItems)') {{item.title}}
  93. button.btn.btn-secondary.btn-tab-bar.btn-update(
  94. *ngIf='updatesAvailable',
  95. title='Update available - Click to install',
  96. (click)='updater.update()'
  97. ) !{require('../icons/gift.svg')}
  98. window-controls.background(
  99. *ngIf='config.store.appearance.frame == "thin" \
  100. && (hostApp.platform == Platform.Windows || hostApp.platform == Platform.Linux)',
  101. )
  102. .content
  103. start-page.content-tab.content-tab-active(*ngIf='ready && app.tabs.length == 0')
  104. tab-body.content-tab(
  105. #tabBodies,
  106. *ngFor='let tab of unsortedTabs',
  107. [class.content-tab-active]='tab == app.activeTab',
  108. [active]='tab == app.activeTab',
  109. [tab]='tab',
  110. )
  111. ng-template(ngbModalContainer)