import { AnalyticsService } from "mis-crystal-design-system/analytics"; /** @format */ import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from "@angular/core"; import { AbstractControl, FormControl, FormGroup } from "@angular/forms"; import { ToastService } from "mis-crystal-design-system/toast"; import { Observable, Subject, Subscription } from "rxjs"; import { NsWISConfigurations } from "../../../models/configurations.model"; import { NsEmpWebExpData } from "../../../models/emp-web-exp.model"; import { ApiService } from "../../../services/api.service"; import { BookingDataService } from "../../../services/booking-data.service"; import { CommuteService } from "../../../services/commute.service"; import { SeatService } from "../../../services/seat.service"; import { PreferenceDataService } from "../../../services/preference-data.service"; import { MealService } from "@mis-wis/meal"; import { ConfigurationService } from "../../../services/configuration.service"; import { ModalService } from "mis-design-system/mis-modal"; import { IDatePickerConfig, IDatePickerToastText } from "mis-crystal-design-system/datepicker_v2"; import { TranslateService } from "@ngx-translate/core"; import { EmpUserService } from "../../../services/emp-user.service"; import { NsDynamicForm } from "mis-crystal-design-system/dynamic-form/dynamic-form.namespace"; export declare class BookingFormComponent implements OnInit, OnDestroy { bookingSvc: BookingDataService; private preferenceSvc; private apiService; private toasts; configSvc: ConfigurationService; private commuteSvc; private seatSvc; private mealService; private modals; private translateSvc; private changeDetectionRef; private userService; private analytics; Assets: { IMAGES: { EMPTY_HERO: string; MOBILE_EMPTY_HERO: string; NO_UPCOMING: string; HERO_BG: string; EMPTY_PLATE: string; PARKING_BG: string; CERTIFICATE: string; BOOKING_SUCCESS: string; HISTORY_EMPTY: string; NO_PARKING_SLOTS: string; }; ICONS: { MORE: string; CANCELLED: string; CANCEL_INFO: string; DOWN_ARROW: string; HERO_RIGHT: string; SEAT: string; CLOSE: string; CALENDAR: string; CAB: string; CAB_DARK: string; TICK_GREEN: string; SUCCESS_TICK: string; ARROW: string; EDIT: string; EDIT_DARK: string; CANCEL: string; IC_RADIO: string; IC_RADIO_ACTIVE: string; IC_ADD: string; IC_CLOSE: string; IC_WFO: string; IC_WFH: string; DESK: string; DESK_BULE: string; DESK_GREY: string; CHEVRON_RIGHT: string; CANCEL_BIN: string; WFH: string; WFO_CONVERT: string; WFH_CONVERT: string; WFO_CONVERT_DARK: string; WFH_CONVERT_DARK: string; QUICK_WFH: string; QUICK_WFO: string; CLOCK: string; PARKING: string; PARKING_ACTIVE: string; TRANSPORT: string; TRANSPORT_ACTIVE: string; TRANSPORT_UNAVAILABILTY: string; TRANSPORT_AVAILABILTY: string; INFO: string; RED_INFO: string; CHOICE_CHIP: string; MEAL: string; MEAL_DARK: string; MEAL_CHECK: string; AVATAR: string; PARKING_MODULE: string; APPROVAL_STATUS: string; SUCCESS_RECURRENCE: string; FAILED_BOOKINGS: string; MORE_STATUS: string; LANGUAGE: string; SHUTTLE_ACTIVE: string; SHUTTLE: string; SHUTTLE_DEACTIVE: string; SHUTTLE_DARK: string; SHUTTLE_CROSS: string; ACTION_INFO: string; TRANSPORT_BIKE: string; TRANSPORT_CAR: string; WFO_HEADER: string; WFH_HEADER: string; CROSS_MODAL: string; LIST: string; NOTE: string; CAR_BLACK: string; CAR_SELECTED: string; BIKE_BLACK: string; BIKE_SELECTED: string; PARKING_HEADER: string; PARKING_ACTION: string; EMPTY_STAR: string; SELECTED_STAR: string; STAR: string; HORRIBLE: string; AVERAGE: string; BAD: string; EXCELLENT: string; GOOD: string; MEAL_EMPTY_FEEDBACK: string; }; }; loginShiftList: NsEmpWebExpData.IShiftData[]; logoutShiftList: NsEmpWebExpData.IShiftData[]; nextDaylogoutShiftList: NsEmpWebExpData.IShiftData[]; offices: NsEmpWebExpData.IOffice[]; preferenceData: NsEmpWebExpData.IPreference; mealMapValue: NsEmpWebExpData.IMealsEntity[]; meal: NsEmpWebExpData.IMeal[]; private endObs; bookingForm: FormGroup; prefOfc: NsEmpWebExpData.IOffice; dateFormat: string; startDatepickerConfig: Partial; endDatepickerConfig: Partial; formReset: Subject; formHeading: string; readonly other = "OTHERS"; loader: boolean; parkingOptions: NsEmpWebExpData.IPremise[]; availableAddons: NsEmpWebExpData.IAddon[]; addonConfigurations: NsEmpWebExpData.IAddon; addonDataSubscription: Subscription; maxDuration: number; recurrenceMaxDuration: number; recurrenceStartDate: any; bookingReasons: string | any[]; disableOfficeChange: boolean; formConfigs: NsEmpWebExpData.IBookingFormConfig; create: EventEmitter<[NsEmpWebExpData.IBookingRequestObject | NsEmpWebExpData.IBookingRequest[], boolean]>; update: EventEmitter; close: EventEmitter; expand: EventEmitter<{ addon: NsEmpWebExpData.IAddon; shiftValid: boolean; }>; configurations: NsWISConfigurations.IConfigurations; drawerExpanded: boolean; datesDisabled: string[]; weeklyOffs: number[]; datepickerMessages: IDatePickerToastText[]; enableWeeklyOffBookings: boolean; isWeeklyOff: boolean; adhocEnabled: boolean; checkoutList: any[]; startTimeInMinutes: number; recurrenceBookingEnabled: boolean; singleShiftEnabled: boolean; mealCutOff: boolean; officeFormControl: FormControl; mealStartCutOff: number; mealEndCutOff: number; mealCutOffPassed: boolean; parkingLoading: boolean; showOfficeInfo: boolean; parkingScheduleCutoff: number; transportScheduleCutoff: string; parkingDisabled: boolean; transportDisabled: boolean; startDate: any; maxDate: any; formattedMaxDate: any; shiftType: string; loginShiftId: string; allocatedSeatId: string; dynamicShiftTimes: any; enableDynamicFields: boolean; dynamicFields: Array; formValues: { [key: string]: any; }; isDynamicFormValid: boolean; outputValue: any; disableForm: boolean; projectCodeEnabledOnBookingMandatory: boolean; projectCodeEnabledOnBooking: boolean; projectCode: string; projectCodeSearchURL: (searchQuery: string) => Observable>; parkingDisclaimerAck: boolean; bookingModalEnabled: boolean; disableHolidayDates: string[]; isParkingSignedIn: boolean; constructor(bookingSvc: BookingDataService, preferenceSvc: PreferenceDataService, apiService: ApiService, toasts: ToastService, configSvc: ConfigurationService, commuteSvc: CommuteService, seatSvc: SeatService, mealService: MealService, modals: ModalService, translateSvc: TranslateService, changeDetectionRef: ChangeDetectorRef, userService: EmpUserService, analytics: AnalyticsService); ngOnInit(): void; parkingTransportCutoff(): void; checkOnlyParkingEnabled(): boolean; attributeSetterForOffice(booking?: NsEmpWebExpData.IBookingDetailDTOS): void; handleRecurrenceData(data: FormGroup): void; get inputText(): FormControl; openAdhoc(data: string): void; handleRecurrenceEvent(): void; private setDatepickerDates; ngOnDestroy(): void; findDisableDates(): void; closeForm(): void; processMealDataForForm(data?: any): NsEmpWebExpData.IMeal; processMealPreferences(): void; premiseWiseMealCutoff(): void; validateMealCutOff(mealItem: any): boolean; applyCutOffsOnMeal(mealWithCutOff: any): any; private buildForm; getHoursAndMiutes(form: FormGroup, openeingFromPreference?: boolean): void; getControl(name: string): AbstractControl; private setChangelisteners; private setFormFieldStates; onOfficeChange(office: NsEmpWebExpData.IOffice, external?: boolean): void; expandAddon(addon: NsEmpWebExpData.IAddon): void; updateAddon(addon: NsEmpWebExpData.IAddon): Promise; modifyFormValuesRes(): void; checkAndGetShifts(start?: AbstractControl, end?: AbstractControl, officeChange?: boolean, updatePreferences?: boolean, updateShifts?: boolean): Promise; setProjetcCodeData(projectCode: string): void; selectReasons(reason: string): void; setdatepickerConfigs(office: NsEmpWebExpData.IOffice): void; setMealCutoffInMinutes(start: any, end: any): void; showCutOffMsg(): void; private setParkingAndPremises; private singleShiftSetter; private setShifts; private setCommute; onShiftChange(type: string | "login" | "logout", shift: NsEmpWebExpData.IShiftData): void; checkShiftProperties([start, end]: [any, any]): boolean; private updateMeal; private updateParking; private showParkingDisclaimer; private updateSeat; handleCommuteChange([login, logout, registrationNumber, entityTypeId, vehicleId]: [ NsEmpWebExpData.ICommuteOption?, NsEmpWebExpData.ICommuteOption?, string?, string?, string? ]): void; handleMealChange(data: NsEmpWebExpData.IMeal[]): void; saveBooking(): void; setBookingReasons(booking?: NsEmpWebExpData.IBookingDetailDTOS): Subscription; removeAddon(opt: NsEmpWebExpData.IAddon, data?: NsEmpWebExpData.IMealsEntity, index?: number): void; updatedForm(e: any): void; modifyUpdatedFormValues(e: any): void; validate(event: any): void; }