UNPKG

61 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-easy-table.js","sources":["ng://ngx-easy-table/lib/model/config.ts","ng://ngx-easy-table/lib/model/event.enum.ts","ng://ngx-easy-table/lib/model/api.ts","ng://ngx-easy-table/lib/services/config-service.ts","ng://ngx-easy-table/lib/components/pagination/pagination.component.ts","ng://ngx-easy-table/lib/services/group-rows.service.ts","ng://ngx-easy-table/lib/services/style.service.ts","ng://ngx-easy-table/lib/components/base/base.component.ts","ng://ngx-easy-table/lib/components/csv-export.component.ts","ng://ngx-easy-table/lib/components/header/header.component.ts","ng://ngx-easy-table/lib/pipes/global-search-pipe.ts","ng://ngx-easy-table/lib/services/filters.service.ts","ng://ngx-easy-table/lib/pipes/render-pipe.ts","ng://ngx-easy-table/lib/pipes/search-pipe.ts","ng://ngx-easy-table/lib/pipes/sort.pipe.ts","ng://ngx-easy-table/lib/components/base/base.module.ts","ng://ngx-easy-table/lib/table.module.ts"],"sourcesContent":["export interface Config {\n searchEnabled: boolean;\n headerEnabled: boolean;\n orderEnabled: boolean;\n orderEventOnly?: boolean;\n paginationEnabled: boolean;\n exportEnabled?: boolean;\n clickEvent: boolean;\n selectRow: boolean;\n selectCol: boolean;\n selectCell: boolean;\n rows: number;\n additionalActions: boolean;\n serverPagination: boolean;\n isLoading: boolean;\n detailsTemplate: boolean;\n groupRows: boolean;\n paginationRangeEnabled: boolean;\n collapseAllRows: boolean;\n checkboxes: boolean;\n resizeColumn: boolean;\n fixedColumnWidth: boolean;\n horizontalScroll: boolean;\n draggable: boolean;\n logger: boolean;\n showDetailsArrow?: boolean;\n showContextMenu?: boolean;\n persistState?: boolean;\n paginationMaxSize?: number;\n threeWaySort?: boolean;\n tableLayout: {\n style: STYLE | string | null,\n theme: THEME | string | null,\n borderless: boolean | null,\n hover: boolean | null,\n striped: boolean | null,\n };\n}\n\nexport enum STYLE {\n TINY = 'tiny',\n BIG = 'big',\n NORMAL = 'normal',\n}\n\nexport enum THEME {\n LIGHT = 'light',\n DARK = 'dark',\n}\n","export enum Event {\n onPagination = 'onPagination',\n onOrder = 'onOrder',\n onGlobalSearch = 'onGlobalSearch',\n onSearch = 'onSearch',\n onClick = 'onClick',\n onDoubleClick = 'onDoubleClick',\n onCheckboxSelect = 'onCheckboxSelect',\n onSelectAll = 'onSelectAll',\n onColumnResizeMouseDown = 'onColumnResizeMouseDown',\n onColumnResizeMouseUp = 'onColumnResizeMouseUp',\n onRowDrop = 'onRowDrop',\n onRowCollapsedShow = 'onRowCollapsedShow',\n onRowCollapsedHide = 'onRowCollapsedHide',\n onRowContextMenu = 'onRowContextMenu',\n}\n","export enum API {\n rowContextMenuClicked = 'rowContextMenuClicked',\n setInputValue = 'setInputValue',\n toolPanelClicked = 'toolPanelClicked',\n toggleRowIndex = 'toggleRowIndex',\n onGlobalSearch = 'onGlobalSearch',\n setPaginationCurrentPage = 'setPaginationCurrentPage',\n getPaginationCurrentPage = 'getPaginationCurrentPage',\n getPaginationTotalItems = 'getPaginationTotalItems',\n getPaginationLastPage = 'getPaginationLastPage',\n setPaginationRange = 'setPaginationRange',\n setPaginationPreviousLabel = 'setPaginationPreviousLabel',\n setPaginationNextLabel = 'setPaginationNextLabel',\n setPaginationDisplayLimit = 'setPaginationDisplayLimit',\n setTableClass = 'setTableClass',\n setRowClass = 'setRowClass',\n setCellClass = 'setCellClass',\n setRowStyle = 'setRowStyle',\n setCellStyle = 'setCellStyle',\n sortBy = 'sortBy',\n}\n\nexport type rowClass = { row: number, className: string };\nexport type cellClass = { row: number, cell: number | string, className: string };\nexport type rowStyle = { row: number, attr: string, value: string };\nexport type cellStyle = { row: number, cell: number, attr: string, value: string };\n\nexport type ApiType =\n { type: API.rowContextMenuClicked; }\n | { type: API.setInputValue; value: Array<{ key: string, value: string }>; }\n | { type: API.toolPanelClicked; }\n | { type: API.toggleRowIndex; value: number; }\n | { type: API.onGlobalSearch; value: string; }\n | { type: API.setPaginationCurrentPage; value: number; }\n | { type: API.getPaginationCurrentPage; }\n | { type: API.getPaginationTotalItems; }\n | { type: API.getPaginationLastPage; }\n | { type: API.setPaginationRange; value: number[]; }\n | { type: API.setPaginationPreviousLabel; value: string; }\n | { type: API.setPaginationNextLabel; value: string; }\n | { type: API.setPaginationDisplayLimit; value: number; }\n | { type: API.setTableClass; value: string | null; }\n | { type: API.setRowClass; value: rowClass | rowClass[] }\n | { type: API.setCellClass; value: cellClass | cellClass[] }\n | { type: API.setRowStyle; value: rowStyle | rowStyle[] }\n | { type: API.setCellStyle; value: cellStyle | cellStyle[] }\n | { type: API.sortBy; value: { column: string, order: string } }\n ;\n\nexport interface APIDefinition {\n apiEvent(event: ApiType): void | number;\n}\n","import { Injectable } from '@angular/core';\nimport { Config, STYLE, THEME } from '../model/config';\n\nexport const DefaultConfig: Config = {\n searchEnabled: false,\n headerEnabled: true,\n orderEnabled: true,\n orderEventOnly: false,\n paginationEnabled: true,\n exportEnabled: false,\n clickEvent: true,\n selectRow: false,\n selectCol: false,\n selectCell: false,\n rows: 10,\n additionalActions: false,\n serverPagination: false,\n isLoading: false,\n detailsTemplate: false,\n groupRows: false,\n paginationRangeEnabled: true,\n collapseAllRows: false,\n checkboxes: false,\n resizeColumn: false,\n fixedColumnWidth: true,\n horizontalScroll: false,\n draggable: false,\n logger: false,\n showDetailsArrow: false,\n showContextMenu: false,\n persistState: false,\n paginationMaxSize: 5,\n threeWaySort: false,\n tableLayout: {\n style: STYLE.NORMAL,\n theme: THEME.LIGHT,\n borderless: false,\n hover: true,\n striped: false,\n },\n};\n\n@Injectable()\nexport class DefaultConfigService {\n public static config: Config = DefaultConfig;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Config } from '../..';\nimport { PaginationControlsDirective } from 'ngx-pagination';\n\nexport interface PaginationRange {\n page: number;\n limit: number;\n}\n\n@Component({\n selector: 'pagination',\n templateUrl: './pagination.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaginationComponent implements OnChanges {\n @ViewChild('paginationDirective', { static: true }) paginationDirective: PaginationControlsDirective;\n @ViewChild('paginationRange', { static: false }) paginationRange;\n @Input() pagination;\n @Input() config: Config;\n @Input() id;\n @Output() readonly updateRange: EventEmitter<PaginationRange> = new EventEmitter();\n public ranges: number[] = [5, 10, 25, 50, 100];\n public selectedLimit: number;\n public showRange = false;\n public screenReaderPaginationLabel = 'Pagination';\n public screenReaderPageLabel = 'page';\n public screenReaderCurrentLabel = 'You are on page';\n public previousLabel = '';\n public nextLabel = '';\n public directionLinks = true;\n\n @HostListener('document:click', ['$event.target'])\n public onClick(targetElement) {\n const clickedInside = this.paginationRange.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.showRange = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const { config } = changes;\n if (config && config.currentValue) {\n this.selectedLimit = this.config.rows;\n }\n }\n\n onPageChange(page: number): void {\n this.updateRange.emit({\n page,\n limit: this.selectedLimit,\n });\n }\n\n changeLimit(limit: number, callFromAPI: boolean): void {\n if (!callFromAPI) {\n this.showRange = !this.showRange;\n }\n this.selectedLimit = limit;\n this.updateRange.emit({\n page: 1,\n limit,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { from } from 'rxjs';\nimport { flatMap, groupBy, reduce } from 'rxjs/operators';\n\n@Injectable()\nexport class GroupRowsService {\n public static doGroupRows<T>(data: T[], groupRowsBy) {\n const grouped = [];\n from(data).pipe(\n groupBy((row) => row[groupRowsBy]),\n flatMap((group) => group.pipe(\n reduce((acc: T[], curr: T) => [...acc, curr], []),\n )),\n ).subscribe((row) => grouped.push(row));\n\n return grouped;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { cellClass, cellStyle, rowClass, rowStyle } from '..';\n\n@Injectable()\nexport class StyleService {\n setRowClass(val: rowClass): void {\n const selector = `#table > tbody > tr:nth-child(${val.row})`;\n const row: HTMLTableRowElement = document.querySelector(selector);\n if (row) {\n row.className = val.className;\n }\n }\n\n setCellClass(val: cellClass): void {\n const selector = `#table > tbody > tr:nth-child(${val.row}) > td:nth-child(${val.cell})`;\n const cell: HTMLTableCellElement = document.querySelector(selector);\n if (cell) {\n cell.className = val.className;\n }\n }\n\n setRowStyle(val: rowStyle): void {\n const selector = `#table > tbody > tr:nth-child(${val.row})`;\n const row: HTMLTableRowElement = document.querySelector(selector);\n if (row) {\n // tslint:disable-next-line:no-string-literal\n row.style[val.attr] = val.value;\n }\n }\n\n setCellStyle(val: cellStyle): void {\n const selector = `#table > tbody > tr:nth-child(${val.row}) > td:nth-child(${val.cell})`;\n const cell: HTMLTableCellElement = document.querySelector(selector);\n if (cell) {\n // tslint:disable-next-line:no-string-literal\n cell.style[val.attr] = val.value;\n }\n }\n}\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { API, ApiType, ColumnKeyType, Columns, Config, Event, Pagination, TableMouseEvent } from '../..';\nimport { DefaultConfigService } from '../../services/config-service';\nimport { PaginationComponent, PaginationRange } from '../pagination/pagination.component';\nimport { GroupRowsService } from '../../services/group-rows.service';\nimport { StyleService } from '../../services/style.service';\nimport { Subject, Subscription } from 'rxjs';\n\ninterface RowContextMenuPosition {\n top: string | null;\n left: string | null;\n value: any | null;\n}\n\n@Component({\n selector: 'ngx-table',\n providers: [DefaultConfigService, GroupRowsService, StyleService],\n templateUrl: './base.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseComponent implements OnInit, OnChanges {\n @ViewChild('paginationComponent', { static: false }) private paginationComponent: PaginationComponent;\n @ViewChild('th', { static: false }) private th;\n public selectedRow: number;\n public selectedCol: number;\n public term;\n public filterCount = -1;\n public filteredCountSubject = new Subject<number>();\n public subscription: Subscription;\n public tableClass = null;\n public globalSearchTerm: string;\n public grouped: any = [];\n public menuActive = false;\n public isSelected = false;\n public page = 1;\n public count = null;\n public sortState = new Map();\n public sortKey = null;\n public rowContextMenuPosition: RowContextMenuPosition = {\n top: null,\n left: null,\n value: null,\n };\n public limit;\n public sortBy: { key: string } & { order: string } = {\n key: '',\n order: 'asc',\n };\n public selectedDetailsTemplateRowId = new Set();\n public startOffset;\n public loadingHeight = '30px';\n public config: Config;\n onSelectAllBinded = this.onSelectAll.bind(this);\n\n @Input() configuration: Config;\n @Input() data: any[];\n @Input() pagination: Pagination;\n @Input() groupRowsBy: string;\n @Input() id = 'table';\n @Input() toggleRowIndex;\n @Input() detailsTemplate: TemplateRef<any>;\n @Input() summaryTemplate: TemplateRef<any>;\n @Input() groupRowsHeaderTemplate: TemplateRef<any>;\n @Input() filtersTemplate: TemplateRef<any>;\n @Input() selectAllTemplate: TemplateRef<any>;\n @Input() noResultsTemplate: TemplateRef<any>;\n @Input() rowContextMenu: TemplateRef<any>;\n @Input() columns: Columns[];\n @Output() readonly event = new EventEmitter<{ event: string, value: any }>();\n @ContentChild(TemplateRef, { static: true }) public rowTemplate: TemplateRef<any>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n public readonly styleService: StyleService,\n ) {\n this.subscription = this.filteredCountSubject.subscribe((count) => {\n this.filterCount = count;\n this.cdr.detectChanges();\n });\n }\n\n ngOnInit() {\n if (!this.columns) {\n console.error('[columns] property required!');\n }\n if (this.configuration) {\n this.config = this.configuration;\n } else {\n this.config = DefaultConfigService.config;\n }\n this.limit = this.config.rows;\n if (this.groupRowsBy) {\n this.grouped = GroupRowsService.doGroupRows(this.data, this.groupRowsBy);\n }\n this.doDecodePersistedState();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const { configuration, data, pagination, groupRowsBy } = changes;\n this.toggleRowIndex = changes.toggleRowIndex;\n if (configuration && configuration.currentValue) {\n this.config = configuration.currentValue;\n }\n if (data && data.currentValue) {\n this.doApplyData(data);\n }\n if (pagination && pagination.currentValue) {\n this.count = pagination.currentValue.count;\n }\n if (groupRowsBy && groupRowsBy.currentValue) {\n this.grouped = GroupRowsService.doGroupRows(this.data, this.groupRowsBy);\n }\n if (this.toggleRowIndex && this.toggleRowIndex.currentValue) {\n const row = this.toggleRowIndex.currentValue;\n this.collapseRow(row.index);\n }\n }\n\n isOrderEnabled(column: Columns) {\n const columnOrderEnabled = column.orderEnabled === undefined ? true : !!column.orderEnabled;\n return this.config.orderEnabled && columnOrderEnabled;\n }\n\n orderBy(column: Columns): void {\n if (typeof column.orderEnabled !== 'undefined' && !column.orderEnabled) {\n return;\n }\n this.sortKey = column.key;\n if (!this.config.orderEnabled || this.sortKey === '') {\n return;\n }\n\n this.setColumnOrder(this.sortKey);\n if (!this.config.orderEventOnly && !column.orderEventOnly) {\n this.sortBy.key = this.sortKey;\n this.sortBy.order = this.sortState.get(this.sortKey);\n } else {\n this.sortBy.key = '';\n this.sortBy.order = '';\n }\n if (!this.config.serverPagination) {\n this.data = [...this.data];\n }\n this.sortBy = { ...this.sortBy };\n const value = {\n key: this.sortKey,\n order: this.sortState.get(this.sortKey),\n };\n this.emitEvent(Event.onOrder, value);\n }\n\n onClick($event: MouseEvent, row: object, key: ColumnKeyType, colIndex: number | null, rowIndex: number): void {\n if (this.config.selectRow) {\n this.selectedRow = rowIndex;\n }\n if (this.config.selectCol && colIndex) {\n this.selectedCol = colIndex;\n }\n if (this.config.selectCell && colIndex) {\n this.selectedRow = rowIndex;\n this.selectedCol = colIndex;\n }\n if (this.config.clickEvent) {\n const value: TableMouseEvent = {\n event: $event,\n row,\n key,\n rowId: rowIndex,\n colId: colIndex,\n };\n this.emitEvent(Event.onClick, value);\n }\n }\n\n onDoubleClick($event: MouseEvent, row: object, key: ColumnKeyType, colIndex: number | null, rowIndex: number): void {\n const value: TableMouseEvent = {\n event: $event,\n row,\n key,\n rowId: rowIndex,\n colId: colIndex,\n };\n this.emitEvent(Event.onDoubleClick, value);\n }\n\n onCheckboxSelect($event: object, row: object, rowIndex: number): void {\n const value = {\n event: $event,\n row,\n rowId: rowIndex,\n };\n this.emitEvent(Event.onCheckboxSelect, value);\n }\n\n onSelectAll() {\n this.isSelected = !this.isSelected;\n this.emitEvent(Event.onSelectAll, this.isSelected);\n }\n\n onSearch($event: Array<{ key: string; value: string }>): void {\n if (!this.config.serverPagination) {\n this.term = $event;\n }\n this.emitEvent(Event.onSearch, $event);\n }\n\n onGlobalSearch(value: string): void {\n if (!this.config.serverPagination) {\n this.globalSearchTerm = value;\n }\n this.emitEvent(Event.onGlobalSearch, value);\n }\n\n onPagination(pagination: PaginationRange): void {\n this.page = pagination.page;\n this.limit = pagination.limit;\n this.emitEvent(Event.onPagination, pagination);\n }\n\n private emitEvent(event: string, value: any): void {\n this.event.emit({ event, value });\n if (this.config.persistState) {\n localStorage.setItem(event, JSON.stringify(value));\n }\n if (this.config.logger) {\n // tslint:disable-next-line:no-console\n console.log({ event, value });\n }\n }\n\n collapseRow(rowIndex: number): void {\n if (this.selectedDetailsTemplateRowId.has(rowIndex)) {\n this.selectedDetailsTemplateRowId.delete(rowIndex);\n this.emitEvent(Event.onRowCollapsedHide, rowIndex);\n } else {\n this.selectedDetailsTemplateRowId.add(rowIndex);\n this.emitEvent(Event.onRowCollapsedShow, rowIndex);\n }\n }\n\n private doDecodePersistedState() {\n if (!this.config.persistState) {\n return;\n }\n const pagination = localStorage.getItem(Event.onPagination);\n const sort = localStorage.getItem(Event.onOrder);\n const search = localStorage.getItem(Event.onSearch);\n if (pagination) {\n this.onPagination(JSON.parse(pagination));\n }\n if (sort) {\n const { key, order } = JSON.parse(sort);\n this.bindApi({\n type: API.sortBy,\n value: { column: key, order },\n });\n }\n if (search) {\n this.bindApi({\n type: API.setInputValue,\n value: JSON.parse(search),\n });\n }\n }\n\n isRowCollapsed(rowIndex: number): boolean {\n if (this.config.collapseAllRows) {\n return true;\n }\n return this.selectedDetailsTemplateRowId.has(rowIndex);\n }\n\n onMouseDown(event, th) {\n if (!this.config.resizeColumn) {\n return;\n }\n this.th = th;\n this.startOffset = th.offsetWidth - event.pageX;\n this.emitEvent(Event.onColumnResizeMouseDown, event);\n }\n\n onMouseMove(event) {\n if (!this.config.resizeColumn) {\n return;\n }\n if (this.th && this.th.style) {\n this.th.style.width = this.startOffset + event.pageX + 'px';\n this.th.style.cursor = 'col-resize';\n this.th.style['user-select'] = 'none';\n }\n }\n\n onMouseUp(event) {\n if (!this.config.resizeColumn) {\n return;\n }\n this.emitEvent(Event.onColumnResizeMouseUp, event);\n this.th.style.cursor = 'default';\n this.th = undefined;\n }\n\n get isLoading(): boolean {\n const table = document.getElementById(this.id) as HTMLTableElement;\n if (table && table.rows && table.rows.length > 3) {\n this.getLoadingHeight(table.rows);\n }\n return this.config.isLoading;\n }\n\n getLoadingHeight(rows: any): void {\n const searchEnabled = this.config.searchEnabled ? 1 : 0;\n const headerEnabled = this.config.headerEnabled ? 1 : 0;\n const borderTrHeight = 1;\n const borderDivHeight = 2;\n this.loadingHeight = (rows.length - searchEnabled - headerEnabled) * (rows[3].offsetHeight - borderTrHeight) - borderDivHeight + 'px';\n }\n\n getColumnWidth(column: any): string | null {\n if (column.width) {\n return column.width;\n }\n return this.config.fixedColumnWidth ? 100 / this.columns.length + '%' : null;\n }\n\n getColumnDefinition(column: Columns): boolean {\n return column.searchEnabled || typeof column.searchEnabled === 'undefined';\n }\n\n get arrowDefinition(): boolean {\n return this.config.showDetailsArrow || typeof this.config.showDetailsArrow === 'undefined';\n }\n\n onRowContextMenu($event: MouseEvent, row: object, key: ColumnKeyType, colIndex: number | null, rowIndex: number): void {\n if (!this.config.showContextMenu) {\n return;\n }\n $event.preventDefault();\n const value: TableMouseEvent = {\n event: $event,\n row,\n key,\n rowId: rowIndex,\n colId: colIndex,\n };\n this.rowContextMenuPosition = {\n top: `${$event.y - 10}px`,\n left: `${$event.x - 10}px`,\n value,\n };\n\n this.emitEvent(Event.onRowContextMenu, value);\n }\n\n pinnedWidth(pinned: boolean, column: number): string {\n if (pinned) {\n return 150 * column + 'px'; //\n }\n }\n\n private doApplyData(data) {\n const order = this.columns.find((c) => !!c.orderBy);\n if (order) {\n this.sortState.set(this.sortKey, (order.orderBy === 'asc') ? 'desc' : 'asc');\n this.orderBy(order);\n } else {\n this.data = [...data.currentValue];\n }\n }\n\n onDrop(event: CdkDragDrop<string[]>) {\n this.emitEvent(Event.onRowDrop, event);\n moveItemInArray(this.data, event.previousIndex, event.currentIndex);\n }\n\n // DO NOT REMOVE. It is called from parent component. See src/app/demo/api-doc/api-doc.component.ts\n apiEvent(event: ApiType): void | number {\n return this.bindApi(event);\n }\n\n // tslint:disable:no-big-function cognitive-complexity\n private bindApi(event: ApiType): void | number {\n switch (event.type) {\n case API.rowContextMenuClicked:\n this.rowContextMenuPosition = {\n top: null,\n left: null,\n value: null,\n };\n break;\n case API.toolPanelClicked:\n // TODO\n break;\n case API.toggleRowIndex:\n this.collapseRow(event.value);\n break;\n case API.setInputValue:\n if (this.config.searchEnabled) {\n event.value.forEach((input) => {\n const element = (document.getElementById(`search_${input.key}`) as HTMLInputElement);\n if (!element) {\n console.error(`Column '${input.key}' not available in the DOM. Have you misspelled a name?`);\n } else {\n element.value = input.value;\n }\n });\n }\n this.onSearch(event.value);\n this.cdr.detectChanges();\n break;\n case API.onGlobalSearch:\n this.onGlobalSearch(event.value);\n this.cdr.detectChanges();\n break;\n case API.setRowClass:\n if (Array.isArray(event.value)) {\n event.value.forEach((val) => this.styleService.setRowClass(val));\n break;\n }\n this.styleService.setRowClass(event.value);\n this.cdr.detectChanges();\n break;\n case API.setCellClass:\n if (Array.isArray(event.value)) {\n event.value.forEach((val) => this.styleService.setCellClass(val));\n break;\n }\n this.styleService.setCellClass(event.value);\n break;\n case API.setRowStyle:\n if (Array.isArray(event.value)) {\n event.value.forEach((val) => this.styleService.setRowStyle(val));\n break;\n }\n this.styleService.setRowStyle(event.value);\n break;\n case API.setCellStyle:\n if (Array.isArray(event.value)) {\n event.value.forEach((val) => this.styleService.setCellStyle(val));\n break;\n }\n this.styleService.setCellStyle(event.value);\n break;\n case API.setTableClass:\n this.tableClass = event.value;\n this.cdr.detectChanges();\n break;\n case API.getPaginationTotalItems:\n return this.paginationComponent.paginationDirective.getTotalItems();\n case API.getPaginationCurrentPage:\n return this.paginationComponent.paginationDirective.getCurrent();\n case API.getPaginationLastPage:\n return this.paginationComponent.paginationDirective.getLastPage();\n case API.setPaginationCurrentPage:\n this.paginationComponent.paginationDirective.setCurrent(event.value);\n break;\n case API.setPaginationRange:\n this.paginationComponent.ranges = event.value;\n break;\n case API.setPaginationPreviousLabel:\n this.paginationComponent.previousLabel = event.value;\n break;\n case API.setPaginationNextLabel:\n this.paginationComponent.nextLabel = event.value;\n break;\n case API.setPaginationDisplayLimit:\n this.paginationComponent.changeLimit(event.value, true);\n break;\n case API.sortBy:\n const column: Columns = { title: '', key: event.value.column, orderBy: event.value.order };\n this.orderBy(column);\n this.cdr.detectChanges();\n break;\n default:\n break;\n }\n }\n\n private setColumnOrder(key: string): void {\n switch (this.sortState.get(key)) {\n case '':\n case undefined:\n this.sortState.set(key, 'desc');\n break;\n case 'asc':\n this.config.threeWaySort ?\n this.sortState.set(key, '') :\n this.sortState.set(key, 'desc');\n break;\n case 'desc':\n this.sortState.set(key, 'asc');\n break;\n }\n if (this.sortState.size > 1) {\n const temp = this.sortState.get(key);\n this.sortState.clear();\n this.sortState.set(key, temp);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-csv-export',\n template: `\n <a (click)=\"exportCsv()\" class=\"ngx-menu-item\">\n CSV export\n </a>`,\n})\n\n/**\n * From version 5.0 CsvExportComponent will be deprecated,\n * and from version 6.0 moved to CsvExportComponent plugin\n */\nexport class CsvExportComponent {\n @Input() data;\n\n public exportCsv() {\n const data = this.data;\n let csvContent = 'data:text/csv;charset=utf-8,';\n let dataString = '';\n const x: any[] = [];\n const keys = Object.keys(this.data[0]);\n data.forEach((row, index) => {\n x[index] = [];\n keys.forEach((i) => {\n if (row.hasOwnProperty(i)) {\n if (typeof row[i] === 'object') {\n row[i] = 'Object'; // so far just change object to \"Object\" string\n }\n x[index].push(row[i]);\n }\n });\n });\n\n csvContent += keys + '\\n';\n x.forEach((row, index) => {\n dataString = row.join(',');\n csvContent += index < data.length ? dataString + '\\n' : dataString;\n });\n const encodedUri = encodeURI(csvContent);\n const link = document.createElement('a');\n link.setAttribute('href', encodedUri);\n link.setAttribute('download', 'my_data.csv');\n\n link.click();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Columns } from '../..';\n\n@Component({\n selector: 'table-header',\n templateUrl: './header.html',\n})\n\nexport class HeaderComponent {\n @Input() column: Columns;\n @Output() readonly update = new EventEmitter<Array<{ key: string; value: string }>>();\n\n unifyKey(key: string): string {\n return key.replace('.', '_');\n }\n\n onSearch(input: HTMLInputElement): void {\n this.update.emit([\n { value: input.value, key: this.column.key },\n ]);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'global',\n})\n\nexport class GlobalSearchPipe implements PipeTransform {\n transform(array: any[], filter: string, filteredCountSubject: Subject<number>) {\n filteredCountSubject.next(0);\n if (typeof array === 'undefined') {\n return;\n }\n if (typeof filter === 'undefined' || Object.keys(filter).length === 0 || filter === '') {\n filteredCountSubject.next(array.length);\n return array;\n }\n const arr = array.filter((row) => {\n const element = JSON.stringify(Object.values(row));\n const strings = filter.split(',');\n return strings.some((string) => element.toLocaleLowerCase().indexOf(string.trim().toLocaleLowerCase()) > -1);\n });\n filteredCountSubject.next(arr.length);\n\n return arr;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class FiltersService {\n static getPath(p, o) {\n // https://github.com/dherges/ng-packagr/issues/696\n /* tslint:disable-next-line */\n const result = p.reduce((xs, x) => (xs && typeof xs[x] !== 'undefined') ? xs[x] : null, o);\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FiltersService } from '../services/filters.service';\n\n@Pipe({\n name: 'render',\n})\n\nexport class RenderPipe implements PipeTransform {\n transform(row: any, key: string) {\n const split = key.split('.');\n\n return FiltersService.getPath(split, row);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FiltersService } from '../services/filters.service';\nimport { Config } from '..';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'search',\n})\n\nexport class SearchPipe implements PipeTransform {\n private filters: { [key: string]: string } = {};\n\n transform(array: any[], filter: Array<{ value: string, key: string }>, filteredCountSubject: Subject<number>, config?: Config): any[] {\n filteredCountSubject.next(0);\n if (typeof array === 'undefined') {\n return;\n }\n if (typeof filter === 'undefined') {\n filteredCountSubject.next(array.length);\n return array;\n }\n filter.forEach((f) => {\n this.filters[f.key] = f.value.toString().toLocaleLowerCase();\n if (Object.keys(f).length === 0 || f.value === '') {\n delete this.filters[f.key];\n }\n });\n if (config && config.groupRows) {\n return array.map((arr) => this.filterGroup(arr, filteredCountSubject));\n }\n return this.filterGroup(array, filteredCountSubject);\n }\n\n private filterGroup(array: any[], filteredCountSubject) {\n const arr = array.filter((obj) => {\n return Object.keys(this.filters).every((c) => {\n const split = c.split('.');\n const val = FiltersService.getPath(split, obj);\n const element = (typeof val === 'object') ? JSON.stringify(val) : val.toString().toLocaleLowerCase();\n const strings = this.filters[c].split(',');\n return strings.some((string) => element.indexOf(string.trim()) > -1);\n });\n });\n filteredCountSubject.next(arr.length);\n return arr;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FiltersService } from '../services/filters.service';\nimport { Config } from '..';\n\n@Pipe({\n name: 'sort',\n})\nexport class SortPipe implements PipeTransform {\n private defaultArray: any[] = [];\n\n private static isNaN(aV, bV) {\n return (isNaN(parseFloat(aV)) || !isFinite(aV)) || (isNaN(parseFloat(bV)) || !isFinite(bV));\n }\n\n private static compare(a: any[], b: any[], key: string): number {\n const split = key.split('.');\n const aPath = FiltersService.getPath(split, a);\n const bPath = FiltersService.getPath(split, b);\n const aValue = (aPath + '').toLowerCase();\n const bValue = (bPath + '').toLowerCase();\n if (SortPipe.isNaN(aPath, bPath)) {\n return aValue.localeCompare(bValue);\n } else {\n if (parseFloat(aPath) < parseFloat(bPath)) {\n return -1;\n }\n if (parseFloat(aPath) > parseFloat(bPath)) {\n return 1;\n }\n }\n\n return 0;\n }\n\n transform(array: any[], filter: { order: string, key: string }, config?: Config): any[] {\n if (this.defaultArray.length === 0) {\n this.defaultArray = array;\n }\n if (!filter.key || filter.key === '') {\n return array;\n }\n if (filter.order === '') {\n return this.defaultArray;\n }\n if (filter.order === 'asc') {\n return this.sortAsc(config, array, filter);\n } else {\n return this.sortDesc(config, array, filter);\n }\n }\n\n private sortAsc(config, array, filter) {\n if (config && config.groupRows) {\n return array.map((arr) => arr.sort((a, b) => SortPipe.compare(a, b, filter.key)));\n }\n return array.sort((a, b) => SortPipe.compare(a, b, filter.key));\n }\n\n private sortDesc(config, array, filter) {\n if (config && config.groupRows) {\n return array.map((arr) => arr.sort((a, b) => SortPipe.compare(b, a, filter.key)));\n }\n return array.sort((a, b) => SortPipe.compare(b, a, filter.key));\n }\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { BaseComponent } from './base.component';\n\nimport { CsvExportComponent } from '../csv-export.component';\nimport { HeaderComponent } from '../header/header.component';\nimport { PaginationComponent } from '../pagination/pagination.component';\n\nimport { GlobalSearchPipe } from '../../pipes/global-search-pipe';\nimport { RenderPipe } from '../../pipes/render-pipe';\nimport { SearchPipe } from '../../pipes/search-pipe';\nimport { SortPipe } from '../../pipes/sort.pipe';\n\nimport { NgxPaginationModule } from 'ngx-pagination';\n\n@NgModule({\n declarations: [\n BaseComponent,\n CsvExportComponent,\n HeaderComponent,\n PaginationComponent,\n SearchPipe,\n RenderPipe,\n GlobalSearchPipe,\n SortPipe,\n ],\n imports: [\n CommonModule,\n NgxPaginationModule,\n DragDropModule,\n ],\n exports: [BaseComponent],\n})\nexport class BaseModule {\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { BaseComponent } from './components/base/base.component';\nimport { BaseModule } from './components/base/base.module';\n\n@NgModule({\n imports: [\n CommonModule,\n BaseModule,\n ],\n bootstrap: [BaseComponent],\n exports: [BaseComponent],\n providers: [],\n})\nexport class TableModule {\n}\n"],"names":[],"mappings":"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"}
\No newline at end of file