import { OnChanges, OnDestroy, OnInit } from '@angular/core'; import { AuthenticationService } from '../../../model/network/authentication.service'; import { NavigationService } from '../../../model/navigation.service'; import { NotificationService } from '../../../model/notification.service'; import { ConfigStyle, SettingsService } from '../settings.service'; import { WebConfig } from '../../../../../common/config/private/WebConfig'; import { JobProgressDTO } from '../../../../../common/entities/job/JobProgressDTO'; import { ScheduledJobsService } from '../scheduled-jobs.service'; import { UntypedFormControl } from '@angular/forms'; import { IWebConfigClassPrivate } from 'typeconfig/src/decorators/class/IWebConfigClass'; import { TAGS } from '../../../../../common/config/public/ClientConfig'; import { ISettingsComponent } from './ISettingsComponent'; import { ExtensionInstallerService } from '../extension-installer/extension-installer.service'; interface ConfigState { value: { [key: string]: RecursiveState; }; default: { [key: string]: RecursiveState; }; readonly?: boolean; tags?: TAGS; volatile?: boolean; isEnumType?: boolean; isConfigType?: boolean; isConfigArrayType?: boolean; } export interface RecursiveState extends ConfigState { value: any; default: any; volatile?: any; tags?: any; isConfigType?: any; isConfigArrayType?: any; isEnumType?: any; readonly?: any; toJSON?: any; onChange?: any; original?: any; shouldHide?: any; [key: string]: RecursiveState; } export declare class TemplateComponent implements OnInit, OnChanges, OnDestroy, ISettingsComponent { protected authService: AuthenticationService; private navigation; protected notification: NotificationService; settingsService: SettingsService; jobsService: ScheduledJobsService; private extensionService; icon: string; ConfigPath: string; nestedConfigs: { id: string; name: string; visible: () => boolean; icon: string; }[]; form: UntypedFormControl; inProgress: boolean; error: string; changed: boolean; states: RecursiveState; readonly ConfigStyle: typeof ConfigStyle; protected name: string; protected sliceFN?: (s: IWebConfigClassPrivate & WebConfig) => ConfigState; private subscription; private settingsSubscription; constructor(authService: AuthenticationService, navigation: NavigationService, notification: NotificationService, settingsService: SettingsService, jobsService: ScheduledJobsService, extensionService: ExtensionInstallerService); get Name(): string; get Changed(): boolean; get HasAvailableSettings(): boolean; getSaveTitle(isFormValid: boolean): string; ngOnChanges(): void; ngOnInit(): void; ngOnDestroy(): void; setSliceFN(sliceFN?: (s: IWebConfigClassPrivate & WebConfig) => ConfigState): void; onNewSettings: (s: IWebConfigClassPrivate & WebConfig) => void; onOptionChange: () => void; reset(): void; /** * main template should list it * @param c */ isExpandableConfig(c: ConfigState): boolean; isExpandableArrayConfig(c: ConfigState): boolean; save(): Promise; getKeys(states: any): string[]; getProgress(uiJob: { job: string; config?: any; }): JobProgressDTO; protected isExtension(c: ConfigState): boolean; protected removeExtension(c: ConfigState): Promise; protected reloadExtension(c: ConfigState): Promise; private getSettings; } export {};