index.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { NgModule } from '@angular/core'
  2. import { CommonModule } from '@angular/common'
  3. import { FormsModule } from '@angular/forms'
  4. import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
  5. import { ToastrModule } from 'ngx-toastr'
  6. import { NgxFilesizeModule } from 'ngx-filesize'
  7. import TabbyCoreModule, { ConfigProvider, TabRecoveryProvider, HotkeyProvider, TabContextMenuItemProvider, ProfileProvider } from 'tabby-core'
  8. import { SettingsTabProvider } from 'tabby-settings'
  9. import TabbyTerminalModule from 'tabby-terminal'
  10. import { SSHProfileSettingsComponent } from './components/sshProfileSettings.component'
  11. import { SSHPortForwardingModalComponent } from './components/sshPortForwardingModal.component'
  12. import { SSHPortForwardingConfigComponent } from './components/sshPortForwardingConfig.component'
  13. import { SSHSettingsTabComponent } from './components/sshSettingsTab.component'
  14. import { SSHTabComponent } from './components/sshTab.component'
  15. import { SFTPPanelComponent } from './components/sftpPanel.component'
  16. import { SFTPDeleteModalComponent } from './components/sftpDeleteModal.component'
  17. import { KeyboardInteractiveAuthComponent } from './components/keyboardInteractiveAuthPanel.component'
  18. import { HostKeyPromptModalComponent } from './components/hostKeyPromptModal.component'
  19. import { SSHConfigProvider } from './config'
  20. import { SSHSettingsTabProvider } from './settings'
  21. import { RecoveryProvider } from './recoveryProvider'
  22. import { SSHHotkeyProvider } from './hotkeys'
  23. import { SFTPContextMenu } from './tabContextMenu'
  24. import { SSHProfilesService } from './profiles'
  25. import { SFTPContextMenuItemProvider } from './api/contextMenu'
  26. import { CommonSFTPContextMenu } from './sftpContextMenu'
  27. /** @hidden */
  28. @NgModule({
  29. imports: [
  30. NgbModule,
  31. NgxFilesizeModule,
  32. CommonModule,
  33. FormsModule,
  34. ToastrModule,
  35. TabbyCoreModule,
  36. TabbyTerminalModule,
  37. ],
  38. providers: [
  39. { provide: ConfigProvider, useClass: SSHConfigProvider, multi: true },
  40. { provide: SettingsTabProvider, useClass: SSHSettingsTabProvider, multi: true },
  41. { provide: TabRecoveryProvider, useClass: RecoveryProvider, multi: true },
  42. { provide: HotkeyProvider, useClass: SSHHotkeyProvider, multi: true },
  43. { provide: TabContextMenuItemProvider, useClass: SFTPContextMenu, multi: true },
  44. { provide: ProfileProvider, useExisting: SSHProfilesService, multi: true },
  45. { provide: SFTPContextMenuItemProvider, useClass: CommonSFTPContextMenu, multi: true },
  46. ],
  47. entryComponents: [
  48. SSHProfileSettingsComponent,
  49. SFTPDeleteModalComponent,
  50. SSHPortForwardingModalComponent,
  51. SSHSettingsTabComponent,
  52. SSHTabComponent,
  53. HostKeyPromptModalComponent,
  54. ],
  55. declarations: [
  56. SSHProfileSettingsComponent,
  57. SFTPDeleteModalComponent,
  58. SSHPortForwardingModalComponent,
  59. SSHPortForwardingConfigComponent,
  60. SSHSettingsTabComponent,
  61. SSHTabComponent,
  62. SFTPPanelComponent,
  63. KeyboardInteractiveAuthComponent,
  64. HostKeyPromptModalComponent,
  65. ],
  66. })
  67. // eslint-disable-next-line @typescript-eslint/no-extraneous-class
  68. export default class SSHModule { }
  69. export * from './api'
  70. export { SFTPFile, SFTPSession } from './session/sftp'
  71. export { SFTPPanelComponent, SFTPContextMenuItemProvider }