import { EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { Observable, Subject, Subscription } from 'rxjs'; import { PaginableTableCellDirective } from '../../directives/paginable-table-cell.directive'; import { PaginableTableExpandingRowDirective } from '../../directives/paginable-table-expanding-row.directive'; import { PaginableTableFilterDirective } from '../../directives/paginable-table-filter.directive'; import { PaginableTableHeaderDirective } from '../../directives/paginable-table-header.directive'; import { FilterChangeEvent } from '../../interfaces/filter-change-event'; import { ItemClickEvent } from '../../interfaces/item-click-event'; import { PaginableTableButton } from '../../interfaces/paginable-table-button'; import { PaginableTableDropdown } from '../../interfaces/paginable-table-dropdown'; import { PaginableTableHeader } from '../../interfaces/paginable-table-header'; import { PaginableTableItem } from '../../interfaces/paginable-table-item'; import { PaginableTableOptions } from '../../interfaces/paginable-table-options'; import { PaginableTableOrdination } from '../../interfaces/paginable-table-ordination'; import { PaginableTablePagination } from '../../interfaces/paginable-table-pagination'; import { PaginationParamsChangeEvent } from '../../interfaces/params-change-event'; import { View } from '../../interfaces/view'; import { DropdownComponent } from '../dropdown/dropdown.component'; import * as i0 from "@angular/core"; export declare class PaginableTableComponent implements OnInit, OnDestroy { #private; private _configSvc; private _paginationSvc; id: string; private _headers?; showSearchInput: boolean; options: PaginableTableOptions; loading: boolean; errorOcurred: boolean; /** * Table headers * * @readonly * @type {(PaginableTableHeader[])} * @memberof PaginableTableComponent */ get headers(): Array; set headers(value: Array); /** * The number of columns in the table. * * @type {number} * @memberof PaginableTableComponent */ columnsCount: number; get lastColumnOnlyHasButtons(): boolean | null | undefined; data: PaginableTablePagination | null; /** * Items paginated * * @private * @type {PaginableTablePagination} * @memberof PaginableTableComponent */ private _pagination; get pagination(): PaginableTablePagination | Observable | null; set pagination(v: PaginableTablePagination | Observable); /** * Items not paginated * * @private * @type {any[]} * @memberof PaginableTableComponent */ private _rows; get rows(): any[] | null; set rows(v: any[]); /** * Collection of selected rows * * @type {any[]} * @memberof PaginableTableComponent */ selectedItems: any[]; /** * Set whether all page rows are selecteds * * @type {boolean} * @memberof PaginableTableComponent */ allRowsSelected: boolean; /** * Set whether the rows are selectable * * @type {boolean} * @memberof PaginableTableComponent */ selectable: boolean; /** * Set whether the selectable can be multiple * * @type {boolean} * @memberof PaginableTableComponent */ multiple: boolean; /** * If set, it will be the property returned in the onSelected event * * @type {string} * @memberof PaginableTableComponent */ selectableProperty?: string; /** * Event triggered when a row or multiples rows are selected or unselected * * @memberof PaginableTableComponent */ onSelected: EventEmitter; /** * Pagination position * * @type {('bottom' | 'top' | 'both')} * @memberof PaginableTableComponent */ paginationPosition: 'bottom' | 'top' | 'both'; paginationInfo: boolean; searchText: string; searchKeys: string[]; ordination: PaginableTableOrdination | null; /** * Collection of actions for items * * @type {PaginableTableRowAction[]} * @memberof PaginableTableComponent */ private _batchActions; get batchActions(): Array; set batchActions(v: Array); batchActionsDropdown?: PaginableTableDropdown; batchAction?: PaginableTableButton | null; /** * Sets the action column to sticky * * @type {PaginableTableRowAction[]} * @memberof PaginableTableComponent */ stickyActions: boolean; /** * On item click event emitter * * @memberof PaginableTableComponent */ clickFn: (event: ItemClickEvent) => void | Promise; /** * On page click event emitter * * @memberof PaginableTableComponent */ onPageClick: EventEmitter; /** * On params change event emitter * * @memberof PaginableTableComponent */ onParamsChange: EventEmitter; filterChange: EventEmitter; mapping: any; /** * Rows per page options * * @private * @type {number[]} * @memberof PaginableTableComponent */ private _perPageOptions; get perPageOptions(): number[]; set perPageOptions(v: number[]); /** * Items per page * * @private * @type {number} * @memberof PaginableTableComponent */ private _itemsPerPage; get itemsPerPage(): number; set itemsPerPage(v: number); responsiveCSSClass: string | null; private _responsive?; get responsive(): string | null; set responsive(v: string); filterHeaders?: PaginableTableHeader[]; hasColumnFilters: boolean; /** * Filter form * * @type {FormGroup} * @memberof PaginableTableComponent */ filterFG: FormGroup; filterFGSct?: Subscription; filterLoading: boolean; filterTrigger$: Subject; /** * Time to ouput the filter form value * * @type {number} * @memberof PaginableTableComponent */ debounce: number; disabled: boolean; /** * Set if the data must be paginated * * @type {boolean} * @memberof PaginableTableComponent */ paginate: boolean; paginators?: QueryList; templateRow?: TemplateRef; headerTpts: QueryList; templateCells: QueryList; noDataTpt?: TemplateRef; loadingTpt?: TemplateRef; errorTpt?: TemplateRef; templateExpandingRows: QueryList; filterTpts: QueryList; dropdownComponents?: QueryList; /** * Set if the view selector must be showed * * @type {boolean} * @memberof PaginableTableComponent */ showViewSelector: boolean; viewSaverForm: any; private _views?; get views(): View[] | null; set views(v: View[]); get searchFG(): FormControl; get specificSearchFG(): FormGroup; ngOnInit(): void; ngOnDestroy(): void; writeValue(value: any): void; onChange: (_: any) => void; onTouch: () => void; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; setDisabledState(isDisabled: boolean): void; /** * Obtiene la propiedad del objeto cuya clave es pasada por parámetro * * @param {object} item * @param {string} key * @returns {*} * @memberof PaginableTableComponent */ getProperty(item: object, key: string): any; /** * Handles click events by extracting specific properties and passing them to a callback function. * * @param - The `onItemClick` function takes in the following parameters: collapsed, selected and item. * @param {number} depth - The `depth` parameter in the `onItemClick` function represents the depth level of the item being * clicked. It is a number that indicates how deep the item is nested within a hierarchical structure. * @param {number} index - The `index` parameter in the `onItemClick` function represents the position of the item that was clicked * within a list or array. It is a number that indicates the index of the clicked item. * * @returns If the `clickFn` property is not defined in the current context, the `onItemClick` function will return without * executing any further code. */ onItemClick({ collapsed, selected, ...item }: { [x: string]: any; collapsed: any; selected: any; }, depth: number, index: number): void; filter(): void; pageClicked(page: number): void; /** * If paging is done on the server, a parameter change subscription is launched. Otherwise, * get the data sorted according to the header passed by parameter. * * @param {PaginableTableHeader} header * @returns {void} * @memberof PaginableTableComponent */ sort(header: PaginableTableHeader): void; triggerTheParamChanges(): void; /** * Get the ordination class * * @param {PaginableTableHeader} header * @returns * @memberof PaginableTableComponent */ getOrdenationClass(header: PaginableTableHeader): "fa-sort" | "fa-sort-up" | "fa-sort-down"; /** * If it exists, returns the header cell template for the header passed by parameter * * @param {(PaginableTableHeader)} header * @returns {TemplateRef} * @memberof PaginableTableComponent */ getHeaderTemplate(header: PaginableTableHeader): TemplateRef | null; /** * If it exists, returns the cell template for the header passed by parameter * * @param {(PaginableTableHeader)} header * @returns {TemplateRef} * @memberof PaginableTableComponent */ getCellTemplate(header: PaginableTableHeader): TemplateRef | null; /** * If it exists, returns the filter template for the header passed by parameter * * @param {(PaginableTableHeader)} header * @returns {TemplateRef} * @memberof PaginableTableComponent */ getFilterTemplate(header: PaginableTableHeader): TemplateRef | null; /** * Handles the action to execute * * @param {Function} handler * @param {*} item * @memberof PaginableTableComponent */ handleAction(event: Event, handler: (...args: any) => void, item: any): void; /** * Handles the action to be executed in a batch * * @param {Event} event * @memberof PaginableTableComponent */ handleBatchAction(event: any): void; /** * Determines whether to display the batch actions menu * * @type {boolean} * @memberof PaginableTableComponent */ batchActionsShown: boolean; isHidden(button: PaginableTableButton, item: any): Observable; /** * Expand or unexpand an expanding row * * @param {PaginableTableItem} item * @memberof PaginableTableComponent */ toggleExpandedRow(item: PaginableTableItem): void; /** * Select or unselect all page items * * @memberof PaginableTableComponent */ toggleAll(): void; /** * Select or unselect a row * * @param {*} item * @memberof PaginableTableComponent */ toggle(item: any): void; /** * Select or deselect a row if it exists in the collection of selected items * * @memberof PaginableTableComponent */ markSelected(): void; /** * Check if a needle exists in a list * * @private * @param {any[]} list * @param {*} needle * @return {*} {boolean} * @memberof PaginableTableComponent */ private _contains; /** * Initializes the filtering form and its subscription * * @memberof PaginableTableComponent */ _initializeFilterForm(): void; /** * Calculates the number of columns in the table, based on its headers and other optional elements. * * @private * @memberof PaginableTableComponent */ private _countColumns; /** * Clean the advanced filter form * * @memberof PaginableTableComponent */ clearAdvancedFilters(): void; /** * Emite el valor de los items seleccionados * */ emitValue(): void; /** * Closes all other dropdowns except the one with the specified id. * * @param {id} - The `onDropdownFilterOpened` function takes an object parameter `id`. */ onDropdownFilterOpened({ id }: { id: any; }): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "paginable-table", never, { "id": { "alias": "id"; "required": false; }; "showSearchInput": { "alias": "showSearchInput"; "required": false; }; "options": { "alias": "options"; "required": false; }; "headers": { "alias": "headers"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "selectableProperty": { "alias": "selectableProperty"; "required": false; }; "paginationPosition": { "alias": "paginationPosition"; "required": false; }; "paginationInfo": { "alias": "paginationInfo"; "required": false; }; "searchKeys": { "alias": "searchKeys"; "required": false; }; "ordination": { "alias": "ordination"; "required": false; }; "batchActions": { "alias": "batchActions"; "required": false; }; "stickyActions": { "alias": "stickyActions"; "required": false; }; "clickFn": { "alias": "clickFn"; "required": false; }; "perPageOptions": { "alias": "perPageOptions"; "required": false; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "paginate": { "alias": "paginate"; "required": false; }; "showViewSelector": { "alias": "showViewSelector"; "required": false; }; "viewSaverForm": { "alias": "viewSaverForm"; "required": false; }; "views": { "alias": "views"; "required": false; }; }, { "onSelected": "onSelected"; "onPageClick": "onPageClick"; "onParamsChange": "onParamsChange"; "filterChange": "filterChange"; }, ["templateRow", "noDataTpt", "loadingTpt", "errorTpt", "paginators", "headerTpts", "templateCells", "templateExpandingRows", "filterTpts"], never, false, never>; }