{"version":3,"file":"ngx-tabulator-tables.mjs","sources":["../../../src/tabulator/column.directive.ts","../../../src/tabulator/tabulator.component.ts","../../../src/tabulator/tabulator.module.ts","../../../src/tabulator/ngx-tabulator-tables.ts"],"sourcesContent":["import { ContentChild, Directive, EventEmitter, Input, OnChanges, Output, SimpleChanges, TemplateRef } from '@angular/core';\nimport { ColumnDefinition } from 'tabulator-tables';\nimport { TabulatorComponent } from './tabulator.component';\n\ntype OutputKeys = 'headerClick' | 'headerDblClick' | 'headerMouseDown' | 'headerMouseUp' | 'headerContext' | 'headerTap' | 'headerDblTap' | 'headerTapHold' | 'cellClick' | 'cellDblClick' | 'cellContext' | 'cellTap' | 'cellDblTap' | 'cellTapHold' | 'cellMouseEnter' | 'cellMouseLeave' | 'cellMouseOver' | 'cellMouseOut' | 'cellMouseMove' | 'cellEditing' | 'cellEdited' | 'cellEditCancelled' | 'cellMouseDown' | 'cellMouseUp';\n\n@Directive({\n    selector: 'ngx-tabulator>ngx-tabulator-column'\n})\nexport class ColumnDirective implements OnChanges, Omit<ColumnDefinition, OutputKeys> {\n\n    @Input() accessorClipboard: ColumnDefinition['accessorClipboard'];\n    @Input() accessor: ColumnDefinition['accessor'];\n    @Input() accessorClipboardParams: ColumnDefinition['accessorClipboardParams'];\n    @Input() accessorDownload: ColumnDefinition['accessorDownload'];\n    @Input() accessorDownloadParams: ColumnDefinition['accessorDownloadParams'];\n    @Input() accessorHtmlOutput: ColumnDefinition['accessorHtmlOutput'];\n    @Input() accessorHtmlOutputParams: ColumnDefinition['accessorHtmlOutputParams'];\n    @Input() accessorParams: ColumnDefinition['accessorParams'];\n    @Input() accessorPrint: ColumnDefinition['accessorPrint'];\n    @Input() accessorPrintParams: ColumnDefinition['accessorPrintParams'];\n    @Input() bottomCalc: ColumnDefinition['bottomCalc'];\n    @Input() bottomCalcFormatter: ColumnDefinition['bottomCalcFormatter'];\n    @Input() bottomCalcFormatterParams: ColumnDefinition['bottomCalcFormatterParams'];\n    @Input() bottomCalcParams: ColumnDefinition['bottomCalcParams'];\n    @Input() cellPopup: ColumnDefinition['cellPopup'];\n    @Input() clickMenu: ColumnDefinition['clickMenu'];\n    @Input() clipboard: ColumnDefinition['clipboard'];\n    @Input() columns: ColumnDefinition['columns'];\n    @Input() contextMenu: ColumnDefinition['contextMenu'];\n    @Input() cssClass: ColumnDefinition['cssClass'];\n    @Input() dblClickMenu: ColumnDefinition['dblClickMenu'];\n    @Input() dblClickPopup: ColumnDefinition['dblClickPopup'];\n    @Input() download: ColumnDefinition['download'];\n    @Input() editable: ColumnDefinition['editable'];\n    @Input() editableTitle: ColumnDefinition['editableTitle'];\n    @Input() editor: ColumnDefinition['editor'];\n    @Input() editorEmptyValue: ColumnDefinition['editorEmptyValue'];\n    @Input() editorEmptyValueFunc: ColumnDefinition['editorEmptyValueFunc'];\n    @Input() editorParams: ColumnDefinition['editorParams'];\n    @Input() field: ColumnDefinition['field'];\n    @Input() formatter: ColumnDefinition['formatter'];\n    @Input() formatterClipboard: ColumnDefinition['formatterClipboard'];\n    @Input() formatterClipboardParams: ColumnDefinition['formatterClipboardParams'];\n    @Input() formatterHtmlOutput: ColumnDefinition['formatterHtmlOutput'];\n    @Input() formatterHtmlOutputParams: ColumnDefinition['formatterHtmlOutputParams'];\n    @Input() formatterParams: ColumnDefinition['formatterParams'];\n    @Input() formatterPrint: ColumnDefinition['formatterPrint'];\n    @Input() formatterPrintParams: ColumnDefinition['formatterPrintParams'];\n    @Input() frozen: ColumnDefinition['frozen'];\n    @Input() headerContextMenu: ColumnDefinition['headerContextMenu'];\n    @Input() headerDblClickMenu: ColumnDefinition['headerDblClickMenu'];\n    @Input() headerDblClickPopup: ColumnDefinition['headerDblClickPopup'];\n    @Input() headerFilter: ColumnDefinition['headerFilter'];\n    @Input() headerFilterEmptyCheck: ColumnDefinition['headerFilterEmptyCheck'];\n    @Input() headerFilterFunc: ColumnDefinition['headerFilterFunc'];\n    @Input() headerFilterFuncParams: ColumnDefinition['headerFilterFuncParams'];\n    @Input() headerFilterLiveFilter: ColumnDefinition['headerFilterLiveFilter'];\n    @Input() headerFilterParams: ColumnDefinition['headerFilterParams'];\n    @Input() headerFilterPlaceholder: ColumnDefinition['headerFilterPlaceholder'];\n    @Input() headerHozAlign: ColumnDefinition['headerHozAlign'];\n    @Input() headerMenu: ColumnDefinition['headerMenu'];\n    @Input() headerMenuIcon: ColumnDefinition['headerMenuIcon'];\n    @Input() headerSort: ColumnDefinition['headerSort'];\n    @Input() headerSortStartingDir: ColumnDefinition['headerSortStartingDir'];\n    @Input() headerSortTristate: ColumnDefinition['headerSortTristate'];\n    @Input() headerTooltip: ColumnDefinition['headerTooltip'];\n    @Input() headerVertical: ColumnDefinition['headerVertical'];\n    @Input() headerWordWrap: ColumnDefinition['headerWordWrap'];\n    @Input() hideInHtml: ColumnDefinition['hideInHtml'];\n    @Input() hozAlign: ColumnDefinition['hozAlign'];\n    @Input() htmlOutput: ColumnDefinition['htmlOutput'];\n    @Input() maxWidth: ColumnDefinition['maxWidth'];\n    @Input() minWidth: ColumnDefinition['minWidth'];\n    @Input() mutator: ColumnDefinition['mutator'];\n    @Input() mutatorClipboard: ColumnDefinition['mutatorClipboard'];\n    @Input() mutatorClipboardParams: ColumnDefinition['mutatorClipboardParams'];\n    @Input() mutatorData: ColumnDefinition['mutatorData'];\n    @Input() mutatorDataParams: ColumnDefinition['mutatorDataParams'];\n    @Input() mutatorEdit: ColumnDefinition['mutatorEdit'];\n    @Input() mutatorEditParams: ColumnDefinition['mutatorEditParams'];\n    @Input() mutatorParams: ColumnDefinition['mutatorParams'];\n    @Input() print: ColumnDefinition['print'];\n    @Input() resizable: ColumnDefinition['resizable'];\n    @Input() responsive: ColumnDefinition['responsive'];\n    @Input() rowHandle: ColumnDefinition['rowHandle'];\n    @Input() sorter: ColumnDefinition['sorter'];\n    @Input() sorterParams: ColumnDefinition['sorterParams'];\n    @Input() title: ColumnDefinition['title'];\n    @Input() titleClipboard: ColumnDefinition['titleClipboard'];\n    @Input() titleDownload: ColumnDefinition['titleDownload'];\n    @Input() titleFormatter: ColumnDefinition['titleFormatter'];\n    @Input() titleFormatterParams: ColumnDefinition['titleFormatterParams'];\n    @Input() titleHtmlOutput: ColumnDefinition['titleHtmlOutput'];\n    @Input() titlePrint: ColumnDefinition['titlePrint'];\n    @Input() tooltip: ColumnDefinition['tooltip'];\n    @Input() topCalc: ColumnDefinition['topCalc'];\n    @Input() topCalcFormatter: ColumnDefinition['topCalcFormatter'];\n    @Input() topCalcFormatterParams: ColumnDefinition['topCalcFormatterParams'];\n    @Input() topCalcParams: ColumnDefinition['topCalcParams'];\n    @Input() validator: ColumnDefinition['validator'];\n    @Input() variableHeight: ColumnDefinition['variableHeight'];\n    @Input() vertAlign: ColumnDefinition['vertAlign'];\n    @Input() visible: ColumnDefinition['visible'];\n    @Input() width: ColumnDefinition['width'];\n    @Input() widthGrow: ColumnDefinition['widthGrow'];\n    @Input() widthShrink: ColumnDefinition['widthShrink'];\n\n    // @Output() onClick = new EventEmitter<Parameters<MiniMapProps['onClick']>>();\n    // @Output() onNodeClick = new EventEmitter<Parameters<MiniMapProps['onNodeClick']>>();\n\n    @Output() headerClick = new EventEmitter<[Parameters<ColumnDefinition['headerClick']>]>();\n    @Output() headerDblClick = new EventEmitter<[Parameters<ColumnDefinition['headerDblClick']>]>();\n    @Output() headerMouseDown = new EventEmitter<[Parameters<ColumnDefinition['headerMouseDown']>]>();\n    @Output() headerMouseUp = new EventEmitter<[Parameters<ColumnDefinition['headerMouseUp']>]>();\n    @Output() headerContext = new EventEmitter<[Parameters<ColumnDefinition['headerContext']>]>();\n    @Output() headerTap = new EventEmitter<[Parameters<ColumnDefinition['headerTap']>]>();\n    @Output() headerDblTap = new EventEmitter<[Parameters<ColumnDefinition['headerDblTap']>]>();\n    @Output() headerTapHold = new EventEmitter<[Parameters<ColumnDefinition['headerTapHold']>]>();\n    @Output() cellClick = new EventEmitter<[Parameters<ColumnDefinition['cellClick']>]>();\n    @Output() cellDblClick = new EventEmitter<[Parameters<ColumnDefinition['cellDblClick']>]>();\n    @Output() cellContext = new EventEmitter<[Parameters<ColumnDefinition['cellContext']>]>();\n    @Output() cellTap = new EventEmitter<[Parameters<ColumnDefinition['cellTap']>]>();\n    @Output() cellDblTap = new EventEmitter<[Parameters<ColumnDefinition['cellDblTap']>]>();\n    @Output() cellTapHold = new EventEmitter<[Parameters<ColumnDefinition['cellTapHold']>]>();\n    @Output() cellMouseEnter = new EventEmitter<[Parameters<ColumnDefinition['cellMouseEnter']>]>();\n    @Output() cellMouseLeave = new EventEmitter<[Parameters<ColumnDefinition['cellMouseLeave']>]>();\n    @Output() cellMouseOver = new EventEmitter<[Parameters<ColumnDefinition['cellMouseOver']>]>();\n    @Output() cellMouseOut = new EventEmitter<[Parameters<ColumnDefinition['cellMouseOut']>]>();\n    @Output() cellMouseMove = new EventEmitter<[Parameters<ColumnDefinition['cellMouseMove']>]>();\n    @Output() cellEditing = new EventEmitter<[Parameters<ColumnDefinition['cellEditing']>]>();\n    @Output() cellEdited = new EventEmitter<[Parameters<ColumnDefinition['cellEdited']>]>();\n    @Output() cellEditCancelled = new EventEmitter<[Parameters<ColumnDefinition['cellEditCancelled']>]>();\n    @Output() cellMouseDown = new EventEmitter<[Parameters<ColumnDefinition['cellMouseDown']>]>();\n    @Output() cellMouseUp = new EventEmitter<[Parameters<ColumnDefinition['cellMouseUp']>]>();\n\n    @ContentChild(TemplateRef) cellTemplate: TemplateRef<any>;\n    @ContentChild('headerTemplate', { read: TemplateRef }) headerTemplate: TemplateRef<any>;\n    // @ContentChild(TemplateRef) template2: TemplateRef<any>;\n\n    constructor(private readonly tabulator: TabulatorComponent) { }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (!this.tabulator.table) return;\n\n        const changedKeys = Object.keys(changes).filter(key => !changes[key].firstChange);\n        if (changedKeys.length === 0) return;\n\n        const hasField = !!this.field;\n\n        // Handle visibility changes with direct showColumn/hideColumn API\n        if (hasField && changedKeys.length === 1 && changedKeys[0] === 'visible') {\n            if (changes['visible'].currentValue) {\n                this.tabulator.table.showColumn(this.field);\n            } else {\n                this.tabulator.table.hideColumn(this.field);\n            }\n            return;\n        }\n\n        // Properties that can be updated dynamically via updateColumnDefinition\n        const updatableProps = new Set([\n            'title', 'width', 'minWidth', 'maxWidth', 'resizable',\n            'frozen', 'cssClass', 'hozAlign', 'vertAlign', 'headerHozAlign',\n            'editableTitle', 'headerSort', 'headerWordWrap', 'headerVertical',\n            'headerTooltip', 'headerFilterPlaceholder', 'editorEmptyValue'\n        ]);\n\n        if (hasField && changedKeys.length > 0) {\n            const canUpdateDynamically = changedKeys.every(key => updatableProps.has(key));\n\n            if (canUpdateDynamically) {\n                // Use efficient update for simple property changes\n                changedKeys.forEach(key => {\n                    const def: Partial<ColumnDefinition> = { [key]: changes[key].currentValue };\n                    this.tabulator.table.updateColumnDefinition(this.field, def as ColumnDefinition);\n                });\n                return;\n            }\n        }\n\n        // Update all columns when complex changes occur\n        this.tabulator.table.setColumns(this.tabulator._getColumns());\n    }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ApplicationRef, Component, ContentChildren, createComponent, EventEmitter, Injector, Input, NgZone, Output, QueryList, SimpleChanges, TemplateRef, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { CellComponent, EventCallBackMethods, Options, RowComponent, TabulatorFull as Tabulator, type ColumnDefinition } from 'tabulator-tables';\nimport { ColumnDirective } from './column.directive';\n\nexport type TabulatorEvent<T = any> = {\n    event: any,\n    row?: RowComponent,\n    cell?: CellComponent,\n    data: T;\n};\n\nconst getProps: <T extends {}>(obj: T) => T = (obj: any = {}) => {\n    const props = {};\n    Object.entries(obj).forEach(([k, v]) => {\n        // Omit things prefixed with an underscore\n        if (k.startsWith('_')) return;\n        // Omit output event emitters\n        if (k.startsWith('on')) return;\n        if (['tabulator', 'cellTemplate', 'headerTemplate'].includes(k)) return;\n\n        props[k] = v;\n    });\n    return props as any;\n};\n\n@Component({\n    template: `<ng-container\n        [ngTemplateOutlet]=\"template\"\n        [ngTemplateOutletContext]=\"{'$implicit': data}\"\n    />`,\n    standalone: true,\n    imports: [NgTemplateOutlet]\n})\nclass TemplateWrapper {\n    @Input() template: TemplateRef<any>;\n    @Input() data: Object;\n}\n\n@Component({\n    selector: 'ngx-tabulator',\n    template: '',\n    styleUrls: [],\n    encapsulation: ViewEncapsulation.None\n})\nexport class TabulatorComponent implements Omit<Tabulator, 'columnManager' | 'rowManager' | 'footerManager' | 'browser' | 'browserSlow' | 'modules' | 'element'>, Omit<Options, 'columns'> {\n\n    @ContentChildren(ColumnDirective) columns: QueryList<ColumnDirective>;\n\n    private _dataSource = [];\n    private _tableInitialized = false;\n    @Input() set dataSource(data: Object[]) {\n        // Skip if data reference hasn't changed (prevents unnecessary redraws)\n        if (this._dataSource === data) return;\n\n        this._dataSource = data;\n\n        // Only update data if table is fully initialized (prevents HMR issues)\n        if (!this._tableInitialized) return;\n\n        if (this.table?.getDataCount() > 0) {\n            this.table.replaceData(data);\n        }\n        else {\n            this.table?.setData(this.dataSource);\n        }\n    };\n    get dataSource() { return this._dataSource; };\n\n    @Input() options: Options = {};\n\n    table: Tabulator;\n\n    @Input() height: Options['height'];\n    @Input() maxHeight: Options['maxHeight'];\n    @Input() minHeight: Options['minHeight'];\n    @Input() renderVertical: Options['renderVertical'];\n    @Input() renderHorizontal: Options['renderHorizontal'];\n    @Input() rowHeight: Options['rowHeight'];\n    @Input() renderVerticalBuffer: Options['renderVerticalBuffer'];\n    @Input() placeholder: Options['placeholder'];\n    @Input() placeholderHeaderFilter: Options['placeholderHeaderFilter'];\n    @Input() footerElement: Options['footerElement'];\n    @Input() keybindings: Options['keybindings'];\n    @Input() reactiveData: Options['reactiveData'];\n    @Input() autoResize: Options['autoResize'];\n    @Input() invalidOptionWarnings: Options['invalidOptionWarnings'];\n    @Input() validationMode: Options['validationMode'];\n    @Input() textDirection: Options['textDirection'];\n    @Input() rowHeader: Options['rowHeader'];\n    @Input() editorEmptyValue: Options['editorEmptyValue'];\n    @Input() editorEmptyValueFunc: Options['editorEmptyValueFunc'];\n    @Input() rowContextMenu: Options['rowContextMenu'];\n    @Input() rowClickMenu: Options['rowClickMenu'];\n    @Input() rowDblClickMenu: Options['rowDblClickMenu'];\n    @Input() groupClickMenu: Options['groupClickMenu'];\n    @Input() groupDblClickMenu: Options['groupDblClickMenu'];\n    @Input() groupContextMenu: Options['groupContextMenu'];\n    @Input() popupContainer: Options['popupContainer'];\n    @Input() groupClickPopup: Options['groupClickPopup'];\n    @Input() groupContextPopup: Options['groupContextPopup'];\n    @Input() groupDblPopup: Options['groupDblPopup'];\n    @Input() groupDblClickPopup: Options['groupDblClickPopup'];\n    @Input() rowClickPopup: Options['rowClickPopup'];\n    @Input() rowContextPopup: Options['rowContextPopup'];\n    @Input() rowDblClickPopup: Options['rowDblClickPopup'];\n    @Input() history: Options['history'];\n    @Input() locale: Options['locale'];\n    @Input() langs: Options['langs'];\n    @Input() downloadEncoder: Options['downloadEncoder'];\n    @Input() downloadConfig: Options['downloadConfig'];\n    @Input() downloadRowRange: Options['downloadRowRange'];\n    @Input() downloadDataFormatter: Options['downloadDataFormatter'];\n    @Input() downloadReady: Options['downloadReady'];\n    @Input() autoColumns: Options['autoColumns'];\n    @Input() autoColumnsDefinitions: Options['autoColumnsDefinitions'];\n    @Input() layout: Options['layout'];\n    @Input() layoutColumnsOnNewData: Options['layoutColumnsOnNewData'];\n    @Input() responsiveLayout: Options['responsiveLayout'];\n    @Input() responsiveLayoutCollapseStartOpen: Options['responsiveLayoutCollapseStartOpen'];\n    @Input() responsiveLayoutCollapseUseFormatters: Options['responsiveLayoutCollapseUseFormatters'];\n    @Input() responsiveLayoutCollapseFormatter: Options['responsiveLayoutCollapseFormatter'];\n    @Input() movableColumns: Options['movableColumns'];\n    @Input() columnHeaderVertAlign: Options['columnHeaderVertAlign'];\n    @Input() scrollToColumnPosition: Options['scrollToColumnPosition'];\n    @Input() scrollToColumnIfVisible: Options['scrollToColumnIfVisible'];\n    @Input() columnCalcs: Options['columnCalcs'];\n    @Input() nestedFieldSeparator: Options['nestedFieldSeparator'];\n    @Input() columnHeaderSortMulti: Options['columnHeaderSortMulti'];\n    @Input() headerVisible: Options['headerVisible'];\n    @Input() headerSort: Options['headerSort'];\n    @Input() headerSortElement: Options['headerSortElement'];\n    @Input() columnDefaults: Options['columnDefaults'];\n    @Input() resizableColumnFit: Options['resizableColumnFit'];\n    @Input() rowFormatter: Options['rowFormatter'];\n    @Input() rowFormatterPrint: Options['rowFormatterPrint'];\n    @Input() rowFormatterHtmlOutput: Options['rowFormatterHtmlOutput'];\n    @Input() rowFormatterClipboard: Options['rowFormatterClipboard'];\n    @Input() addRowPos: Options['addRowPos'];\n    @Input() selectable: Options['selectable'];\n    @Input() selectableRows: Options['selectableRows'];\n    @Input() selectableRange: Options['selectableRange'];\n    @Input() selectableRangeColumns: Options['selectableRangeColumns'];\n    @Input() selectableRangeRows: Options['selectableRangeRows'];\n    @Input() selectableRangeClearCells: Options['selectableRangeClearCells'];\n    @Input() selectableRangeClearCellsValue: Options['selectableRangeClearCellsValue'];\n    @Input() selectableRangeMode: Options['selectableRangeMode'];\n    @Input() selectableRowsRangeMode: Options['selectableRowsRangeMode'];\n    @Input() selectableRollingSelection: Options['selectableRollingSelection'];\n    @Input() selectableRowsRollingSelection: Options['selectableRowsRollingSelection'];\n    @Input() selectablePersistence: Options['selectablePersistence'];\n    @Input() selectableRowsPersistence: Options['selectableRowsPersistence'];\n    @Input() selectableCheck: Options['selectableCheck'];\n    @Input() movableRows: Options['movableRows'];\n    @Input() movableRowsConnectedTables: Options['movableRowsConnectedTables'];\n    @Input() movableRowsSender: Options['movableRowsSender'];\n    @Input() movableRowsReceiver: Options['movableRowsReceiver'];\n    @Input() movableRowsConnectedElements: Options['movableRowsConnectedElements'];\n    @Input() resizableRows: Options['resizableRows'];\n    @Input() resizableRowGuide: Options['resizableRowGuide'];\n    @Input() resizableColumnGuide: Options['resizableColumnGuide'];\n    @Input() scrollToRowPosition: Options['scrollToRowPosition'];\n    @Input() scrollToRowIfVisible: Options['scrollToRowIfVisible'];\n    @Input() tabEndNewRow: Options['tabEndNewRow'];\n    @Input() frozenRowsField: Options['frozenRowsField'];\n    @Input() frozenRows: Options['frozenRows'];\n    @Input() editTriggerEvent: Options['editTriggerEvent'];\n    @Input() index: Options['index'];\n    @Input() data: Options['data'];\n    @Input() importFormat: Options['importFormat'];\n    @Input() importReader: Options['importReader'];\n    @Input() autoTables: Options['autoTables'];\n    @Input() ajaxURL: Options['ajaxURL'];\n    @Input() ajaxParams: Options['ajaxParams'];\n    @Input() ajaxConfig: Options['ajaxConfig'];\n    @Input() ajaxContentType: Options['ajaxContentType'];\n    @Input() ajaxURLGenerator: Options['ajaxURLGenerator'];\n    @Input() ajaxRequestFunc: Options['ajaxRequestFunc'];\n    @Input() ajaxFiltering: Options['ajaxFiltering'];\n    @Input() ajaxSorting: Options['ajaxSorting'];\n    @Input() progressiveLoad: Options['progressiveLoad'];\n    @Input() progressiveLoadDelay: Options['progressiveLoadDelay'];\n    @Input() progressiveLoadScrollMargin: Options['progressiveLoadScrollMargin'];\n    @Input() ajaxLoader: Options['ajaxLoader'];\n    @Input() ajaxLoaderLoading: Options['ajaxLoaderLoading'];\n    @Input() ajaxLoaderError: Options['ajaxLoaderError'];\n    @Input() ajaxRequesting: Options['ajaxRequesting'];\n    @Input() ajaxResponse: Options['ajaxResponse'];\n    @Input() dataLoader: Options['dataLoader'];\n    @Input() dataLoaderLoading: Options['dataLoaderLoading'];\n    @Input() dataLoaderError: Options['dataLoaderError'];\n    @Input() dataLoaderErrorTimeout: Options['dataLoaderErrorTimeout'];\n    @Input() sortMode: Options['sortMode'];\n    @Input() filterMode: Options['filterMode'];\n    @Input() initialSort: Options['initialSort'];\n    @Input() sortOrderReverse: Options['sortOrderReverse'];\n    @Input() headerSortClickElement: Options['headerSortClickElement'];\n    @Input() initialFilter: Options['initialFilter'];\n    @Input() initialHeaderFilter: Options['initialHeaderFilter'];\n    @Input() headerFilterLiveFilterDelay: Options['headerFilterLiveFilterDelay'];\n    @Input() groupBy: Options['groupBy'];\n    @Input() groupValues: Options['groupValues'];\n    @Input() groupHeader: Options['groupHeader'];\n    @Input() groupHeaderPrint: Options['groupHeaderPrint'];\n    @Input() groupStartOpen: Options['groupStartOpen'];\n    @Input() groupToggleElement: Options['groupToggleElement'];\n    @Input() groupClosedShowCalcs: Options['groupClosedShowCalcs'];\n    @Input() groupUpdateOnCellEdit: Options['groupUpdateOnCellEdit'];\n    @Input() pagination: Options['pagination'];\n    @Input() paginationMode: Options['paginationMode'];\n    @Input() paginationSize: Options['paginationSize'];\n    @Input() paginationSizeSelector: Options['paginationSizeSelector'];\n    @Input() paginationElement: Options['paginationElement'];\n    @Input() dataReceiveParams: Options['dataReceiveParams'];\n    @Input() dataSendParams: Options['dataSendParams'];\n    @Input() paginationAddRow: Options['paginationAddRow'];\n    @Input() paginationCounter: Options['paginationCounter'];\n    @Input() paginationCounterElement: Options['paginationCounterElement'];\n    @Input() paginationButtonCount: Options['paginationButtonCount'];\n    @Input() paginationInitialPage: Options['paginationInitialPage'];\n    @Input() persistenceID: Options['persistenceID'];\n    @Input() persistenceMode: Options['persistenceMode'];\n    @Input() persistentLayout: Options['persistentLayout'];\n    @Input() persistentSort: Options['persistentSort'];\n    @Input() persistentFilter: Options['persistentFilter'];\n    @Input() persistence: Options['persistence'];\n    @Input() persistenceWriterFunc: Options['persistenceWriterFunc'];\n    @Input() persistenceReaderFunc: Options['persistenceReaderFunc'];\n    @Input() clipboard: Options['clipboard'];\n    @Input() clipboardCopyRowRange: Options['clipboardCopyRowRange'];\n    @Input() clipboardCopyFormatter: Options['clipboardCopyFormatter'];\n    @Input() clipboardCopyHeader: Options['clipboardCopyHeader'];\n    @Input() clipboardPasteParser: Options['clipboardPasteParser'];\n    @Input() clipboardPasteAction: Options['clipboardPasteAction'];\n    @Input() clipboardCopyStyled: Options['clipboardCopyStyled'];\n    @Input() clipboardCopyConfig: Options['clipboardCopyConfig'];\n    @Input() groupHeaderClipboard: Options['groupHeaderClipboard'];\n    @Input() groupHeaderHtmlOutput: Options['groupHeaderHtmlOutput'];\n    @Input() dataTree: Options['dataTree'];\n    @Input() dataTreeElementColumn: Options['dataTreeElementColumn'];\n    @Input() dataTreeBranchElement: Options['dataTreeBranchElement'];\n    @Input() dataTreeChildIndent: Options['dataTreeChildIndent'];\n    @Input() dataTreeChildField: Options['dataTreeChildField'];\n    @Input() dataTreeCollapseElement: Options['dataTreeCollapseElement'];\n    @Input() dataTreeExpandElement: Options['dataTreeExpandElement'];\n    @Input() dataTreeStartExpanded: Options['dataTreeStartExpanded'];\n    @Input() dataTreeSelectPropagate: Options['dataTreeSelectPropagate'];\n    @Input() dataTreeFilter: Options['dataTreeFilter'];\n    @Input() dataTreeSort: Options['dataTreeSort'];\n    @Input() dataTreeChildColumnCalcs: Options['dataTreeChildColumnCalcs'];\n    @Input() invalidOptionWarning: Options['invalidOptionWarning'];\n    @Input() debugInvalidOptions: Options['debugInvalidOptions'];\n    @Input() debugInitialization: Options['debugInitialization'];\n    @Input() debugEventsExternal: Options['debugEventsExternal'];\n    @Input() debugEventsInternal: Options['debugEventsInternal'];\n    @Input() debugInvalidComponentFuncs: Options['debugInvalidComponentFuncs'];\n    @Input() debugDeprecation: Options['debugDeprecation'];\n    @Input() htmlOutputConfig: Options['htmlOutputConfig'];\n    @Input() printAsHtml: Options['printAsHtml'];\n    @Input() printConfig: Options['printConfig'];\n    @Input() printStyled: Options['printStyled'];\n    @Input() printRowRange: Options['printRowRange'];\n    @Input() printHeader: Options['printHeader'];\n    @Input() printFooter: Options['printFooter'];\n    @Input() printFormatter: Options['printFormatter'];\n    @Input() groupHeaderDownload: Options['groupHeaderDownload'];\n    @Input() spreadsheet: Options['spreadsheet'];\n    @Input() spreadsheetRows: Options['spreadsheetRows'];\n    @Input() spreadsheetColumns: Options['spreadsheetColumns'];\n    @Input() spreadsheetColumnDefinition: Options['spreadsheetColumnDefinition'];\n    @Input() spreadsheetSheets: Options['spreadsheetSheets'];\n    @Input() spreadsheetSheetTabs: Options['spreadsheetSheetTabs'];\n    @Input() spreadsheetOutputFull: Options['spreadsheetOutputFull'];\n\n    /**\n     * Tabulator instance methods\n     */\n    download: Tabulator['download'];\n    downloadToTab: Tabulator['downloadToTab'];\n    import: Tabulator['import'];\n    copyToClipboard: Tabulator['copyToClipboard'];\n    undo: Tabulator['undo'];\n    getHistoryUndoSize: Tabulator['getHistoryUndoSize'];\n    redo: Tabulator['redo'];\n    getHistoryRedoSize: Tabulator['getHistoryRedoSize'];\n    getEditedCells: Tabulator['getEditedCells'];\n    clearCellEdited: Tabulator['clearCellEdited'];\n    alert: Tabulator['alert'];\n    clearAlert: Tabulator['clearAlert'];\n    destroy: Tabulator['destroy'];\n    setData: Tabulator['setData'];\n    clearData: Tabulator['clearData'];\n    getData: Tabulator['getData'];\n    getDataCount: Tabulator['getDataCount'];\n    searchRows: Tabulator['searchRows'];\n    searchData: Tabulator['searchData'];\n    getHtml: Tabulator['getHtml'];\n    print: Tabulator['print'];\n    getAjaxUrl: Tabulator['getAjaxUrl'];\n    replaceData: Tabulator['replaceData'];\n    updateData: Tabulator['updateData'];\n    addData: Tabulator['addData'];\n    updateOrAddData: Tabulator['updateOrAddData'];\n    getRow: Tabulator['getRow'];\n    getRowFromPosition: Tabulator['getRowFromPosition'];\n    deleteRow: Tabulator['deleteRow'];\n    addRow: Tabulator['addRow'];\n    updateOrAddRow: Tabulator['updateOrAddRow'];\n    updateRow: Tabulator['updateRow'];\n    scrollToRow: Tabulator['scrollToRow'];\n    moveRow: Tabulator['moveRow'];\n    getRows: Tabulator['getRows'];\n    getRowPosition: Tabulator['getRowPosition'];\n    setColumns: Tabulator['setColumns'];\n    getColumns: Tabulator['getColumns'];\n    getColumn: Tabulator['getColumn'];\n    getColumnDefinitions: Tabulator['getColumnDefinitions'];\n    getColumnLayout: Tabulator['getColumnLayout'];\n    setColumnLayout: Tabulator['setColumnLayout'];\n    showColumn: Tabulator['showColumn'];\n    hideColumn: Tabulator['hideColumn'];\n    toggleColumn: Tabulator['toggleColumn'];\n    addColumn: Tabulator['addColumn'];\n    deleteColumn: Tabulator['deleteColumn'];\n    moveColumn: Tabulator['moveColumn'];\n    scrollToColumn: Tabulator['scrollToColumn'];\n    updateColumnDefinition: Tabulator['updateColumnDefinition'];\n    setLocale: Tabulator['setLocale'];\n    getLocale: Tabulator['getLocale'];\n    getLang: Tabulator['getLang'];\n    redraw: Tabulator['redraw'];\n    blockRedraw: Tabulator['blockRedraw'];\n    restoreRedraw: Tabulator['restoreRedraw'];\n    setHeight: Tabulator['setHeight'];\n    setSort: Tabulator['setSort'];\n    getSorters: Tabulator['getSorters'];\n    clearSort: Tabulator['clearSort'];\n    setFilter: Tabulator['setFilter'];\n    addFilter: Tabulator['addFilter'];\n    getFilters: Tabulator['getFilters'];\n    setHeaderFilterValue: Tabulator['setHeaderFilterValue'];\n    setHeaderFilterFocus: Tabulator['setHeaderFilterFocus'];\n    getHeaderFilters: Tabulator['getHeaderFilters'];\n    getHeaderFilterValue: Tabulator['getHeaderFilterValue'];\n    removeFilter: Tabulator['removeFilter'];\n    clearFilter: Tabulator['clearFilter'];\n    clearHeaderFilter: Tabulator['clearHeaderFilter'];\n    selectRow: Tabulator['selectRow'];\n    deselectRow: Tabulator['deselectRow'];\n    toggleSelectRow: Tabulator['toggleSelectRow'];\n    getSelectedRows: Tabulator['getSelectedRows'];\n    getSelectedData: Tabulator['getSelectedData'];\n    setMaxPage: Tabulator['setMaxPage'];\n    setPage: Tabulator['setPage'];\n    setPageToRow: Tabulator['setPageToRow'];\n    setPageSize: Tabulator['setPageSize'];\n    getPageSize: Tabulator['getPageSize'];\n    previousPage: Tabulator['previousPage'];\n    nextPage: Tabulator['nextPage'];\n    getPage: Tabulator['getPage'];\n    getPageMax: Tabulator['getPageMax'];\n    setGroupBy: Tabulator['setGroupBy'];\n    setGroupStartOpen: Tabulator['setGroupStartOpen'];\n    setGroupHeader: Tabulator['setGroupHeader'];\n    getGroups: Tabulator['getGroups'];\n    getGroupedData: Tabulator['getGroupedData'];\n    getCalcResults: Tabulator['getCalcResults'];\n    recalc: Tabulator['recalc'];\n    navigatePrev: Tabulator['navigatePrev'];\n    navigateNext: Tabulator['navigateNext'];\n    navigateLeft: Tabulator['navigateLeft'];\n    navigateRight: Tabulator['navigateRight'];\n    navigateUp: Tabulator['navigateUp'];\n    navigateDown: Tabulator['navigateDown'];\n    getInvalidCells: Tabulator['getInvalidCells'];\n    clearCellValidation: Tabulator['clearCellValidation'];\n    validate: Tabulator['validate'];\n    setGroupValues: Tabulator['setGroupValues'];\n    refreshFilter: Tabulator['refreshFilter'];\n    clearHistory: Tabulator['clearHistory'];\n    addRange: Tabulator['addRange'];\n    getRanges: Tabulator['getRanges'];\n    getRangeData: Tabulator['getRangeData'];\n    setSheets: Tabulator['setSheets'];\n    addSheet: Tabulator['addSheet'];\n    getSheetDefinitions: Tabulator['getSheetDefinitions'];\n    getSheets: Tabulator['getSheets'];\n    getSheet: Tabulator['getSheet'];\n    setSheetData: Tabulator['setSheetData'];\n    getSheetData: Tabulator['getSheetData'];\n    clearSheet: Tabulator['clearSheet'];\n    activeSheet: Tabulator['activeSheet'];\n    removeSheet: Tabulator['removeSheet'];\n    on: Tabulator['on'];\n    off: Tabulator['off'];\n\n    @Output() validationFailed = new EventEmitter<Parameters<EventCallBackMethods['validationFailed']>>();\n    @Output() scrollHorizontal = new EventEmitter<Parameters<EventCallBackMethods['scrollHorizontal']>>();\n    @Output() scrollVertical = new EventEmitter<Parameters<EventCallBackMethods['scrollVertical']>>();\n    @Output() rowAdded = new EventEmitter<Parameters<EventCallBackMethods['rowAdded']>>();\n    @Output() rowDeleted = new EventEmitter<Parameters<EventCallBackMethods['rowDeleted']>>();\n    @Output() rowMoving = new EventEmitter<Parameters<EventCallBackMethods['rowMoving']>>();\n    @Output() rowMoved = new EventEmitter<Parameters<EventCallBackMethods['rowMoved']>>();\n    @Output() rowMoveCancelled = new EventEmitter<Parameters<EventCallBackMethods['rowMoveCancelled']>>();\n    @Output() rowUpdated = new EventEmitter<Parameters<EventCallBackMethods['rowUpdated']>>();\n    @Output() rowSelectionChanged = new EventEmitter<Parameters<EventCallBackMethods['rowSelectionChanged']>>();\n    @Output() rowSelected = new EventEmitter<Parameters<EventCallBackMethods['rowSelected']>>();\n    @Output() rowDeselected = new EventEmitter<Parameters<EventCallBackMethods['rowDeselected']>>();\n    @Output() rowResized = new EventEmitter<Parameters<EventCallBackMethods['rowResized']>>();\n    @Output() rowClick = new EventEmitter<Parameters<EventCallBackMethods['rowClick']>>();\n    @Output() rowDblClick = new EventEmitter<Parameters<EventCallBackMethods['rowDblClick']>>();\n    @Output() rowContext = new EventEmitter<Parameters<EventCallBackMethods['rowContext']>>();\n    @Output() rowTap = new EventEmitter<Parameters<EventCallBackMethods['rowTap']>>();\n    @Output() rowDblTap = new EventEmitter<Parameters<EventCallBackMethods['rowDblTap']>>();\n    @Output() rowTapHold = new EventEmitter<Parameters<EventCallBackMethods['rowTapHold']>>();\n    @Output() rowMouseEnter = new EventEmitter<Parameters<EventCallBackMethods['rowMouseEnter']>>();\n    @Output() rowMouseLeave = new EventEmitter<Parameters<EventCallBackMethods['rowMouseLeave']>>();\n    @Output() rowMouseOver = new EventEmitter<Parameters<EventCallBackMethods['rowMouseOver']>>();\n    @Output() rowMouseDown = new EventEmitter<Parameters<EventCallBackMethods['rowMouseDown']>>();\n    @Output() rowMouseUp = new EventEmitter<Parameters<EventCallBackMethods['rowMouseUp']>>();\n    @Output() rowMouseOut = new EventEmitter<Parameters<EventCallBackMethods['rowMouseOut']>>();\n    @Output() rowMouseMove = new EventEmitter<Parameters<EventCallBackMethods['rowMouseMove']>>();\n    @Output() htmlImporting = new EventEmitter<Parameters<EventCallBackMethods['htmlImporting']>>();\n    @Output() htmlImported = new EventEmitter<Parameters<EventCallBackMethods['htmlImported']>>();\n    @Output() ajaxError = new EventEmitter<Parameters<EventCallBackMethods['ajaxError']>>();\n    @Output() clipboardCopied = new EventEmitter<Parameters<EventCallBackMethods['clipboardCopied']>>();\n    @Output() clipboardPasted = new EventEmitter<Parameters<EventCallBackMethods['clipboardPasted']>>();\n    @Output() clipboardPasteError = new EventEmitter<Parameters<EventCallBackMethods['clipboardPasteError']>>();\n    @Output() downloadComplete = new EventEmitter<Parameters<EventCallBackMethods['downloadComplete']>>();\n    @Output() dataTreeRowExpanded = new EventEmitter<Parameters<EventCallBackMethods['dataTreeRowExpanded']>>();\n    @Output() dataTreeRowCollapsed = new EventEmitter<Parameters<EventCallBackMethods['dataTreeRowCollapsed']>>();\n    @Output() pageLoaded = new EventEmitter<Parameters<EventCallBackMethods['pageLoaded']>>();\n    @Output() pageSizeChanged = new EventEmitter<Parameters<EventCallBackMethods['pageSizeChanged']>>();\n    @Output() headerClick = new EventEmitter<Parameters<EventCallBackMethods['headerClick']>>();\n    @Output() headerDblClick = new EventEmitter<Parameters<EventCallBackMethods['headerDblClick']>>();\n    @Output() headerContext = new EventEmitter<Parameters<EventCallBackMethods['headerContext']>>();\n    @Output() headerTap = new EventEmitter<Parameters<EventCallBackMethods['headerTap']>>();\n    @Output() headerDblTap = new EventEmitter<Parameters<EventCallBackMethods['headerDblTap']>>();\n    @Output() headerTapHold = new EventEmitter<Parameters<EventCallBackMethods['headerTapHold']>>();\n    @Output() headerMouseUp = new EventEmitter<Parameters<EventCallBackMethods['headerMouseUp']>>();\n    @Output() headerMouseDown = new EventEmitter<Parameters<EventCallBackMethods['headerMouseDown']>>();\n    @Output() groupClick = new EventEmitter<Parameters<EventCallBackMethods['groupClick']>>();\n    @Output() groupDblClick = new EventEmitter<Parameters<EventCallBackMethods['groupDblClick']>>();\n    @Output() groupContext = new EventEmitter<Parameters<EventCallBackMethods['groupContext']>>();\n    @Output() groupTap = new EventEmitter<Parameters<EventCallBackMethods['groupTap']>>();\n    @Output() groupDblTap = new EventEmitter<Parameters<EventCallBackMethods['groupDblTap']>>();\n    @Output() groupTapHold = new EventEmitter<Parameters<EventCallBackMethods['groupTapHold']>>();\n    @Output() groupMouseDown = new EventEmitter<Parameters<EventCallBackMethods['groupMouseDown']>>();\n    @Output() groupMouseUp = new EventEmitter<Parameters<EventCallBackMethods['groupMouseUp']>>();\n    @Output() tableBuilding = new EventEmitter<Parameters<EventCallBackMethods['tableBuilding']>>();\n    @Output() tableBuilt = new EventEmitter<Parameters<EventCallBackMethods['tableBuilt']>>();\n    @Output() tableDestroyed = new EventEmitter<Parameters<EventCallBackMethods['tableDestroyed']>>();\n    @Output() dataChanged = new EventEmitter<Parameters<EventCallBackMethods['dataChanged']>>();\n    @Output() dataLoading = new EventEmitter<Parameters<EventCallBackMethods['dataLoading']>>();\n    @Output() dataLoaded = new EventEmitter<Parameters<EventCallBackMethods['dataLoaded']>>();\n    @Output() dataLoadError = new EventEmitter<Parameters<EventCallBackMethods['dataLoadError']>>();\n    @Output() dataProcessing = new EventEmitter<Parameters<EventCallBackMethods['dataProcessing']>>();\n    @Output() dataProcessed = new EventEmitter<Parameters<EventCallBackMethods['dataProcessed']>>();\n    @Output() dataFiltering = new EventEmitter<Parameters<EventCallBackMethods['dataFiltering']>>();\n    @Output() dataFiltered = new EventEmitter<Parameters<EventCallBackMethods['dataFiltered']>>();\n    @Output() dataSorting = new EventEmitter<Parameters<EventCallBackMethods['dataSorting']>>();\n    @Output() dataSorted = new EventEmitter<Parameters<EventCallBackMethods['dataSorted']>>();\n    @Output() movableRowsSendingStart = new EventEmitter<Parameters<EventCallBackMethods['movableRowsSendingStart']>>();\n    @Output() movableRowsSent = new EventEmitter<Parameters<EventCallBackMethods['movableRowsSent']>>();\n    @Output() movableRowsSentFailed = new EventEmitter<Parameters<EventCallBackMethods['movableRowsSentFailed']>>();\n    @Output() movableRowsSendingStop = new EventEmitter<Parameters<EventCallBackMethods['movableRowsSendingStop']>>();\n    @Output() movableRowsReceivingStart = new EventEmitter<Parameters<EventCallBackMethods['movableRowsReceivingStart']>>();\n    @Output() movableRowsReceived = new EventEmitter<Parameters<EventCallBackMethods['movableRowsReceived']>>();\n    @Output() movableRowsReceivedFailed = new EventEmitter<Parameters<EventCallBackMethods['movableRowsReceivedFailed']>>();\n    @Output() movableRowsReceivingStop = new EventEmitter<Parameters<EventCallBackMethods['movableRowsReceivingStop']>>();\n    @Output() movableRowsElementDrop = new EventEmitter<Parameters<EventCallBackMethods['movableRowsElementDrop']>>();\n    @Output() dataGrouping = new EventEmitter<Parameters<EventCallBackMethods['dataGrouping']>>();\n    @Output() dataGrouped = new EventEmitter<Parameters<EventCallBackMethods['dataGrouped']>>();\n    @Output() groupVisibilityChanged = new EventEmitter<Parameters<EventCallBackMethods['groupVisibilityChanged']>>();\n    @Output() localized = new EventEmitter<Parameters<EventCallBackMethods['localized']>>();\n    @Output() renderStarted = new EventEmitter<Parameters<EventCallBackMethods['renderStarted']>>();\n    @Output() renderComplete = new EventEmitter<Parameters<EventCallBackMethods['renderComplete']>>();\n    @Output() columnMoved = new EventEmitter<Parameters<EventCallBackMethods['columnMoved']>>();\n    @Output() columnResized = new EventEmitter<Parameters<EventCallBackMethods['columnResized']>>();\n    @Output() columnTitleChanged = new EventEmitter<Parameters<EventCallBackMethods['columnTitleChanged']>>();\n    @Output() columnVisibilityChanged = new EventEmitter<Parameters<EventCallBackMethods['columnVisibilityChanged']>>();\n    @Output() historyUndo = new EventEmitter<Parameters<EventCallBackMethods['historyUndo']>>();\n    @Output() historyRedo = new EventEmitter<Parameters<EventCallBackMethods['historyRedo']>>();\n    @Output() cellEditing = new EventEmitter<Parameters<EventCallBackMethods['cellEditing']>>();\n    @Output() cellEdited = new EventEmitter<Parameters<EventCallBackMethods['cellEdited']>>();\n    @Output() cellEditCancelled = new EventEmitter<Parameters<EventCallBackMethods['cellEditCancelled']>>();\n    @Output() cellClick = new EventEmitter<Parameters<EventCallBackMethods['cellClick']>>();\n    @Output() cellDblClick = new EventEmitter<Parameters<EventCallBackMethods['cellDblClick']>>();\n    @Output() cellContext = new EventEmitter<Parameters<EventCallBackMethods['cellContext']>>();\n    @Output() cellMouseDown = new EventEmitter<Parameters<EventCallBackMethods['cellMouseDown']>>();\n    @Output() cellMouseUp = new EventEmitter<Parameters<EventCallBackMethods['cellMouseUp']>>();\n    @Output() cellTap = new EventEmitter<Parameters<EventCallBackMethods['cellTap']>>();\n    @Output() cellDblTap = new EventEmitter<Parameters<EventCallBackMethods['cellDblTap']>>();\n    @Output() cellTapHold = new EventEmitter<Parameters<EventCallBackMethods['cellTapHold']>>();\n    @Output() cellMouseEnter = new EventEmitter<Parameters<EventCallBackMethods['cellMouseEnter']>>();\n    @Output() cellMouseLeave = new EventEmitter<Parameters<EventCallBackMethods['cellMouseLeave']>>();\n    @Output() cellMouseOver = new EventEmitter<Parameters<EventCallBackMethods['cellMouseOver']>>();\n    @Output() cellMouseOut = new EventEmitter<Parameters<EventCallBackMethods['cellMouseOut']>>();\n    @Output() cellMouseMove = new EventEmitter<Parameters<EventCallBackMethods['cellMouseMove']>>();\n    @Output() popupOpen = new EventEmitter<Parameters<EventCallBackMethods['popupOpen']>>();\n    @Output() popupClosed = new EventEmitter<Parameters<EventCallBackMethods['popupClosed']>>();\n    @Output() menuClosed = new EventEmitter<Parameters<EventCallBackMethods['menuClosed']>>();\n    @Output() menuOpened = new EventEmitter<Parameters<EventCallBackMethods['menuOpened']>>();\n    @Output() TooltipClosed = new EventEmitter<Parameters<EventCallBackMethods['TooltipClosed']>>();\n    @Output() TooltipOpened = new EventEmitter<Parameters<EventCallBackMethods['TooltipOpened']>>();\n    @Output() rangeAdded = new EventEmitter<Parameters<EventCallBackMethods['rangeAdded']>>();\n    @Output() rangeChanged = new EventEmitter<Parameters<EventCallBackMethods['rangeChanged']>>();\n    @Output() rangeRemoved = new EventEmitter<Parameters<EventCallBackMethods['rangeRemoved']>>();\n    @Output() rowHeightChange = new EventEmitter<Parameters<EventCallBackMethods['rowHeight']>>();\n    @Output() rowResizing = new EventEmitter<Parameters<EventCallBackMethods['rowResizing']>>();\n    @Output() columnWidth = new EventEmitter<Parameters<EventCallBackMethods['columnWidth']>>();\n    @Output() columnResizing = new EventEmitter<Parameters<EventCallBackMethods['columnResizing']>>();\n    @Output() sheetAdded = new EventEmitter<Parameters<EventCallBackMethods['sheetAdded']>>();\n    @Output() sheetLoaded = new EventEmitter<Parameters<EventCallBackMethods['sheetLoaded']>>();\n    @Output() sheetUpdated = new EventEmitter<Parameters<EventCallBackMethods['sheetUpdated']>>();\n    @Output() sheetRemoved = new EventEmitter<Parameters<EventCallBackMethods['sheetRemoved']>>();\n    @Output() columnsLoaded = new EventEmitter<Parameters<EventCallBackMethods['columnsLoaded']>>();\n    @Output() importChoose = new EventEmitter<Parameters<EventCallBackMethods['importChoose']>>();\n    @Output() importImporting = new EventEmitter<Parameters<EventCallBackMethods['importImporting']>>();\n    @Output() importError = new EventEmitter<Parameters<EventCallBackMethods['importError']>>();\n    @Output() importImported = new EventEmitter<Parameters<EventCallBackMethods['importImported']>>();\n\n\n    private finalizers: Function[] = [];\n\n    constructor(\n        private readonly appRef: ApplicationRef,\n        private readonly viewContainer: ViewContainerRef,\n        private readonly ngZone: NgZone,\n        private readonly injector: Injector\n    ) { }\n\n    ngAfterViewInit() {\n        this.createTable();\n    }\n\n    ngOnChanges(changes?: SimpleChanges): void {\n        if (!this.table) return;\n\n        // If called without changes (e.g., from column directive), recreate table\n        if (!changes) {\n            this.createTable();\n            return;\n        }\n\n        // Early exit if only dataSource changed (handled by setter)\n        const changeKeys = Object.keys(changes);\n        if (changeKeys.length === 1 && changeKeys[0] === 'dataSource') {\n            return;\n        }\n\n        // Track which keys we handle explicitly\n        const handledKeys = new Set([\n            'height', 'layout', 'placeholder', 'headerVisible', 'columnDefaults',\n            'pagination', 'paginationSize', 'groupBy', 'groupHeader',\n            'initialSort', 'initialFilter', 'textDirection', 'locale', 'dataSource'\n        ]);\n\n        // Check if any unhandled option changed (optimized)\n        let hasUnhandledChanges = false;\n        for (const key of changeKeys) {\n            // Skip if already handled, is first change, or is internal property\n            if (handledKeys.has(key)) continue;\n            if (changes[key].firstChange) continue;\n            if (key.startsWith('_')) continue; // internal properties\n            if (key === 'table' || key === 'columns' || key === 'options') continue;\n\n            hasUnhandledChanges = true;\n            break;\n        }\n\n        // If unhandled options changed, recreate the table\n        if (hasUnhandledChanges) {\n            this.createTable();\n            return;\n        }\n\n        // Handle height changes\n        if (changes['height'] && !changes['height'].firstChange) {\n            this.table.setHeight(changes['height'].currentValue);\n        }\n\n        // Handle layout changes\n        if (changes['layout'] && !changes['layout'].firstChange) {\n            this.table.redraw(true);\n        }\n\n        // Handle placeholder changes\n        if (changes['placeholder'] && !changes['placeholder'].firstChange) {\n            this.table.redraw();\n        }\n\n        // Handle header visibility changes\n        if (changes['headerVisible'] && !changes['headerVisible'].firstChange) {\n            this.table.setColumns(this._getColumns());\n        }\n\n        // Handle column defaults changes\n        if (changes['columnDefaults'] && !changes['columnDefaults'].firstChange) {\n            this.table.setColumns(this._getColumns());\n        }\n\n        // Handle pagination changes\n        if (changes['paginationSize'] && !changes['paginationSize'].firstChange) {\n            this.table.setPageSize(changes['paginationSize'].currentValue);\n        } else if (changes['pagination'] && !changes['pagination'].firstChange) {\n            this.table.setPageSize(this.paginationSize);\n        }\n\n        // Handle grouping changes\n        if (changes['groupBy'] && !changes['groupBy'].firstChange) {\n            this.table.setGroupBy(changes['groupBy'].currentValue);\n        }\n\n        if (changes['groupHeader'] && !changes['groupHeader'].firstChange) {\n            this.table.setGroupHeader(changes['groupHeader'].currentValue);\n        }\n\n        // Handle sort changes\n        if (changes['initialSort'] && !changes['initialSort'].firstChange) {\n            this.table.setSort(changes['initialSort'].currentValue);\n        }\n\n        // Handle filter changes\n        if (changes['initialFilter'] && !changes['initialFilter'].firstChange) {\n            this.table.setFilter(changes['initialFilter'].currentValue);\n        }\n\n        // Handle text direction changes\n        if (changes['textDirection'] && !changes['textDirection'].firstChange) {\n            this.table.redraw(true);\n        }\n\n        // Handle locale changes\n        if (changes['locale'] && !changes['locale'].firstChange) {\n            this.table.setLocale(changes['locale'].currentValue);\n        }\n    }\n\n    ngOnDestroy() {\n        try {\n            this.finalizers?.forEach(f => f());\n        }\n        catch (err) {\n            console.warn(\"[ngx-tabulator-tables] Failed to process all finalizers\");\n            console.warn(err);\n        }\n    }\n\n    public render() {\n        this.table?.redraw();\n    }\n\n    private createTable() {\n        this.ngZone.runOutsideAngular(() => {\n            this._tableInitialized = false;\n            this.table?.destroy();\n\n            const options: Options = {\n                ...getProps(this),\n                columns: this._getColumns(),\n                ...this.options,\n                data: this.dataSource\n            };\n\n            // console.log(options)\n            const table = this.table = new Tabulator(this.viewContainer.element.nativeElement, options);\n\n            // Generically bind all event emitters to the tabulator instance.\n            Object.entries(this).forEach(([k, v]) => {\n                if (!(v instanceof EventEmitter) || k == 'on') return;\n                let key = k;\n                if (key.startsWith('on')) key = key.slice(2, 3).toLowerCase() + key.slice(3);\n                table.on(key as any, (...args) => v.emit(args));\n            });\n\n            // Bind callable methods from a table instance back onto the component.\n            Object.entries(table)\n                .filter(([k, v]) => typeof v == 'function')\n                .forEach(([key, value]) => {\n                    this[key] = value;\n                });\n\n            // Mark table as initialized after tableBuilt event\n            table.on('tableBuilt', () => {\n                this._tableInitialized = true;\n            });\n\n            // debugger;\n        });\n    }\n\n    public _getColumns() {\n        return this.columns.toArray().map(c => {\n            const obj = getProps(c);\n\n            Object.entries(c).forEach(([k, v]) => {\n                if (!(v instanceof EventEmitter)) return;\n                if (k.startsWith('on')) {\n                    obj[k.slice(2, 3).toLowerCase() + k.slice(3)] = (...args) => v.emit(args);\n                }\n                else {\n                    obj[k] = (...args) => v.emit(args);\n                }\n            });\n\n            obj['formatter'] = !c.cellTemplate ? undefined : (cell, formatterParams, onRendered) => {\n                try {\n                    const el = document.createElement('div');\n                    const componentInstance = createComponent(TemplateWrapper, {\n                        elementInjector: this.injector,\n                        environmentInjector: this.appRef.injector,\n                        hostElement: el\n                    });\n                    this.appRef.attachView(componentInstance.hostView);\n\n                    componentInstance.instance.template = c.cellTemplate;\n                    componentInstance.instance.data = cell.getData();\n\n                    componentInstance.changeDetectorRef.detectChanges();\n\n                    this.finalizers.push(() => {\n                        this.appRef?.detachView(componentInstance?.hostView);\n                        componentInstance?.destroy();\n                        el?.remove();\n                    });\n\n                    return el;\n                }\n                catch (err) {\n                    console.error(err);\n                    return null;\n                }\n            };\n\n            return obj as any as ColumnDefinition;\n        });\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { TabulatorComponent } from './tabulator.component';\nimport { ColumnDirective } from './column.directive';\n\n@NgModule({\n    declarations: [\n        TabulatorComponent,\n        ColumnDirective\n   ],\n    exports: [\n        TabulatorComponent,\n        ColumnDirective\n    ]\n})\nexport class TabulatorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TabulatorComponent","Tabulator"],"mappings":"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"}