import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core"; import { ActivatedRoute, Router } from "@angular/router"; import { AnnaFilterService, AnnaGlobalConfigService, AnnaGtHelperService, AnnaNonEditableGenericTableComponent, AnnaPersistingFilterService, AnnaSortService, IConfirmationPopupConfig, ICustomSingleSelect, IGtGeneralConfig, IGtTableHeader, IHeaderInfo, ITotalRowInfo } from "@annalib/anna-core"; import { BreadcrumbsService, ConfirmationPopupComponent, IdText, MessageBoxData } from "@annalib/anna-design-components-lib"; import { ActionCommentsPopupComponent, BizHistoryType, BizRuleStatus, GenericDailyRevisionService, OfferRejectionPopupComponent, PrimaryOrderPanelService } from "@annalib/anna-feature-shared-lib"; import * as signalR from "@microsoft/signalr"; import { NgbModal, NgbModalRef } from "@ng-bootstrap/ng-bootstrap"; import { ToastrService } from "ngx-toastr"; import { CancelOffersPopupComponent } from "../cancel-offers-popup/cancel-offers-popup.component"; import { ISpotsApprovalBackendService } from "../config/spots-approval-backend-service.token"; import { RevisionTypeConstants } from "../constants/spots-approval.constant"; import { IANNARevisionBEResponse, IBizRulesFromDB, ISpotInformationResponse } from "../models/anna-revisions-backend.model"; import { ANNAREVISIONSTAGES, IntelliFilter, SpotaApprovalIRadioButton, SpotTypeCategoryFromBE } from "../models/anna-revisions-enums.model"; import { AcquireLockResponse, AdditionalSpotInformation, ANNARevisionSpotsApprovalResponse, ANNARevisionSummary, OrderInfoForANNARevision } from "../models/anna-revisions-response.model"; import { TotalRowData } from "../models/anna-revisions-total-rows.model"; import { GoToPageObj, HeaderInfo, OrderData, RevisionDataPayload, RevisionStatus, SummaryDetail } from "../models/order-revision-detail.model"; import { GenericSpotsApprovalService } from "../services/generic-spots-approval.service"; import { SpotsApprovalService } from "../services/spots-approval.service"; import * as i0 from "@angular/core"; export interface HeaderOrderInfo { message: string; messageClass: string; class: string; status: string; state: string; bubbleCount: number; showNeedsAttentionIcon: boolean; timelineRadioButtonMessage: string; timelineRadioButtonIconClass: string; } export declare class AnnaRevisionComponent implements OnChanges, OnInit, OnDestroy { private modalService; private spotsApprovalService; private genericSpotsApprovalService; private breadcrumbService; private route; router: Router; private drrListingService; private annaGlobalConfig; private toastr; private persistingFilterService; private cdRef; private annaGtService; private annaSortService; private annaFilterService; private primaryOrderPanelService; consumingProjectSpotsApprovalBackendService: ISpotsApprovalBackendService; orderData: OrderData; userType: "SELLER" | "BUYER"; isCompletedRevision: boolean; parentPage: "ORDERS" | "DRR Completed" | "DRR Ongoing"; isSummaryExpandable: boolean; showAAIcon: boolean; showStatusTimeline: boolean; showMessageInHeaderSection: boolean; dataOnTopHeight: number; showHeader: boolean; showSkeletonLoading: boolean; ordersOrRevisonsList: any[]; stationId: number; ogName: string; statusToBeConsideredToShowBizRuleWarning: RevisionStatus.BuyerPending | RevisionStatus.SellerPending; filtersFromRoute: { appliedFilters?: string[]; selectedFilterData?: string; sortState?: string; easyFilter?: string; metric?: IdText; }; loggedInUserOrBuyerName: string; userHasEditPrivilege: boolean; hideDownloadButton: boolean; disableSubmitForRepOrder: boolean; showAUR: boolean; showViewRevisionLink: boolean; buyerProgramNameEditable: boolean; showOfferRejectionReasonPopup: boolean; showStationName: boolean; parentOrderListingTabName: "TV Revenue"; ogId: number; todayAnnaRevisionTabUrl: string; timezone: string; showBadlyBehavedSpotsTooltipCellLevel: boolean; fetchPreviousOrNext: EventEmitter<{ index: number; orderData: OrderData; }>; navigateToOrderDiscrepancy: EventEmitter<{ flightStartDate: string; orderId: string; stationId: number; }>; navigateToVerifyMapping: EventEmitter<{ stationId: number; altOrderId: string; trafficOrderId: string; ecOrderStatus: string; }>; navigateToListingPage: EventEmitter; private submitSpotModal; private creditTablePopup; originalResponse: IANNARevisionBEResponse; formattedResponse: ANNARevisionSpotsApprovalResponse; totalRowInfo: ITotalRowInfo[]; showTotalRowActionButtons: boolean; selectedOrderIndex: number; orderInfoData: OrderInfoForANNARevision; timeZone: string; headerInfo: HeaderInfo; formattedDate: string; formattedTime: string; intelliFilter: IntelliFilter[]; clearAllFilter: IntelliFilter; tableHeaders: IGtTableHeader[]; gtDimension: { rowHeight: number; headerHeight: number; dataOnTopHeight: number; marginFromBottom: number; }; gtGeneralConfig: IGtGeneralConfig; tableData: AdditionalSpotInformation[]; clonedTableData: AdditionalSpotInformation[]; showSubmitButton: boolean; disableSubmitButton: boolean; confirmationConfig: IConfirmationPopupConfig; currentRevisionStatus: ANNAREVISIONSTAGES; summaryInfo: SummaryDetail[]; headerOrderInfo: HeaderOrderInfo[]; creditedSpots: AdditionalSpotInformation[]; noIntelliFilterSelected: boolean; openCreditPopup: boolean; bookedRateInfoColTooltip: string; showImpressions: boolean; selectedIntelliFilter: IntelliFilter | null; maximumRowsThatCanBeRenderedWithoutScrollBar: number; filteredAtColumnLevel: boolean; genericTableClass: string; showNoSpotAvailableMessage: boolean; disableStatus: boolean; showCutOffMessage: boolean; showReviewMessage: boolean; timeout: string; buyerName: string; isOSPESpotsMarkedForCredit: boolean; isOSPESpotsMarkedForMakeGood: boolean; isThisAPiCallAfterSubmit: boolean; initialAppliedEasyFilter: string; revisionTypeConstants: typeof RevisionTypeConstants; isStationInSandboxMode: boolean; selectedStationIsInTextMode: boolean; showPath: boolean; enabledFiltersCount: number; actionMsg: string; BizHistoryType: typeof BizHistoryType; BizRuleStatus: typeof BizRuleStatus; messageBoxData: MessageBoxData; sellerReconfirmationMessageBoxData: MessageBoxData; offerRjectionPossibleReasons: string[]; openRejectionReasonPopup: boolean; rowDataForRejectionPopup: AdditionalSpotInformation; spotTypeForRejectionPoup: string; rejectionPopupData: { showActionInRejectionPopup: boolean; allowActionInRejectionPopup: boolean; rejectActionComment: string[]; excludeFromFutureOffers: boolean; rejectionHeader: string; }; rowDataToRevertBackToDefault: AdditionalSpotInformation; nonEditableGTComponent: AnnaNonEditableGenericTableComponent; orderMetrics: IdText[]; metricDropdownConfig: ICustomSingleSelect; selectedMetric: IdText; disableDropDown: boolean; preemptedSpotsForEdit: ISpotInformationResponse[]; groupableOutstandingSpots: ISpotInformationResponse[]; offeredMakegoodsForEdit: ISpotInformationResponse[]; offeredADUsForEdit: ISpotInformationResponse[]; isADUSpotUnderEdit: boolean; isOSPESpotUnderEdit: boolean; openEditPopup: boolean; openADUEditPopup: boolean; bizRulesFromDb: IBizRulesFromDB; private generateOffersReportConfirmModal; disableOffersReportDownloadBtn: boolean; showDownloadButton: boolean; generateOffersReportConfirmationConfig: IConfirmationPopupConfig; latestTimeoutId: NodeJS.Timeout; hubConnection: signalR.HubConnection; loggedInUser: any; acquireLockResponse: AcquireLockResponse; lockMessageDetails: { message: string; class: string; iconClass: string; }; private lockExpiredModal; lockExpiredModalReference: NgbModalRef; private spotsApprovalEditModal; private createOrEditADUModal; private timerComponent; youareEditingAlertTimeout: NodeJS.Timeout; selectedForUndoUniqueIds: string[]; selectedOfferIdForReoffer: string[]; selectedOfferIdForCancel: string[]; selectedSpotForUndo: AdditionalSpotInformation; undoOfferConfirmationModal: ConfirmationPopupComponent; undoOfferConfirmationConfig: IConfirmationPopupConfig; reOfferConfirmationModal: ActionCommentsPopupComponent; reOfferConfirmationConfig: IConfirmationPopupConfig; individualOfferCancellationPopup: ActionCommentsPopupComponent; individualOfferCancellationPopupConfig: IConfirmationPopupConfig; offerRejectionModal: OfferRejectionPopupComponent; cancelOffersConfirmationModal: CancelOffersPopupComponent; allCancelEligibleMakegoodOfferNumbers: { offerNumber: string; uniqueId: string; }[]; actionCommentPopupTitle: string; actionRadioButtonComment: string; actionCommentsModal: ActionCommentsPopupComponent; allowEditInActionCommentPopup: boolean; Math: Math; applyCloseButtonTextForReofferPopup: { apply: string; cancel: string; }; applyCloseButtonTextForCancelPopup: { apply: string; cancel: string; }; RevisionStatus: typeof RevisionStatus; isReofferFlow: boolean; isBadlyBehavedGroupChosenForEdit: boolean; reofferUserInputComment: string; lockAcquiredByUserNameToSendInPayload: string; isCopilotUser: boolean; openSelectSpotLengthPopup: boolean; ADUOrBonusOfferType: "ADU offers" | "Bonus Spots"; ADUOrBonusRevenueClass: string; createADUOrBonusSpotsData: { duration: number; displayDuration: string; revenueClass: string; spotTypeId: number; }; orderRelatedExtraInfoForCreatingOrEditingADUs: { orderId: string; stationId: number; tgId: number; timezone: string; showImpressions: boolean; spotType: SpotTypeCategoryFromBE; }; isADUOrBonusCreate: boolean; openBadlyBehavedSpotsPopup: boolean; badlyBehavedSpotGroupId: string; badlyBehavedSpotOrderId: string; constructor(modalService: NgbModal, spotsApprovalService: SpotsApprovalService, genericSpotsApprovalService: GenericSpotsApprovalService, breadcrumbService: BreadcrumbsService, route: ActivatedRoute, router: Router, drrListingService: GenericDailyRevisionService, annaGlobalConfig: AnnaGlobalConfigService, toastr: ToastrService, persistingFilterService: AnnaPersistingFilterService, cdRef: ChangeDetectorRef, annaGtService: AnnaGtHelperService, annaSortService: AnnaSortService, annaFilterService: AnnaFilterService, primaryOrderPanelService: PrimaryOrderPanelService, consumingProjectSpotsApprovalBackendService: ISpotsApprovalBackendService); ngOnChanges(changes: SimpleChanges): void; setTableHeader(): void; initOrderdataDependentVariables(): void; userNeedsLock(): boolean; getLockAndCallAPI(): Promise; ngOnInit(): void; fetchOrderRevisionDetailsData(reinitIntelliFilter: boolean): void; createPayloadForOrderRevisionDetail(): RevisionDataPayload; onOrdersOrRevListChange(): void; initData(): void; fetchPreviousOrderDetails(): void; fetchPreviousOrNextClicked(): void; fetchNextOrderDetails(): void; navigateToBusinessHistoryPage(type?: BizHistoryType): void; createParamsForBizHistory(historyRevisionNo: number, type: BizHistoryType): { historyNo: number; type: BizHistoryType; stationId: number; advertiserId: number; orderId: string; isRepOrder: boolean; }; onSuccessfulOrderRevisionData(reinitIntelliFilter?: boolean): void; setOrReleaseLock(reinitIntelliFilter: boolean): void; setLockAcquiredMessageWhenUserHasLock(): void; setLockAcquiredMessageWhenUserDoesNotHaveLock(): void; closeTimeout(): void; closeLockMessage(): void; setRevisionHeaderData(): void; showHideBuyerRejectedEasyFilter(): boolean; showHideBadlyBehavedSpotsEasyFilter(): boolean; showHideBookedADUEasyFilter(): boolean; showHideCreditEasyFilter(): boolean; enableDisableIntelliFilter(): void; intelliFilterInitialize(): void; intelliFilterClicked(index: number): void; checkIfOtherIntelliFilterIsApplied(): void; removeEstimatesPriorityAndRevClassHeaderForEOS(): void; enableDisableClearAllBtn(): void; checkIfSortingOrFilteringPresentInTable(): boolean; replaceLoadersInTableHeadersWithNames(): void; setTableHeaders(): void; addOrRemoveActionableIconColumnForEditUndoReofferOrCancel(): void; isActionableColumnPresent(): void; filterOutActionHeader(): void; sortResponseBasedOnStatus(arr: AdditionalSpotInformation[], key: "offeredMGsAndADUs" | "outstandingSpots"): AdditionalSpotInformation[]; isIndependentSpot(arr: AdditionalSpotInformation): boolean; formatResponseForGenericTable(arr: AdditionalSpotInformation[]): AdditionalSpotInformation[]; resetFilterVariables(): void; clearAllBtnClicked(): void; setDefaultFilter(): void; setGenericTableDataBasedOnFilterSelected(): void; createTableDataForANNARevisions(intelliFilter: IntelliFilter): void; setRowClass(): void; gtActionRadioButtonClicked(event: { action: "resubmit" | "approve" | "credit" | "noAction"; data: AdditionalSpotInformation; }, openActionCommentModal?: boolean): void; updateFormattedResponseData(event: { action: "resubmit" | "approve" | "credit" | "noAction"; data: AdditionalSpotInformation; }, radioButtonConfig: SpotaApprovalIRadioButton[]): void; submitClicked(): void; closeCreditConfirmationPopup(): void; submitAwaitingSellerApprovalSpots(): void; submitAwaitingSellerReconfirmationSpots(): void; submitAwaitingBuyerApprovalSpots(): void; formatDataForCreditPopupGenericTable(): void; sendSpotsForSubmission(): void; createPayloadAndSubmitSpots(): void; afterSubmitResetLockVariables(reinit?: boolean): void; setConfirmationPopupConfig(): void; prepareBadlyBehavedSpotsToBesubmittedList(): string[]; createSummaryComponentData(summaryData: ANNARevisionSummary): SummaryDetail[]; createHeaderData(orderInfo: OrderInfoForANNARevision): HeaderOrderInfo[]; setTimeoutMessage(status: string, orderInfo: OrderInfoForANNARevision): string; setApprovalTimeMessage(status: string, orderInfo: OrderInfoForANNARevision): string; setExpiredTimeMessage(status: string, orderInfo: OrderInfoForANNARevision): string; setPreviousOfferComment(spot: AdditionalSpotInformation, previousAction: { spotId: string; action: string; approveActionLocalComment: string; creditActionComment: string; rejectActionComment: string[]; excludeFromFutureOffers: boolean; }): void; setRadioButtonConfig(spot: AdditionalSpotInformation): void; getRadioButtonCommentIcon(spot: AdditionalSpotInformation, button: string): string; getUndoOrCancelOrReofferedByMessage(spot: AdditionalSpotInformation, button: string): string; disableActions(): boolean; enableRadioButtons(spots: AdditionalSpotInformation[]): void; addRejectCommentForMFCGroup(spot: AdditionalSpotInformation): boolean; isPreemptionSpotOfTheMFCPopup(spot: AdditionalSpotInformation): boolean; sendCreditTableSpotsForSubmission(event: { mfcRejectComments: string[]; excludeFutureOffers: boolean; }): void; getOfferActionCommentsArray(spotsToIgnore?: string[]): { SpotId: string[]; SellerOfferComments: string[]; }[]; getSellerOfferCommentBasedOnSelectedAction(spotData: AdditionalSpotInformation): string[]; setTableHeight(): void; resetData(): void; filterAppliedToTable(data: AdditionalSpotInformation[]): void; checkIfFiltersAppliedAtColumnLevel(): void; createTotalRow(): void; totalRowCommonfields(totalRowData: TotalRowData, selectedFilterText: string): void; initFiltersFromRoute(): void; goToOffersRevisionsPage(): void; showOngoingRevisionToastr(): void; calculateDataOnTopHeight(): number; findState(OrderInfo: OrderInfoForANNARevision, Status: string): "CURRENT" | "PASSED" | "SKIPPED" | "UPCOMING"; ngOnDestroy(): void; resetPersistingData(): void; closeHubConnection(): void; fetchPreviousOrNextOrderDetails(obj: { index: number; orderData: any; }): void; updateNavigationHistory(): void; prepareQueryParamOnFilterApplication(selectedIntelliFilter: IntelliFilter): any; goToPage(obj: GoToPageObj): void; goToOffersPage(parentTab: "TV Revenue" | "Other Revenue"): void; popBreadcrumbsIfAlreadyPresent(goToPage: "revisions" | "BizRules" | "offers", selectedFilter: IntelliFilter): void; updateBC(): void; goToRevisionsPage(parentTab: "TV Revenue" | "Other Revenue"): void; goToBizRulesPage(parentTab: "TV Revenue" | "Other Revenue"): void; assignValuesToOrderInfoObjectFromOrderClickedRow(goToTab: number, navigateTo: string, advertiserId: number, orderMetric: "CPP" | "CPM"): { userId: number; channelId: number; orderId: string; campaignId: number; campaignStartDate: string; campaignEndDate: string; displayOrderId: string; currentTab: number; currentListingTab: number; latest_revision: number; navigateTo: string; stationName: string; advertiserId: number; orderMeasurementType: "CPM" | "CPP"; currentListingTabName: string; ogId: number; og: { id: number; text: string; }; }; setSellerReconfirmationMessageBoxData(): void; checkAndSetMessageBoxData(reasonForNoRevision: string, hasOSPESpots: boolean): void; messageBoxViewClicked(reasonForNoRevision: string): void; gtRadioButtonMessageIconClicked(event: { data: AdditionalSpotInformation; iconName?: string; }): void; openCancelOffersConfirmationPopup(rowData: AdditionalSpotInformation): void; openSellerCancellationCommentPopup(rowData: AdditionalSpotInformation): void; openOfferRejectionReasonAndCommentModal(data: AdditionalSpotInformation, revertToApproveIfCancelClickedInPopup: boolean): void; openOfferRejectionReasonAndCommentModalForTotalRow(revertToApproveIfCancelClickedInPopup: boolean): void; offerRejectionPopupApplyClicked(data: { comments: string[]; excludeFutureOffers: boolean; }): void; revertRadioButtonSelectionToDefaultForOfferRejectionPopup(revertRadioButtonSelectionToApprove: boolean): void; revertRadioButtonSelectionToDefaultForApproveOrCreditPopup(revertRadioButtonSelectionToApprove: boolean): void; addMFCCommentOnlyForPEInPEMGGroup(isCreditAction: boolean, spot: AdditionalSpotInformation): boolean; actionCommentsPopupApplyClicked(event: { spotData: AdditionalSpotInformation; comment: string; }): void; setDropDownData(): void; setMetricDropdownConfig(): void; metricChanged(event: IdText, changeTableHeaders?: boolean): void; gtIconClicked(event: { data: AdditionalSpotInformation; id: string; columnHeader: IHeaderInfo; }): void; openBadlyBehavedSpotDetailsPopup(data: AdditionalSpotInformation): void; closeBadlyBehavedSpotsPopup(): void; editClicked(data: AdditionalSpotInformation, isReofferFlow?: boolean): void; setSpotIdAndSelectedRadioMap(): void; createEditPopupData(event: AdditionalSpotInformation): void; closeSpotsEditApprovalPopup(): void; closeADUEditPopup(): void; getGroupRowClicked(): ISpotInformationResponse[]; getMGorADUGroupRowClicked(): ISpotInformationResponse[]; removeOSPEFromPersistingMapIfOSSpotIsEditedAndChangedToPEMGGroup(): void; addNewlyAddedSpotPlaceholderWithSameActionAsGroupInPersistingMap(newlyAddedSpots: { spotId: string; groupId: string; }[], groupEdited: ISpotInformationResponse[]): void; editSaved(event: { spots: { spotId: string; groupId: string; }[]; closePopup: boolean; }): void; closeEditPopup(): void; prepareQueryParamsOnFilterForTraversal(): any; setDownloadButtonVariables(): void; openGenerateOffersReportModal(): void; setGenerateOffersReportConfirmationPopupConfig(): void; addOrRemoveHoveredStyleForEmailOfferButton(event: MouseEvent): void; closeGenerateOffersReportModal(): void; createGenerateOffersReportPayload(): { OrderId: string; StationId: number; RevisionNumber: number; Equivalisation: boolean; GetRemovedSpots: boolean; RequestedByUserId: number; }; generateOffersReport(): void; lockTimedOut(releaseLock: boolean): void; setLockReleasedMessage(): void; navigateToListing(): void; resetTimerAfterUserAction(): void; startHubConnection(): Promise; initializeClientSideHubConnection(): Promise; requestServerToStoreConnectionData(): void; askServerListener(): void; acquireLock(): void; releaseLock(): void; resetTTLForLock(): void; openCancelOffersPopup(): void; openReOffersConfirmationPopup(spot: AdditionalSpotInformation): void; openUndoOffersConfirmationPopup(spot: AdditionalSpotInformation): void; setUndoOffersConfirmationPopupConfig(): void; createUndoOffersPayload(): { OrderId: string; StationId: number; RevisionNumber: number; ActionTakenBy: any; OffersToUndoSpotHistoryIds: string[]; }; createCancelOffersPayload(selectedOffersToCancel: string[], cancelComment: string): { OrderId: string; StationId: number; RevisionNumber: number; ActionTakenBy: any; OffersToCancelSpotHistoryIds: string[]; Comment: string; }; undoOffers(): void; createReOffersPayload(): { OrderId: string; StationId: number; RevisionNumber: number; UndoBy: any; OffersToReofferSpotHistoryIds: string[]; }; afterRecallSendToEditOfferPage(event: { spotData: AdditionalSpotInformation; comment: string; }): void; reOffersAPICall(): void; cancelIndividualOffer(event: { spotData: AdditionalSpotInformation; comment: string; }): void; cancelOffers(data: { selectedOffersToCancel: string[]; comment: string; }): void; totalRowRadioButtonMessageIconClicked(event: string): void; totalRowRadioButtonClicked(radioButton: string): void; updateTotalRowRadioButtons(): void; offerRejectionPopupApplyClickedForTotalRow(data: { comments: string[]; excludeFutureOffers: boolean; }): void; totalRowApproveOrCreditActionCommentAppliedOrNoActionClicked(value: "approve" | "credit" | "noAction", label: string, comment?: string): void; updateTotalSpotTypeAndSelectedActionAndCommentMapApproveComment(value: "approve" | "credit" | "noAction", comment: string): void; updateTotalRowSpotTypeAndSelectedActionAndCommentMapRejectionComment(comments: string[], excludeFromFutureOffers: boolean): void; createADUOrBonusOfferClicked(selectedOption: { Name: string; RevenueClass: string; IsAdu: boolean; }): void; spotLengthSelected(event: { DisplayDuration: string; Duration: number; SpotTypeId: number; }): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }