smart-webcomponents-angular
Version:
[](https://jqwidgets.com/license/)
1 lines • 76.7 kB
Source Map (JSON)
{"version":3,"file":"smart-webcomponents-angular-pivottable.mjs","sources":["../../pivottable/src/smart.element.ts","../../pivottable/src/smart.pivottable.ts","../../pivottable/src/smart.pivottable.module.ts","../../pivottable/src/smart-webcomponents-angular-pivottable.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n Smart: any;\n}\n}\n\n\nimport { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ElementRenderMode } from './../index';\n\n@Directive()\nexport class BaseElement {\n constructor(ref: ElementRef) {\n const that = this;\n this.nativeElement = ref.nativeElement as any;\n\n that.nativeElement.onAttached = () => {\n that.onAttach.emit(that.nativeElement);\n }\n\n that.nativeElement.onDetached = () => {\n that.onDetach.emit(that.nativeElement);\n }\n }\n\n @Output() onCreate: EventEmitter<any> = new EventEmitter();\n @Output() onReady: EventEmitter<any> = new EventEmitter();\n @Output() onAttach: EventEmitter<any> = new EventEmitter();\n @Output() onDetach: EventEmitter<any> = new EventEmitter();\n\n public nativeElement: any;\n\n public addEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n this.nativeElement.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n\t\tthis.nativeElement.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.nativeElement.dispatchEvent(event);\n\t}\n\n\tpublic blur(): void {\n\t\tthis.nativeElement.blur();\n\t}\n\n\tpublic click(): void {\n\t\tthis.nativeElement.click();\n\t}\n\n\tpublic focus(options?: FocusOptions): void {\n\t\tthis.nativeElement.focus(options);\n\t}\n\n/** @description Sets or gets the license. */\n\t@Input()\n\tget license(): string {\n\t\treturn this.nativeElement ? this.nativeElement.license : undefined;\n\t}\n\tset license(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.license = value : undefined;\n\t}\n\t\n/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n}\n\nlet Smart: any;\nif (typeof window !== \"undefined\") {\n\tSmart = window.Smart;\n}\nexport { Smart };\n\n","import { PivotTable } from './../index';\nimport { Animation, PivotTableColumnAlign, PivotTableColumnDataType, PivotTableColumnSummary, PivotTableColumnTotalsPosition, PivotTableConditionalFormattingCondition, PivotTableConditionalFormattingFontFamily, PivotTableConditionalFormattingFontSize, PivotTableDesignerPosition, PivotTableDrillDownDataExport, PivotTableGroupLayout, PivotTablePageSize, PivotTableRowTotalsPosition, PivotTableSelectionMode, PivotTableSortMode, PivotTableColumn, PivotTableConditionalFormatting, ElementRenderMode} from './../index';\nimport { Component, Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, OnDestroy, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { BaseElement, Smart } from './smart.element';\nexport { Animation, PivotTableColumnAlign, PivotTableColumnDataType, PivotTableColumnSummary, PivotTableColumnTotalsPosition, PivotTableConditionalFormattingCondition, PivotTableConditionalFormattingFontFamily, PivotTableConditionalFormattingFontSize, PivotTableDesignerPosition, PivotTableDrillDownDataExport, PivotTableGroupLayout, PivotTablePageSize, PivotTableRowTotalsPosition, PivotTableSelectionMode, PivotTableSortMode, PivotTableColumn, PivotTableConditionalFormatting, ElementRenderMode} from './../index';\nexport { Smart } from './smart.element';\nexport { PivotTable } from './../index';\n\n\n@Directive({\n\texportAs: 'smart-pivot-table',\tselector: 'smart-pivot-table, [smart-pivot-table]'\n})\n\nexport class PivotTableComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n\tconstructor(ref: ElementRef<PivotTable>) {\n\t\tsuper(ref);\n\t\tthis.nativeElement = ref.nativeElement as PivotTable;\n\t}\n\n\tprivate eventHandlers: any[] = [];\n\n\tpublic declare nativeElement: PivotTable;\n\t/** @description Creates the component on demand.\n\t * @param properties An optional object of properties, which will be added to the template binded ones.\n\t */\n\tpublic createComponent(properties = {}): any {\n \tthis.nativeElement = <PivotTable>document.createElement('smart-pivot-table');\n\t\tfor (let propertyName in properties) { \n \t\t\tthis.nativeElement[propertyName] = properties[propertyName];\n\t\t}\n\t\treturn this.nativeElement;\n\t}\n\t/** @description Defines the animation mode for the element. When this property is set to 'none', all animations are disabled. Otherwise, setting this property to a supported value enables the corresponding animation behavior. Use this property to retrieve the current animation mode or specify the desired mode. */\n\t@Input()\n\tget animation(): Animation | string {\n\t\treturn this.nativeElement ? this.nativeElement.animation : undefined;\n\t}\n\tset animation(value: Animation | string) {\n\t\tthis.nativeElement ? this.nativeElement.animation = value : undefined;\n\t}\n\n\t/** @description Enables or retrieves the current setting that determines whether users can reorder columns, allowing columns to be rearranged via drag-and-drop or similar interactions. If enabled, columns can be moved to a new position within the layout; if disabled, the column order remains fixed. */\n\t@Input()\n\tget columnReorder(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.columnReorder : undefined;\n\t}\n\tset columnReorder(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.columnReorder = value : undefined;\n\t}\n\n\t/** @description Provides detailed metadata for each column in the PivotTable’s underlying tabular data source. These settings define attributes such as column names, data types, and formatting options. Using this configuration and the connected data source, the PivotTable dynamically generates its actual columns, ensuring that the displayed data structure accurately reflects both the source data and the specified settings. */\n\t@Input()\n\tget columns(): PivotTableColumn[] {\n\t\treturn this.nativeElement ? this.nativeElement.columns : undefined;\n\t}\n\tset columns(value: PivotTableColumn[]) {\n\t\tthis.nativeElement ? this.nativeElement.columns = value : undefined;\n\t}\n\n\t/** @description Controls the visibility of total columns for each pivot data point. When enabled, total columns are displayed, showing summary values for each data group. Note: All summary columns must use the same summary function (e.g., sum, average) to ensure consistent calculation of the total columns. This setting both determines whether total columns are shown and allows you to retrieve their current visibility status. */\n\t@Input()\n\tget columnTotals(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.columnTotals : undefined;\n\t}\n\tset columnTotals(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.columnTotals = value : undefined;\n\t}\n\n\t/** @description Gets or sets the position of the total columns, which are displayed only when columnTotals is enabled. This option determines where the summary columns appear in the table, such as at the end (right side) of all columns. */\n\t@Input()\n\tget columnTotalsPosition(): PivotTableColumnTotalsPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.columnTotalsPosition : undefined;\n\t}\n\tset columnTotalsPosition(value: PivotTableColumnTotalsPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.columnTotalsPosition = value : undefined;\n\t}\n\n\t/** @description Gets or sets the conditional formatting rules that determine how the PivotTable's cells are visually styled based on their values or other criteria. This allows you to dynamically highlight, color, or format cells within the PivotTable according to specified conditions. */\n\t@Input()\n\tget conditionalFormatting(): PivotTableConditionalFormatting[] {\n\t\treturn this.nativeElement ? this.nativeElement.conditionalFormatting : undefined;\n\t}\n\tset conditionalFormatting(value: PivotTableConditionalFormatting[]) {\n\t\tthis.nativeElement ? this.nativeElement.conditionalFormatting = value : undefined;\n\t}\n\n\t/** @description Specifies the initial tabular data source—such as a worksheet range, table, or external database—from which the PivotTable retrieves and organizes its data. This property identifies where the PivotTable’s underlying data originates. */\n\t@Input()\n\tget dataSource(): any {\n\t\treturn this.nativeElement ? this.nativeElement.dataSource : undefined;\n\t}\n\tset dataSource(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.dataSource = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves whether the original tabular data source for the PivotTable should be pre-sorted according to the columns defined with the rowGroup property, and in the same order as those columns appear. This ensures that when the PivotTable is generated, its underlying data is already organized based on the designated row groups, potentially optimizing performance and ensuring consistent grouping behavior. */\n\t@Input()\n\tget defaultSortByRowGroups(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.defaultSortByRowGroups : undefined;\n\t}\n\tset defaultSortByRowGroups(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.defaultSortByRowGroups = value : undefined;\n\t}\n\n\t/** @description Specifies whether the PivotTable designer panel is shown together with the PivotTable. When enabled, the designer provides an interface for configuring column settings, such as rearranging or renaming columns, and applying data filters directly within the PivotTable view. This property can be set to show or hide the designer alongside the table, and can also be used to determine the current visibility state of the designer. */\n\t@Input()\n\tget designer(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.designer : undefined;\n\t}\n\tset designer(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.designer = value : undefined;\n\t}\n\n\t/** @description Gets or sets the position of the PivotTable’s designer interface, which appears when the designer option is enabled. This property allows you to specify or retrieve where the designer UI is displayed within the application layout. */\n\t@Input()\n\tget designerPosition(): PivotTableDesignerPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.designerPosition : undefined;\n\t}\n\tset designerPosition(value: PivotTableDesignerPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.designerPosition = value : undefined;\n\t}\n\n\t/** @description Prevents the user from interacting with the element, disabling all mouse, keyboard, and touch inputs such as clicks, typing, and focus events. The element will not respond to any user actions while this setting is applied. */\n\t@Input()\n\tget disabled(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disabled : undefined;\n\t}\n\tset disabled(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disabled = value : undefined;\n\t}\n\n\t/** @description When this option is enabled, double-clicking a PivotTable summary cell or pressing F2 will display the underlying tabular data that was used to calculate the aggregated value in that cell. */\n\t@Input()\n\tget drillDown(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.drillDown : undefined;\n\t}\n\tset drillDown(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.drillDown = value : undefined;\n\t}\n\n\t/** @description Displays an export button within the drill-down dialog when this option is enabled, allowing users to export data directly from the dialog. */\n\t@Input()\n\tget drillDownDataExport(): PivotTableDrillDownDataExport | string {\n\t\treturn this.nativeElement ? this.nativeElement.drillDownDataExport : undefined;\n\t}\n\tset drillDownDataExport(value: PivotTableDrillDownDataExport | string) {\n\t\tthis.nativeElement ? this.nativeElement.drillDownDataExport = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves the file name used when exporting data from the drill-down table. This determines the default name of the exported file generated during the export operation. */\n\t@Input()\n\tget drillDownDataExportName(): string {\n\t\treturn this.nativeElement ? this.nativeElement.drillDownDataExportName : undefined;\n\t}\n\tset drillDownDataExportName(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.drillDownDataExportName = value : undefined;\n\t}\n\n\t/** @description Determines whether column-based sorting is enabled or disabled when using the classic row groups layout mode. When enabled, users can sort data within each column in the classic row grouping layout. This property can be used to either retrieve the current sorting status or set a new value. */\n\t@Input()\n\tget drillDownTableInit(): { (table: HTMLElement ): void } {\n\t\treturn this.nativeElement ? this.nativeElement.drillDownTableInit : undefined;\n\t}\n\tset drillDownTableInit(value: { (table: HTMLElement ): void }) {\n\t\tthis.nativeElement ? this.nativeElement.drillDownTableInit = value : undefined;\n\t}\n\n\t/** @description Determines whether the column headers in the PivotTable remain visible (sticky/frozen) at the top of the view when the user scrolls vertically. Setting this property to true keeps the column headers fixed in place, while false allows them to scroll out of view. This property can be used to set or retrieve the current sticky/frozen state of the PivotTable’s column headers. */\n\t@Input()\n\tget drillDownCustomAction(): { (originalRecords: [] ): void } {\n\t\treturn this.nativeElement ? this.nativeElement.drillDownCustomAction : undefined;\n\t}\n\tset drillDownCustomAction(value: { (originalRecords: [] ): void }) {\n\t\tthis.nativeElement ? this.nativeElement.drillDownCustomAction = value : undefined;\n\t}\n\n\t/** @description Specifies whether to display a Grand Total row that aggregates the values of all data rows. When enabled, this option will add a summary row at the bottom of the data set, showing the total or combined values for each relevant column. Can also be used to retrieve the current setting. */\n\t@Input()\n\tget enableSortByRowGroups(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.enableSortByRowGroups : undefined;\n\t}\n\tset enableSortByRowGroups(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.enableSortByRowGroups = value : undefined;\n\t}\n\n\t/** @description Defines or retrieves how nested rows—determined by the specified rowGroup columns—are visually organized and displayed within the grid. This setting controls the appearance and structure of hierarchical row groupings. */\n\t@Input()\n\tget freezeHeader(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.freezeHeader : undefined;\n\t}\n\tset freezeHeader(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.freezeHeader = value : undefined;\n\t}\n\n\t/** @description Determines whether the tooltip displaying detailed information is shown or hidden when multiple summary cells, each containing non-null values, are selected. When enabled, the tooltip with details will be suppressed; when disabled, the tooltip will appear as usual. This property can be set to control the tooltip's visibility or retrieved to check its current state. */\n\t@Input()\n\tget getDefaultSummaryFunction(): { (column: PivotTableColumn): string } {\n\t\treturn this.nativeElement ? this.nativeElement.getDefaultSummaryFunction : undefined;\n\t}\n\tset getDefaultSummaryFunction(value: { (column: PivotTableColumn): string }) {\n\t\tthis.nativeElement ? this.nativeElement.getDefaultSummaryFunction = value : undefined;\n\t}\n\n\t/** @description Specifies whether rows containing only 0 or null values should be hidden or displayed. This setting is only effective when one or more rowGroup columns are defined. Use this property to control the visibility of empty or zero-value rows within grouped data. */\n\t@Input()\n\tget grandTotal(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.grandTotal : undefined;\n\t}\n\tset grandTotal(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.grandTotal = value : undefined;\n\t}\n\n\t/** @description Enables or retrieves the setting that determines whether users can navigate the PivotTable using keyboard shortcuts or arrow keys. When enabled, keyboard navigation allows users to move between cells, fields, and items within the PivotTable, enhancing accessibility and ease of use. */\n\t@Input()\n\tget groupLayout(): PivotTableGroupLayout | string {\n\t\treturn this.nativeElement ? this.nativeElement.groupLayout : undefined;\n\t}\n\tset groupLayout(value: PivotTableGroupLayout | string) {\n\t\tthis.nativeElement ? this.nativeElement.groupLayout = value : undefined;\n\t}\n\n\t/** @description Sets or retrieves the unlockKey property, a unique code or token required to access and activate the product’s full functionality. */\n\t@Input()\n\tget hideCellSelectionTooltip(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideCellSelectionTooltip : undefined;\n\t}\n\tset hideCellSelectionTooltip(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideCellSelectionTooltip = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves the current language code for the component. This property determines which set of localized messages from the messages object will be used for display. Changing the language automatically updates all text and labels according to the selected locale. */\n\t@Input()\n\tget hideEmptyRows(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideEmptyRows : undefined;\n\t}\n\tset hideEmptyRows(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideEmptyRows = value : undefined;\n\t}\n\n\t/** @description Defines or retrieves an object containing the localized strings used within the element's user interface. This object allows you to customize text elements (such as labels, messages, or tooltips) in different languages. This property works together with the locale property to display the appropriate translations based on the selected or active locale. */\n\t@Input()\n\tget keyboardNavigation(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.keyboardNavigation : undefined;\n\t}\n\tset keyboardNavigation(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.keyboardNavigation = value : undefined;\n\t}\n\n\t/** @description Specifies the value to display in cells that lack aggregated data. When set, this value will be shown in any cell where there is no aggregation result available. By default (null), these cells will appear empty. Setting a custom value (such as \"N/A\" or 0) allows you to indicate explicitly that no data is present in those cells. */\n\t@Input()\n\tget unlockKey(): string {\n\t\treturn this.nativeElement ? this.nativeElement.unlockKey : undefined;\n\t}\n\tset unlockKey(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.unlockKey = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves the number of items displayed per page when paging is enabled. This property determines the page size, allowing you to control how many records are shown on each paginated view. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Sets or retrieves the current page index, using a zero-based numbering system (i.e., the first page is index 0). This property is applicable only when paging is enabled, allowing navigation between different pages of content. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Gets or sets a value indicating whether paging functionality is enabled, allowing data to be divided and displayed across multiple pages. */\n\t@Input()\n\tget nullDefaultValue(): number {\n\t\treturn this.nativeElement ? this.nativeElement.nullDefaultValue : undefined;\n\t}\n\tset nullDefaultValue(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.nullDefaultValue = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves whether the element's text direction and alignment are set to support right-to-left (RTL) languages—such as Arabic or Hebrew—by adapting the layout and text flow accordingly. This property ensures that the element properly displays content for users whose locale requires RTL formatting. */\n\t@Input()\n\tget onCellRender(): { (data: any, dynamicColumn: any, value: any, cell: HTMLTableCellElement): void } {\n\t\treturn this.nativeElement ? this.nativeElement.onCellRender : undefined;\n\t}\n\tset onCellRender(value: { (data: any, dynamicColumn: any, value: any, cell: HTMLTableCellElement): void }) {\n\t\tthis.nativeElement ? this.nativeElement.onCellRender = value : undefined;\n\t}\n\n\t/** @description Determines whether sorting by row is enabled when a row group cell is clicked. If columnTotals is also enabled, sorting will be applied within each \"column group\" individually. If columnTotals is not enabled, sorting will be applied across all columns together. This property can be used to both retrieve the current sorting behavior and to enable or disable sorting by row group interactions. */\n\t@Input()\n\tget onColumnRender(): { (settings: { text: string, cell: HTMLTableCellElement, column: PivotTableColumn, fullDefinition: any }): void } {\n\t\treturn this.nativeElement ? this.nativeElement.onColumnRender : undefined;\n\t}\n\tset onColumnRender(value: { (settings: { text: string, cell: HTMLTableCellElement, column: PivotTableColumn, fullDefinition: any }): void }) {\n\t\tthis.nativeElement ? this.nativeElement.onColumnRender = value : undefined;\n\t}\n\n\t/** @description Controls whether row summaries appear in the row headers. When set to true, row headers display summarized information such as \"Peterson(40)\" (indicating a summary value). When set to false, row headers show only the row label, like \"Peterson\", without any summary details. Use this option to toggle the visibility of summary data in your row headers. */\n\t@Input()\n\tget onInit(): { (): void } {\n\t\treturn this.nativeElement ? this.nativeElement.onInit : undefined;\n\t}\n\tset onInit(value: { (): void }) {\n\t\tthis.nativeElement ? this.nativeElement.onInit = value : undefined;\n\t}\n\n\t/** @description Determines whether to display row total columns alongside each summary column. When enabled, this option will show an additional column for each summary column, presenting the total value for each row. You can use this property to enable (show) or disable (hide) row total columns as needed. */\n\t@Input()\n\tget pageSize(): PivotTablePageSize | string {\n\t\treturn this.nativeElement ? this.nativeElement.pageSize : undefined;\n\t}\n\tset pageSize(value: PivotTablePageSize | string) {\n\t\tthis.nativeElement ? this.nativeElement.pageSize = value : undefined;\n\t}\n\n\t/** @description Sets or retrieves the position of row total columns within the table. This option determines where the columns displaying the total values for each row will appear when the rowTotals feature is enabled. Adjusting this setting allows you to control whether the row totals are displayed at the beginning, end, or a specific location among the table columns. */\n\t@Input()\n\tget pageIndex(): number {\n\t\treturn this.nativeElement ? this.nativeElement.pageIndex : undefined;\n\t}\n\tset pageIndex(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.pageIndex = value : undefined;\n\t}\n\n\t/** @description Determines whether users can select table rows using checkboxes. When enabled, a checkbox appears next to each row, allowing selection. This property can be used to enable or check the current state of row selection functionality. */\n\t@Input()\n\tget paging(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.paging : undefined;\n\t}\n\tset paging(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.paging = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves the selection mode for the component. This property is effective only when the selection feature is enabled. When disabled, changing or accessing the selection mode has no effect. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Specifies the sorting mode applied to the PivotTable, controlling how data rows or columns are ordered (e.g., ascending, descending, or custom criteria). This setting determines the sequence in which PivotTable items are displayed based on the selected sort option. */\n\t@Input()\n\tget rowSort(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rowSort : undefined;\n\t}\n\tset rowSort(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rowSort = value : undefined;\n\t}\n\n\t/** @description Specifies the theme applied to the element. The theme controls the overall appearance, including colors, fonts, and styles, ensuring a consistent look and feel throughout the element. */\n\t@Input()\n\tget rowSummary(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rowSummary : undefined;\n\t}\n\tset rowSummary(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rowSummary = value : undefined;\n\t}\n\n\t/** @description Controls the visibility of the PivotTable toolbar. When displayed, the toolbar includes two breadcrumb components that enable users to modify the row groups and pivot columns directly. It also features \"Conditional Formatting\" and \"Fields\" buttons, each of which opens a dialog for configuring additional PivotTable settings. */\n\t@Input()\n\tget rowTotals(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rowTotals : undefined;\n\t}\n\tset rowTotals(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rowTotals = value : undefined;\n\t}\n\n\t/** @description Determines whether a tooltip displaying the full content will appear when hovering over a table cell with truncated (overflowing) content. When enabled, users can view the entire cell content by hovering their mouse over the truncated cell. This property can be set to enable or disable this tooltip behavior and can also be used to check its current status. */\n\t@Input()\n\tget rowTotalsPosition(): PivotTableRowTotalsPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.rowTotalsPosition : undefined;\n\t}\n\tset rowTotalsPosition(value: PivotTableRowTotalsPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.rowTotalsPosition = value : undefined;\n\t}\n\n\t/** @description undefined */\n\t@Input()\n\tget selection(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.selection : undefined;\n\t}\n\tset selection(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.selection = value : undefined;\n\t}\n\n\t/** @description undefined */\n\t@Input()\n\tget selectionMode(): PivotTableSelectionMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.selectionMode : undefined;\n\t}\n\tset selectionMode(value: PivotTableSelectionMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.selectionMode = value : undefined;\n\t}\n\n\t/** @description undefined */\n\t@Input()\n\tget sortMode(): PivotTableSortMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.sortMode : undefined;\n\t}\n\tset sortMode(value: PivotTableSortMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.sortMode = value : undefined;\n\t}\n\n\t/** @description undefined */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n\n\t/** @description undefined */\n\t@Input()\n\tget toolbar(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.toolbar : undefined;\n\t}\n\tset toolbar(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.toolbar = value : undefined;\n\t}\n\n\t/** @description undefined */\n\t@Input()\n\tget tooltip(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.tooltip : undefined;\n\t}\n\tset tooltip(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.tooltip = value : undefined;\n\t}\n\n\t/** @description This event is triggered whenever a user clicks on a cell within the component. It provides details about the clicked cell, such as its row and column indices, allowing developers to handle cell-specific actions in response to user interaction.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tdataField, \trow)\n\t* dataField - The data field of the cell's dynamic column.\n\t* row - The data of the cell's row.\n\t*/\n\t@Output() onCellClick: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever the user modifies the current selection, such as highlighting a different portion of text or choosing a new option within a selectable element. It allows you to respond in real time to changes in selection state.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttype)\n\t* type - The type of action that initiated the selection change. Possible types: 'programmatic', 'interaction', 'remove'.\n\t*/\n\t@Output() onChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a user clicks on the header cell of a summary column. It allows you to handle custom actions or logic in response to the user's interaction with the summary column header.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tcolumnDefinition, \tdataField)\n\t* columnDefinition - An object detailing the clicked dynamic column.\n\t* dataField - The data field of the cell's original column.\n\t*/\n\t@Output() onColumnClick: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a row within the data table is collapsed by the user, indicating that its expanded content or details are now hidden. It allows you to execute custom logic whenever a previously expanded row is closed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\trecord)\n\t* record - The (aggregated) data of the collapsed row.\n\t*/\n\t@Output() onCollapse: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever a total column in the data grid is collapsed by the user, signaling that the column’s aggregated summary view has been hidden from display. This allows you to perform custom actions in response to the collapsing of a total column, such as updating UI elements or recalculating totals.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tcolumnDefinition)\n\t* columnDefinition - The definition of the collapsed total column.\n\t*/\n\t@Output() onCollapseTotalColumn: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a user expands a row, typically to reveal additional details or a nested view associated with that row. It signals that the row has transitioned from a collapsed to an expanded state.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\trecord)\n\t* record - The (aggregated) data of the expanded row.\n\t*/\n\t@Output() onExpand: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever a user expands a total column, typically to reveal underlying details or subrows associated with that column. It allows you to respond to the expansion action, such as loading additional data or updating the user interface accordingly.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tcolumnDefinition)\n\t* columnDefinition - The definition of the expanded total column.\n\t*/\n\t@Output() onExpandTotalColumn: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever a user performs an action that initiates, modifies, or removes any filter within the application. It provides an opportunity to respond to changes in filter settings, such as applying, updating, or clearing filters on displayed data or content.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\taction, \tfilters)\n\t* action - The filtering action. Possible actions: 'add', 'remove'.\n\t* filters - The added filters. Only when action is 'add'.\n\t*/\n\t@Output() onFilter: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever a user clicks on a column header cell within a table or grid. It typically occurs during user interactions such as sorting or selecting columns, making it useful for implementing custom behaviors in response to column header clicks. The event includes relevant details about the column that was clicked, allowing developers to identify and handle specific columns as needed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tcolumns)\n\t* columns - An array with information about the dynamic columns the PivotTable has been sorted by.\n\t*/\n\t@Output() onSort: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description Applies a filter to a designated column, enabling users to display only the rows that meet specified criteria within that column. This helps refine and customize the data view according to user-defined conditions. \n\t* @param {string} dataField. The column's data field.\n\t* @param {any} filter. FilterGroup object.\n\t*/\n public addFilter(dataField: string, filter: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.addFilter(dataField, filter);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.addFilter(dataField, filter);\n });\n }\n }\n\n\t/** @description Removes all currently applied filters from the data set, resetting the view to display unfiltered results. \n\t*/\n public clearFilters(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearFilters();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearFilters();\n });\n }\n }\n\n\t/** @description Removes any currently selected items or text, resetting the selection state to none. \n\t*/\n public clearSelection(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearSelection();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearSelection();\n });\n }\n }\n\n\t/** @description Removes any applied sorting from the PivotTable, restoring the original item order based on the data source’s default arrangement. \n\t*/\n public clearSort(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearSort();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearSort();\n });\n }\n }\n\n\t/** @description Collapses all rows within the table, minimizing the display of all grouped row sections when multiple row groups are present. This action hides the contents of each group, showing only the group headers or summary rows. \n\t*/\n public collapseAllRows(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.collapseAllRows();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.collapseAllRows();\n });\n }\n }\n\n\t/** @description Collapses a row within a table that has multiple row groups, hiding its detailed content and displaying only the summary or header for that group. This action helps to organize and condense complex tables for easier navigation and viewing. \n\t* @param {string | number} rowId. The id of the row to collapse. Can be retrieved from the <strong>rows</strong> collection.\n\t*/\n public collapseRow(rowId: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.collapseRow(rowId);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.collapseRow(rowId);\n });\n }\n }\n\n\t/** @description Expands all rows in the data grid, including those within multiple row groups, allowing users to view every row regardless of group hierarchy or nesting. \n\t*/\n public expandAllRows(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.expandAllRows();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.expandAllRows();\n });\n }\n }\n\n\t/** @description Expands a specific row within the table, allowing additional content or details to be displayed, when multiple row groups are present. This function helps users view more information for a selected row without collapsing the grouping structure. \n\t* @param {string | number} rowId. The id of the row to expand. Can be retrieved from the <strong>rows</strong> collection.\n\t*/\n public expandRow(rowId: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.expandRow(rowId);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.expandRow(rowId);\n });\n }\n }\n\n\t/** @description Exports all data from the PivotTable in a structured format, allowing for further analysis, reporting, or use in external applications. \n\t* @param {string} dataFormat. The file format to export to. Supported formats: 'csv', 'html', 'json', 'pdf', 'tsv', 'xlsx', 'xml'.\n\t* @param {string} fileName. The name of the file to export to\n\t* @param {Function} callback?. A callback function to pass the exported data to (if fileName is not provided)\n\t* @returns {any}\n */\n\tpublic async exportData(dataFormat, fileName, callback?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.exportData(dataFormat, fileName, callback);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic exportDataSync(dataFormat, fileName, callback?): any {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.exportData(dataFormat, fileName, callback);\n }\n return null;\n }\n\n\t/** @description Returns an array of the currently active dynamic pivot columns, reflecting the fields that have been selected or computed for pivoting in the current view or dataset. This allows developers to access and manipulate the current pivot configuration programmatically. \n\t* @returns {any}\n */\n\tpublic async getDynamicColumns(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getDynamicColumns();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic getDynamicColumnsSync(): any {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.getDynamicColumns();\n }\n return null;\n }\n\n\t/** @description Returns an array representing the current selection within the grid, based on the specified selectionMode:- When selectionMode is set to 'many' or 'extended', the array contains the IDs of all selected rows.- When selectionMode is set to 'cell', the array contains objects with details about each selected cell (such as row and column identifiers).The structure of the returned array adapts dynamically to match the current selection mode. \n\t* @returns {(string | number)[] | { dataField: string, rowId: string | number }[]}\n */\n\tpublic async getSelection(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getSelection();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic getSelectionSync(): (string | number)[] | { dataField: string, rowId: string | number }[] {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.getSelection();\n }\n return null;\n }\n\n\t/** @description Updates the PivotTable data and recalculates all its values, ensuring that any changes in the underlying data source are reflected in the PivotTable’s current view. \n\t*/\n public refresh(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.refresh();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.refresh();\n });\n }\n }\n\n\t/** @description Removes all active filters from a specified column, restoring the column to display its full, unfiltered dataset. \n\t* @param {string} dataField. The column's data field.\n\t*/\n public removeFilter(dataField: string): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.removeFilter(dataField);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.removeFilter(dataField);\n });\n }\n }\n\n\t/** @description Enables selection of rows or cells within the data grid, depending on the specified selectionMode:- When selectionMode is set to 'many' or 'extended', this function allows for the selection of one or multiple rows.- When selectionMode is set to 'cell' and a second argument is provided, it allows for the selection of a single cell instead of an entire row.Use the appropriate selectionMode and arguments to control whether users can select individual rows, multiple rows, or specific cells within the grid. \n\t* @param {string | number | (string | number)[]} rowId. The id of the row (or an array of row ids) to select (or of the cell's parent row when <strong>selectionMode</strong> is <em>'cell'</em>). Can be retrieved from the <strong>rows</strong> collection.\n\t* @param {string} dataField?. The dataField of the dynamic column (can be retrieved by calling <strong>getDynamicColumns</strong>) of the cell to select (only applicable when <strong>selectionMode</strong> is <em>'cell'</em>).\n\t*/\n public select(rowId: string | number | (string | number)[], dataField?: string): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.select(rowId, dataField);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.select(rowId, dataField);\n });\n }\n }\n\n\t/** @description Sorts the data based on the values in a summary or grouping column, allowing you to organize records according to aggregated results or group identifiers. \n\t* @param {any} columnDefinition. The dynamic column's definition. Can be retrieved from the method <strong>getDynamicColumns</strong>.\n\t* @param {string} sortOrder?. Sort order. Possible values: 'asc' (ascending), 'desc' (descending), and null (removes sorting by column). If not provided, toggles the sorting.\n\t*/\n public sortBy(columnDefinition: any, sortOrder?: string): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.sortBy(columnDefinition, sortOrder);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.sortBy(columnDefinition, sortOrder);\n });\n }\n }\n\n\t/** @description Deselects one or more rows when selectionMode is set to 'many' or 'extended'. Alternatively, if selectionMode is 'cell' and a second argument specifying the target cell is provided, this method will deselect the specified cell. This allows for flexible unselection behavior depending on the current selection mode and provided arguments. \n\t* @param {string | number | (string | number)[]} rowId. The id of the row (or an array of row ids) to select (or of the cell's parent row when <strong>selectionMode</strong> is <em>'cell'</em>). Can be retrieved from the <strong>rows</strong> collection.\n\t* @param {string} dataField?. The dataField of the dynamic column (can be retrieved by calling <strong>getDynamicColumns</strong>) of the cell to select (only applicable when <strong>selectionMode</strong> is <em>'cell'</em>).\n\t*/\n public unselect(rowId: string | number | (string | number)[], dataField?: string): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.unselect(rowId, dataField);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.unselect(rowId, dataField);\n });\n }\n }\n\n\t/** @description Sets the locale of a component. \n\t* @param {string} locale. The locale abbreviation. For example: 'de'.\n\t* @param {any} messages?. Object containing the locale messages.\n\t*/\n public setLocale(locale: string, messages?: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.setLocale(locale, messages);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.setLocale(locale, messages);\n });\n }\n }\n\n\n\tget isRendered(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.isRendered : false;\n\t}\n\n\tngOnInit() {\n\t}\n\n ngAfterViewInit() {\n const that = this;\n\n that.onCreate.emit(that.nativeElement);\n\n\t\tif (Smart) Smart.Render();\n\n\t\tthis.nativeElement.classList.add('smart-angular');\n\n\t\tif (this.nativeElement.whenRendered) this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });\n\t\tthis.listen();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.unlisten();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.nativeElement && this.nativeElement.isRendered) {\n\t\t\tfor (const propName in changes) {\n\t\t\t\tif (changes.hasOwnProperty(propName)) {\n\t\t\t\t\tthis.nativeElement[propName] = changes[propName].currentValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @description Add event listeners. */\