import type { ConfigService } from "@vrtmrz/livesync-commonlib/compat/services/base/ConfigService"; import type { AppLifecycleService } from "@vrtmrz/livesync-commonlib/compat/services/base/AppLifecycleService"; import type { ReplicatorService } from "@vrtmrz/livesync-commonlib/compat/services/base/ReplicatorService"; import { UIService } from "@vrtmrz/livesync-commonlib/compat/services/implements/base/UIService"; import { ObsidianServiceContext } from "@/modules/services/ObsidianServiceContext"; import { ObsidianSvelteDialogManager } from "./SvelteDialogObsidian"; import DialogToCopy from "@/modules/services/LiveSyncUI/dialogues/DialogueToCopy.svelte"; import type { IAPIService, IControlService } from "@vrtmrz/livesync-commonlib/compat/services/base/IService"; export type ObsidianUIServiceDependencies = { appLifecycle: AppLifecycleService; config: ConfigService; replicator: ReplicatorService; APIService: IAPIService; control: IControlService; }; export class ObsidianUIService extends UIService { override get dialogToCopy() { return DialogToCopy; } constructor(context: ObsidianServiceContext, dependents: ObsidianUIServiceDependencies) { const obsidianConfirm = dependents.APIService.confirm; const obsidianSvelteDialogManager = new ObsidianSvelteDialogManager(context, { appLifecycle: dependents.appLifecycle, config: dependents.config, replicator: dependents.replicator, confirm: obsidianConfirm, control: dependents.control, }); super(context, { dialogManager: obsidianSvelteDialogManager, APIService: dependents.APIService, }); } }