{"version":3,"file":"ironsource-fusion-ui-components-table-v4.mjs","sources":["../../../projects/fusion-ui/components/table/v4/components/table-empty/table-empty.component.html","../../../projects/fusion-ui/components/table/v4/components/table-empty/table-empty.component.ts","../../../projects/fusion-ui/components/table/v4/components/table-cell/table-cell.component.html","../../../projects/fusion-ui/components/table/v4/components/table-cell/table-cell.component.ts","../../../projects/fusion-ui/components/table/v4/components/table-row/table-row.component.html","../../../projects/fusion-ui/components/table/v4/components/table-row/table-row.component.ts","../../../projects/fusion-ui/components/table/v4/components/table-loading/table-loading.component.html","../../../projects/fusion-ui/components/table/v4/components/table-loading/table-loading.component.ts","../../../projects/fusion-ui/components/table/v4/components/table-basic/table-basic.component.html","../../../projects/fusion-ui/components/table/v4/components/table-basic/table-basic.component.ts","../../../projects/fusion-ui/components/table/v4/table-v4.component.html","../../../projects/fusion-ui/components/table/v4/table-v4.component.ts","../../../projects/fusion-ui/components/table/v4/ironsource-fusion-ui-components-table-v4.ts"],"sourcesContent":["<tr>\n    <td [attr.colspan]=\"fusionTableEmpty\">\n        @if (!!customContent?.component?.type) {\n            <ng-container\n                    [ngComponentOutlet]=\"customContent?.component?.type\"\n                    [ngComponentOutletInputs]=\"customContent?.component?.data\"\n            ></ng-container>\n        } @else {\n            <fusion-empty-state [type]=\"type\" [title]=\"header\" [description]=\"subHeader\"></fusion-empty-state>\n        }\n    </td>\n</tr>\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {EmptyStateComponent, EmptyStateType} from '@ironsource/fusion-ui/components/empty-state/v4';\nimport {DynamicComponentConfiguration} from '@ironsource/fusion-ui/components/dynamic-components/common/entities';\nimport {DynamicComponentsModule} from '@ironsource/fusion-ui/components/dynamic-components/v1';\n\n@Component({\n    // eslint-disable-next-line\n    selector: '[fusionTableEmpty]',\n    standalone: true,\n    imports: [CommonModule, EmptyStateComponent, DynamicComponentsModule],\n    templateUrl: './table-empty.component.html',\n    styleUrls: ['./table-empty.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableEmptyComponent {\n    @Input() fusionTableEmpty: number;\n    @Input() customContent: DynamicComponentConfiguration;\n    @Input() header: string;\n    @Input() subHeader: string;\n    @Input() set type(value: EmptyStateType) {\n        if (!isNullOrUndefined(value)) {\n            this._type = value;\n        }\n    }\n    get type(): EmptyStateType {\n        return this._type;\n    }\n\n    private _type: EmptyStateType = 'noData';\n}\n","@if ((isRowTotal && tableService.isInTotalTypeString(column)) || tableService.isTypeString(column)) {\n    <!--String Cell-->\n    @if(cellStringData){\n        <div [ngClass]=\"column.align\" [style.width]=\"innerElementWidth\">\n        <span class=\"truncate\"\n              [fusionTooltip]=\"cellStringData\">{{ cellStringData | notAvailable: notAvailableText }}</span>\n        </div>\n    }\n} @else {\n    @if (tableService.isTypeCheckbox(column) && isBoolean(data)) {\n        <div class=\"checkbox-cell\" [style.width]=\"innerElementWidth\">\n            <fusion-checkbox\n                    class=\"is-regular\"\n                    title=\"select / un-select row\"\n                    [checked]=\"isRowChecked()\"\n                    (changed)=\"selectedChange.emit($event)\"\n            ></fusion-checkbox>\n        </div>\n    } @else if (tableService.isTypeToggleButton(column) && isBoolean(data)) {\n        <div [style.width]=\"innerElementWidth\">\n            <fusion-toggle\n                [model]=\"data\"\n                [disabled]=\"isReadOnly\"\n                [loading]=\"toggleInRequest$ | async\"\n                (modelChange)=\"onToggleChanged($event)\"\n            ></fusion-toggle>\n        </div>\n    } @else if (tableService.isTypeInputEdit(column) && data) {\n        @if (!isRowTotal) {\n            <div class=\"fu-input-cell\" [class.fu-type-number]=\"column.inputType\">\n                <fusion-input-inline\n                    #inlineInput\n                    [type]=\"column.inputType\"\n                    [data]=\"data\"\n                    [selectOptions]=\"column.inlineDropdownOptions\"\n                    [pending]=\"isInRequest$ | async\"\n                    [error]=\"inputError$ | async\"\n                    [readOnly]=\"isReadOnly\"\n                    [currencyPipeParameters]=\"column?.currencyPipeParameters\"\n                    (onSave)=\"onEndEdit($event)\"\n                    (onCancel)=\"onCancel()\"\n                ></fusion-input-inline>\n            </div>\n        }\n    } @else if (tableService.isTypeComponent(column)) {\n        <fusion-dynamic-components\n                [configuration]=\"customCellData\"\n        >\n        </fusion-dynamic-components>\n    } @else if (tableService.isTypeCurrency(column)) {\n        <div class=\"truncate\"\n             [ngClass]=\"column.align || 'right'\"\n             [style.width]=\"innerElementWidth\"\n             [fusionTooltip]=\"$any(data) | currency: 'USD'\"\n        >\n            {{\n                !isNull(data)\n                    ? ($any(data)\n                        | currency\n                        : column?.currencyPipeParameters?.currencyCode || undefined\n                            : column?.currencyPipeParameters?.display || (column?.currencyPipeParameters ? undefined : '$')\n                            : column?.currencyPipeParameters?.digitsInfo || undefined)\n                    : (data | notAvailable: notAvailableText)\n            }}\n        </div>\n    } @else if (tableService.isTypeNumber(column)) {\n        <div class=\"truncate\"\n             [ngClass]=\"column.align || 'right'\"\n             [style.width]=\"innerElementWidth\"\n             [fusionTooltip]=\"$any(data) | number: column.pipeOptions\"\n        >\n            {{ !isNull(data) ? ($any(data) | number: column.pipeOptions) : (data | notAvailable: notAvailableText) }}\n        </div>\n    } @else if (tableService.isTypePercent(column)) {\n        <div class=\"truncate\"\n             [ngClass]=\"column.align || 'right'\"\n             [style.width]=\"innerElementWidth\"\n             fusionTooltip=\"{{ $any(data) | number: column.pipeOptions }}%\"\n        >\n            {{ !isNull(data) ? ($any(data) | number: column.pipeOptions) : (data | notAvailable: notAvailableText) }}\n            {{ !isNullOrUndefined(data) ? '%' : null }}\n        </div>\n    } @else if (tableService.isTypeDate(column)) {\n        <div class=\"truncate\">\n            {{\n                data\n                    ? isAsDate(data)\n                        ? ($any(data) | date: getDateFormat(column.dateFormat):getDateUTCFormat(column.ignoreTimeZone))\n                        : data\n                    : !isRowTotal\n                        ? 'No ' + column.title\n                        : ''\n            }}\n        </div>\n    } @else {\n        <div>&nbsp;{{ column.type }}</div>\n    }\n}\n\n<!--Row utility Cell icons and buttons-->\n@if (!isRowTotal && isLastColumn) {\n    <!--single remove action button-->\n    <ng-container *ngIf=\"isRemove && !isReadOnly\" [ngTemplateOutlet]=\"removeActionButton\"></ng-container>\n    <!--single remove action button-->\n    <!--multiple actions menu-->\n    <ng-container *ngIf=\"multipleActions as rowActions\" [ngTemplateOutlet]=\"multipleActionsMenu\"\n                  [ngTemplateOutletContext]=\"{$implicit: rowActions.actions}\"></ng-container>\n    <!--multiple actions menu-->\n}\n\n<ng-template #removeActionButton>\n    <div class=\"fu-button-holder\">\n        <fusion-icon-button [iconName]=\"cellRemoveActionIcon\"\n                            [fusionTooltip]=\"getRemoveIconTooltipText()\"\n                            (click)=\"onRowRemoveClicked($event)\"></fusion-icon-button>\n    </div>\n</ng-template>\n\n<ng-template #multipleActionsMenu let-menuActions>\n    <div id=\"{{actionsMenuButtonId}}\" class=\"fu-button-holder\" [class.fu-row-menu-shown]=\"shownActionsMenu$ | async\">\n        <fusion-icon-button [iconName]=\"'ph/dots-three'\" (click)=\"onActionButtonClicked()\"></fusion-icon-button>\n        @if (shownActionsMenu$ | async) {\n            <fusion-menu-drop style=\"--fu-drop-menu-width: 200px\"\n                    *fusionTeleporting=\"'#'+options.tableId+'_tableTeleportWrapper'\"\n                    [fusionReposition]=\"'#'+actionsMenuButtonId\"\n                    [fusionRepositionPlacement]=\"floatingMenuPosition\"\n                    [fusionRepositionOffset]=\"{y:-32, x:-32}\"\n                    [menuItems]=\"menuActions\"\n                    (fusionClickOutside)=\"onActionMenuClickOutSide($event)\"\n                    (menuItemClicked)=\"menuItemClicked($event)\"\n            ></fusion-menu-drop>\n        }\n    </div>\n</ng-template>\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    Inject,\n    Input,\n    OnChanges,\n    OnInit,\n    Optional,\n    Output,\n    SimpleChanges,\n    Type,\n    ViewChild\n} from '@angular/core';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {isBoolean, isNull, isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {TableService} from '@ironsource/fusion-ui/components/table/common/services';\nimport {InputInlineComponent} from '@ironsource/fusion-ui/components/input-inline/v4';\nimport {AdvancedInputInline} from '@ironsource/fusion-ui/components/input-inline/common/base';\nimport {\n    DEFAULT_REMOVE_ICON_V3,\n    DEFAULT_REMOVE_TOOLTIP_TEXT,\n    TABLE_OPTIONS_TOKEN,\n    TableModuleOptions,\n    CellPosition,\n    TableColumn,\n    TableOptions,\n    TableRowHeight,\n    TableMultipleActions\n} from '@ironsource/fusion-ui/components/table/common/entities';\nimport {ERROR_MESSAGES} from '@ironsource/fusion-ui/components/error-message';\nimport {LogService} from '@ironsource/fusion-ui/services/log';\nimport {DynamicComponentConfiguration} from '@ironsource/fusion-ui/components/dynamic-components/common/entities';\nimport {IconData} from '@ironsource/fusion-ui/components/icon/common/entities';\nimport {MenuDropComponent, MenuDropItem} from '@ironsource/fusion-ui/components/menu-drop/v4';\nimport {TooltipPosition} from '@ironsource/fusion-ui/components/tooltip/common/base';\nimport {CommonModule} from '@angular/common';\nimport {NotAvailablePipe} from '@ironsource/fusion-ui/pipes/not-available';\nimport {TooltipDirective} from '@ironsource/fusion-ui/components/tooltip/v4';\nimport {CheckboxComponent} from '@ironsource/fusion-ui/components/checkbox/v4';\nimport {DynamicComponentsModule} from '@ironsource/fusion-ui/components/dynamic-components/v1';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {IconButtonComponent} from '@ironsource/fusion-ui/components/button/v4';\nimport {ClickOutsideModule} from '@ironsource/fusion-ui/directives/click-outside';\nimport {TeleportingModule} from '@ironsource/fusion-ui/directives/teleporting';\nimport {RepositionDirective} from '@ironsource/fusion-ui/directives/reposition';\nimport {ToggleComponent} from '@ironsource/fusion-ui/components/toggle/v4';\n\ntype CellDataType = Type<Component> | FormControl | string | boolean | undefined | null;\n\n@Component({\n    // eslint-disable-next-line\n    selector: '[fusionTableCell]',\n    standalone: true,\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        NotAvailablePipe,\n        TooltipDirective,\n        CheckboxComponent,\n        InputInlineComponent,\n        DynamicComponentsModule,\n        IconModule,\n        IconButtonComponent,\n        MenuDropComponent,\n        ClickOutsideModule,\n        TeleportingModule,\n        RepositionDirective,\n        ToggleComponent\n    ],\n    templateUrl: './table-cell.component.html',\n    styleUrls: ['./table-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellComponent implements OnInit, OnChanges {\n    @Input() set data(value: CellDataType) {\n        this._data = value;\n    }\n\n    @Input() column: TableColumn;\n    @Input() row: {[key: string]: any};\n    @Input() rowIndex: string | number;\n    @Input() rowSpanIndex: number;\n    @Input() options: TableOptions = null;\n    @Input() position: CellPosition;\n\n    @Input() infoIconTooltip: string;\n    @Input() isRemove: boolean;\n    @Input() floatingActionsDisabled: boolean;\n    @Input() isRowSelected: boolean;\n    @Input() isLastColumn: boolean;\n    @Input() customClass: {[columnKey: string]: string} = {};\n    @Input() isReadOnly: boolean;\n\n    @Output() selectedChange = new EventEmitter();\n    @Output() dataChange = new EventEmitter();\n    @Output() remove = new EventEmitter();\n\n    @ViewChild('inlineInput') inlineInputEdit: InputInlineComponent;\n\n    @HostBinding('class.is-inline-removable') isInlineRemovable = false;\n\n    @HostBinding('class.sticky-left') get sticky(): boolean {\n        return this.column.sticky;\n    }\n\n    @HostBinding('style.left') get stickyLeft(): string {\n        return this.column.stickyLeftMargin;\n    }\n\n    isInRequest$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n    toggleInRequest$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n    innerElementWidth = '';\n    isInEditMode = false;\n    initInputData: string | boolean | undefined | null | AdvancedInputInline;\n    inputError$ = new BehaviorSubject('');\n    notAvailableText: string;\n    isNull: (object: any) => boolean = isNull;\n    isNullOrUndefined: (object: any) => boolean = isNullOrUndefined;\n    customCellData: DynamicComponentConfiguration;\n    floatingMenuPosition = TooltipPosition.BottomRight;\n\n    shownActionsMenu$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n    get actionsMenuButtonId(): string {\n        return this.options.tableId + '_' + this.rowIndex;\n    }\n\n    get data(): CellDataType {\n        let data = this._data;\n        if (Array.isArray(data)) {\n            data = data[this.rowSpanIndex ?? 0];\n        }\n        if (!isNull(data) && this.tableService.isTypeComponent(this.column) && typeof data === 'object') {\n            data['cellPosition'] = this.position;\n        }\n        return data;\n    }\n\n    get cellStringData(): string {\n        if (typeof this.data === 'string' || typeof this.data === 'number') {\n            return this.data;\n        } else if (this.isRowTotal && !isNullOrUndefined(this.data)) {\n            this.logService.error(\n                new Error(\n                    `Expected data type String for cell in total row with type \"totalRowTypeAsString\" for column key:${this.column.key}`\n                )\n            );\n            return ' ';\n        } else if (this.isRowTotal && isNullOrUndefined(this.data)) {\n            return ' '; // for total row cell as string if data not arrive\n        }\n        return isNull(this.data) ? null : undefined;\n    }\n\n    get isRowTotal(): boolean {\n        return !isNullOrUndefined(this.options.hasTotalsRow) && this.options.hasTotalsRow && this.position.x === 0;\n    }\n\n    get isSmallActionButton(): boolean {\n        return !!this.options && !!this.options.rowHeight && this.options.rowHeight === TableRowHeight.Small;\n    }\n\n    get nativeElement(): Node {\n        return this.column && typeof this.column.renderNativeElement === 'function'\n            ? this.column.renderNativeElement(this.data, this.position, this.row)\n            : null;\n    }\n\n    get cellRemoveActionIcon(): IconData {\n        return this.options?.remove && this.options.remove?.icon ? this.options.remove.icon : DEFAULT_REMOVE_ICON_V3;\n    }\n\n    get multipleActions(): TableMultipleActions {\n        const actionsMenu = this.options?.rowActionsMenu;\n        if (this.options?.rowActionsMenu && Array.isArray(this.options?.rowActionsMenu.actions)) {\n            actionsMenu.actions = this.options?.rowActionsMenu?.actions.map(this.setDisableStateForFloatingAction.bind(this));\n        }\n        return actionsMenu;\n    }\n\n    private _data: CellDataType;\n    private inlineInputViewOnlyText = '';\n    private onActionMenuClose$ = new Subject<void>();\n\n    constructor(\n        public tableService: TableService,\n        @Optional()\n        @Inject(TABLE_OPTIONS_TOKEN)\n        private tableModuleOptions: TableModuleOptions,\n        private logService: LogService,\n        public elementRef: ElementRef\n    ) {}\n\n    ngOnInit() {\n        const {paddingLeft, paddingRight} = this.getSellLefRightPadding();\n        this.innerElementWidth = this.column.width ? `calc(${this.column.width} - ${paddingLeft} - ${paddingRight})` : null;\n        this.notAvailableText = this.options ? this.options.notAvailableText : null;\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.isInlineRemovable = this.isRemove;\n        if (this.tableService.isTypeInputEdit(this.column) && changes?.data?.currentValue && !changes.data.firstChange) {\n            this._setInputData();\n        }\n\n        if (this.tableService.isTypeComponent(this.column) && (changes?.data?.currentValue || changes?.column?.currentValue)) {\n            this.renderCustomElement();\n        }\n\n        if (changes?.data?.firstChange && changes?.data?.currentValue?.value?.viewOnlyText) {\n            this.inlineInputViewOnlyText = changes.data.currentValue.value.viewOnlyText;\n        }\n    }\n\n    _setInputData() {\n        this.initInputData = !isNullOrUndefined(this.column.dataParser)\n            ? this.column.dataParser((this.data as FormControl).value)\n            : (this.data as FormControl).value;\n    }\n\n    getRemoveIconTooltipText(): string {\n        return this.options && this.options.remove && this.options.remove.tooltip && this.options.remove.tooltip.text\n            ? this.options.remove.tooltip.text\n            : DEFAULT_REMOVE_TOOLTIP_TEXT;\n    }\n\n    isBoolean(variable): boolean {\n        return isBoolean(variable);\n    }\n\n    isRowChecked(): boolean {\n        return this.options.isGroupedTable ? (this.data as boolean) : this.isRowSelected;\n    }\n\n    isAsDate(date: any): boolean {\n        return !isNaN(Date.parse(date.toString()));\n    }\n\n    onToggleChanged(newValue: boolean) {\n        this.toggleInRequest$.next(true);\n        this.dataChange.emit({\n            newValue,\n            onCellRequestDone: (isSuccess: boolean, error: {message: string; status: number}, stayInEditMode = false) => {\n                if (isSuccess) {\n                    this.data = newValue;\n                } else {\n                    this.data = !newValue;\n                }\n                this.toggleInRequest$.next(false);\n            }\n        });\n    }\n\n    onEndEdit(valuesOptions) {\n        const formControl = this.data as FormControl;\n        if (formControl.valid) {\n            this.isInEditMode = false;\n            const newValue = !isNullOrUndefined(this.column.dataParser) ? this.column.dataParser(formControl.value) : formControl.value;\n            const prevValue = valuesOptions.currentValue;\n            const inlineInputComponent = this.inlineInputEdit;\n            if (newValue !== this.initInputData) {\n                this.initInputData = newValue;\n                // set waiter for cell\n                this.isInRequest$.next(true);\n                this.dataChange.emit({\n                    newValue,\n                    prevValue,\n                    onCellRequestDone: (isSuccess: boolean, error: {message: string; status: number}, stayInEditMode = false) => {\n                        if (!isSuccess) {\n                            if (stayInEditMode) {\n                                inlineInputComponent.setEditMode$.next(newValue);\n                            } else {\n                                this.inputError$.next(error?.message);\n                            }\n                            this.initInputData = prevValue;\n                        } else if (this.initInputData === '') {\n                            this.inputError$.next('');\n                            this.initInputData = formControl.value;\n                        } else {\n                            this.inputError$.next('');\n                            const newInputValue = this.inlineInputViewOnlyText\n                                ? {\n                                      value: newValue,\n                                      viewOnlyText: this.inlineInputViewOnlyText\n                                  }\n                                : newValue;\n                            formControl.setValue(newInputValue, {\n                                emitEvent: false\n                            });\n                        }\n                        this.isInRequest$.next(false);\n                    }\n                });\n            }\n        } else {\n            const allErrors = formControl.errors || {};\n            Object.keys(allErrors).forEach(errorKey => {\n                this.inputError$.next(\n                    this._getMessage(\n                        errorKey,\n                        !isNullOrUndefined(this.column.customErrorMapping) ? this.column.customErrorMapping[errorKey] ?? {} : {},\n                        allErrors[errorKey]\n                    )\n                );\n            });\n        }\n    }\n\n    onCancel() {\n        this.inputError$.next('');\n        this.isInEditMode = false;\n    }\n\n    onRowRemoveClicked($event: MouseEvent) {\n        if ($event) {\n            $event.preventDefault();\n            $event.stopPropagation();\n        }\n        this.remove.emit();\n    }\n\n    getDateFormat(dateFormat: string): string {\n        return dateFormat || 'd MMM yyyy';\n    }\n\n    getDateUTCFormat(ignoreTimeZone: boolean): string {\n        return ignoreTimeZone ? null : 'UTC';\n    }\n\n    renderCustomElement() {\n        if (this.column) {\n            this.customCellData = {\n                component: {\n                    type: this.column.component,\n                    data: this.data\n                },\n                element: this.nativeElement\n            };\n        }\n    }\n\n    menuItemClicked(action: MenuDropItem) {\n        this.closeActionsMenu();\n        this.tableService.rowActionClicked.emit({action: action, rowIndex: this.rowIndex, row: this.row});\n    }\n\n    onActionButtonClicked() {\n        this.shownActionsMenu$.next(true);\n        this.tableService.tableScrolled.pipe(takeUntil(this.onActionMenuClose$)).subscribe($event => {\n            this.closeActionsMenu();\n        });\n    }\n\n    onActionMenuClickOutSide(target) {\n        if (!target.closest('#' + this.actionsMenuButtonId)) {\n            this.closeActionsMenu();\n        }\n    }\n\n    private closeActionsMenu() {\n        this.shownActionsMenu$.next(false);\n        this.onActionMenuClose$.next();\n        this.onActionMenuClose$.complete();\n    }\n\n    private _getMessage(errorKey, {errorMessageKey = '', textMapping = []}, errorDefaults?: any): string {\n        const tableModuleOptions = !isNullOrUndefined(this.tableModuleOptions) ? this.tableModuleOptions : {errorMessages: ERROR_MESSAGES};\n        if (!tableModuleOptions.errorMessages) {\n            tableModuleOptions.errorMessages = ERROR_MESSAGES;\n        }\n        let errorMessage = tableModuleOptions.errorMessages[errorMessageKey] || tableModuleOptions.errorMessages[errorKey];\n        if (errorMessage) {\n            errorMessage = errorMessage.replace('{NAME}', this.column.title);\n            errorMessage = errorMessage.replace('{INNER-NAME}', this.column.title);\n            if (textMapping && textMapping.length > 0) {\n                textMapping.forEach(mappObj => {\n                    errorMessage = errorMessage.replace(`{${mappObj.key}}`, mappObj.value);\n                });\n            }\n        }\n        return errorMessage;\n    }\n\n    private getSellLefRightPadding(): {paddingLeft: string; paddingRight: string} {\n        const computedStyle = getComputedStyle(this.elementRef.nativeElement);\n        const paddingLeft = computedStyle.paddingLeft;\n        const paddingRight = computedStyle.paddingRight;\n        return {paddingLeft, paddingRight};\n    }\n\n    setDisableStateForFloatingAction(menuItem: MenuDropItem): MenuDropItem {\n        return this.options?.isFloatingActionDisabled && typeof this.options?.isFloatingActionDisabled === 'function'\n            ? {...menuItem, disabled: this.options.isFloatingActionDisabled(this.row, menuItem)}\n            : menuItem;\n    }\n}\n","<!-- region Expand rows Cell -->\n@for (expandCell of (expandCellCount | async); track expandCell; let isLast = $last, idx = $index){\n    @if(cellShown | generic:'cell-expand'){\n        <td class=\"expand-cell\"\n            [class.total-row]=\"isRowTotal\"\n            [class.expanded]=\"isExpanded\"\n            [class.inner-row]=\"isInnerRow\"\n            [class.sticky-left]=\"options?.rowsExpandableOptions?.sticky\"\n            [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.CELL+'-r'+rowIndex+'-c'+idx)\"\n        >\n            @if(isLast && showExpandIcon()){\n                <div><fusion-icon-button\n                        [iconName]=\"!isExpanded ? expandArrowIconName : collapseArrowIconName\"\n                        [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.EXPAND_ICON_BUTTON+'-r'+rowIndex+'-c'+idx)\"\n                        (click)=\"expandRow.emit({rowIndex: rowIndex, row: row, isExpanded: !isExpanded})\"\n                ></fusion-icon-button></div>\n            }\n        </td>\n    }\n}\n<!-- endregion Expand Cell -->\n@for (column of columns; track column; let columnIndex = $index, isLast = $last){\n    @if (cellShown | generic:column.key){\n        <td fusionTableCell\n            [fusionTooltip]=\"columnsData[columnIndex]?.tooltip\"\n            [data]=\"row[column.key]\"\n            [row]=\"row\"\n            [rowIndex]=\"rowIndex\"\n            [rowSpanIndex]=\"rowSpanIndex\"\n            [column]=\"column\"\n            [options]=\"options\"\n            [position]=\"{x: rowIndex, y: columnIndex}\"\n            [isRemove]=\"columnsData[columnIndex]?.isRemove\"\n            [infoIconTooltip]=\"columnsData[columnIndex]?.infoIconOnHoverTooltip\"\n            [isRowSelected]=\"isRowSelected\"\n            [isLastColumn]=\"isLast\"\n            [isReadOnly]=\"isRowReadOnly\"\n            [customClass]=\"row['customClass']\"\n            [class]=\"columnsData[columnIndex]?.classes\"\n            [class.cell-tooltip]=\"columnsData[columnIndex]?.hasTooltip\"\n            [class.after-sticky]=\"hasAfterSticky\"\n            [class.inner-row]=\"isInnerRow\"\n            [class.fu-editable-cell]=\"tableService.isTypeInputEdit(column)\"\n            [class.is-checkbox-holder]=\"tableService.isTypeCheckbox(column)\"\n            [class.sticky-right]=\"column.stickyRight\"\n            [class.fu-sticky-actions]=\"isLast && options?.rowActionsMenu?.stickyActionButton\"\n            [ngStyle]=\"columnsData[columnIndex]?.styles\"\n            [style.width]=\"columnsData[columnIndex]?.width\"\n            [style.right]=\"column.stickyRightMargin\"\n            [attr.colspan]=\"columnsData[columnIndex]?.colspan\"\n            [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.CELL+'-r'+rowIndex+'-c'+columnIndex)\"\n            (remove)=\"rowRemoved.emit()\"\n            (selectedChange)=\"selectedChange.emit($event)\"\n            (dataChange)=\"onDataChange($event, column.key)\"\n        ></td>\n    }\n}\n\n","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    HostBinding,\n    Injector,\n    Input,\n    OnChanges,\n    OnInit,\n    Output,\n    SimpleChanges\n} from '@angular/core';\nimport {TableColumn, TableOptions, TableRowExpandEmitter, TableRowMetaData} from '@ironsource/fusion-ui/components/table/common/entities';\nimport {TableService} from '@ironsource/fusion-ui/components/table/common/services';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {Observable, of} from 'rxjs';\nimport {CommonModule} from '@angular/common';\nimport {GenericPipe} from '@ironsource/fusion-ui/pipes/generic';\nimport {TableRow, ColumnData} from '@ironsource/fusion-ui/components/table/common/entities';\nimport {IconData, IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {TableTestIdModifiers} from '@ironsource/fusion-ui/entities';\nimport {TestIdsService} from '@ironsource/fusion-ui/services/test-ids';\nimport {TableCellComponent} from '../table-cell/table-cell.component';\nimport {TooltipDirective} from '@ironsource/fusion-ui/components/tooltip/v4';\nimport {IconButtonComponent} from '@ironsource/fusion-ui/components/button/v4';\n\n@Component({\n    // eslint-disable-next-line\n    selector: '[fusionTableRow]',\n    standalone: true,\n    imports: [CommonModule, GenericPipe, IconModule, TooltipDirective, TableCellComponent, IconButtonComponent],\n    templateUrl: './table-row.component.html',\n    styleUrls: ['./table-row.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableRowComponent implements OnInit, OnChanges {\n    @Input() rowIndex: string | number;\n    @Input() rowSpanIndex: number;\n    @Input() row: TableRow;\n    @Input() options: TableOptions;\n    @Input() columns: TableColumn[];\n    @Input() isRemovableOnHover: boolean;\n    @Input() isRowSelected: boolean;\n    @Input() isExpanded: boolean;\n    @Input() isInnerRow: boolean;\n    @Input() hasAfterSticky: boolean;\n\n    /** @internal */\n    @Input() testId: string;\n\n    @Output() rowRemoved = new EventEmitter();\n    @Output() selectedChange = new EventEmitter();\n    @Output() expandRow = new EventEmitter<TableRowExpandEmitter>();\n\n    @HostBinding('attr.data-row-idx') dataRowIndex: string | number;\n\n    @HostBinding('class.is-row-expanded') get isRowExpanded(): boolean {\n        return this.isExpanded;\n    }\n\n    @HostBinding('class.is-inner-row-expandable') get isInnerRowExpandable(): boolean {\n        return (\n            this.options &&\n            this.options.rowsExpandableOptions &&\n            this.tableService.expandLevels &&\n            this.tableService.getExpandLevelByRowIndex(this.rowIndex) <= this.tableService.expandLevels\n        );\n    }\n\n    @HostBinding('class.is-with-totals') get isRowTotal(): boolean {\n        return !isNullOrUndefined(this.options.hasTotalsRow) && this.options.hasTotalsRow && this.rowIndex === 0;\n    }\n\n    @HostBinding('class.is-row-readonly') get isRowReadOnly(): boolean {\n        return this.tableService.isRowReadOnly(this.row);\n    }\n\n    expandArrowIconName: IconData;\n    collapseArrowIconName: IconData;\n    columnsData: ColumnData[] = [];\n\n    cellShown = this.showCell.bind(this);\n\n    /** @internal */\n    tableTestIdModifiers: typeof TableTestIdModifiers = TableTestIdModifiers;\n    /** @internal */\n    testIdsService: TestIdsService = this.injector.get(TestIdsService);\n\n    get expandCellCount(): Observable<number[]> {\n        if (!!this.options && !!this.options.rowsExpandableOptions && !!this.tableService.expandLevels) {\n            const expandLevelsByIndex = this.tableService.getExpandLevelByRowIndex(this.rowIndex);\n            const expandLevels =\n                expandLevelsByIndex <= this.tableService.expandLevels ? expandLevelsByIndex : this.tableService.expandLevels;\n\n            return of([...Array(expandLevels).keys()]);\n        }\n        return of([]);\n    }\n\n    hasTooltip(key: string, row: TableRow): boolean {\n        return !isNullOrUndefined(this.getCellTooltip(key, row));\n    }\n\n    getCellTooltip(key: string, row): string {\n        // eslint-disable-next-line\n        const rowMetaData: TableRowMetaData = row['rowMetaData'];\n        return !!rowMetaData && !!rowMetaData.cellToolTip ? rowMetaData.cellToolTip[key] : null;\n    }\n\n    infoIconOnHooverToolTip(options: TableOptions, row: TableRow): string {\n        return options?.infoIconForRowOnHover ? options?.infoIconForRowOnHover(row) : '';\n    }\n\n    rowRemoveIconOptions(options: TableOptions, row: TableRow): {hideRemoveIcon: boolean} {\n        return {\n            hideRemoveIcon: options?.remove && options?.isRemoveIconHiddenForRow && options?.isRemoveIconHiddenForRow(row)\n        };\n    }\n\n    constructor(public tableService: TableService, private cdRef: ChangeDetectorRef, private injector: Injector) {}\n\n    ngOnInit(): void {\n        this.dataRowIndex = this.rowIndex;\n        this.expandArrowIconName = 'ph/caret-right';\n        this.collapseArrowIconName = 'ph/caret-down';\n        if (this.isRowTotal) {\n            Object.assign(this.row, {isRowTotal: true});\n        }\n    }\n\n    ngOnChanges({options, columns, row}: SimpleChanges) {\n        const activeOptions = options?.currentValue || this.options;\n        const activeColumns = columns?.currentValue || this.columns;\n        const activeRow = row?.currentValue || this.row;\n        if (options?.currentValue || columns?.currentValue || row?.currentValue) {\n            this.columnsData = this.getColumnsData(activeColumns, activeOptions, activeRow);\n        }\n    }\n\n    onDataChange(options: any, rowKey): void {\n        this.tableService.toggleRowInRequest(this.row, true);\n        this.tableService.rowModelChange.emit({\n            rowIndex: this.rowIndex,\n            rowSpanIndex: this.rowSpanIndex ?? 0,\n            rowModel: this.row,\n            keyChanged: rowKey,\n            newValue: options.newValue,\n            prevValue: options.prevValue,\n            onRequestDone: (state: boolean, error: {message: string; status: number}, stayInEditOnCancel = false) => {\n                this.tableService.toggleRowInRequest(this.row, false);\n                if (options.onCellRequestDone) {\n                    options.onCellRequestDone(state, error, stayInEditOnCancel);\n                }\n                this.cdRef.markForCheck();\n            }\n        });\n    }\n\n    trackByFn(index, item) {\n        if (!item) {\n            return null;\n        }\n        return item.key ? item.key : index;\n    }\n\n    showExpandIcon(): boolean {\n        const hasKeyToIgnore = this.options && this.options.rowsExpandableOptions && this.options.rowsExpandableOptions.keyToIgnore;\n        if (!hasKeyToIgnore) {\n            return this.isInnerRow ? this.isInnerRowExpandable : !this.isRowTotal;\n        }\n        return !this.isRowTotal && !this.row[this.options.rowsExpandableOptions.keyToIgnore] && this.isInnerRowExpandable;\n    }\n\n    getCellColspan(isFirstDataCell: boolean, cellColspan?: number, expandLevel?: number): number | undefined {\n        if (isFirstDataCell && expandLevel) {\n            if (this.isInnerRow) {\n                const colspan = !isNullOrUndefined(cellColspan) ? cellColspan : 0;\n                return colspan + (expandLevel + 1 - this.tableService.getExpandLevelByRowIndex(this.rowIndex));\n            }\n            return expandLevel + 1 - this.tableService.getExpandLevelByRowIndex(this.rowIndex);\n        }\n        return cellColspan;\n    }\n\n    getAttrRowspan(columnKey: string): number {\n        let rowSpan = 0;\n        const maxRowspan = this.tableService.getMaxRowspanInColumn(this.row);\n        if (columnKey === 'cell-expand') {\n            rowSpan = maxRowspan;\n        } else {\n            const multiRowsKeys = this.tableService.getRowspanColumnsData(this.row);\n            if (!isNullOrUndefined(multiRowsKeys) && isNullOrUndefined(this.rowSpanIndex)) {\n                rowSpan = maxRowspan - multiRowsKeys[columnKey];\n            }\n        }\n        return rowSpan > 0 ? rowSpan : null;\n    }\n\n    /**\n     * Show regular cell \"isNullOrUndefined(this.rowSpanIndex)\"\n     * or if cell has rowspan index \"!isNullOrUndefined(this.rowSpanIndex)\" and key for multirow\n     * @internal\n     */\n    showCell(columnKey: string): boolean {\n        if (columnKey.startsWith('cell-expand')) {\n            return isNullOrUndefined(this.rowSpanIndex);\n        }\n        const multiRowsKeys = this.tableService.getRowspanColumnsData(this.row);\n        return isNullOrUndefined(this.rowSpanIndex) || (!isNullOrUndefined(this.rowSpanIndex) && multiRowsKeys[columnKey] !== 0);\n    }\n\n    private getColumnsData(columns: TableColumn[], options: TableOptions, row: TableRow): ColumnData[] {\n        return columns.map((column, index) => {\n            const isLast = index === columns.length - 1;\n            const isFirst = index === 0;\n            return {\n                classes: this.tableService.getColumnClasses(column),\n                tooltip: this.getCellTooltip(column.key, row),\n                hasTooltip: this.hasTooltip(column.key, row),\n                isRemove: this.tableService.isRemove(isLast, options, this.rowRemoveIconOptions(options, row)),\n                infoIconOnHoverTooltip: isLast ? this.infoIconOnHooverToolTip(options, row) : '',\n                styles: this.tableService.getColumnStyle(column),\n                colspan: this.getCellColspan(isFirst, column.colspan, this.tableService.expandLevels),\n                width: this.tableService.setWidth(isLast, column.width)\n            };\n        });\n    }\n}\n","@if(fusionTableLoadingExpanding){\n    @for(c of colsToShow; track c; let first = $first){\n        <td class=\"fu-table-cell-loading fu-expanding-loader\">\n            @if (!first){\n                <fusion-skeleton size=\"16\"></fusion-skeleton>\n            }\n        </td>\n    }\n} @else {\n    @for (r of rowsToShow; track r){\n        <tr>\n            @for(c of colsToShow; track c){\n                <td class=\"fu-table-cell-loading\"><fusion-skeleton size=\"16\"></fusion-skeleton></td>\n            }\n        </tr>\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {SkeletonComponent} from '@ironsource/fusion-ui/components/skeleton';\n\n@Component({\n    // eslint-disable-next-line\n    selector: '[fusionTableLoading]',\n    imports: [SkeletonComponent],\n    templateUrl: './table-loading.component.html',\n    styleUrls: ['./table-loading.component.scss'],\n    standalone: true\n})\nexport class TableLoadingComponent {\n    @Input() fusionTableLoading: number;\n    @Input() fusionTableLoadingExpanding = false;\n    @Input() fusionTableLoadingRows = 3;\n\n    get rowsToShow(): number[] {\n        return [...Array(this.fusionTableLoadingRows).keys()];\n    }\n\n    get colsToShow(): number[] {\n        return [...Array(this.fusionTableLoading ?? 1).keys()];\n    }\n}\n","@for (row of rows; track trackByRowInvoke(); let rowIndex = $index) {\n    <!--First parent row-->\n    <tr\n        fusionTableRow\n        [rowIndex]=\"rowIndex\"\n        [row]=\"row\"\n        [columns]=\"columns\"\n        [options]=\"options\"\n        [isRowSelected]=\"rowIsSelected | generic:row\"\n        [isExpanded]=\"isExpanded(rowIndex)\"\n        [isInnerRow]=\"false\"\n        [class.is-row-in-request]=\"tableService.rowsMetadata[row['_rowId']]?.inRequest\"\n        [testId]=\"testId\"\n        (rowRemoved)=\"tableService.removeRow({rows: rows, rowIndex: rowIndex, row: row, options: options})\"\n        (selectedChange)=\"tableService.onRowSelectChanged($event, row)\"\n        (expandRow)=\"onExpandRow($event)\"\n        [ngClass]=\"rowClass | generic:row:rowIndex\"\n        [ngStyle]=\"!!options.rowsOptions && !!options.rowsOptions.global ? options.rowsOptions.global.style : null\"\n    ></tr>\n    <!--First parent row END-->\n    <!--Child rows-->\n    @if(displayExpandableRows(rowIndex)){\n        <ng-container\n                [ngTemplateOutlet]=\"childRowsTemplate\"\n                [ngTemplateOutletContext]=\"{$implicit: row[options.rowsExpandableOptions.key], parentIndex: rowIndex}\"\n        ></ng-container>\n    }\n    <!--Child rows END-->\n\n    <!--Template Child rows render-->\n    <ng-template #childRowsTemplate let-parentRowChildren let-parentIndex=\"parentIndex\">\n        <ng-container *fusionLoadMore=\"let displayRows$ of parentRowChildren; chunkSize: options.rowsExpandableOptions?.expendChunkSize || 10; let loadMore = loadMore; let hasMore$ = hasMore$;\">\n            @if(isInnerEntityType('dynamicComponent')){\n                <ng-container *ngIf=\"(displayRows$ | async) as innerEntity\">\n                    @if(innerEntity.length){\n                        <tr class=\"is-inner-row fu-inner-object\">\n                            <td [attr.colspan]=\"fullCellColspan\">\n                                <div class=\"fu-inner-object-wrapper\">\n                                    <ng-container *ngComponentOutlet=\"innerEntity[0]?.component?.type; inputs: innerEntity[0]?.component?.data\"></ng-container>\n                                </div>\n                            </td>\n                        </tr>\n                    }\n                </ng-container>\n            } @else {\n                <ng-container\n                        *ngFor=\"let innerRow of displayRows$ | async; trackBy: trackByRowInvoke(); let innerRowIndex = index; let last = last\"\n                >\n                    <tr\n                            fusionTableRow\n                            class=\"is-inner-row\"\n                            [rowIndex]=\"parentIndex + '_' + innerRowIndex\"\n                            [row]=\"innerRow\"\n                            [columns]=\"options.rowsExpandableOptions.columns\"\n                            [options]=\"childRowOptions\"\n                            [isExpanded]=\"isExpanded(parentIndex + '_' + innerRowIndex)\"\n                            [isInnerRow]=\"true\"\n                            [ngClass]=\"rowClass | generic:innerRow:innerRowIndex\"\n                            [hasAfterSticky]=\"hasAfterSticky(last, hasMore$ | async, parentIndex + '_' + innerRowIndex)\"\n                            [ngStyle]=\"!!options?.rowsOptions?.global ? options.rowsOptions.global.style : null\"\n                            (expandRow)=\"onExpandRow($event)\"\n                    ></tr>\n                    @if(!loadingChildRows[parentIndex] && (hasMore$ | async) && last){\n                        <tr class=\"full-cell load-more\">\n                            <td [attr.colspan]=\"fullCellColspan\">\n                                <div class=\"fu-load-more-button-wrapper\">\n                                    <fusion-link color=\"primary\" (click)=\"loadMore()\">Load more</fusion-link>\n                                </div>\n                            </td>\n                        </tr>\n                    }\n                </ng-container>\n            }\n        </ng-container>\n        @if(loadingChildRows[parentIndex]){\n            <tr [fusionTableLoading]=\"fullCellColspan\" [fusionTableLoadingExpanding]=\"true\" fusionTableLoadingRows=\"1\"></tr>\n        }\n        @if (failedChildRows[parentIndex]){\n            <tr class=\"full-cell failed\">\n                <td [attr.colspan]=\"fullCellColspan\">\n                    <div class=\"fu-load-failed\">\n                        <span>Failed to load data.</span>\n                        <fusion-link color=\"primary\" (click)=\"onExpandRow({rowIndex: rowIndex, row: row, isExpanded: true})\">\n                            Try again\n                        </fusion-link>\n                    </div>\n                </td>\n            </tr>\n        }\n    </ng-template>\n    <!--additional rows END`-->\n}\n","import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    Renderer2\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {fromEvent, Subject, from} from 'rxjs';\nimport {filter, mergeMap, takeUntil} from 'rxjs/operators';\nimport {GenericPipe} from '@ironsource/fusion-ui/pipes/generic';\nimport {TestIdsService} from '@ironsource/fusion-ui/services/test-ids';\nimport {\n    TableColumn,\n    TableOptions,\n    TableRowClassesEnum,\n    TableRowExpandEmitter,\n    ROW_HOVERED_CLASS_NAME,\n    InnerEntityType\n} from '@ironsource/fusion-ui/components/table/common/entities';\nimport {TableTestIdModifiers} from '@ironsource/fusion-ui/entities';\nimport {TableService} from '@ironsource/fusion-ui/components/table';\nimport {TableRowComponent} from '../table-row/table-row.component';\nimport {TableLoadingComponent} from '../table-loading/table-loading.component';\nimport {LoadMoreModule} from '@ironsource/fusion-ui/directives/load-more';\nimport {LinkComponent} from '@ironsource/fusion-ui/components/link';\n\n@Component({\n    // eslint-disable-next-line\n    selector: '[fusionTableBasic]',\n    standalone: true,\n    imports: [CommonModule, GenericPipe, TableRowComponent, TableLoadingComponent, LoadMoreModule, LinkComponent],\n    templateUrl: './table-basic.component.html',\n    styleUrls: ['./table-basic.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableBasicComponent implements OnInit, OnDestroy, AfterViewInit {\n    @Input() rows: {[key: string]: any}[];\n    @Input() columns: TableColumn[];\n    /** @internal */\n    @Input() expandedRows: {[key: string]: boolean};\n\n    @Input() set options(value: TableOptions) {\n        this.tableOptions = value;\n        this.childRowOptions = {...value, hasTotalsRow: false};\n    }\n\n    /** @internal */\n    @Input() testId: string;\n\n    @Output() rowSelected = new EventEmitter();\n    @Output() expandRow = new EventEmitter<TableRowExpandEmitter>();\n\n    get options() {\n        return this.tableOptions;\n    }\n\n    get fullCellColspan(): number {\n        if (!!this.tableService.expandLevels) {\n            return this.columns.length + this.tableService.expandLevels;\n        }\n        return this.columns.length;\n    }\n\n    childRowOptions: TableOptions;\n    loadingChildRows: {[key: number]: boolean} = {};\n    failedChildRows: {[key: number]: boolean} = {};\n\n    rowIsSelected = this.isRowSelected.bind(this);\n    rowClass = this.getRowClass.bind(this);\n    rowRowspanIndexes = this.getRowspanIndexes.bind(this);\n\n    /** @internal */\n    tableTestIdModifiers: typeof TableTestIdModifiers = TableTestIdModifiers;\n    /** @internal */\n    testIdsService: TestIdsService = inject(TestIdsService);\n\n    tableService: TableService = inject(TableService);\n\n    private tableOptions: TableOptions;\n    private onDestroy$ = new Subject();\n    private cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n    private elementRef: ElementRef = inject(ElementRef);\n    private renderer: Renderer2 = inject(Renderer2);\n\n    ngOnInit(): void {\n        this.tableService.selectionChanged.pipe(takeUntil(this.onDestroy$)).subscribe(val => {\n            this.cdr.markForCheck();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    ngAfterViewInit() {\n        if (this.tableService.hasRowspanRows) {\n            this.setHoverForRowspan();\n        }\n    }\n\n    trackByRowInvoke() {\n        return this.trackByRow.bind(this);\n    }\n\n    trackByRow(index, row) {\n        const keyOption = this.options && this.options.rowTrackingOption ? this.options.rowTrackingOption : 'id';\n        return row && row[keyOption] ? row[keyOption] : row;\n    }\n\n    isRowDisabled(row: any): boolean {\n        return row._options && row._options.some(options => 'disabled');\n    }\n\n    isRowSelected(row: any): boolean {\n        return this.tableService.isRowSelected(row);\n    }\n\n    getRowClass(row, rowIndex) {\n        const rowClasses = this.options.rowsOptions || {};\n        const classes = {};\n        classes[TableRowClassesEnum.Selected] = this.tableService.isRowSelected(row);\n        classes[TableRowClassesEnum.Disabled] = this.isRowDisabled(row);\n        return [\n            ...Object.keys(classes).filter((item: string) => !!classes[item]),\n            !!rowClasses[rowIndex] && !!rowClasses[rowIndex].class ? rowClasses[rowIndex].class : null\n        ].filter(Boolean);\n    }\n\n    onExpandRow({rowIndex, row, isExpanded}, updateMap = true): void {\n        if (!!row) {\n            this.loadingChildRows[rowIndex] = isExpanded;\n            delete this.failedChildRows[rowIndex];\n            const successCallback = this.onExpendRowSuccess(rowIndex).bind(this);\n            const failedCallback = this.onExpendRowFailed(rowIndex).bind(this);\n            this.expandRow.emit({rowIndex, row, isExpanded, successCallback, failedCallback, updateMap: updateMap});\n        }\n    }\n\n    displayExpandableRows(rowIndex: number | string): boolean {\n        return !!this.options?.rowsExpandableOptions?.key && this.isExpanded(rowIndex);\n    }\n\n    isInnerEntityType(innerType: InnerEntityType) {\n        return this.options.rowsExpandableOptions.innerEntityType === innerType;\n    }\n\n    isExpanded(rowIndex: number | string): boolean {\n        if (\n            this.expandedRows?.hasOwnProperty(rowIndex) ||\n            this.loadingChildRows.hasOwnProperty(rowIndex) ||\n            this.failedChildRows.hasOwnProperty(rowIndex)\n        ) {\n            return this.expandedRows[rowIndex] || this.loadingChildRows[rowIndex] || this.failedChildRows[rowIndex];\n        }\n        return this.expandedRows['default'];\n    }\n\n    hasAfterSticky(isLast, hasMore, rowIndex): boolean {\n        return isLast && (hasMore || this.loadingChildRows[rowIndex] || this.failedChildRows[rowIndex]);\n    }\n\n    getRowspanIndexes(row): number[] {\n        return [...Array(this.tableService.getMaxRowspanInColumn(row)).keys()].filter(Boolean);\n    }\n\n    private setHoverForRowspan() {\n        const rowElements = this.elementRef.nativeElement.querySelectorAll('tr[data-row-idx]');\n        const events = ['mouseenter', 'mouseleave'];\n        from(events)\n            .pipe(\n                mergeMap(event => fromEvent(rowElements, event)),\n                filter((event: MouseEvent) => {\n                    return (\n                        (event.type === 'mouseenter' && !(event.target as HTMLElement).classList.contains(ROW_HOVERED_CLASS_NAME)) ||\n                        (event.type === 'mouseleave' && (event.target as HTMLElement).classList.contains(ROW_HOVERED_CLASS_NAME))\n                    );\n                }),\n                takeUntil(this.onDestroy$)\n            )\n            .subscribe(this.toggleHoverClassForRowspan.bind(this));\n    }\n\n    private toggleHoverClassForRowspan(event: MouseEvent) {\n        const eventType = event.type;\n        const rowIndex = (event.target as HTMLElement).dataset.rowIdx;\n        const sameRowIndexSelector = 'tr[data-row-idx=\"' + rowIndex + '\"]';\n        const rows = [...this.elementRef.nativeElement.querySelectorAll(sameRowIndexSelector)];\n        switch (eventType) {\n            case 'mouseenter':\n                rows.forEach(row => {\n                    this.renderer.addClass(row, ROW_HOVERED_CLASS_NAME);\n                });\n                break;\n            case 'mouseleave':\n                rows.forEach(row => {\n                    this.renderer.removeClass(row, ROW_HOVERED_CLASS_NAME);\n                });\n                break;\n        }\n    }\n\n    private onExpendRowSuccess(rowIndex: number): () => void {\n        return () => {\n            delete this.loadingChildRows[rowIndex];\n        };\n    }\n\n    private onExpendRowFailed(rowIndex: number): () => void {\n        return () => {\n            delete this.loadingChildRows[rowIndex];\n            this.failedChildRows[rowIndex] = true;\n            this.cdr.detectChanges();\n        };\n    }\n}\n","@if (hasCustomHeader || options?.tableLabel) {\n    <div class=\"fu-table-header-wrapper\">\n        @if (hasCustomHeader) {\n            <ng-content select=\".fu-table-header\"></ng-content>\n        } @else {\n            @if (options?.tableLabel) {\n                <div class=\"fu-table-label\">\n                    <div class=\"fu-table-label-text\"\n                         [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:tableTestIdModifiers.LABEL\">\n                        {{ options?.tableLabel?.text }}\n                    </div>\n                    @if (options?.tableLabel?.tooltip) {\n                        <fusion-icon class=\"fu-header-tooltip-icon\"\n                                     [name]=\"options?.tableLabel?.icon ?? iconTooltip\"\n                                     [fusionTooltip]=\"options?.tableLabel?.tooltip\"\n                                     [testId]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:tableTestIdModifiers.HEADER_TOOLTIP\"\n                        ></fusion-icon>\n                    }\n                </div>\n            }\n            @if (options?.searchOptions) {\n                <fusion-search\n                        [placeholder]=\"options?.searchOptions?.placeholder\"\n                        [formControl]=\"searchFormControl\"\n                        [testId]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:tableTestIdModifiers.SEARCH\"\n                ></fusion-search>\n            }\n        }\n    </div>\n}\n<div id=\"{{id}}_tableTeleportWrapper\"></div>\n<div #tableWrapper class=\"tableWrap\" [ngClass]=\"wrapperClasses\">\n    @if (!tableMainError) {\n        <table [id]=\"id\" #table>\n            <!-- region Table Header-->\n            @if (columns && options) {\n                @if (columns.length) {\n                    <thead [hidden]=\"(isEmpty || (loading && !isLoadingOverlay)) && hideHeaderOnEmpty\">\n                    <!-- region SubHeader-->\n                        @if (subHeader.length) {\n                            <tr>\n                                @if (!!options?.rowsExpandableOptions) {\n                                    <ng-container [ngTemplateOutlet]=\"headerExpandColumn\"\n                                                  [ngTemplateOutletContext]=\"{$implicit: true}\"\n                                    ></ng-container>\n                                }\n                                @for (subheader of subHeader; track subHeader; let isFirst = $first) {\n                                    <td class=\"fu-header-group\"\n                                        [class.fu-border-left]=\"!isFirst\"\n                                        [attr.colspan]=\"(isFirst && !!options?.rowsExpandableOptions) ? subheader.colspan + 1 : subheader.colspan\"\n                                    >\n                                        {{ subheader.name }}\n                                    </td>\n                                }\n                            </tr>\n                        }\n                    <!-- endregion SubHeader-->\n                    <!-- region Header-->\n                    <tr [ngStyle]=\"!!options.rowsOptions && !!options.rowsOptions.headerRow ? options.rowsOptions.headerRow.style : null\">\n                        @if (!!options?.rowsExpandableOptions) {\n                            <ng-container [ngTemplateOutlet]=\"headerExpandColumn\"></ng-container>\n                        }\n                        @for (column of columns; track trackByFunc; let isLast = $last; let isFirst = $first; let idx = $index) {\n                            <td\n                                    [attr.data-col-key]=\"column.key\"\n                                    [ngClass]=\"tableService.getColumnClasses(column, true)\"\n                                    [ngStyle]=\"tableService.getColumnStyle(column)\"\n                                    [style.width]=\"tableService.setWidth(isLast, column.width)\"\n                                    [style.min-width]=\"column.width\"\n                                    [style.top.px]=\"options?.stickyHeaderTopOffset\"\n                                    [attr.data-editable]=\"tableService.isTypeInputEdit(column)\"\n                                    [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.COLUMN_HEADER+idx)\"\n                            >\n                                <div class=\"fu-header-cell-content\"\n                                     [ngClass]=\"column.headerAlign ?? tableService.getCellAlignByColumnType(column)\"\n                                >\n                                @if (tableService.isTypeCheckbox(column) && isAllRowsSelectable && !isEmpty && isCheckboxTitleShown) {\n                                    <fusion-checkbox class=\"is-regular\" title=\"select / un-select all\"\n                                                     [checked]=\"tableService.isAllRowsSelected(rows)\"\n                                                     [isIndeterminate]=\"tableService.isPartialSelected(rows)\"\n                                                     (changed)=\"tableService.onRowsSelectChanged(options.isGroupedTable, rows, $event)\"\n                                                     [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:tableTestIdModifiers.COLUMN_HEADER_SELECT_ALL\"\n                                    ></fusion-checkbox>\n                                } @else if (column.filter && column.filter.options) {\n                                    <!-- todo: Add support for filter column -->\n                                            <!--<fusion-multi-dropdown\n                                                        placeholder=\"Please Select\"\n                                                        class=\"filter\"\n                                                        [selected]=\"column.filter.selected\"\n                                                        [options]=\"column.filter.options\"\n                                                        (selectedChange)=\"filterColumn(column, $event)\"\n                                                        [confirm]=\"true\"\n                                                        [search]=\"true\"\n                                                        selectAllLabel=\"Select All <span class='grey'>(No Filters)</span>\"\n                                                >\n                                                </fusion-multi-dropdown>-->\n                                } @else {\n                                    <div class=\"fu-header-text\"\n                                         (click)=\"onHeaderClicked(column)\"\n                                         [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.COLUMN_TITLE+idx)\"\n                                    >{{ column.title }}\n                                    </div>\n                                    @if (column.tooltip) {\n                                        <fusion-icon class=\"fu-header-tooltip-icon\"\n                                                     [fusionTooltip]=\"column.tooltip\"\n                                                     [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.COLUMN_TOOLTIP+idx)\"\n                                                     [name]=\"column.tooltipIcon || iconTooltip\"\n                                        ></fusion-icon>\n                                    }\n                                    @if (tableService.isColumnSortable(column)) {\n                                            <div class=\"fu-sort-wrapper\" (click)=\"onHeaderClicked(column)\">\n                                            @if (column.sort === 'asc') {\n                                                <div class=\"fu-sort-up\"\n                                                     [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.COLUMN_SORT_UP+idx)\">\n                                                    <fusion-icon [name]=\"iconArrowUp\"></fusion-icon>\n                                                </div>\n                                            } @else if (column.sort === 'desc') {\n                                                <div class=\"fu-sort-down\"\n                                                     [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:(tableTestIdModifiers.COLUMN_SORT_DOWN+idx)\">\n                                                    <fusion-icon [name]=\"iconArrowDown\"></fusion-icon>\n                                                </div>\n                                            }\n                                        </div>\n                                    }\n                                }\n                                </div>\n                            </td>\n                        }\n                    </tr>\n                    <!-- endregion Header-->\n                    </thead>\n                }\n            }\n            <!-- endregion Table Header-->\n            <!-- region Table Body-->\n            @if (!options.isGroupedTable && (!loading || isLoadingOverlay) && !isEmpty) {\n                <tbody #tableBody\n                       fusionTableBasic\n                       [rows]=\"tableRows\"\n                       [columns]=\"columns\"\n                       [options]=\"options\"\n                       [expandedRows]=\"expandedRows\"\n                       [testId]=\"testId\"\n                       (rowSelected)=\"selectionChanged.emit($event)\"\n                       (expandRow)=\"doExpandRow($event)\"\n                       (click)=\"onTableBodyClicked($event)\"\n                ></tbody>\n            }\n            <!-- region grouped Table Body-->\n            <!--\n                            <tbody\n                                    *ngIf=\"options.isGroupedTable && (!loading || isLoadingOverlay) && !isEmpty\"\n                                    fusionTableGrouped\n                                    [rows]=\"groupedTableRows\"\n                                    [columns]=\"columns\"\n                                    [options]=\"options\"\n                                    (rowSelected)=\"selectionChanged.emit($event)\"\n                            ></tbody>\n            -->\n            <!-- endregion grouped Table Body-->\n            <!-- region table empty-->\n            @if (!loading && isEmpty) {\n                <tbody\n                        [fusionTableEmpty]=\"colsCount\"\n                        [customContent]=\"options?.customNoData\"\n                        [type]=\"options?.emptyTableType\"\n                        [header]=\"options?.noDataMessage\"\n                        [subHeader]=\"options?.noDataSubMessage\"\n                ></tbody>\n            }\n            <!-- endregion table empty-->\n            <!-- region table loading-->\n            @if ((loading && !isLoadingOverlay) ||\n            (options?.pagination && options.pagination.loading) ||\n            (isEmpty && loading)) {\n                <tbody [fusionTableLoading]=\"colsCount\"></tbody>\n            }\n            <!-- endregion table loading-->\n            <!-- endregion Table Body-->\n        </table>\n    }\n</div>\n@if (hasCustomFooter) {\n    <div class=\"fu-table-footer-wrapper\">\n        <ng-content select=\".fu-table-footer\"></ng-content>\n    </div>\n}\n\n<ng-template #headerExpandColumn let-isSubHeader>\n    <td class=\"expand-column\"\n        [class.fu-header-group]=\"isSubHeader\"\n        [class.sticky-left]=\"options?.rowsExpandableOptions?.sticky\"\n        [style.top.px]=\"options?.stickyHeaderTopOffset\"\n    ><span></span></td>\n</ng-template>\n","import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    inject,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    ViewChild\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {BehaviorSubject, defer, fromEvent, Subject} from 'rxjs';\nimport {debounceTime, takeUntil, tap} from 'rxjs/operators';\nimport {isNullOrUndefined, isUndefined} from '@ironsource/fusion-ui/utils';\nimport {GenericPipe} from '@ironsource/fusion-ui/pipes/generic';\nimport {CheckboxComponent} from '@ironsource/fusion-ui/components/checkbox/v4';\nimport {MenuDropItem} from '@ironsource/fusion-ui/components/menu-drop';\nimport {TooltipComponent, TooltipDirective} from '@ironsource/fusion-ui/components/tooltip/v4';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {TableService} from '@ironsource/fusion-ui/components/table/common/services';\nimport {\n    CONFIG_TABLE_BY_UI_STYLE,\n    ROW_CLICK_SUPPRESS_FOR_PARENT_SELECTORS,\n    TableColumn,\n    TableColumnTypeEnum,\n    TableIconsConfigByStyle,\n    TableOptions,\n    TableRow,\n    TableRowExpandEmitter,\n    TableRowsGrouped\n} from '@ironsource/fusion-ui/components/table/common/entities';\nimport {UniqueIdService} from '@ironsource/fusion-ui/services/unique-id';\nimport {TestIdsService} from '@ironsource/fusion-ui/services/test-ids';\nimport {TableTestIdModifiers} from '@ironsource/fusion-ui/entities';\nimport {TableEmptyComponent} from './components/table-empty/table-empty.component';\nimport {TableBasicComponent} from './components/table-basic/table-basic.component';\nimport {TableLoadingComponent} from './components/table-loading/table-loading.component';\nimport {SearchComponent} from '@ironsource/fusion-ui/components/search/v4';\n\n@Component({\n    selector: 'fusion-table',\n    standalone: true,\n    host: {class: 'fusion-v4'},\n    imports: [\n        CommonModule,\n        GenericPipe,\n        ReactiveFormsModule,\n        IconModule,\n        CheckboxComponent,\n        SearchComponent,\n        TooltipDirective,\n        TooltipComponent,\n        TableEmptyComponent,\n        TableLoadingComponent,\n        TableBasicComponent\n    ],\n    providers: [TableService],\n    templateUrl: './table-v4.component.html',\n    styleUrl: './table-v4.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableV4Component implements OnInit, OnDestroy, AfterViewInit {\n    // region public props\n    /** @internal */\n    tableService: TableService = inject(TableService);\n    /** @internal */\n    isRowsInit = false;\n    /** @internal */\n    noDataMessage: string;\n    /** @internal */\n    noDataSubMessage: string;\n    /** @internal */\n    hideHeaderOnEmpty: boolean;\n    /** @internal */\n    isAllRowsSelectable: boolean;\n    /** @internal */\n    configIconNames: TableIconsConfigByStyle;\n    /** @internal */\n    wrapperClasses: string[];\n    /** @internal */\n    tableMainError = false;\n    /** @internal */\n    shownGoTopButton$ = new BehaviorSubject(false);\n    /** @internal */\n    subHeader: {name: string; colspan: number}[] = [];\n    /** @internal */\n    searchFormControl: FormControl<string>;\n    /** @internal */\n    iconArrowUp = 'ph/arrow-up';\n    /** @internal */\n    iconArrowDown = 'ph/arrow-down';\n    /** @internal */\n    iconTooltip = 'ph/question';\n    // endregion\n\n    // region E2E test id\n    /** @internal */\n    testIdsService: TestIdsService = inject(TestIdsService);\n    /** @internal */\n    tableTestIdModifiers: typeof TableTestIdModifiers = TableTestIdModifiers;\n    /** @internal */\n    @Input() testId: string;\n    // endregion\n\n    // region inputs\n    // region table element id\n    private uniqueService: UniqueIdService = inject(UniqueIdService);\n    @Input() id: string = `fuDataGrid_${this.uniqueService.getUniqueId()}`;\n    // endregion\n\n    // region options\n    @Input() set options(value: TableOptions) {\n        if (!isNullOrUndefined(value)) {\n            this._options = value;\n            this.tableService.hasRowspanRows = value.hasRowSpan ?? false;\n            this.tableService.rowsExpandableKey = value.rowsExpandableOptions?.key;\n        }\n    }\n\n    get options(): TableOptions {\n        return this._options;\n    }\n\n    private _options: TableOptions = {};\n    // endregion\n\n    // region columns\n    @Input() set columns(value: TableColumn[]) {\n        if (Array.isArray(value)) {\n            this._columns = value;\n            this.subHeader = this.getSubHeaders(this._columns);\n        }\n    }\n\n    get columns(): TableColumn[] {\n        return this._columns;\n    }\n\n    private _columns: TableColumn[] = [];\n    // endregion\n\n    // region rows\n    @Input() set rows(value: any[] | TableRowsGrouped) {\n        if (Array.isArray(value)) {\n            this._rows = this.tableService.setRowsMetadata([...value]);\n            this.initRows();\n        }\n    }\n\n    get rows(): any[] | TableRowsGrouped {\n        return this._rows;\n    }\n\n    private _rows: any[] | TableRowsGrouped = [];\n    // endregion\n\n    // region expandedRows\n    /** @internal */\n    @Input() set expandedRows(value: {[key: string]: boolean}) {\n        this.onExternalExpandRowChanged(value);\n        this._expandedRows = value;\n    }\n\n    get expandedRows(): {[key: string]: boolean} {\n        return this._expandedRows;\n    }\n\n    private _expandedRows: {[key: string]: boolean} = {};\n    // endregion\n\n    @Input() loading: boolean;\n    @Input() sortTableOnDataChanges = false;\n    @Input() hasCustomHeader = false;\n    @Input() hasCustomFooter = false;\n    // endregion\n\n    // region outputs\n    @Output() sortChanged: EventEmitter<any> = new EventEmitter();\n    @Output() selectionChanged = this.tableService.selectionChanged;\n    @Output() rowModelChange = this.tableService.rowModelChange;\n    @Output() rowClicked = new EventEmitter<{$event: MouseEvent; rowIndex: string; rowEl: Element; rowData: any}>();\n    @Output() scrollDown: EventEmitter<any> = new EventEmitter();\n    @Output() rowActionClicked: EventEmitter<{action: MenuDropItem; rowIndex: string | number; row: TableRow}> =\n        this.tableService.rowActionClicked;\n    @Output() expandRow: EventEmitter<TableRowExpandEmitter> = new EventEmitter();\n    @Output() expandedRowsChange = new EventEmitter<{[key: string]: boolean}>();\n    // endregion\n\n    // region ViewChild\n    /** @internal */\n    @ViewChild('stringCell') stringCell;\n    /** @internal */\n    @ViewChild('checkboxCell') checkboxCell;\n    /** @internal */\n    @ViewChild('templateCell') templateCell;\n    /** @internal */\n    @ViewChild('table') tableElement: ElementRef;\n    /** @internal */\n    @ViewChild('tableWrapper', {static: true}) tableWrapperElement: ElementRef;\n    /** @internal */\n    @ViewChild('tableBody') tableBodyComponent: TableBasicComponent;\n    // endregion\n\n    // region HostBindings\n    @HostBinding('class.fixed-table') get isFixedHeader(): boolean {\n        return !isNullOrUndefined(this.options) && !isNullOrUndefined(this.options.stickyHeader) && this.options.stickyHeader;\n    }\n\n    @HostBinding('class.fu-no-table-frame') get noTableFrame(): boolean {\n        return !(!!this.options?.tableLabel || !!this.options?.searchOptions);\n    }\n\n    @HostBinding('class.fu-no-table-footer') get noTableFooter(): boolean {\n        return !this.noTableFrame && this.options?.noTableFooter;\n    }\n\n    @HostBinding('class.is-empty') get isEmpty(): boolean {\n        return this.tableService.isTableEmpty(this.rows, this.options.isGroupedTable, this.options.hasTotalsRow);\n    }\n\n    @HostBinding('class.is-loading') get isLoading(): boolean {\n        return this.loading;\n    }\n\n    @HostBinding('class.on-scroll-right') isScrollRight: boolean;\n\n    @HostBinding('class.on-vertical-scroll') get onVerticalScroll(): boolean {\n        if (this.tableWrapperElement) {\n            return this.tableWrapperElement.nativeElement.scrollTop > 0;\n        }\n    }\n\n    // endregion\n\n    // region getters\n    get isCheckboxTitleShown(): boolean {\n        return this.columns ? this.columns.some(column => column.type === TableColumnTypeEnum.Checkbox && column.title !== '') : false;\n    }\n\n    get isLoadingOverlay(): boolean {\n        return (\n            isNullOrUndefined(this.options) || // default - true\n            isNullOrUndefined(this.options.isLoadingOverlayMode) || // default - true\n            this.options.isLoadingOverlayMode // get from options\n        );\n    }\n\n    get tableRows(): any[] {\n        return this.rows as any[];\n    }\n\n    get groupedTableRows(): TableRowsGrouped {\n        return this.rows as TableRowsGrouped;\n    }\n\n    get colsCount(): number {\n        let columnsCount = Array.isArray(this.columns) ? this.columns.length : 1;\n        if (!!this.options && this.options.rowsExpandableOptions) {\n            columnsCount += !!this.options.rowsExpandableOptions.expandLevels ? this.options.rowsExpandableOptions.expandLevels : 1;\n        }\n        return columnsCount;\n    }\n\n    get scrollElement(): HTMLElement {\n        const scrollElement = this.tableWrapperElement.nativeElement;\n        if (this.options.scrollElementSelector) {\n            return document.querySelector(this.options.scrollElementSelector) || scrollElement;\n        }\n        return scrollElement;\n    }\n\n    // endregion\n\n    // region  private props\n    private lastScrollLeftValue: number;\n    private currentExpandedMap: {[key: string]: boolean} = {};\n    private ignoredParentSelectorsRowClickEvent: string[];\n    private onDestroy$ = new Subject<void>();\n\n    // endregion\n\n    ngOnInit(): void {\n        this.tableService.clearSelectedRows();\n        this.searchFormControl = new FormControl(this.options?.searchOptions?.initalValue || '');\n        if (!!this.options.rowsExpandableOptions) {\n            try {\n                this.tableService.setExpandLevelByExpandOptions(this.options.rowsExpandableOptions);\n            } catch (e) {\n                this.tableMainError = true;\n                throw new Error(e);\n            }\n        }\n        this.options.tableId = this.id;\n        this.noDataMessage = isNullOrUndefined(this.options.noDataMessage) ? 'No Data to Display' : this.options.noDataMessage;\n        this.noDataSubMessage = this.options.noDataSubMessage ?? '';\n        this.hideHeaderOnEmpty = !isNullOrUndefined(this.options.hideHeaderOnEmpty) ? this.options.hideHeaderOnEmpty : false;\n        this.isAllRowsSelectable = typeof this.options.isAllRowsSelectable === 'undefined' ? true : this.options.isAllRowsSelectable;\n        this.scrollListeners();\n        this.configIconNames = CONFIG_TABLE_BY_UI_STYLE[`style_v2`];\n        this.wrapperClasses = this.getWrapperClasses();\n        this.initColumns();\n\n        this.ignoredParentSelectorsRowClickEvent = ROW_CLICK_SUPPRESS_FOR_PARENT_SELECTORS.concat(\n            this.options.rowsOptions?.ignoredParentSelectorsRowClickEvent ?? []\n        );\n\n        if (this.sortTableOnDataChanges && this.columns.find(col => !!col.sort)) {\n            this.doLocalSorting();\n        }\n\n        this.searchFormControl.valueChanges.pipe(takeUntil(this.onDestroy$), debounceTime(500)).subscribe(value => {\n            this.options?.searchOptions.onSearch.emit(value);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    ngAfterViewInit() {\n        const columns = this.tableElement.nativeElement.querySelectorAll('thead tr td');\n        columns.forEach((column: HTMLElement, index: number) => {\n            if (!column.style.width && column?.dataset?.editable === 'true') {\n                column.style.width = `${column.clientWidth}px`;\n            }\n        });\n    }\n\n    /** @internal */\n    onHeaderClicked(col: any): void {\n        if (!this.tableService.isColumnSortable(col)) {\n            return;\n        }\n        const sortKey: string = col.key;\n        if (!(this.options && this.options.sortingType && this.options.sortingType === 'external')) {\n            this.localSorting(sortKey);\n        }\n        this.sortChanged.emit(sortKey);\n    }\n\n    /** @internal */\n    filterColumn(column, filterIn) {\n        if (column.filter.changed && column.filter.options) {\n            const isAllFiltered = column.filter.options.length === filterIn.length || filterIn.length === 0;\n            column.filter.changed.emit(isAllFiltered ? [] : filterIn);\n        }\n    }\n\n    /** @internal */\n    replaceSelectedRows({selectedTableRows, iditicationFunc}: {selectedTableRows: any[]; iditicationFunc: (row: any) => number}): void {\n        this.tableService.replaceSelectedRows({selectedTableRows, iditicationFunc});\n    }\n\n    /** @internal */\n    doExpandRow({rowIndex, row, isExpanded, successCallback, failedCallback, updateMap}: TableRowExpandEmitter) {\n        if (!!this.expandRow.observers.length) {\n            // has expandRow event subscription in host\n            if (Array.isArray(this.rows)) {\n                const innerEntityType = this.options.rowsExpandableOptions?.innerEntityType ?? 'innerRows';\n                this.expandRow.emit({rowIndex, row, isExpanded, successCallback, failedCallback, updateMap, innerEntityType});\n                this.currentExpandedMap = {...this.currentExpandedMap, [rowIndex]: isExpanded};\n            }\n        } else {\n            successCallback();\n            this.updateExpandedRowsMap(rowIndex, isExpanded);\n        }\n    }\n\n    /** @internal */\n    trackByFunc(index, column) {\n        return column && column.key ? column.key : index;\n    }\n\n    /** @internal */\n    getTableClientWidth(): number {\n        if (this.tableWrapperElement) {\n            return this.tableWrapperElement.nativeElement.clientWidth;\n        }\n    }\n\n    /** @internal */\n    onTableBodyClicked($event: MouseEvent) {\n        if (!this.isElementChildOfSuppressed($event.target as Element)) {\n            const rowEl = ($event.target as Element).closest('tr');\n            if (!isNullOrUndefined(rowEl)) {\n                const rowIndex = rowEl.dataset.rowIdx;\n                const rowData = this.rows[rowIndex];\n                this.rowClicked.emit({$event, rowIndex, rowEl, rowData});\n            }\n        }\n    }\n\n    /** @internal */\n    onClickReturnTop() {\n        const viewPortElement = this.scrollElement || document.documentElement;\n        const currentScroll = viewPortElement.scrollTop || document.body.scrollTop;\n        if (currentScroll > 0) {\n            (function smoothScroll() {\n                let currentScroll = viewPortElement.scrollTop || document.body.scrollTop;\n                if (currentScroll > 0) {\n                    window.requestAnimationFrame(smoothScroll);\n                    viewPortElement.scrollTo(0, currentScroll - currentScroll / 8);\n                }\n            })();\n        }\n    }\n\n    private initColumns() {\n        if (this.options.rowActionsMenu?.stickyActionButton) {\n            this._columns = [...this.columns, {key: 'row_actions_column', title: '', width: '52px'}];\n        }\n    }\n\n    private initRows() {\n        if (!this.options?.isGroupedTable && (this.rows as any[])?.length) {\n            this.tableService.initSelectedRows(this.rows as any[]);\n        }\n        this.doLocalSorting();\n\n        // check for rowspan columns\n        this.tableService.setRowspanColumnsData(\n            this.rows as [],\n            this._columns.map(col => col.key)\n        );\n    }\n\n    private getSubHeaders(columns: TableColumn[]): {name: string; colspan: number}[] {\n        if (columns.some(item => !!item.groupName)) {\n            return columns.reduce((groups, column, idx, columns) => {\n                if (column.groupName) {\n                    groups.push({name: column.groupName ?? '&nbsp;', colspan: 1});\n                } else {\n                    if (groups[groups.length - 1] && groups[groups.length - 1].name) {\n                        groups[groups.length - 1].colspan++;\n                    } else {\n                        groups.push({name: ' ', colspan: 1});\n                    }\n                }\n                return groups;\n            }, []);\n        } else {\n            return [];\n        }\n    }\n\n    private doLocalSorting() {\n        if (Array.isArray(this.rows) && this.columns && this.sortTableOnDataChanges) {\n            const sortedColumn = this.columns.find(col => !!col.sort);\n            if (sortedColumn) {\n                sortedColumn.sort = sortedColumn.sort === 'asc' ? 'desc' : 'asc';\n                this.localSorting(sortedColumn.key);\n            }\n        }\n    }\n\n    private isElementChildOfSuppressed(element: Element): boolean {\n        return this.ignoredParentSelectorsRowClickEvent.some((selector: string) => {\n            return element.closest(selector);\n        });\n    }\n\n    private updateExpandedRowsMap(rowIndex: string | number, isExpanded: boolean): void {\n        this._expandedRows = {...this._expandedRows, [rowIndex]: isExpanded};\n        this.expandedRowsChange.emit(this._expandedRows);\n    }\n\n    private onExternalExpandRowChanged(newValue: {[key: string]: boolean}) {\n        const diffMap = this.getRowsToExpandToggle(this.currentExpandedMap, newValue);\n        this.currentExpandedMap = newValue;\n\n        if (diffMap.includes('default')) {\n            const rowsInTable = (this.rows as any[]).length;\n            [...Array(rowsInTable).keys()].forEach(rowIndex => {\n                this.callOnExpandRow({\n                    rowIndex: rowIndex,\n                    row: this.rows[rowIndex],\n                    isExpanded: newValue['default']\n                });\n            });\n        } else {\n            diffMap.forEach(rowIndex => {\n                this.callOnExpandRow({\n                    rowIndex: parseInt(rowIndex, 10),\n                    row: this.rows[rowIndex],\n                    isExpanded: newValue[rowIndex]\n                });\n            });\n        }\n    }\n\n    private callOnExpandRow({rowIndex, row, isExpanded}) {\n        this.tableBodyComponent.onExpandRow({rowIndex, row, isExpanded}, false);\n    }\n\n    private getRowsToExpandToggle(\n        curValue: {[key: string]: boolean},\n        newValue: {\n            [key: string]: boolean;\n        }\n    ): string[] {\n        return Object.keys(newValue)\n            .map(key => {\n                if (newValue[key] !== curValue[key]) {\n                    return key;\n                }\n                return null;\n            })\n            .filter(Boolean);\n    }\n\n    private getWrapperClasses(): string[] {\n        const classes: string[] = [];\n        if (!!this.options && !!this.options.rowHeight) {\n            classes.push(`is-row-height-${this.options.rowHeight}`);\n        }\n        if (this.options?.stickyHeader && this.options?.scrollElementSelector) {\n            classes.push(`fu-stocky-to-external`);\n        }\n        if (this.options.stickyHeader || this.options?.pagination?.enable) {\n            classes.push(`fu-table-sticky-header`);\n        }\n        return classes;\n    }\n\n    private scrollListeners(): void {\n        defer(() =>\n            fromEvent(this.scrollElement, 'scroll').pipe(\n                takeUntil(this.onDestroy$),\n                tap(_ => {\n                    const scrollLeft = this.scrollElement.scrollLeft;\n                    if (this.lastScrollLeftValue !== scrollLeft) {\n                        this.isScrollRight = scrollLeft > 0;\n                        this.lastScrollLeftValue = scrollLeft;\n                    }\n                }),\n                debounceTime(10)\n            )\n        ).subscribe(this.onScroll.bind(this));\n    }\n\n    private localSorting(sortKey: string): void {\n        let isAscSort: boolean;\n        const tableRows = [...(this.rows as any[])];\n        // reset header sort options\n        this.columns.forEach(col => {\n            if (col.key !== sortKey) {\n                if (!isUndefined(col.sort)) {\n                    col.sort = '';\n                }\n            } else {\n                col.sort = col.sort === '' ? 'asc' : col.sort === 'asc' ? 'desc' : 'asc';\n                isAscSort = col.sort === 'asc';\n            }\n        });\n\n        let totalRow = [];\n        let otherRows = [];\n        if (!isNullOrUndefined(this.options.hasTotalsRow) && this.options.hasTotalsRow) {\n            totalRow = tableRows.slice(0, 1);\n            otherRows = tableRows.slice(1);\n        } else {\n            otherRows = tableRows;\n        }\n        otherRows.sort((a: any, b: any): number => {\n            if (isNullOrUndefined(a[sortKey]) || isNullOrUndefined(b[sortKey])) {\n                return 0;\n            }\n\n            // if data type - numeric\n            if (!Array.isArray(a[sortKey]) && !isNaN(a[sortKey]) && !isNaN(b[sortKey]) && a[sortKey] - parseFloat(a[sortKey]) + 1 >= 0) {\n                return isAscSort ? a[sortKey] - b[sortKey] : (a[sortKey] - b[sortKey]) * -1;\n            }\n\n            // if it string;\n            const strA: string = a[sortKey].toString().toUpperCase();\n            const strB: string = b[sortKey].toString().toUpperCase();\n\n            if (strA < strB) {\n                return isAscSort ? -1 : 1;\n            }\n            if (strA > strB) {\n                return isAscSort ? 1 : -1;\n            }\n            return 0;\n        });\n\n        this._rows = [...totalRow, ...otherRows].filter(Boolean);\n    }\n\n    private onScroll($event) {\n        this.tableService.tableScrolled.emit($event);\n\n        if (this.options.hasReturnToTopButton) {\n            this.shownGoTopButton$.next(this.scrollElement.scrollTop > this.tableElement.nativeElement.offsetTop);\n        }\n\n        const target = $event.target || $event;\n        if (!this.options.pagination || this.options.pagination.loading || !this.options.pagination.enable) {\n            return;\n        }\n\n        const top = this.scrollElement.scrollTop;\n        if (top >= this.tableElement.nativeElement.offsetHeight - this.scrollElement.offsetHeight - 100) {\n            if (!this.options.pagination.handleLoadingFromHost) {\n                this.options.pagination.loading = true;\n            }\n            this.scrollDown.emit(target);\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1","_c2","_c1","i2","_forTrack0","TableService"],"mappings":"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"}