import { DatePipe } from '@angular/common';
import { AfterContentInit, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, QueryList, TemplateRef, ViewContainerRef } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { ActivatedRoute, Router } from '@angular/router';
import { Subject } from 'rxjs';
import { MenuItem } from 'tn-custom-primeng/api';
import { ContextMenu } from 'tn-custom-primeng/contextmenu';
import { Table } from 'tn-custom-primeng/table';
import { TreeTable } from 'tn-custom-primeng/treetable';
import { ComponentBase } from '../../classes/base/component-base';
import { IListComponent } from '../../classes/base/i-list-component';
import { EnvironmentSchema } from '../../classes/environment-schema';
import { ColumnSchemaBase, CrudListConfig, CrudListData, CrudListSetting, DialogModel, FileUploadMode, Operator, PopupSize } from '../../classes/form-schema';
import { TnMenuItem } from '../../classes/tn-menu-item';
import { Action, WorkflowSettingNew } from '../../classes/workflow-schema';
import { SearchInfo } from '../../components/models/search';
import { StateMachinesService } from '../../components/statemachines/services/statemachines.service';
import { TnCustomScrollbarComponent } from '../../components/tn-custom-scrollbar/tn-custom-scrollbar.component';
import { WfAction, WfItem } from '../../components/workflow/models/models';
import { CanBo_HoSoService } from '../../components/workflow/services/canbo-hoso.service';
import { EntityWorkflowHistoryService } from '../../components/workflow/services/entity-workflow-history.service';
import { CongViecService } from '../../congviec/congviec/services/congviec.service';
import { DmLoaiCongViecService } from '../../congviec/dm-loai-congviec/services/dm-loai-congviec.service';
import { Filter, GridInfo, Sort } from '../../models/grid-info';
import { TnUser } from '../../models/tn-user';
import { KeyValueType } from '../../models/types';
import { CommonService } from '../../services/common.service';
import { CrudService } from '../../services/crud.service';
import { CustomRouterService } from '../../services/custom-router.service';
import { EntityMetadataService } from '../../services/entity-metadata.service';
import { ExportService } from '../../services/export.service';
import { LoggerService } from '../../services/logger.service';
import { NotifierService } from '../../services/notifier.service';
export declare abstract class ListComponentBase extends ComponentBase implements IListComponent, OnInit, AfterContentInit, OnDestroy {
    _injector: Injector;
    treeTable: TreeTable;
    table: Table;
    set _table(v: Table);
    container: ElementRef<any>;
    iconToggleRowGroup: TemplateRef<any>;
    iconToggleRowData: TemplateRef<any>;
    templateTrangThaiV5: TemplateRef<any>;
    templateColViewHistory: TemplateRef<any>;
    templateWorkflowCoreStatus: TemplateRef<any>;
    scrollbar: TnCustomScrollbarComponent;
    contextMenu: ContextMenu;
    paginationTemplate: TemplateRef<any>;
    searchCustom: TemplateRef<any>;
    header: TemplateRef<any>;
    headerFilter: TemplateRef<any>;
    rowExpansion: TemplateRef<any>;
    summary: TemplateRef<any>;
    footer: TemplateRef<any>;
    colgroup: TemplateRef<any>;
    rowGroup: TemplateRef<any>;
    contentRowGroup: TemplateRef<any>;
    children: QueryList<TemplateRef<any>>;
    workflowsettingnewViewContainer: ViewContainerRef;
    model: CrudListData;
    setting: CrudListSetting;
    fileName: string;
    lazy: boolean;
    widthCheckbox: string;
    widthOrderColumn: string;
    _defaultWithFunctionColumn: number;
    _widthFunctionColumn: string;
    widthFunctionColumn: string;
    _classRowGroup: string;
    set classRowGroup(value: string);
    showScrollBar: boolean;
    pTableScrollable: boolean;
    pTableScrollHeight: string;
    responsive: boolean;
    enableBasicAuthorize: boolean;
    serviceCode: string;
    authorizePath: string;
    authorizeButtons: string[];
    configScrollBar: any;
    showScrollHorizontal: boolean;
    showMenuButtons: boolean;
    showRadio: boolean;
    hiddenAdd: boolean;
    hiddenDelete: boolean;
    hiddenEdit: boolean;
    hiddenCopyLink: boolean;
    hiddenView: boolean;
    hiddenReorder: boolean;
    disableKeypressControl: boolean;
    cancelBubble: boolean;
    escape: boolean;
    selectionMode: string;
    config: CrudListConfig;
    enableReorderRow: boolean;
    templates: QueryList<TemplateRef<any>>;
    templatesFromParent: QueryList<TemplateRef<any>>;
    childrenFromParent: QueryList<TemplateRef<any>>;
    menuButtons: (rowData: any) => TnMenuItem[] | Promise<TnMenuItem[]>;
    fieldOrder: string;
    _style: any;
    set style(value: any);
    set tableClass(value: string);
    _rawDataSource: any[];
    set allDataSource(value: any);
    _dataSource: any[];
    set dataSource(value: any[]);
    filter_default: Filter[];
    onRowSelect: EventEmitter<any>;
    onReordered: EventEmitter<any>;
    onCheckAll: EventEmitter<any>;
    onReload: EventEmitter<any>;
    onReloaded: EventEmitter<any>;
    onReady: EventEmitter<any>;
    onContentInit: EventEmitter<any>;
    onAdd: EventEmitter<any>;
    onEdit: EventEmitter<any>;
    onCopyLink: EventEmitter<any>;
    onCopyLinkMultiple: EventEmitter<any>;
    onView: EventEmitter<any>;
    onDelete: EventEmitter<any>;
    onDeleteMultiple: EventEmitter<any>;
    onInvalidWorkflow: EventEmitter<any>;
    onAfterTrinhKy: EventEmitter<any>;
    onStartedWorkflow: EventEmitter<any>;
    onProcessedWorkflow: EventEmitter<any>;
    onRollbackedWorkflow: EventEmitter<any>;
    onChangedStatusWorkflow: EventEmitter<any>;
    widthFunctionColumnChange: EventEmitter<any>;
    onSearched: EventEmitter<any>;
    private isTreeTable;
    private tableReady;
    tableReadySource$: import("rxjs").Observable<any>;
    fieldCheckbox: string;
    fieldColExpand: string;
    fieldColReorder: string;
    fieldFunction: string;
    fieldIndexInDataSource: string;
    checkedAll: any;
    dataSearchCommon: any;
    rowGroupChecked: any;
    rowGroupMetadata: any;
    dataSourceInternal: any[];
    classToolbar: string;
    itemSettings: any;
    sortHistory: Sort[];
    sortClientHistory: any;
    _groupField: string;
    _groupInClient: boolean;
    enabledWf1: any;
    showingActionWorkflow: boolean;
    buttonContexts: MenuItem[];
    authorizePaths: {
        [key: string]: string;
    };
    buttonApplyAuthorize: {
        [key: string]: boolean;
    };
    commonConst: {
        ADD: string;
        EDIT: string;
        EDIT_VERSION: string;
        DELETE_VERSION: string;
        TRIGGER_UPLOAD: string;
        TRIGGER_EDIT: string;
        TRIGGER_DELETE: string;
        TRIGGER_CUSTOM_BUTTON_CLICK: string;
        RELOAD_DATA_VERSION: string;
        SAVE: string;
        CUSTOM_SAVE: string;
        CUSTOM_SAVE_WORKFLOW_DONE: string;
        CUSTOM_SAVE_EP: string;
        SAVE_DATA_DEFAULT: string;
        SAVED: string;
        CANCEL: string;
        CHECK_EXIST: string;
        SET_SELECTED_ROW: string;
        REMOVE_ERROR_EXIST: string;
        ON_FORM_EVENT_CUSTOM: string;
        ON_FORM_EVENT: string;
        ON_DATAMODEL_CHANGED: string;
        ON_FORM_INITIALED: string;
        ON_SHOW: string;
        ON_FORM_VALIDATED: string;
        EXPORT_EXCEL: string;
        EXPORT_ALL_EXCEL: string;
        EXPORT_ALL_OBJECT_EXCEL: string;
        EXPORT_EXCEL_BY_TEMPLATE: string;
        DELETE_MULTIPLE: string;
        DELETE: string;
        GET_DATA_OUTPUT: string;
        CLOSE_EDIT_FORM: string;
        DATA_LOADED: string;
        DATA_LOADING: string;
        FORM_SCHEMA_CHANGED: string;
        TRIGGER_SHOW_SETTING: string;
        FORCE_RENDER: string;
        RADIO_SELECTED: string;
        FOCUS_TO_FIRST_INPUT_CONTROL: string;
        SINGLE_FILE_SAVED: string;
        RELOAD_CRUD_FORM: string;
        BINDED_DETAIL_DATA: string;
        AFTER_BINDED_DETAIL_DATA: string;
        UPDATE_REFFIELD: string;
        ENTITY_METADATA_LOADED: string;
        ENTITY_METADATA_CHANGESTATUS: string;
        ENTITY_PERMISSON_LOADED: string;
        ENTITY_PERMISSON_MODIFY: string;
        ENTITY_WF_SHOWHISTORY: string;
        ENTITY_METADATA_RELOADED: string;
        SCROLL_TO_BOTTOM: string;
        TABLE_SCHEMA_PAGING_NEXT: string;
        TABLE_SCHEMA_PAGING_PREV: string;
        TABLE_SCHEMA_PAGING_OLDEST: string;
        TABLE_SCHEMA_PAGING_NEWEST: string;
        ROW_SELECTED: string;
        ROW_SELECT_ALL_CHANGED: string;
        HIDDEN_SAVE: string;
        SET_VIEW_MODE: string;
        RELOAD_CRUD_LIST: string;
        RELOAD_DATA_CRUD_LIST: string;
        TABLE_RENDERED: string;
        ADD_CUSTOM_FILTER: string;
        SAVE_FILE_IN_FORM: string;
        SHOW_NOTIFY: string;
        FORCE_RELOAD: string;
        REORDER_SAVE: string;
    };
    _defaultTableClass: string;
    _tableClass: string;
    _showSettingsRowColor: boolean;
    _showSettings: boolean;
    _showSettingsWorkflow: boolean;
    _showSettingsPermission: boolean;
    _colorFilterTable: any[];
    _sortField: string;
    _sortDir: -1 | 0 | 1 | 2;
    template: any;
    templateFilter: Filter[];
    templateHeaderContent: any;
    cachedTransforms: {};
    filterSchema: any;
    filterData: any;
    currentFieldFilter: string;
    checkBoxContextMenu: MenuItem[];
    searchInfo: SearchInfo;
    creatingSearchInfo: boolean;
    filter_custom: Filter[];
    filter_advanceSearch: Filter[];
    filter_commonSearch: Filter[];
    filter_column: Filter[];
    timeout: any;
    interval: any;
    dataAdvance: any;
    searchModel: any;
    currentItem: any;
    showFormWorkflow: boolean;
    headerWorkflow: string;
    actionWorkflow: Action;
    popupSizeWorkflow: PopupSize;
    showHistoryWorkflow: boolean;
    hiddenBtnFunction: boolean;
    firstRowClick: boolean;
    startWorkflowModel: DialogModel;
    processWorkflowModel: DialogModel;
    choYKienModel: DialogModel;
    workflowSettingModel: DialogModel;
    workflowHistoryModel: DialogModel;
    permissionSharingModel: DialogModel;
    permissionListModel: DialogModel;
    congViecModel: DialogModel;
    detailTaskModel: DialogModel;
    shareLinkModel: DialogModel;
    attachedTaskModel: DialogModel;
    BUTTON_PHAN_QUYEN: string;
    BUTTON_CAU_HINH_QUY_TRINH: string;
    lstButtonPermission: any[];
    buttonPermissionMap: Map<string, boolean>;
    entityMetadataService: EntityMetadataService;
    entityWorkflowHistoryService: EntityWorkflowHistoryService;
    stateMachinesService: StateMachinesService;
    canBo_HoSoService: CanBo_HoSoService;
    sourceIcon: any;
    stopCalculatingFunctionColumnWidth: boolean;
    selectedItemLast: any;
    rowDataCurrent: any;
    environment: EnvironmentSchema;
    FileUploadMode: typeof FileUploadMode;
    currentUser: TnUser;
    Operator: typeof Operator;
    showSaveReorder: boolean;
    _router: Router;
    _activatedRoute: ActivatedRoute;
    _customRouterService: CustomRouterService;
    _unSubscribeAll: Subject<any>;
    _notifierService: NotifierService;
    _exportService: ExportService;
    _loggerService: LoggerService;
    _congViecService: CongViecService;
    _dmLoaiCongViecService: DmLoaiCongViecService;
    _commonService: CommonService;
    _crudService: CrudService;
    _santilizer: DomSanitizer;
    _datePipe: DatePipe;
    private _translateService;
    private _moduleConfigService;
    private _permissionService;
    private _templateInstanceService;
    private _printService;
    private _federationService;
    constructor(_injector: Injector, _isTreeTable: boolean);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    setupTableClass(): void;
    initColumnSchema(cols: ColumnSchemaBase[]): void;
    private extendColumns;
    formatColumns(cols: ColumnSchemaBase[]): void;
    private getColumnSetting;
    private setGroupField;
    private saveColumnSetting;
    private deleteColumnSetting;
    private getColorSetting;
    private cacheColorSetting;
    private setColorSetting;
    private getPageSetting;
    private savePageSetting;
    checkIsInsideDialog(): boolean;
    handleReady(): void;
    private checkAllowSelectRow;
    handleSelectRow: (evt: any, data: any) => void;
    handleSelectRowGroup: (evt: any, data: any) => void;
    private setLastItemSelected;
    private _emitRowSelect;
    handleToggleRow(rowData: any, evt: any): void;
    private _showContextMenu;
    private getFilters;
    getGridInfo(): GridInfo;
    handleSearchAdvs(filters: Filter[]): void;
    handleSearch(data: any): Promise<void>;
    handleInitAdvanceSearch(filters: Filter[]): void;
    getData(): void;
    reload(filter_custom?: Filter[], page?: number): void;
    danhSoThuTuGroupLastest(): void;
    add(): void;
    xuatCacMucDaChon(isTree?: boolean): Promise<void>;
    printByReadingHtml(isTree?: boolean): Promise<void>;
    printByReadingHtmlHasRowSpan(isTree?: boolean): void;
    exportAll(isTree?: boolean): void;
    exportByReadingHtml(exportAll?: boolean, isTree?: boolean): void;
    headHtmlToString(arrHeadEle: any): string;
    rowDataHtmlToString(rowDatas: any): string;
    getArrHeadByHtml(header: any): any[];
    getArrRowDataHasRowSpanByHtml(bodyEle: any, arrHead: any, exportAll?: boolean): any[];
    rowDataHtmlHasRowSpanToString(rowDatas: any): string;
    getArrRowDataByHtml(bodyEle: any, arrHead: any, exportAll?: boolean): any[];
    getValueCheckboxFormat(data: any): "" | "Không" | "Có";
    view(rowData: any): void;
    edit(rowData: any): void;
    delete(rowData: any): void;
    deleteMutiple(): void;
    showContextMenu(evt: any, rowData: any): Promise<void>;
    private getMenuButtonAuthorized;
    handleCheckAll_Group: () => void;
    handleCheckRowGroup: (rowData: any) => void;
    handleCheckRowData_Group: (rowData: any, trElement?: any, fireEvent?: boolean) => void;
    handleCheckAll: () => void;
    handleCheckRowData: (rowData: any, trElement?: any, fireEvent?: boolean) => void;
    private updateCheckedAll;
    selectRow(datas?: any[]): void;
    onSort(event: any, _table: Table): void;
    private sortWithApi;
    processDataSource(dataSource: any): void;
    subWord(value: string, wordCount: number): string;
    toggleShowFull(rowData: any, field: any): void;
    mergeClassObj(source: any, otherObj?: {}): any;
    getContextRowGroup(rowData: any): {
        rowData: any;
        rowGroupMetadata: any;
        groupCol: ColumnSchemaBase;
        groupField: string;
        groupInClient: boolean;
    };
    getContextRowGroupRoot(rowData: any, expanded: any): {
        expanded: any;
        handleCheckRowGroup: (rowData: any) => void;
        getColSpanGroup: (numOfColCustom?: number) => number;
        table: Table;
        classRowGroup: string;
        iconToggleRowGroup: TemplateRef<any>;
        rowData: any;
        rowGroupMetadata: any;
        groupCol: ColumnSchemaBase;
        groupField: string;
        groupInClient: boolean;
    };
    getContextCell(rowData: any, rowIndex: any, col: any, expanded: any, $this: any): {
        crudList: any;
        rowData: any;
        rowIndex: any;
        col: any;
        field: any;
        expanded: any;
        iconToggleRowData: TemplateRef<any>;
    };
    getClassRowDataOfGroup(rowData: any): string;
    containSelectItem(item: any): boolean;
    scrollTop(): void;
    scrollToBottom(): void;
    onNext(event: any): void;
    onPrev(event: any): void;
    onOldest(event: any): void;
    onLatest(event: any): void;
    isEmptyToolbar(element: HTMLElement): boolean;
    isEmptyFunctionButtons(element: HTMLElement): boolean;
    findTemplate(templateName: any): TemplateRef<any>;
    hasTemplate(templateName: string): boolean;
    getComponentByType(controlType: string): TemplateRef<any>;
    getTemplate(templateName: string): any;
    updateRowGroupMetaData(dataSource: any): void;
    showSettings(): void;
    onSaveColorSettings(data: any): void;
    onSaveSettings(event: any): void;
    onDeleteSettings(): void;
    applyColumnSetting(): void;
    private getCellClassHeader;
    private getColumnStyle;
    getBookmarkColor(rowData: any, columns: any): any;
    private convertToDate;
    private buildGradientColor;
    private alignCenterColumn;
    private alignRightColumn;
    getColSpanGroup: (numOfColCustom?: number) => number;
    ngOnDestroy(): void;
    disableMultipleDelete(): boolean;
    disableEdit(rowData: any): boolean;
    disableDelete(rowData: any): boolean;
    showHistory(rowData: any): void;
    showListVersion(rowData: any): void;
    private getWidthFunction;
    private getFontSizeInPixel;
    processBaseData(): Promise<void>;
    private preProcessData;
    private transform;
    handleRowOrdered(evt: any): void;
    showSettingRowColor(): void;
    reBuildFilterColumn(cols: ColumnSchemaBase[]): void;
    buildFilterColumn(cols: ColumnSchemaBase[]): void;
    private getDateRangeFilter;
    private getRangeFilter;
    private getFieldFilter;
    getContextCustomFilter(): {};
    setInitFilter(defaultFilter: KeyValueType): void;
    prepareSearch(col: ColumnSchemaBase): void;
    onSearch: (node?: any) => void;
    private getMinimizeData;
    onClearSearch(node: any, field: any): void;
    onClearNumberSearch(node: any, control: any): void;
    onClearDateSearch(node: any, control: any, field: any): void;
    onChangeDateTime(evt: any, field: any): void;
    onChangeBoolean(evt: any, field: any): void;
    showCheckBoxFilterMenu(evt: any, field: any): void;
    changeFilterBoolean(value: any): void;
    handleFilterBoxFocus(node: any): void;
    onShowFilterDropdownPanel(event: any): void;
    onHideFilterDropdownPanel(event: any): void;
    initFilterBoxFocus(node: any): void;
    private checkInNode;
    savePageSize(): void;
    handleTableRendered(): Promise<void>;
    private _processAfterRendered;
    private modifyButtonFunctionInRow;
    private getTrByRowData;
    private createSearchSchema;
    checkPermissionToUseButton(buttonPermissionCode: string): boolean;
    setDropdownDatasource(field: string, dataSource: any[]): void;
    getItemWorkflowSetting(setting: CrudListSetting, rowData: any): Promise<void | WorkflowSettingNew>;
    showFormStartWorkflow(rowData: any): Promise<void>;
    getTenCongViec(templateText: string, rowData: any): string;
    private tongHopWorkflowHistoryForNextFirstStep;
    private insertTaskAndReload;
    /**
     * call back khi ấn lưu trên form bắt đầu quy trình
     * crud-list sẽ gọi hàm lưu chứ form start workflow k làm gì cả
     * ĐỂ TẬN DỤNG LẠI HÀM startWorkflow của crud-list
     */
    handleStartWorkflowFromDialog(workflow: WfItem): void;
    showActionWorkflow(evt: any, rowData: any): Promise<void>;
    getButtonContext(rowData: any): Promise<any[]>;
    getActionWorkflow(rowData: any): Promise<any[] | void>;
    getActionWorkflowByTask(rowData: any): Promise<any[] | void>;
    private _getActionWorkflowBase;
    viewTaskDetail(rowData: any): Promise<void>;
    rollbackWorkflow(crudListSetting: CrudListSetting, rowData: any): void;
    viewHistoryWorkflow(crudListSetting: CrudListSetting, rowData: number): Promise<void>;
    handleHideHistoryWorkflow(): void;
    processWorkflow(crudListSetting: CrudListSetting, itemWorkflowSetting: any, workflowAction: WfAction): Promise<void>;
    showFormChoYKien(crudListSetting: CrudListSetting, rowData: any): Promise<void>;
    startWorkflow(rowData: any, workflow: WfItem): Promise<void>;
    handleProcessedWorkflowBase(): void;
    copyLink(rowData: any): void;
    copyLinkMultiple(): void;
    showShareLinkForm(lstItem: any): void;
    createShareLink(): Promise<void>;
    createShareLinkMultiple(): Promise<void>;
    disableMultipleCopyLink(): boolean;
    disableCopyLink(rowData: any): boolean;
    showSettingsPermission(): Promise<void>;
    showSettingsWorkflow(): void;
    showSettingsWorkflowNew(): Promise<void>;
    showLinkSharing(): void;
    showAttachedTask(): Promise<void>;
    showListPermissionByItem(): void;
    onSaveWorkflowSettings(event: any): void;
    onSaveWorkflowSettingsNew(evt: any): void;
    onRemoveWorkflowSettings(evt: any): void;
    goToTask(event: any): void;
    adjustPositionLoadingMask(): void;
    saveReorder(): void;
}
//# sourceMappingURL=list-component-base.d.ts.map