import { CargoReportDailyScheduleV2, CargoReportMonthlyScheduleV2, CargoReportWeeklyScheduleV2, ScheduledReportV2 } from '@al/cargo'; import { AlGenericAlertDefinition, AlGenericAlertOptions } from '@al/gestalt'; import { AlHeraldAccountSubscriptionPayloadV2 } from '@al/herald'; import { AlBottomSheetComponent, AlBottomSheetHeaderOptions, AlSelectItem, AlViewHelperComponent, DateRangeSelection } from '@al/ng-generic-components'; import { AlNavigationService } from '@al/ng-navigation-components'; import { EventEmitter, OnInit } from '@angular/core'; import { AlNotificationFormComponent } from '../al-notification-form/al-notification-form.component'; import { AlNotificationDictionariesUtility } from '../services/al-notification-dictionaries-utility'; import { AlSavedQueryV2, AlSuggestionsTemplateResponseV2 } from '@al/suggestions'; import { AlScheduleReportFormComponent } from '../al-schedule-report-form/al-schedule-report-form.component'; import { AlCadenceSelectorComponent } from '../al-cadence-selector/al-cadence-selector.component'; import * as i0 from "@angular/core"; export declare class AlNotificationReportScheduleFormComponent implements OnInit { private navigation; accountId: string; isFim: boolean; reportFormats: string[] | undefined; reportFormat: string; dataFromDateRange?: DateRangeSelection; minDate?: Date; maxDate?: Date; interactiveReport: boolean; onSuccess: EventEmitter; onError: EventEmitter; onCancel: EventEmitter; headerOptions: AlBottomSheetHeaderOptions; availableReportOptions: string[]; reportFormatLabels: { [k: string]: { label: string; tooltip?: string; }; }; alBottomSheet: AlBottomSheetComponent; notificationForm: AlNotificationFormComponent; viewHelper?: AlViewHelperComponent; scheduleForm: AlScheduleReportFormComponent; savedSearch?: AlSavedQueryV2; editorOptions: { theme: string; language: string; automaticLayout: boolean; minimap: { enabled: boolean; }; }; editor: any; cadenceSelector: AlCadenceSelectorComponent; scheduleFormCalendarTimestamp: number; scheduleId: string; loading: boolean; editMode: boolean; fimSearches: AlSelectItem[]; dictionaries: AlNotificationDictionariesUtility; tableauReportName: string; reportName: string; isActive: boolean; frequencies?: string[] | false; filters?: { [key: string]: string[] | number; }; filtersSort?: string[]; cadence: { daily: CargoReportDailyScheduleV2; } | { weekly: CargoReportWeeklyScheduleV2; } | { monthly: CargoReportMonthlyScheduleV2; } | 'every_15_minutes' | 'asap' | 'once' | 'hourly' | undefined; scheduleReport?: ScheduledReportV2; subscriptionEditReference?: AlHeraldAccountSubscriptionPayloadV2; cadenceInitialSchedule?: 'once' | 'asap' | 'every_15_minutes' | 'hourly' | { daily?: CargoReportDailyScheduleV2; weekly?: CargoReportWeeklyScheduleV2; monthly?: CargoReportMonthlyScheduleV2; }; scheduleFormData: 'every_15_minutes' | { daily: CargoReportDailyScheduleV2; } | { weekly: CargoReportWeeklyScheduleV2; } | { monthly: CargoReportMonthlyScheduleV2; }; scheduleFormValid: boolean; selectedTemplate: AlSuggestionsTemplateResponseV2; monthSelected: number; formDescriptions: { fim: string; saveSearch: string; reportSchedule: string; }; private notificationType; constructor(navigation: AlNavigationService); ngOnInit(): void; /** * Reset the component. */ resetComponent(): void; /** * TODO: This could be improved using reactive forms, this * could be achieve when all controllers implement value accessor. */ validateForm(): void; /** * Handler when user changes the subscribers. */ onSubscribersChanged(): void; /** * When user change cadence. */ onCadenceChanged(cadence: { daily: CargoReportDailyScheduleV2; } | { weekly: CargoReportWeeklyScheduleV2; } | { monthly: CargoReportMonthlyScheduleV2; } | 'every_15_minutes'): void; onMonthSelectedChanged(monthSelected: number): void; /** * When user change the Schedule Form. */ onScheduleFormChanged(schedule: 'every_15_minutes' | { daily: CargoReportDailyScheduleV2; } | { weekly: CargoReportWeeklyScheduleV2; } | { monthly: CargoReportMonthlyScheduleV2; }): void; /** * Validate the schedule Form. */ isScheduleFormValid(event: boolean): void; /** * Display and notify if an error occur */ showErrorMessage(message: string): void; /** * Calculating X months ago + year */ calculateMonthsAgo(monthSelected: number): { year: number; month: number; }; /** * Update logic for the report schedule. */ updateReportSchedule(): void; /** * When the user click on save button. */ save(): Promise; /** * When user clicks on cancel button. */ cancel(): void; /** * Set´s the active flag. */ setReportActive: (active: boolean) => void; /** * Set´s the al bottom sheet title * @param title The al bottom sheet title */ setTitle: (title: string) => void; /** * Helper method to transform cadence intro frequency. */ getFrequencyFromCadence(cadence: "every_15_minutes" | { daily?: CargoReportDailyScheduleV2 | undefined; weekly?: CargoReportWeeklyScheduleV2 | undefined; monthly?: CargoReportMonthlyScheduleV2 | undefined; } | undefined): string[] | false; /** * Open the report schedule modal in edit mode. */ editModal(scheduleReport: ScheduledReportV2, frequencies?: string[] | false, entity?: AlGenericAlertDefinition, filtersSort?: string[]): void; /** * Process the incident alert options received from gestalt. */ processIncidentAlertOptions: (incidentsAlertOptions: AlGenericAlertOptions, type: string) => Promise; /** * Set basic form data using report schedule referece. */ setBasicFormReportData(scheduleReportRef: ScheduledReportV2, filtersToShow?: { [key: string]: string[] | number; }, filtersSort?: string[]): void; /** * Set title notificaticioin form. */ resetFormDescriptionByscheduleType(): void; /** * Gets the susbcribers information for this from from gestalt. */ getUsersAndAccountInformationFromGestalt(): void; /** * Open the Create Report Schedule modal screen. */ openModal(scheduleTableauReport?: ScheduledReportV2, frequencies?: string[] | false, filtersToShow?: { [key: string]: string[]; }, filtersSort?: string[]): Promise; loadFimTemplates(): Promise; setSavedSearchOrFimTemplate(savedQueryId: string): Promise; prepareSchedulePayload(): void; prepareUpdateSchedulePayload(): ScheduledReportV2; prepareSubscriptionPayload(): AlHeraldAccountSubscriptionPayloadV2; prepareScheduleDefinitionTimeRange(): void; onMonacoEditorInit(editor: any): void; editInSearch: () => void; getTimeframeFromScheduleForm(): { hours: number; } | { days: number; } | { start_ts: number; end_ts: number; }; private validateCadence; static ɵfac: i0.ɵɵFactoryDef; static ɵcmp: i0.ɵɵComponentDefWithMeta; }