import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { Injector, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { MatMenuTrigger } from '@angular/material/menu';
import { Report } from '../../../../../common-utils/report';
import { AttributeData } from '../../../../fields/attribute-data';
import { FieldsListService } from '../../../../../field-list-lib/fields-list.service';
import { ReportBuilderMasterService } from '../../../report-builder-master.service';
import { TabularReport } from '../../tabular-report';
import { CommonService } from '../../../../../common.service';
import { ElementService } from '../../../element.service';
import { ScreenType } from '../../../../filters/condition-type';
import { TabularReportService } from '../../tabular-report.service';
import { Page } from '../../../graphical-report/page/page';
import { DashboardBuilderService } from '../../../../../dashboard-lib/dashboard-builder.service';
import { TabularComponent } from '../tabular.component';
import { AxFilter } from '../../../../filters/ax-filter';
import { PageEvent } from '@angular/material/paginator';
import { MatDialog } from '@angular/material/dialog';
import { GhostLoaderType } from '../../../../../ghost-loader/ghost-loader.component';
import * as i0 from "@angular/core";
export declare class DetailGroupViewComponent implements OnInit, OnChanges, OnDestroy {
    private _reportBuilderMasterService;
    private _fieldsListService;
    private _commonService;
    private _elementService;
    private _tabularReportService;
    private _dashboardBuilderService;
    private _injector;
    page: Page;
    tabularReport: TabularReport;
    isEditable: boolean;
    x1ImageMediaUrl: string;
    elementGuid: string;
    screenType: ScreenType;
    drillThroughParentType: ScreenType;
    drillThroughFilterInput: AxFilter;
    parentRef: TabularComponent;
    contextMenu: HTMLElement;
    drillThroughTrigger: MatMenuTrigger;
    x1MediaUrl: string;
    reportId: number;
    appVersionId: number;
    columnData: any;
    contextMenuPosition: {
        x: string;
        y: string;
    };
    currentIndex: number;
    showSum: boolean;
    showMax: boolean;
    showMin: boolean;
    showAvg: boolean;
    moment: any;
    isDirty: boolean;
    report: Report;
    _isColumnExist: boolean;
    isDataLoaded: boolean;
    headerLoaded: boolean;
    selectedRowIndexes: Array<number>;
    drillThroughFilter: any;
    currentAttribute: any;
    isHidden: boolean;
    dialog: MatDialog;
    GhostLoaderType: typeof GhostLoaderType;
    private _unsubscribeAll;
    constructor(_reportBuilderMasterService: ReportBuilderMasterService, _fieldsListService: FieldsListService, _commonService: CommonService, _elementService: ElementService, _tabularReportService: TabularReportService, _dashboardBuilderService: DashboardBuilderService, _injector: Injector);
    get screenTypes(): typeof ScreenType;
    /**
     * hostListener use to open matMenu specific location
     */
    click(event: any): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Subscribers should be added here.
     */
    subscribers(): void;
    /**
     * Get Tabular data
     */
    getTabularData(): void;
    /**
     * to set matrix attribute data after onchange
     *
     * @param changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * to drop column from tabular report
     *
     * @param CdkDragDrop
     *
     */
    drop(event: CdkDragDrop<string[]>): void;
    /**
     * to move column left on tabular report
     *
     * @param CdkDragDrop
     *
     */
    moveColumnLeft(event: CdkDragDrop<string[]>): void;
    /**
     * to move column right on tabular report
     *
     * @param CdkDragDrop
     *
     */
    moveColumnRight(event: CdkDragDrop<string[]>): void;
    /**
     * to remove column from tabular report
     *
     * @param Event
     *
     */
    removeColumn($event: Event): void;
    /**context menu for table columns
     *
     * @param MouseEvent
     * @param number
     * @param AttributeData
     */
    onContextMenu(event: MouseEvent, index: number, attr?: AttributeData): void;
    /**
     * to returns sum of rows
     *
     * @param string
     *
     */
    sum(series: Array<string>): number;
    /**
     * to returns average of rows
     *
     * @param string
     *
     */
    avg(series: Array<string>): number;
    /**
     * to returns maximum value of rows
     *
     * @param string
     *
     */
    max(series: Array<string>): number;
    /**
     * to returns minimum value of rows
     *
     * @param string
     *
     */
    min(series: Array<string>): number;
    /**
     * to returns count of unique value of rows
     *
     * @param string
     *
     */
    unique(series: Array<string>): number;
    /***
     * On chart context  click for sum aggregation
     * @param MatCheckboxChange
     */
    sumAggregation(ob: MatCheckboxChange): void;
    /***
     * On chart context  click for avg aggregation
     * @param MatCheckboxChange
     */
    averageAggregation(ob: MatCheckboxChange): void;
    /***
     * On chart context  click for max aggregation
     * @param MatCheckboxChange
     */
    maxAggregation(ob: MatCheckboxChange): void;
    /***
     * On chart context  click for min aggregation
     * @param MatCheckboxChange
     */
    minAggregation(ob: MatCheckboxChange): void;
    /**
     * to set isDirty after changes in tabular report filter
     *
     */
    dirtyFlowCheckEvent(): void;
    /**
     * This will sort the data of tabular
     *
     * @param event
     * @param index
     */
    onClickSorting(event: KeyboardEvent, index: number): void;
    singleColumnSorting(attr: AttributeData): void;
    toShowAggregation(): void;
    getSortIndex(attributeData: AttributeData): number;
    /**
     * to check dropped column is already exist in table or not
     *
     * @param AttributeData
     *
     */
    isColumnExist(attributeData: AttributeData): void;
    /**
     *to emit tabular property on table click
     *
     * @param event
     */
    tableSelect(event: PointerEvent): void;
    /**
     * to redirect media url
     *
     * @param event
     * @param url
     */
    redirect(event: KeyboardEvent, url: string): void;
    /**
     * to redirect media url on single click
     */
    redirectOnSingleClick(event: Event, url: string): void;
    /**
     * remove slash from url
     *
     * @param url
     * @returns
     */
    removeSlashFromURL(url: string): any;
    /**
     * This will get called on row clicked. we are using this for cross filter .
     *
     * @param rowIndex
     */
    rowSelected(rowIndex: number): void;
    drillThroughContext(event: MouseEvent, attribute: AttributeData, i: number): void;
    removeFromDashboard(): void;
    /**
     * handle paginator event to change data as per page index and pagesize
     *
     * @param event
     */
    handlePageEvent(event: PageEvent): void;
    openConditionalFormatting(index: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DetailGroupViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DetailGroupViewComponent, "lib-detail-view", never, { "page": "page"; "tabularReport": "tabularReport"; "isEditable": "isEditable"; "x1ImageMediaUrl": "x1ImageMediaUrl"; "elementGuid": "elementGuid"; "screenType": "screenType"; "drillThroughParentType": "drillThroughParentType"; "drillThroughFilterInput": "drillThroughFilterInput"; "parentRef": "parentRef"; "x1MediaUrl": "x1MediaUrl"; "reportId": "reportId"; "appVersionId": "appVersionId"; }, {}, never, never>;
}
