{"version":3,"file":"ngx-sedna-data-table.mjs","sources":["../../../projects/ngx-sedna/data-table/constants.ts","../../../projects/ngx-sedna/data-table/data-table.service.ts","../../../projects/ngx-sedna/data-table/data-table/data-table-header.component.ts","../../../projects/ngx-sedna/data-table/data-table/data-table-header.component.html","../../../projects/ngx-sedna/data-table/data-table/data-table.component.ts","../../../projects/ngx-sedna/data-table/data-table/data-table.component.html","../../../projects/ngx-sedna/data-table/cell/th-addon.component.ts","../../../projects/ngx-sedna/data-table/cell/th-addon.component.html","../../../projects/ngx-sedna/data-table/data-table.module.ts","../../../projects/ngx-sedna/data-table/ngx-sedna-data-table.ts"],"sourcesContent":["export const filterTableParentId: number = 0;\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, combineLatest } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, skip } from 'rxjs/operators';\r\nimport { SnDataTableColumn, SnDataTableQueryParams, SnDataTableSort, SnDataTableSortOrder } from './data-table.types';\r\nimport { SnFilter, SnFilterEvaluation } from 'ngx-sedna/filter';\r\nimport { filterTableParentId } from './constants';\r\n\r\n@Injectable()\r\nexport class SnDataTableService implements OnDestroy {\r\n  private destroy$ = new Subject<boolean>();\r\n\r\n  private pageIndex$ = new BehaviorSubject<number>(1);\r\n  private pageSize$ = new BehaviorSubject<number>(20);\r\n  private filter$ = new BehaviorSubject<SnFilter[]>([]);\r\n  private sort$ = new BehaviorSubject<SnDataTableSort[]>([]);\r\n  private columns$ = new BehaviorSubject<SnDataTableColumn[]>([]);\r\n\r\n  pageIndexDistinct$ = this.pageIndex$.pipe(distinctUntilChanged());\r\n  pageSizeDistinct$ = this.pageSize$.pipe(distinctUntilChanged());\r\n  filterDistinct$ = this.filter$.pipe(distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)));\r\n  sortDistinct$ = this.sort$.pipe(distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)));\r\n\r\n  queryParams$: Observable<SnDataTableQueryParams> = combineLatest([\r\n    this.pageIndexDistinct$,\r\n    this.pageSizeDistinct$,\r\n    this.filterDistinct$,\r\n    this.sortDistinct$\r\n  ]).pipe(\r\n    debounceTime(0),\r\n    skip(1),\r\n    map(([pageIndex, pageSize, filter, sort]) => ({\r\n      pageIndex,\r\n      pageSize,\r\n      filter,\r\n      sort: sort.filter(item => !!item.direction)\r\n    }))\r\n  );\r\n\r\n  updatePageSize(size: number): void {\r\n    this.pageSize$.next(size);\r\n  }\r\n\r\n  updatePageIndex(index: number): void {\r\n    this.pageIndex$.next(index);\r\n  }\r\n\r\n  updateColumns(columns: SnDataTableColumn[]): void {\r\n    this.columns$.next(columns);\r\n  }\r\n\r\n  updateFilter(filter: SnFilter[]): void {\r\n    this.filter$.next(filter);\r\n  }\r\n\r\n  updateSorter(field: string, direction: SnDataTableSortOrder): void {\r\n    // if(!!direction){\r\n      this.sort$.next([{ field, direction }]);\r\n    // } else {\r\n    //   this.sort$.next([]);\r\n    // }\r\n  }\r\n\r\n  updateFilterFromTable(field: string, value: string) {\r\n    const columns = this.columns$.getValue();\r\n\r\n    //  Get columns\r\n    const column = columns.find(item => item.field === field);\r\n    if (column === undefined) {\r\n      return;\r\n    }\r\n\r\n    // Get Current Filter\r\n    const currentFilter = this.filter$.getValue();\r\n    const indexMatch = currentFilter.findIndex(item => item.id === filterTableParentId);\r\n    const columnMatch = currentFilter[indexMatch]?.eval?.find(item => item.field === column.field);\r\n\r\n    let newFilter: SnFilter[] = [];\r\n\r\n    // Remove Is Empty\r\n    if (value.trim() === '') {\r\n      newFilter = currentFilter.map(flt => flt.id === filterTableParentId ? ({\r\n        ...flt,\r\n        eval: flt.eval.filter(item => item.field !== field)\r\n      }) : flt).filter(item => item.eval.length > 1);\r\n\r\n      this.filter$.next(newFilter);\r\n      return;\r\n    }\r\n\r\n    const newEvaluation: SnFilterEvaluation = {\r\n      id: this.getNewFilterIndexId(),\r\n      logicalOperator: 'AND',\r\n      prefix: 'DONDE',\r\n      operator: (column?.type || 'text') === 'text' ? 'contiene' : '=',\r\n      title: column?.title || '',\r\n      field: column?.field || '',\r\n      type: column?.type || 'text',\r\n      value1: value,\r\n      value2: ''\r\n    };\r\n\r\n    if (columnMatch !== undefined) { // Update\r\n      newFilter = currentFilter.map(flt => flt.id === filterTableParentId ? ({\r\n        ...flt,\r\n        eval: flt.eval.map(item => item.field === field ? ({ ...item, value1: value }) : item)\r\n      }) : flt);\r\n    } else if (indexMatch !== -1) { // Add Colum Filter\r\n      newFilter = currentFilter.map(flt => flt.id === filterTableParentId ? ({\r\n        ...flt,\r\n        eval: [...flt.eval, newEvaluation]\r\n      }) : flt);\r\n    } else { // First filter\r\n      newFilter = [...currentFilter, {\r\n        id: filterTableParentId,\r\n        logicalOperator: 'OR',\r\n        prefix: 'DONDE',\r\n        eval: [newEvaluation]\r\n      }];\r\n    }\r\n\r\n    // Set next\r\n    const filter = this.filter$.getValue();\r\n    console.log({ newFilter, filter }, '_add_filter_from_table');\r\n    this.filter$.next(newFilter);\r\n  }\r\n\r\n  removeFilterFromTable(id: number, parentId: number){\r\n    const filter = this.filter$.getValue();\r\n    const newFilter = filter.map((flt) => flt.id === parentId ? ({\r\n      ...flt,\r\n      eval: flt.eval.filter(item => item.id !== id)\r\n    }) : flt).filter(flt => flt.eval.length > 0);\r\n    this.filter$.next(newFilter);\r\n  }\r\n\r\n  private getNewFilterIndexId() {\r\n    const filter = this.filter$.getValue();\r\n    return filter.reduce((a, b) => a + b.eval.length, 0) + 1\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next(true);\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, Output, SimpleChanges, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CdkMenuModule } from '@angular/cdk/menu';\r\nimport { SnDataTableService } from '../data-table.service';\r\nimport { SnDataTableColumn, SnDataTableQueryParams } from '../data-table.types';\r\nimport { SnFilter, SnFilterColumn, SnFilterModule } from 'ngx-sedna/filter';\r\nimport { SnButtonDirective } from 'ngx-sedna/button';\r\n\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCheck, faFilter, faTableColumns } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Component({\r\n  selector: 'sn-data-table-header',\r\n  standalone: true,\r\n  providers: [SnDataTableService],\r\n  imports: [CommonModule, CdkMenuModule, SnButtonDirective, SnFilterModule, FontAwesomeModule],\r\n  templateUrl: './data-table-header.component.html',\r\n  styleUrl: './data-table-header.component.scss'\r\n})\r\nexport class SnDataTableHeaderComponent {\r\n  @Input() snFilter: SnFilter[] = [];\r\n  @Input() snColumns: SnDataTableColumn[] = [];\r\n\r\n  @Output() readonly snFilterChange = new EventEmitter<SnFilter[]>();\r\n\r\n  protected showModal: boolean = false;\r\n  faCheck = faCheck;\r\n  faFilter = faFilter;\r\n  faTableColumns = faTableColumns;\r\n\r\n  getFilterColumn(): SnFilterColumn[] {\r\n    return this.snColumns.filter(item => item.filterable).map(item => ({\r\n      title: item.title,\r\n      field: item.field,\r\n      type: item.type\r\n    }));\r\n  }\r\n\r\n  // snModalFilter: SnFilter[] = [];\r\n  // snCurrentFilter: SnFilter[] = [];\r\n\r\n  onFilterChange(filter: SnFilter[]) {\r\n    console.log('========CAHGE======: ', filter);\r\n    this.snFilterChange.emit(filter);\r\n  }\r\n\r\n  openModal() {\r\n    this.showModal = true;\r\n  }\r\n\r\n  closeModal() {\r\n    this.showModal = false;\r\n  }\r\n\r\n  removeFilter(event:Event, id: number, parentId: number){\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    const newFilter = this.snFilter.map(filter => filter.id === parentId ? ({\r\n      ...filter,\r\n      eval: filter.eval.filter(item => item.id !== id),\r\n    }) : filter).filter(filter => filter.eval.length > 0);\r\n\r\n    this.snFilter = newFilter;\r\n  }\r\n\r\n  closeApplyModal() {\r\n    this.showModal = false;\r\n  }\r\n}\r\n","<div class=\"SnDataTable-toolbar\">\r\n  <div class=\"SnDataTable-toolbar-left\">\r\n    @if (snFilter.length > 0) {\r\n      <span>Filtro:</span>\r\n    }\r\n    @for (item of snFilter; track item; let i = $index) {\r\n      @if (snFilter.length > 1 && item.logicalOperator === 'OR' && item.prefix === 'DONDE') {\r\n        <div>{{ i === 0 ? 'Ya sea' : 'O' }}</div>\r\n      }\r\n      @if (snFilter.length > 1 && item.logicalOperator === 'OR' && item.prefix === 'DONDE NO') {\r\n        <div>Ni tampoco</div>\r\n      }\r\n      @for (eva of item.eval; track eva) {\r\n        <span class=\"SnTag SnMr-2 SnMb-2\" (click)=\"openModal()\">\r\n          <span class=\"SnMr-1\">{{ eva.prefix }}</span>\r\n          <span class=\"SnMr-1\">{{ eva.title }}</span>\r\n          <strong class=\"SnMr-1\">{{ eva.operator }}</strong>\r\n          <span>{{ eva.value1 }}</span>\r\n          @if (eva.operator === 'se encuentra entre (incluye)') {\r\n            <span>Y</span>\r\n            {{ eva.value2 }}\r\n          }\r\n          <button class=\"SnBtn radio icon SnMl-2\" (click)=\"removeFilter($event, eva.id, item.id)\">X</button>\r\n        </span>\r\n      }\r\n    }\r\n  </div>\r\n  <div class=\"SnDataTable-toolbar-right\">\r\n    <div class=\"SnBtn sm radio jsAction SnMb-2\" (click)=\"openModal()\"><fa-icon [icon]=\"faFilter\"></fa-icon></div>\r\n    <div [ngClass]=\"{'SnModal-wrapper':true, 'visible': showModal}\">\r\n      <div class=\"SnModal\" style=\"max-width: 90vw\">\r\n        <div class=\"SnModal-close\" (click)=\"closeModal()\" data-modalclose=\"saleModalFilter\" id=\"saleModalFilterClose\">X</div>\r\n        <div class=\"SnModal-header\"><i class=\"fa-solid fa-filter SnMr-2\"></i>Filtro</div>\r\n        <div class=\"SnModal-body\">\r\n          <sn-filter [snFilter]=\"snFilter\" (snFilterChange)=\"onFilterChange($event)\" [snFilterColumns]=\"getFilterColumn()\"></sn-filter>\r\n          <div class=\"SnMt-3\">\r\n            <button sn-button snShape=\"radio\" [snBlock]=\"true\" snType=\"primary\" (click)=\"closeApplyModal()\"><fa-icon [icon]=\"faCheck\" class=\"SnMr-2\"></fa-icon>Aplicar</button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"SnBtn sm radio jsAction SnMb-2 SnMl-2\"><fa-icon [icon]=\"faTableColumns\"></fa-icon></div>\r\n  </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, SimpleChanges, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CdkMenuModule } from '@angular/cdk/menu';\r\nimport { SnPaginationComponent } from 'ngx-sedna/paginate';\r\nimport { SnDataTableService } from '../data-table.service';\r\nimport { SnDataTableColumn, SnDataTableQueryParams } from '../data-table.types';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SnFilter, SnFilterColumn, SnFilterModule } from 'ngx-sedna/filter';\r\nimport { SnDataTableHeaderComponent } from './data-table-header.component';\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'sn-data-table',\r\n  standalone: true,\r\n  providers: [SnDataTableService],\r\n  imports: [CommonModule, CdkMenuModule, SnPaginationComponent, SnFilterModule, SnDataTableHeaderComponent],\r\n  templateUrl: './data-table.component.html',\r\n  styleUrl: './data-table.component.scss'\r\n})\r\nexport class SnDataTableComponent {\r\n  private snDataTableService = inject(SnDataTableService);\r\n\r\n  private destroy$ = new Subject<void>();\r\n\r\n  @Input() snPageSizeOptions = [10, 20, 30, 50, 100, 250, 500, 1000];\r\n  @Input() snPageSize = 20;\r\n  @Input() snTotal = 0;\r\n  @Input() snPageIndex = 1;\r\n\r\n  @Input() snFilter: SnFilter[] = [];\r\n  @Input() snColumns: SnDataTableColumn[] = [];\r\n\r\n  @Output() readonly snQueryParams = new EventEmitter<SnDataTableQueryParams>();\r\n\r\n  ngOnInit(): void {\r\n    const { pageIndexDistinct$, pageSizeDistinct$, queryParams$, filterDistinct$ } = this.snDataTableService;\r\n\r\n    queryParams$.pipe(takeUntil(this.destroy$)).subscribe(this.snQueryParams);\r\n\r\n    pageIndexDistinct$.pipe(takeUntil(this.destroy$)).subscribe(pageIndex => {\r\n      if (pageIndex !== this.snPageIndex) {\r\n        this.snPageIndex = pageIndex;\r\n      }\r\n    });\r\n\r\n    pageSizeDistinct$.pipe(takeUntil(this.destroy$)).subscribe(pageSize => {\r\n      if (pageSize !== this.snPageSize) {\r\n        this.snPageSize = pageSize;\r\n      }\r\n    });\r\n\r\n    filterDistinct$.pipe(takeUntil(this.destroy$)).subscribe(filter => {\r\n      if (JSON.stringify(filter) !== JSON.stringify(this.snFilter)) {\r\n        this.snFilter = filter;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { snColumns, snPageSize, snFilter } = changes;\r\n\r\n    if (snColumns) {\r\n      this.snColumns = this.snColumns || [];\r\n      this.snDataTableService.updateColumns(this.snColumns);\r\n    }\r\n\r\n    if(snPageSize){\r\n      this.snDataTableService.updatePageSize(this.snPageSize);\r\n    }\r\n\r\n    if(snFilter){\r\n      this.snDataTableService.updateFilter(this.snFilter);\r\n    }\r\n  }\r\n\r\n  onFilterChange(filter: SnFilter[]) {\r\n    this.snDataTableService.updateFilter(filter);\r\n  }\r\n\r\n  onPageChange(page: any) {\r\n    this.snDataTableService.updatePageIndex(page.pageIndex);\r\n    this.snDataTableService.updatePageSize(page.pageSize);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","<div class=\"SnDataTable\">\r\n  <sn-data-table-header [snFilter]=\"snFilter\" [snColumns]=\"snColumns\"\r\n    (snFilterChange)=\"onFilterChange($event)\"></sn-data-table-header>\r\n  <div class=\"SnDataTable-body\">\r\n    <div class=\"SnDataTable-table SnTable-wrapper\">\r\n      <table class=\"SnTable\">\r\n        <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\r\n      </table>\r\n    </div>\r\n    <sn-pagination [pageSizeOptions]=\"snPageSizeOptions\" [length]=\"snTotal\" [pageSize]=\"snPageSize\"\r\n      [pageIndex]=\"snPageIndex\" (pageChange)=\"onPageChange($event)\" />\r\n  </div>\r\n  <div class=\"SnDataTable-footer\"></div>\r\n</div>\r\n\r\n<ng-template #contentTemplate>\r\n  <ng-content></ng-content>\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n  Component,\r\n  Input,\r\n  inject\r\n} from '@angular/core';\r\n\r\nimport { CdkMenuModule } from '@angular/cdk/menu';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SnDataTableSortOrder } from '../data-table.types';\r\nimport { SnDataTableService } from '../data-table.service';\r\n\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faArrowUpWideShort, faArrowDownWideShort, faTableColumns, faSortUp, faSortDown, faAngleDown, faFilter, faFilterCircleXmark } from '@fortawesome/free-solid-svg-icons';\r\nimport { SnFilterEvaluation } from 'ngx-sedna/filter';\r\nimport { filterTableParentId } from '../constants';\r\n\r\n@Component({\r\n  selector: 'th[snFilterable], th[snSortable]',\r\n  preserveWhitespaces: false,\r\n  // encapsulation: ViewEncapsulation.None,\r\n  // changeDetection: ChangeDetectionStrategy.OnPush,\r\n  templateUrl: './th-addon.component.html',\r\n  styleUrl: './th-addon.component.scss',\r\n  // host: {\r\n  //   '[class.ant-table-column-has-sorters]': 'nzShowSort',\r\n  //   '[class.ant-table-column-sort]': `sortOrder === 'descend' || sortOrder === 'ascend'`\r\n  // },\r\n  // providers: [NzDestroyService],\r\n  imports: [CommonModule, CdkMenuModule, FontAwesomeModule],\r\n  standalone: true\r\n})\r\nexport class SnThAddOnComponent<T> {\r\n  private snDataTableService = inject(SnDataTableService);\r\n\r\n  private destroy$ = new Subject<boolean>();\r\n\r\n  faArrowUpWideShort = faArrowUpWideShort;\r\n  faArrowDownWideShort = faArrowDownWideShort;\r\n  faTableColumns = faTableColumns;\r\n  faSortUp = faSortUp;\r\n  faSortDown = faSortDown;\r\n  faAngleDown = faAngleDown;\r\n  faFilter = faFilter;\r\n  faFilterCircleXmark = faFilterCircleXmark;\r\n\r\n  // static ngAcceptInputType_nzShowSort: BooleanInput;\r\n  // static ngAcceptInputType_nzShowFilter: BooleanInput;\r\n  // static ngAcceptInputType_nzCustomFilter: BooleanInput;\r\n\r\n  // manualClickOrder$ = new Subject<NzThAddOnComponent<T>>();\r\n  // calcOperatorChange$ = new Subject<void>();\r\n  // nzFilterValue: NzTableFilterValue = null;\r\n  sortOrder: SnDataTableSortOrder = null;\r\n  sortDirections: SnDataTableSortOrder[] = ['asc', 'desc', null];\r\n  filterEvaluation?: SnFilterEvaluation;\r\n\r\n\r\n  // filterValue: string = '';\r\n  // filterValue: string = '';\r\n\r\n  // private sortOrderChange$ = new Subject<NzTableSortOrder>();\r\n  // private isNzShowSortChanged = false;\r\n  // private isNzShowFilterChanged = false;\r\n\r\n\r\n  // selector: 'th[snFilterable], th[snSortable]',\r\n\r\n  @Input() snFilterable?: boolean = true;\r\n  @Input() snSortable?: boolean = true;\r\n  @Input() snColumnField?: string;\r\n  // @Input() nzSortOrder: NzTableSortOrder = null;\r\n  // @Input() nzSortPriority: number | boolean = false;\r\n  // @Input() nzSortDirections: NzTableSortOrder[] = ['ascend', 'descend', null];\r\n  // @Input() nzFilters: NzTableFilterList = [];\r\n  // @Input() nzSortFn: NzTableSortFn<T> | boolean | null = null;\r\n  // @Input() nzFilterFn: NzTableFilterFn<T> | boolean | null = null;\r\n  // @Input() @InputBoolean() nzShowSort = false;\r\n  // @Input() @InputBoolean() nzShowFilter = false;\r\n  // @Input() @InputBoolean() nzCustomFilter = false;\r\n  // @Output() readonly nzCheckedChange = new EventEmitter<boolean>();\r\n  // @Output() readonly nzSortOrderChange = new EventEmitter<string | null>();\r\n  // @Output() readonly nzFilterChange = new EventEmitter<NzTableFilterValue>();\r\n\r\n\r\n  ngOnInit(): void {\r\n    const { sortDistinct$, filterDistinct$ } = this.snDataTableService;\r\n\r\n    sortDistinct$.pipe(takeUntil(this.destroy$)).subscribe(sort => {\r\n      const currentSort = sort.find(item => item.field === this.snColumnField)\r\n      if (currentSort && currentSort.direction !== this.sortOrder) {\r\n        this.sortOrder = currentSort.direction;\r\n      }\r\n    });\r\n\r\n    filterDistinct$.pipe(takeUntil(this.destroy$)).subscribe(filter => {\r\n      const indexMatch = filter.findIndex(item => item.id === filterTableParentId);\r\n      const evaluation = filter[indexMatch]?.eval?.find(item => item.field === this.snColumnField);\r\n\r\n      // Reset if not exist\r\n      if (!evaluation) {\r\n        this.filterEvaluation = undefined;\r\n      }\r\n\r\n      // Set current evaluation\r\n      if (JSON.stringify(evaluation ?? {}) !== JSON.stringify(this.filterEvaluation ?? {})) {\r\n        this.filterEvaluation = evaluation;\r\n      }\r\n    });\r\n  }\r\n\r\n  getNextSortDirection(sortDirections: SnDataTableSortOrder[], current: SnDataTableSortOrder): SnDataTableSortOrder {\r\n    const index = sortDirections.indexOf(current);\r\n    if (index === sortDirections.length - 1) {\r\n      return sortDirections[0];\r\n    } else {\r\n      return sortDirections[index + 1];\r\n    }\r\n  }\r\n\r\n  onSortToggle() {\r\n    const nextOrder = this.getNextSortDirection(this.sortDirections, this.sortOrder!);\r\n    if (!!this.snColumnField && this.snSortable) {\r\n      this.snDataTableService.updateSorter(this.snColumnField, nextOrder);\r\n    }\r\n  }\r\n\r\n  onSort(direction: SnDataTableSortOrder) {\r\n    if (!!this.snColumnField) {\r\n      this.snDataTableService.updateSorter(this.snColumnField, direction);\r\n    }\r\n  }\r\n\r\n  onKeyDownInputSearch(e: any) {\r\n    if (e.key === 'Enter' && !!this.snColumnField) {\r\n      this.snDataTableService.updateFilterFromTable(this.snColumnField, e?.target?.value || '')\r\n    }\r\n  }\r\n\r\n  onRemoveFilter(){\r\n    if(!!this.filterEvaluation){\r\n      this.snDataTableService.removeFilterFromTable(this.filterEvaluation.id, filterTableParentId);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next(true);\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","<div class=\"SnDataTableCaption\">\r\n  <div class=\"SnDataTableCaption-left\" (click)=\"onSortToggle()\">\r\n    <ng-content></ng-content>\r\n    @if(sortOrder === 'asc'){\r\n      <fa-icon [icon]=\"faSortUp\" class=\"SnMl-1\"></fa-icon>\r\n    }\r\n    @if(sortOrder === 'desc'){\r\n      <fa-icon [icon]=\"faSortDown\" class=\"SnMl-1\"></fa-icon>\r\n    }\r\n    @if (filterEvaluation?.field === snColumnField) {\r\n      <fa-icon [icon]=\"faFilter\" class=\"SnMl-1\" style=\"font-size: .7rem;\"></fa-icon>\r\n    }\r\n  </div>\r\n  <div class=\"SnDataTableCaption-right\">\r\n    @if (snFilterable && snSortable) {\r\n      <button type=\"button\" class=\"SnBtn sm icon\" [cdkMenuTriggerFor]=\"tHeaderMenu\"><fa-icon [icon]=\"faAngleDown\"></fa-icon></button>\r\n    }\r\n  </div>\r\n</div>\r\n@if (snFilterable) {\r\n  <input type=\"text\" class=\"SnForm-control sm\" [value]=\"filterEvaluation?.value1\" (keydown)=\"onKeyDownInputSearch($event)\">\r\n}\r\n  <!-- <nz-table-filter\r\n    *ngIf=\"nzShowFilter || nzCustomFilter; else notFilterTemplate\"\r\n    [contentTemplate]=\"notFilterTemplate\"\r\n    [extraTemplate]=\"extraTemplate\"\r\n    [customFilter]=\"nzCustomFilter\"\r\n    [filterMultiple]=\"nzFilterMultiple\"\r\n    [listOfFilter]=\"nzFilters\"\r\n    (filterChange)=\"onFilterValueChange($event)\"\r\n  ></nz-table-filter>\r\n  <ng-template #notFilterTemplate>\r\n    <ng-template [ngTemplateOutlet]=\"nzShowSort ? sortTemplate : contentTemplate\"></ng-template>\r\n  </ng-template>\r\n  <ng-template #extraTemplate>\r\n    <ng-content select=\"[nz-th-extra]\"></ng-content>\r\n    <ng-content select=\"nz-filter-trigger\"></ng-content>\r\n  </ng-template>\r\n  <ng-template #sortTemplate>\r\n    <nz-table-sorters\r\n      [sortOrder]=\"sortOrder\"\r\n      [sortDirections]=\"sortDirections\"\r\n      [contentTemplate]=\"contentTemplate\"\r\n    ></nz-table-sorters>\r\n  </ng-template> -->\r\n\r\n  <ng-template #tHeaderMenu>\r\n    <ul class=\"SnList menu\" cdkMenu>\r\n      @if (snSortable) {\r\n        <button class=\"SnList-item\" cdkMenuItem (click)=\"onSort('asc')\">\r\n          <fa-icon [icon]=\"faArrowUpWideShort\" class=\"SnMr-2\"></fa-icon>Ordenar Ascendente\r\n        </button>\r\n        <button class=\"SnList-item\" cdkMenuItem (click)=\"onSort('desc')\">\r\n          <fa-icon [icon]=\"faArrowDownWideShort\" class=\"SnMr-2\"></fa-icon>Ordenar Descendente\r\n        </button>\r\n      }\r\n      @if (snFilterable) {\r\n        <button class=\"SnList-item\" cdkMenuItem [disabled]=\"filterEvaluation?.field !== snColumnField\"\r\n          (click)=\"onRemoveFilter()\">\r\n          <fa-icon [icon]=\"faFilterCircleXmark\" class=\"SnMr-2\"></fa-icon>Borrar filtro\r\n        </button>\r\n      }\r\n    </ul>\r\n  </ng-template>\r\n  <!-- <ng-template #contentTemplate>\r\n    <ng-content></ng-content>\r\n  </ng-template> -->\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SnDataTableComponent } from './data-table/data-table.component';\r\nimport { SnThAddOnComponent } from './cell/th-addon.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    SnDataTableComponent,\r\n    SnThAddOnComponent,\r\n  ],\r\n  exports: [\r\n    SnDataTableComponent,\r\n    SnThAddOnComponent,\r\n  ]\r\n})\r\nexport class SnDataTableModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}