import './hostChrome.scss'; import { ApplicationRef, EnvironmentInjector } from '@angular/core'; import { AppService, ConfigService, NotificationsService } from 'tabby-core'; export declare class SidebarPlusMountService { private appRef; private environmentInjector; private app; private config; private notifications; private componentRef; /** * Whether the host failed a precondition that leaves nothing to mount. * * Only the fatal verdict is kept. The per-feature detail is reported to the * user and to the console, but nothing consumes it programmatically yet: * retiring a single block (hiding the SFTP toggle when `SFTPPanelComponent` * is gone) needs a way to switch a block off, which is what the * "Interrupteurs par bloc" chantier builds. Storing the list here now would * be a second, unused mechanism racing the one that is coming. */ private hostFatal; constructor(appRef: ApplicationRef, environmentInjector: EnvironmentInjector, app: AppService, config: ConfigService, notifications: NotificationsService); /** * Checks what this plugin needs from Tabby, and says so **once**. * * Run from `ready$` rather than the constructor: one of the preconditions * is a DOM container, which does not exist before the host has rendered. * And once only — `sync()` re-runs on every `config.changed$`, so reporting * from there would turn a broken host into a stream of toasts. */ private verifyHost; private sync; private mount; /** * Takes the sidebar back out — of the DOM as well as of Angular. * * `.remove()` is not a precaution: `ComponentRef.destroy()` does **not** * touch the DOM here. Angular's default DOM renderer leaves `destroyNode` * null, so destroying a view built by `createComponent()` and inserted by * hand leaves that node exactly where it was put. Switching the plugin off * therefore left a frozen, unresponsive sidebar on screen, and switching it * back on inserted a *second* one next to the corpse — the mount above only * checks its own reference, which had been cleared. The SFTP panel does the * same thing in `destroyPanel()`, for the same reason. */ private unmount; private rootNodeOf; }