ngx-easy-table
Version:
Angular easy table
1 lines • 96.7 kB
Source Map (JSON)
{"version":3,"file":"ngx-easy-table.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://ngx-easy-table/lib/model/columns.ts","ng://ngx-easy-table/lib/model/config.ts","ng://ngx-easy-table/lib/model/event.enum.ts","ng://ngx-easy-table/lib/model/pagination.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/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/thead/thead.component.ts","ng://ngx-easy-table/lib/components/base/base.module.ts","ng://ngx-easy-table/lib/table.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { TemplateRef } from '@angular/core';\n\nexport interface Columns {\n key: string;\n title: string;\n placeholder?: string;\n width?: string;\n cellTemplate?: TemplateRef<any>;\n orderEnabled?: boolean;\n orderEventOnly?: boolean;\n searchEnabled?: boolean;\n orderBy?: string;\n cssClass?: { name: string, includeHeader: boolean };\n pinned?: boolean;\n headerActionTemplate?: TemplateRef<any>;\n}\n","export interface Config {\n searchEnabled: boolean;\n headerEnabled: boolean;\n orderEnabled: boolean;\n orderEventOnly?: boolean;\n paginationEnabled: boolean;\n /* @deprecated */\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 radio?: boolean;\n resizeColumn: boolean;\n fixedColumnWidth: boolean;\n horizontalScroll: boolean;\n /* @deprecated Use 'rowReorder' instead */\n draggable: boolean;\n logger: boolean;\n showDetailsArrow?: boolean;\n showContextMenu?: boolean;\n persistState?: boolean;\n paginationMaxSize?: number;\n threeWaySort?: boolean;\n columnReorder?: boolean;\n rowReorder?: boolean;\n infiniteScroll?: boolean;\n infiniteScrollThrottleTime?: number;\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 onRadioSelect = 'onRadioSelect',\n onCheckboxToggle = 'onCheckboxToggle',\n onSelectAll = 'onSelectAll',\n onInfiniteScrollEnd = 'onInfiniteScrollEnd',\n onColumnResizeMouseDown = 'onColumnResizeMouseDown',\n onColumnResizeMouseUp = 'onColumnResizeMouseUp',\n onRowDrop = 'onRowDrop',\n onRowCollapsedShow = 'onRowCollapsedShow',\n onRowCollapsedHide = 'onRowCollapsedHide',\n onRowContextMenu = 'onRowContextMenu',\n}\n","export interface Pagination {\n limit: number;\n offset: number;\n count: number;\n}\n","export enum API {\n rowContextMenuClicked = 'rowContextMenuClicked',\n setInputValue = 'setInputValue',\n toolPanelClicked = 'toolPanelClicked',\n toggleRowIndex = 'toggleRowIndex',\n toggleCheckbox = 'toggleCheckbox',\n onGlobalSearch = 'onGlobalSearch',\n setPaginationCurrentPage = 'setPaginationCurrentPage',\n getPaginationCurrentPage = 'getPaginationCurrentPage',\n getPaginationTotalItems = 'getPaginationTotalItems',\n getNumberOfRowsPerPage = 'getNumberOfRowsPerPage',\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 interface RowClass { row: number; className: string; }\nexport interface CellClass { row: number; cell: number | string; className: string; }\nexport interface RowStyle { row: number; attr: string; value: string; }\nexport interface 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.toggleCheckbox; 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.getNumberOfRowsPerPage; }\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: 'asc' | 'desc' } }\n ;\n\nexport interface APIDefinition {\n apiEvent<B extends ApiType>(event: B): IAPIDefinition<B>;\n}\n\nexport type IAPIDefinition<B> = B extends\n | { type: API.getPaginationCurrentPage; }\n | { type: API.getPaginationTotalItems; }\n | { type: API.getPaginationLastPage; }\n | { type: API.getNumberOfRowsPerPage; }\n ? number\n : void;\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 radio: 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: any): void {\n if (this.paginationRange && !this.paginationRange.nativeElement.contains(targetElement)) {\n this.showRange = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\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: string): any[] {\n const grouped: any[] = [];\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/* tslint:disable:no-useless-cast */\n@Injectable()\nexport class StyleService {\n public setRowClass(val: RowClass): void {\n const selector = `#table > tbody > tr:nth-child(${val.row})`;\n const row = document.querySelector(selector) as HTMLTableRowElement;\n if (row) {\n row.classList.add(val.className);\n }\n }\n\n public setCellClass(val: CellClass): void {\n const selector = `#table > tbody > tr:nth-child(${val.row}) > td:nth-child(${val.cell})`;\n const cell = document.querySelector(selector) as HTMLTableCellElement;\n if (cell) {\n cell.classList.add(val.className);\n }\n }\n\n public setRowStyle(val: RowStyle): void {\n const selector = `#table > tbody > tr:nth-child(${val.row})`;\n const row = document.querySelector(selector) as HTMLTableRowElement;\n if (row) {\n // tslint:disable-next-line:no-string-literal\n row.style[val.attr] = val.value;\n }\n }\n\n public setCellStyle(val: CellStyle): void {\n const selector = `#table > tbody > tr:nth-child(${val.row}) > td:nth-child(${val.cell})`;\n const cell = document.querySelector(selector) as HTMLTableCellElement;\n if (cell) {\n // tslint:disable-next-line:no-string-literal\n cell.style[val.attr] = val.value;\n }\n }\n\n public pinnedWidth(pinned: boolean, column: number): string | undefined {\n if (pinned) {\n return 150 * column + 'px';\n }\n }\n}\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n HostListener,\n Input,\n OnChanges, OnDestroy,\n OnInit, Output, SimpleChange,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { API, ApiType, Columns, Config, Event, Pagination } 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';\nimport { CdkVirtualScrollViewport, ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { filter, takeUntil, throttleTime } from 'rxjs/operators';\n\ntype ColumnKeyType = string | number | boolean;\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: [\n DefaultConfigService,\n GroupRowsService,\n StyleService,\n ],\n templateUrl: './base.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n private unsubscribe = new Subject<void>();\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: string | null = null;\n public globalSearchTerm: string;\n public grouped: any = [];\n public isSelected = false;\n public page = 1;\n public count = 0;\n public sortState = new Map();\n public sortKey: string | null = 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<number>();\n public selectedCheckboxes = new Set<number>();\n public loadingHeight = '30px';\n public config: Config;\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<{ total: number; limit: number; page: number }>;\n @Input() groupRowsHeaderTemplate: TemplateRef<any>;\n @Input() filtersTemplate: TemplateRef<any>;\n @Input() selectAllTemplate: TemplateRef<any>;\n @Input() noResultsTemplate: TemplateRef<void>;\n @Input() loadingTemplate: TemplateRef<void>;\n @Input() additionalActionsTemplate: TemplateRef<void>;\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 @ViewChild('paginationComponent', { static: false }) private paginationComponent: PaginationComponent;\n @ViewChild('contextMenu', { static: false }) contextMenu;\n @ViewChild(CdkVirtualScrollViewport, { static: false }) viewPort: CdkVirtualScrollViewport;\n\n @HostListener('document:click', ['$event.target'])\n public onContextMenuClick(targetElement: any): void {\n if (this.contextMenu && !this.contextMenu.nativeElement.contains(targetElement)) {\n this.rowContextMenuPosition = {\n top: null,\n left: null,\n value: null,\n };\n }\n }\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n private readonly scrollDispatcher: ScrollDispatcher,\n public readonly styleService: StyleService,\n ) {\n this.subscription = this.filteredCountSubject\n .pipe(\n takeUntil(this.unsubscribe),\n )\n .subscribe((count) => {\n this.filterCount = count;\n this.cdr.detectChanges();\n });\n }\n\n ngOnInit(): void {\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 ngOnDestroy(): void {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n ngAfterViewInit(): void {\n const throttleValue = this.config.infiniteScrollThrottleTime ?\n this.config.infiniteScrollThrottleTime :\n 200;\n this.scrollDispatcher.scrolled()\n .pipe(\n takeUntil(this.unsubscribe),\n throttleTime(throttleValue),\n filter((event) => {\n return !!event && this.viewPort && this.viewPort.getRenderedRange().end === this.viewPort.getDataLength();\n }),\n )\n .subscribe(() => {\n this.emitEvent(Event.onInfiniteScrollEnd, null);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\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 const { count, limit, offset } = pagination.currentValue as Pagination;\n this.count = count;\n this.limit = limit;\n this.page = offset;\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 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 this.sortBy = { ...this.sortBy };\n }\n\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: any, 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\n if (this.config.clickEvent) {\n const value = {\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: any, rowIndex: number): void {\n const value = {\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 onRadioSelect($event: object, row: object, rowIndex: number): void {\n const value = {\n event: $event,\n row,\n rowId: rowIndex,\n };\n this.emitEvent(Event.onRadioSelect, value);\n }\n\n onSelectAll(): void {\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 toggleCheckbox(rowIndex: number): void {\n this.selectedCheckboxes.has(rowIndex) ?\n this.selectedCheckboxes.delete(rowIndex) :\n this.selectedCheckboxes.add(rowIndex);\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(): void {\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 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 get arrowDefinition(): boolean {\n return this.config.showDetailsArrow || typeof this.config.showDetailsArrow === 'undefined';\n }\n\n onRowContextMenu($event: MouseEvent, row: object, key: ColumnKeyType, colIndex: any, rowIndex: number): void {\n if (!this.config.showContextMenu) {\n return;\n }\n $event.preventDefault();\n const value = {\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 private doApplyData(data: SimpleChange): void {\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[]>): void {\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.toggleCheckbox:\n this.toggleCheckbox(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.getNumberOfRowsPerPage:\n return this.paginationComponent.paginationDirective.isLastPage() ?\n (this.paginationComponent.paginationDirective.getTotalItems() % this.limit) :\n this.limit;\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 public 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","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>): any {\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: string[], o: any): any {\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): 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: Subject<number>): any[] {\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: any, bV: any): boolean {\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(array, filter, config);\n } else {\n return this.sortDesc(array, filter, config);\n }\n }\n\n private sortAsc(array: any[], filter: { order: string, key: string }, config?: Config): any[] {\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(array: any[], filter: { order: string, key: string }, config?: Config): any[] {\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 {\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Columns, Config, Event } from '../..';\nimport { StyleService } from '../../services/style.service';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: '[table-thead]',\n templateUrl: './thead.component.html',\n styles: [`\n .cdk-drag-preview {\n text-align: left;\n padding-top: 9px;\n padding-left: 4px;\n color: #50596c;\n border: 1px solid #e7e9ed;\n }\n `],\n providers: [StyleService],\n})\nexport class TableTHeadComponent {\n public menuActive = false;\n public openedHeaderActionTemplate: string | null = null;\n public startOffset;\n public onSelectAllBinded = this.onSelectAll.bind(this);\n\n @Input() config: Config;\n @Input() columns: Columns[];\n @Input() sortKey;\n @Input() sortState;\n @Input() selectAllTemplate;\n @Input() filtersTemplate;\n @Input() additionalActionsTemplate: TemplateRef<void>;\n @Output() readonly filter = new EventEmitter<Array<{ key: string; value: string }>>();\n @Output() readonly order = new EventEmitter<Columns>();\n @Output() readonly selectAll = new EventEmitter<void>();\n @Output() readonly event = new EventEmitter<{ event: string, value: any }>();\n @ViewChild('th', { static: false }) private th;\n @ViewChild('additionalActionMenu', { static: false }) additionalActionMenu;\n @HostListener('document:click', ['$event.target'])\n public onClick(targetElement: any): void {\n if (this.additionalActionMenu && !this.additionalActionMenu.nativeElement.contains(targetElement)) {\n this.menuActive = false;\n }\n }\n\n constructor(\n public readonly styleService: StyleService,\n ) {\n\n }\n\n getColumnDefinition(column: Columns): boolean {\n return column.searchEnabled || typeof column.searchEnabled === 'undefined';\n }\n\n orderBy(column: Columns): void {\n this.order.emit(column);\n }\n\n isOrderEnabled(column: Columns): boolean {\n const columnOrderEnabled = column.orderEnabled === undefined ? true : !!column.orderEnabled;\n return this.config.orderEnabled && columnOrderEnabled;\n }\n\n columnDrop(event: CdkDragDrop<string[]>): void {\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\n }\n\n onSearch($event: Array<{ key: string; value: string }>): void {\n this.filter.emit($event);\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 onSelectAll(): void {\n this.selectAll.emit();\n }\n\n onMouseDown(event: MouseEvent, th: HTMLTableHeaderCellElement): void {\n if (!this.config.resizeColumn) {\n return;\n }\n this.th = th;\n this.startOffset = th.offsetWidth - event.pageX;\n this.event.emit({\n event: Event.onColumnResizeMouseDown,\n value: event,\n });\n }\n\n onMouseMove(event: MouseEvent): void {\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: MouseEvent): void {\n if (!this.config.resizeColumn) {\n return;\n }\n this.event.emit({\n event: Event.onColumnResizeMouseUp,\n value: event,\n });\n this.th.style.cursor = 'default';\n this.th = undefined;\n }\n\n showHeaderActionTemplateMenu(column: Columns): void {\n if (!column.headerActionTemplate) {\n console.error('Column [headerActionTemplate] property not defined');\n }\n if (this.openedHeaderActionTemplate === column.key) {\n this.openedHeaderActionTemplate = null;\n return;\n }\n this.openedHeaderActionTemplate = column.key;\n }\n\n showMenu(): void {\n if (!this.additionalActionsTemplate) {\n console.error('[additionalActionsTemplate] property not defined');\n }\n this.menuActive = !this.menuActive;\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 { 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';\nimport { TableTHeadComponent } from '../thead/thead.component';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\n@NgModule({\n declarations: [\n BaseComponent,\n HeaderComponent,\n PaginationComponent,\n TableTHeadComponent,\n\n // Pipes\n SearchPipe,\n RenderPipe,\n GlobalSearchPipe,\n SortPipe,\n ],\n imports: [\n CommonModule,\n NgxPaginationModule,\n DragDropModule,\n ScrollingModule,\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":["Injectable","EventEmitter","Component","ChangeDetectionStrategy","ViewChild","Input","Output","HostListener","from","groupBy","flatMap","reduce","Subject","takeUntil","throttleTime","filter","moveItemInArray","ChangeDetectorRef","ScrollDispatcher","ContentChild","TemplateRef","CdkVirtualScrollViewport","Pipe","NgModule","CommonModule","NgxPaginationModule","DragDropModule","ScrollingModule"],"mappings":"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"}