@angular-generic-table/core 5.0.0-rc.2 → 5.0.0-rc.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/angular-generic-table-core.mjs +5 -0
- package/esm2020/lib/core.component.mjs +560 -0
- package/esm2020/lib/core.module.mjs +47 -0
- package/esm2020/lib/core.service.mjs +14 -0
- package/esm2020/lib/gt-delta/gt-delta.component.mjs +126 -0
- package/esm2020/lib/models/gt-pagination.mjs +2 -0
- package/esm2020/lib/models/table-column.interface.mjs +2 -0
- package/esm2020/lib/models/table-config.interface.mjs +2 -0
- package/esm2020/lib/models/table-events.interface.mjs +2 -0
- package/esm2020/lib/models/table-info.interface.mjs +2 -0
- package/esm2020/lib/models/table-meta.interface.mjs +2 -0
- package/esm2020/lib/models/table-row.interface.mjs +2 -0
- package/esm2020/lib/models/table-sort.interface.mjs +2 -0
- package/esm2020/lib/pagination/pagination.component.mjs +157 -0
- package/esm2020/lib/pagination/pagination.module.mjs +17 -0
- package/esm2020/lib/pipes/capital-case.pipe.mjs +18 -0
- package/esm2020/lib/pipes/dash-case.pipe.mjs +18 -0
- package/esm2020/lib/pipes/dynamic.pipe.mjs +26 -0
- package/esm2020/lib/pipes/highlight.pipe.mjs +49 -0
- package/esm2020/lib/pipes/row-selection.pipe.mjs +17 -0
- package/esm2020/lib/pipes/sort-class.pipe.mjs +40 -0
- package/esm2020/lib/utilities/utilities.mjs +186 -0
- package/esm2020/public-api.mjs +24 -0
- package/fesm2015/angular-generic-table-core.mjs +1253 -0
- package/fesm2015/angular-generic-table-core.mjs.map +1 -0
- package/fesm2020/angular-generic-table-core.mjs +1240 -0
- package/fesm2020/angular-generic-table-core.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/core.component.d.ts +123 -18
- package/lib/core.module.d.ts +13 -0
- package/lib/core.service.d.ts +3 -0
- package/lib/gt-delta/gt-delta.component.d.ts +32 -0
- package/lib/models/gt-pagination.d.ts +18 -0
- package/lib/models/table-column.interface.d.ts +15 -3
- package/lib/models/table-config.interface.d.ts +44 -6
- package/lib/models/table-events.interface.d.ts +27 -0
- package/lib/models/table-info.interface.d.ts +3 -1
- package/lib/models/table-meta.interface.d.ts +8 -0
- package/lib/models/table-row.interface.d.ts +1 -1
- package/lib/models/table-sort.interface.d.ts +6 -4
- package/lib/pagination/pagination.component.d.ts +62 -0
- package/lib/pagination/pagination.module.d.ts +8 -0
- package/lib/pipes/capital-case.pipe.d.ts +7 -0
- package/lib/pipes/dash-case.pipe.d.ts +3 -0
- package/lib/pipes/dynamic.pipe.d.ts +9 -0
- package/lib/pipes/highlight.pipe.d.ts +3 -0
- package/lib/pipes/row-selection.pipe.d.ts +8 -0
- package/lib/pipes/sort-class.pipe.d.ts +5 -5
- package/lib/utilities/utilities.d.ts +32 -0
- package/package.json +22 -10
- package/public-api.d.ts +12 -0
- package/scss/index.scss +319 -0
- package/angular-generic-table-core.d.ts +0 -7
- package/angular-generic-table-core.metadata.json +0 -1
- package/bundles/angular-generic-table-core.umd.js +0 -594
- package/bundles/angular-generic-table-core.umd.js.map +0 -1
- package/bundles/angular-generic-table-core.umd.min.js +0 -2
- package/bundles/angular-generic-table-core.umd.min.js.map +0 -1
- package/esm2015/angular-generic-table-core.js +0 -8
- package/esm2015/lib/core.component.js +0 -107
- package/esm2015/lib/core.module.js +0 -16
- package/esm2015/lib/core.service.js +0 -13
- package/esm2015/lib/enums/order.enum.js +0 -6
- package/esm2015/lib/models/table-column.interface.js +0 -2
- package/esm2015/lib/models/table-config.interface.js +0 -2
- package/esm2015/lib/models/table-info.interface.js +0 -2
- package/esm2015/lib/models/table-row.interface.js +0 -2
- package/esm2015/lib/models/table-sort.interface.js +0 -2
- package/esm2015/lib/pipes/dash-case.pipe.js +0 -13
- package/esm2015/lib/pipes/highlight.pipe.js +0 -44
- package/esm2015/lib/pipes/sort-class.pipe.js +0 -12
- package/esm2015/lib/utilities/utilities.js +0 -25
- package/esm2015/public-api.js +0 -12
- package/fesm2015/angular-generic-table-core.js +0 -234
- package/fesm2015/angular-generic-table-core.js.map +0 -1
- package/lib/enums/order.enum.d.ts +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"angular-generic-table-core.umd.js","sources":["../../projects/core/src/lib/core.service.ts","../../../node_modules/tslib/tslib.es6.js","../projects/core/src/lib/enums/order.enum.ts","../projects/core/src/lib/utilities/utilities.ts","../../projects/core/src/lib/core.component.ts","../projects/core/src/lib/pipes/sort-class.pipe.ts","../projects/core/src/lib/pipes/dash-case.pipe.ts","../projects/core/src/lib/pipes/highlight.pipe.ts","../../projects/core/src/lib/core.module.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/angular-generic-table-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CoreService {\n constructor() {}\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum Order {\n ASC = 'asc',\n DESC = 'desc'\n}\n","import { TableRow } from '../models/table-row.interface';\nimport { TableConfig } from '../models/table-config.interface';\n\nexport let dashed: (s: string) => string;\ndashed = (s: string) => s.replace(/[A-Z]/g, m => '-' + m.toLowerCase());\n\nexport let chunk: (array: Array<any>, chunkSize: number) => Array<Array<TableRow>>;\nchunk = (array, chunkSize) => {\n if (chunkSize < 0) {\n throw new Error('Invalid chunk size');\n }\n if (chunkSize === 0 && !chunkSize) {\n return [array];\n }\n const CHUNK = [];\n for (let i = 0, len = array.length; i < len; i += chunkSize) {\n CHUNK.push(array.slice(i, i + chunkSize));\n }\n return CHUNK;\n};\n\nexport let search: (text: string, caseSensitive: boolean, data: Array<TableRow>, config: TableConfig) => TableRow[];\nsearch = (text: string, caseSensitive: boolean, data: Array<TableRow>, config: TableConfig) => {\n const searchColumns = Object.keys(config.columns).filter(\n key => !config.columns[key].hidden && config.columns[key].search !== false\n );\n return data.filter(\n row =>\n Object.entries(row)\n .filter(([key, value]) => searchColumns.indexOf(key) !== -1)\n .reduce(\n (prev, [key, value]): string =>\n prev + (prev === '' ? '' : ' & ') + (caseSensitive ? value + '' : (value + '').toLowerCase()),\n ''\n )\n .indexOf(text) !== -1\n );\n};\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { BehaviorSubject, combineLatest, isObservable, Observable, of, ReplaySubject } from 'rxjs';\nimport { TableConfig } from './models/table-config.interface';\nimport { KeyValue } from '@angular/common';\nimport { map, shareReplay, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { TableColumn } from './models/table-column.interface';\nimport { Order } from './enums/order.enum';\nimport { chunk, search } from './utilities/utilities';\nimport { TableRow } from './models/table-row.interface';\nimport { TableSort } from './models/table-sort.interface';\nimport { TableInfo } from './models/table-info.interface';\n\n@Component({\n selector: 'angular-generic-table',\n templateUrl: './core.component.html',\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CoreComponent implements OnInit {\n @Input()\n set page(value: Observable<number> | number) {\n this._currentPage$.next(value);\n }\n\n @Input()\n set search(value: Observable<string> | string) {\n this._searchBy$.next(value);\n }\n\n @Input()\n set config(value: Observable<TableConfig> | TableConfig) {\n this._tableConfig$.next(value);\n }\n\n @Input()\n set data(value: Observable<Array<TableRow>> | Array<TableRow>) {\n this._data$.next(value);\n }\n constructor() {}\n\n loading$ = of(false);\n\n sortBy$: BehaviorSubject<any> = new BehaviorSubject({\n sortBy: 'firstName',\n sortByOrder: Order.ASC,\n });\n\n // tslint:disable-next-line:variable-name\n private _searchBy$: ReplaySubject<Observable<string> | string> = new ReplaySubject(1);\n searchBy$: Observable<string> = this._searchBy$.pipe(\n startWith(''),\n map((value) => (isObservable(value) ? value : of(value))),\n switchMap((obs) => obs),\n shareReplay(1)\n );\n\n // tslint:disable-next-line:variable-name\n private _tableConfig$: ReplaySubject<TableConfig | Observable<TableConfig>> = new ReplaySubject(1);\n tableConfig$: Observable<TableConfig> = this._tableConfig$.pipe(\n map((value) => (isObservable(value) ? value : of(value))),\n switchMap((obs) => obs),\n shareReplay(1)\n );\n\n // tslint:disable-next-line:variable-name\n private _data$: ReplaySubject<Array<TableRow> | Observable<Array<TableRow>>> = new ReplaySubject(1);\n data$: Observable<Array<TableRow>> = this._data$.pipe(\n map((value) => (isObservable(value) ? value : of(value))),\n switchMap((obs) => combineLatest([obs, this.sortBy$, this.searchBy$])),\n withLatestFrom(this.tableConfig$),\n map(([[data, sortBy, searchBy], config]) => {\n return !sortBy\n ? searchBy\n ? search(searchBy, false, data, config)\n : data\n : (searchBy ? search(searchBy, false, data, config) : data).sort((a, b) =>\n a[sortBy.sortBy] > b[sortBy.sortBy]\n ? sortBy.sortByOrder === Order.ASC\n ? 1\n : -1\n : b[sortBy.sortBy] > a[sortBy.sortBy]\n ? sortBy.sortByOrder === Order.ASC\n ? -1\n : 1\n : 0\n );\n })\n );\n\n table$: Observable<{ data: Array<Array<TableRow>>; config: TableConfig; info: TableInfo }> = combineLatest([\n this.data$,\n this.tableConfig$,\n ]).pipe(\n map(([sorted, config]) => {\n // if pagination is disabled...\n if (!config.pagination || config.pagination.length === 0) {\n // ...return unaltered array\n return { data: [sorted], config, info: { records: sorted.length, pageTotal: 1 } };\n }\n // return record set\n return {\n data: chunk(sorted, +config.pagination.length),\n config,\n info: {\n records: sorted.length,\n pageTotal: Math.ceil(sorted.length / +config.pagination.length),\n },\n };\n })\n );\n\n // tslint:disable-next-line:variable-name\n private _currentPage$: BehaviorSubject<any> = new BehaviorSubject(0);\n currentPage$ = this._currentPage$.pipe(\n map((value) => (isObservable(value) ? (value as Observable<number>) : (of(value) as Observable<number>))),\n switchMap((obs) => obs),\n withLatestFrom(this.table$),\n map(([page, table]: any) => {\n // determine last page\n const lastPage = Math.ceil(table.info.records / table.config.pagination.length) - 1;\n // determine max/min position\n return +page < 0 ? 0 : +page > lastPage ? lastPage : +page;\n }),\n shareReplay(1)\n );\n\n sort(property: string): void {\n const newSortOrder =\n this.sortBy$.getValue()?.sortBy !== property ||\n this.sortBy$.getValue()?.sortByOrder === Order.DESC ||\n !this.sortBy$.getValue()?.sortByOrder\n ? Order.ASC\n : Order.DESC;\n this.sortBy$.next({\n sortBy: property,\n sortByOrder: newSortOrder,\n });\n }\n\n ngOnInit() {}\n\n columnOrder = (a: KeyValue<string, TableColumn>, b: KeyValue<string, TableColumn>): number => {\n return (a.value.order || 0) - (b.value.order || 0);\n };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Order } from '../enums/order.enum';\n\n@Pipe({\n name: 'sortClass'\n})\nexport class SortClassPipe implements PipeTransform {\n transform(selection: { sortBy: string; sortByOrder: Order } | any, property: string): string {\n return selection.sortBy === property ? 'sort-' + selection.sortByOrder : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { dashed } from '../utilities/utilities';\n\n@Pipe({\n name: 'dashCase'\n})\nexport class DashCasePipe implements PipeTransform {\n transform(s: string): any {\n return dashed(s);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'highlight'\n})\nexport class HighlightPipe implements PipeTransform {\n transform(text: any, searchTerm: string | null): string {\n if (!searchTerm) {\n return text;\n }\n const haystackAlwaysString = text + '';\n let highlightedText = haystackAlwaysString; // fallback\n\n let searchPattern;\n try {\n searchPattern = new RegExp(\n '(' +\n // @ts-ignore\n searchTerm\n .toLowerCase()\n .match(/\".*?\"|[^ ]+/g) // extract words\n .map(\n needle => needle.replace(/\"(.*?)\"/, '$1') // strip away '\"'\n )\n .join('|') + // combine words\n ')',\n 'ig'\n );\n } catch (error) {\n return highlightedText;\n }\n\n const containsTagPattern = /(<.*?>)(.*)(<\\/.*?>)/gi;\n const containsTagMatches = containsTagPattern.exec(haystackAlwaysString);\n\n if (containsTagMatches) {\n // tag exists in haystack\n highlightedText =\n containsTagMatches[1] +\n containsTagMatches[2].replace(searchPattern, '<span class=\"gt-highlight-search\">$1</span>') +\n containsTagMatches[3];\n } else {\n highlightedText = haystackAlwaysString.replace(searchPattern, '<span class=\"gt-highlight-search\">$1</span>');\n }\n\n return highlightedText;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreComponent } from './core.component';\nimport { CommonModule } from '@angular/common';\nimport { SortClassPipe } from './pipes/sort-class.pipe';\nimport { DashCasePipe } from './pipes/dash-case.pipe';\nimport { HighlightPipe } from './pipes/highlight.pipe';\n\n@NgModule({\n declarations: [CoreComponent, SortClassPipe, DashCasePipe, HighlightPipe],\n imports: [CommonModule],\n exports: [CoreComponent]\n})\nexport class GenericTableCoreModule {}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/core.service';\nexport * from './lib/core.component';\nexport * from './lib/core.module';\nexport * from './lib/models/table-config.interface';\nexport * from './lib/models/table-column.interface';\nexport * from './lib/models/table-info.interface';\nexport * from './lib/models/table-row.interface';\nexport * from './lib/models/table-sort.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {DashCasePipe as ɵb} from './lib/pipes/dash-case.pipe';\nexport {HighlightPipe as ɵc} from './lib/pipes/highlight.pipe';\nexport {SortClassPipe as ɵa} from './lib/pipes/sort-class.pipe';"],"names":["Injectable","of","BehaviorSubject","ReplaySubject","startWith","map","isObservable","switchMap","shareReplay","combineLatest","withLatestFrom","Component","ChangeDetectionStrategy","Input","Pipe","NgModule","CommonModule"],"mappings":";;;;;;;QAME;SAAgB;;;;;gBAJjBA,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;ICJD;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC7D,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,UAAU;QACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;SACzE;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK;QAC9D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;SACzE;QACD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB;;IC5OA,IAAY,KAGX;IAHD,WAAY,KAAK;QACf,oBAAW,CAAA;QACX,sBAAa,CAAA;IACf,CAAC,EAHW,KAAK,KAAL,KAAK;;ICGV,IAAI,MAA6B,CAAC;IACzC,MAAM,GAAG,UAAC,CAAS,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAA,CAAC,IAAI,OAAA,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,GAAA,CAAC,GAAA,CAAC;IAEjE,IAAI,KAAuE,CAAC;IACnF,KAAK,GAAG,UAAC,KAAK,EAAE,SAAS;QACvB,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QACD,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,CAAC;SAChB;QACD,IAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,SAAS,EAAE;YAC3D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;SAC3C;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEK,IAAI,MAAwG,CAAC;IACpH,MAAM,GAAG,UAAC,IAAY,EAAE,aAAsB,EAAE,IAAqB,EAAE,MAAmB;QACxF,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CACtD,UAAA,GAAG,IAAI,OAAA,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,KAAK,GAAA,CAC3E,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,CAChB,UAAA,GAAG,IACD,OAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aAChB,MAAM,CAAC,UAAC,EAAY;gBAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAAM,OAAA,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAAA,CAAC;aAC3D,MAAM,CACL,UAAC,IAAI,EAAE,EAAY;gBAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAChB,OAAA,IAAI,IAAI,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,aAAa,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;SAAA,EAC/F,EAAE,CACH;aACA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAA,CAC1B,CAAC;IACJ,CAAC;;;QCCC;YAAA,iBAAgB;YAEhB,aAAQ,GAAGC,OAAE,CAAC,KAAK,CAAC,CAAC;YAErB,YAAO,GAAyB,IAAIC,oBAAe,CAAC;gBAClD,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,KAAK,CAAC,GAAG;aACvB,CAAC,CAAC;;YAGK,eAAU,GAA+C,IAAIC,kBAAa,CAAC,CAAC,CAAC,CAAC;YACtF,cAAS,GAAuB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClDC,mBAAS,CAAC,EAAE,CAAC,EACbC,aAAG,CAAC,UAAC,KAAK,IAAK,QAACC,iBAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAGL,OAAE,CAAC,KAAK,CAAC,IAAC,CAAC,EACzDM,mBAAS,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,GAAA,CAAC,EACvBC,qBAAW,CAAC,CAAC,CAAC,CACf,CAAC;;YAGM,kBAAa,GAAyD,IAAIL,kBAAa,CAAC,CAAC,CAAC,CAAC;YACnG,iBAAY,GAA4B,IAAI,CAAC,aAAa,CAAC,IAAI,CAC7DE,aAAG,CAAC,UAAC,KAAK,IAAK,QAACC,iBAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAGL,OAAE,CAAC,KAAK,CAAC,IAAC,CAAC,EACzDM,mBAAS,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,GAAA,CAAC,EACvBC,qBAAW,CAAC,CAAC,CAAC,CACf,CAAC;;YAGM,WAAM,GAAiE,IAAIL,kBAAa,CAAC,CAAC,CAAC,CAAC;YACpG,UAAK,GAAgC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnDE,aAAG,CAAC,UAAC,KAAK,IAAK,QAACC,iBAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAGL,OAAE,CAAC,KAAK,CAAC,IAAC,CAAC,EACzDM,mBAAS,CAAC,UAAC,GAAG,IAAK,OAAAE,kBAAa,CAAC,CAAC,GAAG,EAAE,KAAI,CAAC,OAAO,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,GAAA,CAAC,EACtEC,wBAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EACjCL,aAAG,CAAC,UAAC,EAAkC;oBAAlC,KAAA,aAAkC,EAAjC,KAAA,gBAAwB,EAAvB,IAAI,QAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,QAAA,EAAG,MAAM,QAAA;gBACpC,OAAO,CAAC,MAAM;sBACV,QAAQ;0BACN,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;0BACrC,IAAI;sBACN,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAClE,OAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;0BAC/B,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,GAAG;8BAC9B,CAAC;8BACD,CAAC,CAAC;0BACJ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;8BACnC,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,GAAG;kCAC9B,CAAC,CAAC;kCACF,CAAC;8BACH,CAAC,GAAA,CACN,CAAC;aACP,CAAC,CACH,CAAC;YAEF,WAAM,GAAuFI,kBAAa,CAAC;gBACzG,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,YAAY;aAClB,CAAC,CAAC,IAAI,CACLJ,aAAG,CAAC,UAAC,EAAgB;oBAAhB,KAAA,aAAgB,EAAf,MAAM,QAAA,EAAE,MAAM,QAAA;;gBAElB,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;;oBAExD,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,QAAA,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;iBACnF;;gBAED,OAAO;oBACL,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC9C,MAAM,QAAA;oBACN,IAAI,EAAE;wBACJ,OAAO,EAAE,MAAM,CAAC,MAAM;wBACtB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;qBAChE;iBACF,CAAC;aACH,CAAC,CACH,CAAC;;YAGM,kBAAa,GAAyB,IAAIH,oBAAe,CAAC,CAAC,CAAC,CAAC;YACrE,iBAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CACpCG,aAAG,CAAC,UAAC,KAAK,IAAK,QAACC,iBAAY,CAAC,KAAK,CAAC,GAAI,KAA4B,GAAIL,OAAE,CAAC,KAAK,CAAwB,IAAC,CAAC,EACzGM,mBAAS,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,GAAA,CAAC,EACvBG,wBAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3BL,aAAG,CAAC,UAAC,EAAkB;oBAAlB,KAAA,aAAkB,EAAjB,IAAI,QAAA,EAAE,KAAK,QAAA;;gBAEf,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAEpF,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC;aAC5D,CAAC,EACFG,qBAAW,CAAC,CAAC,CAAC,CACf,CAAC;YAiBF,gBAAW,GAAG,UAAC,CAAgC,EAAE,CAAgC;gBAC/E,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;aACpD,CAAC;SAzGc;QAnBhB,sBACI,+BAAI;iBADR,UACS,KAAkC;gBACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;;;WAAA;QAED,sBACI,iCAAM;iBADV,UACW,KAAkC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7B;;;WAAA;QAED,sBACI,iCAAM;iBADV,UACW,KAA4C;gBACrD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;;;WAAA;QAED,sBACI,+BAAI;iBADR,UACS,KAAoD;gBAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;;;WAAA;QAyFD,4BAAI,GAAJ,UAAK,QAAgB;;YACnB,IAAM,YAAY,GAChB,OAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0CAAE,MAAM,MAAK,QAAQ;gBAC5C,OAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0CAAE,WAAW,MAAK,KAAK,CAAC,IAAI;gBACnD,QAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0CAAE,WAAW,CAAA;kBACjC,KAAK,CAAC,GAAG;kBACT,KAAK,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,YAAY;aAC1B,CAAC,CAAC;SACJ;QAED,gCAAQ,GAAR,eAAa;;;;gBA/HdG,YAAS,SAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,81GAAoC;oBAEpC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;iBAChD;;;;uBAEEC,QAAK;yBAKLA,QAAK;yBAKLA,QAAK;uBAKLA,QAAK;;;;QC5BR;;QACE,iCAAS,GAAT,UAAU,SAAuD,EAAE,QAAgB;YACjF,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;SAC7E;;;;gBANFC,OAAI,SAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB;;;;QCCD;;QACE,gCAAS,GAAT,UAAU,CAAS;YACjB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;;;;gBANFA,OAAI,SAAC;oBACJ,IAAI,EAAE,UAAU;iBACjB;;;;QCAD;;QACE,iCAAS,GAAT,UAAU,IAAS,EAAE,UAAyB;YAC5C,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,IAAI,CAAC;aACb;YACD,IAAM,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;YACvC,IAAI,eAAe,GAAG,oBAAoB,CAAC;YAE3C,IAAI,aAAa,CAAC;YAClB,IAAI;gBACF,aAAa,GAAG,IAAI,MAAM,CACxB,GAAG;;oBAEH,UAAU;yBACP,WAAW,EAAE;yBACb,KAAK,CAAC,cAAc,CAAC;yBACrB,GAAG,CACF,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,GAAA;qBAC1C;yBACA,IAAI,CAAC,GAAG,CAAC;oBACV,GAAG,EACL,IAAI,CACL,CAAC;aACH;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,eAAe,CAAC;aACxB;YAED,IAAM,kBAAkB,GAAG,wBAAwB,CAAC;YACpD,IAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAEzE,IAAI,kBAAkB,EAAE;;gBAEtB,eAAe;oBACb,kBAAkB,CAAC,CAAC,CAAC;wBACrB,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,6CAA6C,CAAC;wBAC3F,kBAAkB,CAAC,CAAC,CAAC,CAAC;aACzB;iBAAM;gBACL,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,6CAA6C,CAAC,CAAC;aAC9G;YAED,OAAO,eAAe,CAAC;SACxB;;;;gBA5CFA,OAAI,SAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB;;;;QCQD;;;;;gBALCC,WAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC;oBACzE,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,aAAa,CAAC;iBACzB;;;ICXD;;;;ICAA;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common")):"function"==typeof define&&define.amd?define("@angular-generic-table/core",["exports","@angular/core","rxjs","rxjs/operators","@angular/common"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self)["angular-generic-table"]=e["angular-generic-table"]||{},e["angular-generic-table"].core={}),e.ng.core,e.rxjs,e.rxjs.operators,e.ng.common)}(this,(function(e,n,t,r,a){"use strict";var o=function(){};o.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new o},token:o,providedIn:"root"}),o.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],o.ctorParameters=function(){return[]};Object.create;function i(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,a,o=t.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(t=o.return)&&t.call(o)}finally{if(a)throw a.error}}return i}var l,c,s,u;Object.create;!function(e){e.ASC="asc",e.DESC="desc"}(l||(l={})),c=function(e){return e.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}))},s=function(e,n){if(n<0)throw new Error("Invalid chunk size");if(0===n&&!n)return[e];for(var t=[],r=0,a=e.length;r<a;r+=n)t.push(e.slice(r,r+n));return t},u=function(e,n,t,r){var a=Object.keys(r.columns).filter((function(e){return!r.columns[e].hidden&&!1!==r.columns[e].search}));return t.filter((function(t){return-1!==Object.entries(t).filter((function(e){var n=i(e,2),t=n[0];n[1];return-1!==a.indexOf(t)})).reduce((function(e,t){var r=i(t,2),a=(r[0],r[1]);return e+(""===e?"":" & ")+(n?a+"":(a+"").toLowerCase())}),"").indexOf(e)}))};var g=function(){function e(){var e=this;this.loading$=t.of(!1),this.sortBy$=new t.BehaviorSubject({sortBy:"firstName",sortByOrder:l.ASC}),this._searchBy$=new t.ReplaySubject(1),this.searchBy$=this._searchBy$.pipe(r.startWith(""),r.map((function(e){return t.isObservable(e)?e:t.of(e)})),r.switchMap((function(e){return e})),r.shareReplay(1)),this._tableConfig$=new t.ReplaySubject(1),this.tableConfig$=this._tableConfig$.pipe(r.map((function(e){return t.isObservable(e)?e:t.of(e)})),r.switchMap((function(e){return e})),r.shareReplay(1)),this._data$=new t.ReplaySubject(1),this.data$=this._data$.pipe(r.map((function(e){return t.isObservable(e)?e:t.of(e)})),r.switchMap((function(n){return t.combineLatest([n,e.sortBy$,e.searchBy$])})),r.withLatestFrom(this.tableConfig$),r.map((function(e){var n=i(e,2),t=i(n[0],3),r=t[0],a=t[1],o=t[2],c=n[1];return a?(o?u(o,!1,r,c):r).sort((function(e,n){return e[a.sortBy]>n[a.sortBy]?a.sortByOrder===l.ASC?1:-1:n[a.sortBy]>e[a.sortBy]?a.sortByOrder===l.ASC?-1:1:0})):o?u(o,!1,r,c):r}))),this.table$=t.combineLatest([this.data$,this.tableConfig$]).pipe(r.map((function(e){var n=i(e,2),t=n[0],r=n[1];return r.pagination&&0!==r.pagination.length?{data:s(t,+r.pagination.length),config:r,info:{records:t.length,pageTotal:Math.ceil(t.length/+r.pagination.length)}}:{data:[t],config:r,info:{records:t.length,pageTotal:1}}}))),this._currentPage$=new t.BehaviorSubject(0),this.currentPage$=this._currentPage$.pipe(r.map((function(e){return t.isObservable(e)?e:t.of(e)})),r.switchMap((function(e){return e})),r.withLatestFrom(this.table$),r.map((function(e){var n=i(e,2),t=n[0],r=n[1],a=Math.ceil(r.info.records/r.config.pagination.length)-1;return+t<0?0:+t>a?a:+t})),r.shareReplay(1)),this.columnOrder=function(e,n){return(e.value.order||0)-(n.value.order||0)}}return Object.defineProperty(e.prototype,"page",{set:function(e){this._currentPage$.next(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"search",{set:function(e){this._searchBy$.next(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"config",{set:function(e){this._tableConfig$.next(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"data",{set:function(e){this._data$.next(e)},enumerable:!1,configurable:!0}),e.prototype.sort=function(e){var n,t,r,a=(null===(n=this.sortBy$.getValue())||void 0===n?void 0:n.sortBy)===e&&(null===(t=this.sortBy$.getValue())||void 0===t?void 0:t.sortByOrder)!==l.DESC&&(null===(r=this.sortBy$.getValue())||void 0===r?void 0:r.sortByOrder)?l.DESC:l.ASC;this.sortBy$.next({sortBy:e,sortByOrder:a})},e.prototype.ngOnInit=function(){},e}();g.decorators=[{type:n.Component,args:[{selector:"angular-generic-table",template:'<table class="table text-nowrap mb-0" id="agreementList_table">\n <thead>\n <tr>\n <ng-container *ngFor="let column of (tableConfig$ | async)!.columns | keyvalue: columnOrder">\n <th\n *ngIf="!column.value?.hidden"\n ngClass="{{ column.value?.sortable ? \'sort \' : \'\' }} {{ sortBy$ | async | sortClass: column.key }} {{\n (column.key | dashCase) + \'-column\'\n }}"\n [class.disabled]="loading$ | async"\n (click)="!column.value.sortable || sort(column.key)"\n >\n <span>{{ column.value?.header || column.key }}</span>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody *ngIf="false !== false; else tableContent">\n <tr>\n \x3c!-- <td class="p-0" [colSpan]="colspan$ | async">--\x3e\n <td class="p-0">\n <div class="skeleton-loader skeleton-loader-table"></div>\n </td>\n </tr>\n </tbody>\n</table>\n<ng-template #tableContent>\n <ng-container\n *ngIf="(table$ | async)! as table"\n >\n <tbody id="agreementList_tableContent" *ngIf="table!.data!.length > 0; else noData">\n <tr *ngFor="let row of table!.data![(currentPage$ | async) || 0]; let i = index" [attr.id]="\'tableRow_\' + i">\n <ng-container *ngFor="let column of table.config?.columns | keyvalue: columnOrder">\n <td *ngIf="!column.value?.hidden">\n \x3c!--<ng-container *ngIf="column.value.template === \'actions\'">\n <ng-container\n *ngTemplateOutlet="actionsColumn; context: { agreement: agreement, index: i }"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf="column.value.template === \'date\'">\n <ng-container\n *ngTemplateOutlet="dateColumn; context: { agreement: agreement, column: column.key }"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf="column.value.template === \'name\'">\n <ng-container *ngTemplateOutlet="nameColumn; context: { agreement: agreement }"></ng-container>\n </ng-container>\n <ng-container *ngIf="column.value.template === \'badge\'">\n <ng-container *ngTemplateOutlet="badgeColumn; context: { agreement: agreement }"></ng-container>\n </ng-container>--\x3e\n <ng-container [ngTemplateOutlet]="(searchBy$ | async) && !table.config.columns[column.key].templateRef ? highlighted:\n table.config.columns[column.key].templateRef ? templateRef :\n rawData" [ngTemplateOutletContext]="{row: row, column: column, search: (searchBy$ | async), templateRef: table.config.columns[column.key].templateRef, index: i}"></ng-container></td>\n </ng-container>\n </tr>\n </tbody>\n </ng-container>\n</ng-template>\n<ng-template #noData></ng-template>\n<ng-template #highlighted let-row="row" let-column="column" let-search="search">\n <div [innerHTML]="(row[column.key] | highlight: search)"></div>\n</ng-template>\n<ng-template #rawData let-row="row" let-column="column">\n {{row[column.key]}}\n</ng-template>\n<ng-template #templateRef let-row="row" let-column="column" let-index="index" let-templateRef="templateRef">\n <ng-container [ngTemplateOutlet]="templateRef" [ngTemplateOutletContext]="{row: row, col: column, index: index}"></ng-container>\n</ng-template>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],g.ctorParameters=function(){return[]},g.propDecorators={page:[{type:n.Input}],search:[{type:n.Input}],config:[{type:n.Input}],data:[{type:n.Input}]};var p=function(){function e(){}return e.prototype.transform=function(e,n){return e.sortBy===n?"sort-"+e.sortByOrder:""},e}();p.decorators=[{type:n.Pipe,args:[{name:"sortClass"}]}];var f=function(){function e(){}return e.prototype.transform=function(e){return c(e)},e}();f.decorators=[{type:n.Pipe,args:[{name:"dashCase"}]}];var m=function(){function e(){}return e.prototype.transform=function(e,n){if(!n)return e;var t,r=e+"",a=r;try{t=new RegExp("("+n.toLowerCase().match(/".*?"|[^ ]+/g).map((function(e){return e.replace(/"(.*?)"/,"$1")})).join("|")+")","ig")}catch(e){return a}var o=/(<.*?>)(.*)(<\/.*?>)/gi.exec(r);return a=o?o[1]+o[2].replace(t,'<span class="gt-highlight-search">$1</span>')+o[3]:r.replace(t,'<span class="gt-highlight-search">$1</span>')},e}();m.decorators=[{type:n.Pipe,args:[{name:"highlight"}]}];var d=function(){};d.decorators=[{type:n.NgModule,args:[{declarations:[g,p,f,m],imports:[a.CommonModule],exports:[g]}]}],e.CoreComponent=g,e.CoreService=o,e.GenericTableCoreModule=d,e.ɵa=p,e.ɵb=f,e.ɵc=m,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
|
-
//# sourceMappingURL=angular-generic-table-core.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../projects/core/src/lib/core.service.ts","../../../node_modules/tslib/tslib.es6.js","../projects/core/src/lib/enums/order.enum.ts","../projects/core/src/lib/utilities/utilities.ts","../../projects/core/src/lib/core.component.ts","../projects/core/src/lib/pipes/sort-class.pipe.ts","../projects/core/src/lib/pipes/dash-case.pipe.ts","../projects/core/src/lib/pipes/highlight.pipe.ts","../../projects/core/src/lib/core.module.ts"],"names":["Injectable","args","providedIn","Object","create","__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","Order","dashed","chunk","search","s","replace","toLowerCase","array","chunkSize","Error","CHUNK","len","length","slice","text","caseSensitive","data","config","searchColumns","keys","columns","filter","key","hidden","row","entries","_a","_b","indexOf","reduce","prev","CoreComponent","_this","this","loading$","of","sortBy$","BehaviorSubject","sortBy","sortByOrder","ASC","_searchBy$","ReplaySubject","searchBy$","pipe","startWith","map","isObservable","switchMap","obs","shareReplay","_tableConfig$","tableConfig$","_data$","data$","combineLatest","withLatestFrom","_d","_e","_f","searchBy","sort","a","b","table$","sorted","pagination","info","records","pageTotal","Math","ceil","_currentPage$","currentPage$","page","table","lastPage","columnOrder","order","defineProperty","prototype","property","newSortOrder","getValue","DESC","_c","ngOnInit","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","Input","SortClassPipe","transform","selection","Pipe","name","DashCasePipe","HighlightPipe","searchTerm","searchPattern","haystackAlwaysString","highlightedText","RegExp","match","needle","join","containsTagMatches","exec","NgModule","declarations","imports","CommonModule","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CoreService {\n constructor() {}\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum Order {\n ASC = 'asc',\n DESC = 'desc'\n}\n","import { TableRow } from '../models/table-row.interface';\nimport { TableConfig } from '../models/table-config.interface';\n\nexport let dashed: (s: string) => string;\ndashed = (s: string) => s.replace(/[A-Z]/g, m => '-' + m.toLowerCase());\n\nexport let chunk: (array: Array<any>, chunkSize: number) => Array<Array<TableRow>>;\nchunk = (array, chunkSize) => {\n if (chunkSize < 0) {\n throw new Error('Invalid chunk size');\n }\n if (chunkSize === 0 && !chunkSize) {\n return [array];\n }\n const CHUNK = [];\n for (let i = 0, len = array.length; i < len; i += chunkSize) {\n CHUNK.push(array.slice(i, i + chunkSize));\n }\n return CHUNK;\n};\n\nexport let search: (text: string, caseSensitive: boolean, data: Array<TableRow>, config: TableConfig) => TableRow[];\nsearch = (text: string, caseSensitive: boolean, data: Array<TableRow>, config: TableConfig) => {\n const searchColumns = Object.keys(config.columns).filter(\n key => !config.columns[key].hidden && config.columns[key].search !== false\n );\n return data.filter(\n row =>\n Object.entries(row)\n .filter(([key, value]) => searchColumns.indexOf(key) !== -1)\n .reduce(\n (prev, [key, value]): string =>\n prev + (prev === '' ? '' : ' & ') + (caseSensitive ? value + '' : (value + '').toLowerCase()),\n ''\n )\n .indexOf(text) !== -1\n );\n};\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { BehaviorSubject, combineLatest, isObservable, Observable, of, ReplaySubject } from 'rxjs';\nimport { TableConfig } from './models/table-config.interface';\nimport { KeyValue } from '@angular/common';\nimport { map, shareReplay, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { TableColumn } from './models/table-column.interface';\nimport { Order } from './enums/order.enum';\nimport { chunk, search } from './utilities/utilities';\nimport { TableRow } from './models/table-row.interface';\nimport { TableSort } from './models/table-sort.interface';\nimport { TableInfo } from './models/table-info.interface';\n\n@Component({\n selector: 'angular-generic-table',\n templateUrl: './core.component.html',\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CoreComponent implements OnInit {\n @Input()\n set page(value: Observable<number> | number) {\n this._currentPage$.next(value);\n }\n\n @Input()\n set search(value: Observable<string> | string) {\n this._searchBy$.next(value);\n }\n\n @Input()\n set config(value: Observable<TableConfig> | TableConfig) {\n this._tableConfig$.next(value);\n }\n\n @Input()\n set data(value: Observable<Array<TableRow>> | Array<TableRow>) {\n this._data$.next(value);\n }\n constructor() {}\n\n loading$ = of(false);\n\n sortBy$: BehaviorSubject<any> = new BehaviorSubject({\n sortBy: 'firstName',\n sortByOrder: Order.ASC,\n });\n\n // tslint:disable-next-line:variable-name\n private _searchBy$: ReplaySubject<Observable<string> | string> = new ReplaySubject(1);\n searchBy$: Observable<string> = this._searchBy$.pipe(\n startWith(''),\n map((value) => (isObservable(value) ? value : of(value))),\n switchMap((obs) => obs),\n shareReplay(1)\n );\n\n // tslint:disable-next-line:variable-name\n private _tableConfig$: ReplaySubject<TableConfig | Observable<TableConfig>> = new ReplaySubject(1);\n tableConfig$: Observable<TableConfig> = this._tableConfig$.pipe(\n map((value) => (isObservable(value) ? value : of(value))),\n switchMap((obs) => obs),\n shareReplay(1)\n );\n\n // tslint:disable-next-line:variable-name\n private _data$: ReplaySubject<Array<TableRow> | Observable<Array<TableRow>>> = new ReplaySubject(1);\n data$: Observable<Array<TableRow>> = this._data$.pipe(\n map((value) => (isObservable(value) ? value : of(value))),\n switchMap((obs) => combineLatest([obs, this.sortBy$, this.searchBy$])),\n withLatestFrom(this.tableConfig$),\n map(([[data, sortBy, searchBy], config]) => {\n return !sortBy\n ? searchBy\n ? search(searchBy, false, data, config)\n : data\n : (searchBy ? search(searchBy, false, data, config) : data).sort((a, b) =>\n a[sortBy.sortBy] > b[sortBy.sortBy]\n ? sortBy.sortByOrder === Order.ASC\n ? 1\n : -1\n : b[sortBy.sortBy] > a[sortBy.sortBy]\n ? sortBy.sortByOrder === Order.ASC\n ? -1\n : 1\n : 0\n );\n })\n );\n\n table$: Observable<{ data: Array<Array<TableRow>>; config: TableConfig; info: TableInfo }> = combineLatest([\n this.data$,\n this.tableConfig$,\n ]).pipe(\n map(([sorted, config]) => {\n // if pagination is disabled...\n if (!config.pagination || config.pagination.length === 0) {\n // ...return unaltered array\n return { data: [sorted], config, info: { records: sorted.length, pageTotal: 1 } };\n }\n // return record set\n return {\n data: chunk(sorted, +config.pagination.length),\n config,\n info: {\n records: sorted.length,\n pageTotal: Math.ceil(sorted.length / +config.pagination.length),\n },\n };\n })\n );\n\n // tslint:disable-next-line:variable-name\n private _currentPage$: BehaviorSubject<any> = new BehaviorSubject(0);\n currentPage$ = this._currentPage$.pipe(\n map((value) => (isObservable(value) ? (value as Observable<number>) : (of(value) as Observable<number>))),\n switchMap((obs) => obs),\n withLatestFrom(this.table$),\n map(([page, table]: any) => {\n // determine last page\n const lastPage = Math.ceil(table.info.records / table.config.pagination.length) - 1;\n // determine max/min position\n return +page < 0 ? 0 : +page > lastPage ? lastPage : +page;\n }),\n shareReplay(1)\n );\n\n sort(property: string): void {\n const newSortOrder =\n this.sortBy$.getValue()?.sortBy !== property ||\n this.sortBy$.getValue()?.sortByOrder === Order.DESC ||\n !this.sortBy$.getValue()?.sortByOrder\n ? Order.ASC\n : Order.DESC;\n this.sortBy$.next({\n sortBy: property,\n sortByOrder: newSortOrder,\n });\n }\n\n ngOnInit() {}\n\n columnOrder = (a: KeyValue<string, TableColumn>, b: KeyValue<string, TableColumn>): number => {\n return (a.value.order || 0) - (b.value.order || 0);\n };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Order } from '../enums/order.enum';\n\n@Pipe({\n name: 'sortClass'\n})\nexport class SortClassPipe implements PipeTransform {\n transform(selection: { sortBy: string; sortByOrder: Order } | any, property: string): string {\n return selection.sortBy === property ? 'sort-' + selection.sortByOrder : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { dashed } from '../utilities/utilities';\n\n@Pipe({\n name: 'dashCase'\n})\nexport class DashCasePipe implements PipeTransform {\n transform(s: string): any {\n return dashed(s);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'highlight'\n})\nexport class HighlightPipe implements PipeTransform {\n transform(text: any, searchTerm: string | null): string {\n if (!searchTerm) {\n return text;\n }\n const haystackAlwaysString = text + '';\n let highlightedText = haystackAlwaysString; // fallback\n\n let searchPattern;\n try {\n searchPattern = new RegExp(\n '(' +\n // @ts-ignore\n searchTerm\n .toLowerCase()\n .match(/\".*?\"|[^ ]+/g) // extract words\n .map(\n needle => needle.replace(/\"(.*?)\"/, '$1') // strip away '\"'\n )\n .join('|') + // combine words\n ')',\n 'ig'\n );\n } catch (error) {\n return highlightedText;\n }\n\n const containsTagPattern = /(<.*?>)(.*)(<\\/.*?>)/gi;\n const containsTagMatches = containsTagPattern.exec(haystackAlwaysString);\n\n if (containsTagMatches) {\n // tag exists in haystack\n highlightedText =\n containsTagMatches[1] +\n containsTagMatches[2].replace(searchPattern, '<span class=\"gt-highlight-search\">$1</span>') +\n containsTagMatches[3];\n } else {\n highlightedText = haystackAlwaysString.replace(searchPattern, '<span class=\"gt-highlight-search\">$1</span>');\n }\n\n return highlightedText;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreComponent } from './core.component';\nimport { CommonModule } from '@angular/common';\nimport { SortClassPipe } from './pipes/sort-class.pipe';\nimport { DashCasePipe } from './pipes/dash-case.pipe';\nimport { HighlightPipe } from './pipes/highlight.pipe';\n\n@NgModule({\n declarations: [CoreComponent, SortClassPipe, DashCasePipe, HighlightPipe],\n imports: [CommonModule],\n exports: [CoreComponent]\n})\nexport class GenericTableCoreModule {}\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
export { DashCasePipe as ɵb } from './lib/pipes/dash-case.pipe';
|
|
6
|
-
export { HighlightPipe as ɵc } from './lib/pipes/highlight.pipe';
|
|
7
|
-
export { SortClassPipe as ɵa } from './lib/pipes/sort-class.pipe';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvcmUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJhbmd1bGFyLWdlbmVyaWMtdGFibGUtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0Rhc2hDYXNlUGlwZSBhcyDJtWJ9IGZyb20gJy4vbGliL3BpcGVzL2Rhc2gtY2FzZS5waXBlJztcbmV4cG9ydCB7SGlnaGxpZ2h0UGlwZSBhcyDJtWN9IGZyb20gJy4vbGliL3BpcGVzL2hpZ2hsaWdodC5waXBlJztcbmV4cG9ydCB7U29ydENsYXNzUGlwZSBhcyDJtWF9IGZyb20gJy4vbGliL3BpcGVzL3NvcnQtY2xhc3MucGlwZSc7Il19
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, isObservable, of, ReplaySubject } from 'rxjs';
|
|
3
|
-
import { map, shareReplay, startWith, switchMap, withLatestFrom } from 'rxjs/operators';
|
|
4
|
-
import { Order } from './enums/order.enum';
|
|
5
|
-
import { chunk, search } from './utilities/utilities';
|
|
6
|
-
export class CoreComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.loading$ = of(false);
|
|
9
|
-
this.sortBy$ = new BehaviorSubject({
|
|
10
|
-
sortBy: 'firstName',
|
|
11
|
-
sortByOrder: Order.ASC,
|
|
12
|
-
});
|
|
13
|
-
// tslint:disable-next-line:variable-name
|
|
14
|
-
this._searchBy$ = new ReplaySubject(1);
|
|
15
|
-
this.searchBy$ = this._searchBy$.pipe(startWith(''), map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => obs), shareReplay(1));
|
|
16
|
-
// tslint:disable-next-line:variable-name
|
|
17
|
-
this._tableConfig$ = new ReplaySubject(1);
|
|
18
|
-
this.tableConfig$ = this._tableConfig$.pipe(map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => obs), shareReplay(1));
|
|
19
|
-
// tslint:disable-next-line:variable-name
|
|
20
|
-
this._data$ = new ReplaySubject(1);
|
|
21
|
-
this.data$ = this._data$.pipe(map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => combineLatest([obs, this.sortBy$, this.searchBy$])), withLatestFrom(this.tableConfig$), map(([[data, sortBy, searchBy], config]) => {
|
|
22
|
-
return !sortBy
|
|
23
|
-
? searchBy
|
|
24
|
-
? search(searchBy, false, data, config)
|
|
25
|
-
: data
|
|
26
|
-
: (searchBy ? search(searchBy, false, data, config) : data).sort((a, b) => a[sortBy.sortBy] > b[sortBy.sortBy]
|
|
27
|
-
? sortBy.sortByOrder === Order.ASC
|
|
28
|
-
? 1
|
|
29
|
-
: -1
|
|
30
|
-
: b[sortBy.sortBy] > a[sortBy.sortBy]
|
|
31
|
-
? sortBy.sortByOrder === Order.ASC
|
|
32
|
-
? -1
|
|
33
|
-
: 1
|
|
34
|
-
: 0);
|
|
35
|
-
}));
|
|
36
|
-
this.table$ = combineLatest([
|
|
37
|
-
this.data$,
|
|
38
|
-
this.tableConfig$,
|
|
39
|
-
]).pipe(map(([sorted, config]) => {
|
|
40
|
-
// if pagination is disabled...
|
|
41
|
-
if (!config.pagination || config.pagination.length === 0) {
|
|
42
|
-
// ...return unaltered array
|
|
43
|
-
return { data: [sorted], config, info: { records: sorted.length, pageTotal: 1 } };
|
|
44
|
-
}
|
|
45
|
-
// return record set
|
|
46
|
-
return {
|
|
47
|
-
data: chunk(sorted, +config.pagination.length),
|
|
48
|
-
config,
|
|
49
|
-
info: {
|
|
50
|
-
records: sorted.length,
|
|
51
|
-
pageTotal: Math.ceil(sorted.length / +config.pagination.length),
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
}));
|
|
55
|
-
// tslint:disable-next-line:variable-name
|
|
56
|
-
this._currentPage$ = new BehaviorSubject(0);
|
|
57
|
-
this.currentPage$ = this._currentPage$.pipe(map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => obs), withLatestFrom(this.table$), map(([page, table]) => {
|
|
58
|
-
// determine last page
|
|
59
|
-
const lastPage = Math.ceil(table.info.records / table.config.pagination.length) - 1;
|
|
60
|
-
// determine max/min position
|
|
61
|
-
return +page < 0 ? 0 : +page > lastPage ? lastPage : +page;
|
|
62
|
-
}), shareReplay(1));
|
|
63
|
-
this.columnOrder = (a, b) => {
|
|
64
|
-
return (a.value.order || 0) - (b.value.order || 0);
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
set page(value) {
|
|
68
|
-
this._currentPage$.next(value);
|
|
69
|
-
}
|
|
70
|
-
set search(value) {
|
|
71
|
-
this._searchBy$.next(value);
|
|
72
|
-
}
|
|
73
|
-
set config(value) {
|
|
74
|
-
this._tableConfig$.next(value);
|
|
75
|
-
}
|
|
76
|
-
set data(value) {
|
|
77
|
-
this._data$.next(value);
|
|
78
|
-
}
|
|
79
|
-
sort(property) {
|
|
80
|
-
var _a, _b, _c;
|
|
81
|
-
const newSortOrder = ((_a = this.sortBy$.getValue()) === null || _a === void 0 ? void 0 : _a.sortBy) !== property ||
|
|
82
|
-
((_b = this.sortBy$.getValue()) === null || _b === void 0 ? void 0 : _b.sortByOrder) === Order.DESC ||
|
|
83
|
-
!((_c = this.sortBy$.getValue()) === null || _c === void 0 ? void 0 : _c.sortByOrder)
|
|
84
|
-
? Order.ASC
|
|
85
|
-
: Order.DESC;
|
|
86
|
-
this.sortBy$.next({
|
|
87
|
-
sortBy: property,
|
|
88
|
-
sortByOrder: newSortOrder,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
ngOnInit() { }
|
|
92
|
-
}
|
|
93
|
-
CoreComponent.decorators = [
|
|
94
|
-
{ type: Component, args: [{
|
|
95
|
-
selector: 'angular-generic-table',
|
|
96
|
-
template: "<table class=\"table text-nowrap mb-0\" id=\"agreementList_table\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let column of (tableConfig$ | async)!.columns | keyvalue: columnOrder\">\n <th\n *ngIf=\"!column.value?.hidden\"\n ngClass=\"{{ column.value?.sortable ? 'sort ' : '' }} {{ sortBy$ | async | sortClass: column.key }} {{\n (column.key | dashCase) + '-column'\n }}\"\n [class.disabled]=\"loading$ | async\"\n (click)=\"!column.value.sortable || sort(column.key)\"\n >\n <span>{{ column.value?.header || column.key }}</span>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"false !== false; else tableContent\">\n <tr>\n <!-- <td class=\"p-0\" [colSpan]=\"colspan$ | async\">-->\n <td class=\"p-0\">\n <div class=\"skeleton-loader skeleton-loader-table\"></div>\n </td>\n </tr>\n </tbody>\n</table>\n<ng-template #tableContent>\n <ng-container\n *ngIf=\"(table$ | async)! as table\"\n >\n <tbody id=\"agreementList_tableContent\" *ngIf=\"table!.data!.length > 0; else noData\">\n <tr *ngFor=\"let row of table!.data![(currentPage$ | async) || 0]; let i = index\" [attr.id]=\"'tableRow_' + i\">\n <ng-container *ngFor=\"let column of table.config?.columns | keyvalue: columnOrder\">\n <td *ngIf=\"!column.value?.hidden\">\n <!--<ng-container *ngIf=\"column.value.template === 'actions'\">\n <ng-container\n *ngTemplateOutlet=\"actionsColumn; context: { agreement: agreement, index: i }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"column.value.template === 'date'\">\n <ng-container\n *ngTemplateOutlet=\"dateColumn; context: { agreement: agreement, column: column.key }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"column.value.template === 'name'\">\n <ng-container *ngTemplateOutlet=\"nameColumn; context: { agreement: agreement }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"column.value.template === 'badge'\">\n <ng-container *ngTemplateOutlet=\"badgeColumn; context: { agreement: agreement }\"></ng-container>\n </ng-container>-->\n <ng-container [ngTemplateOutlet]=\"(searchBy$ | async) && !table.config.columns[column.key].templateRef ? highlighted:\n table.config.columns[column.key].templateRef ? templateRef :\n rawData\" [ngTemplateOutletContext]=\"{row: row, column: column, search: (searchBy$ | async), templateRef: table.config.columns[column.key].templateRef, index: i}\"></ng-container></td>\n </ng-container>\n </tr>\n </tbody>\n </ng-container>\n</ng-template>\n<ng-template #noData></ng-template>\n<ng-template #highlighted let-row=\"row\" let-column=\"column\" let-search=\"search\">\n <div [innerHTML]=\"(row[column.key] | highlight: search)\"></div>\n</ng-template>\n<ng-template #rawData let-row=\"row\" let-column=\"column\">\n {{row[column.key]}}\n</ng-template>\n<ng-template #templateRef let-row=\"row\" let-column=\"column\" let-index=\"index\" let-templateRef=\"templateRef\">\n <ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{row: row, col: column, index: index}\"></ng-container>\n</ng-template>\n",
|
|
97
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
98
|
-
},] }
|
|
99
|
-
];
|
|
100
|
-
CoreComponent.ctorParameters = () => [];
|
|
101
|
-
CoreComponent.propDecorators = {
|
|
102
|
-
page: [{ type: Input }],
|
|
103
|
-
search: [{ type: Input }],
|
|
104
|
-
config: [{ type: Input }],
|
|
105
|
-
data: [{ type: Input }]
|
|
106
|
-
};
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVd0RCxNQUFNLE9BQU8sYUFBYTtJQW9CeEI7UUFFQSxhQUFRLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJCLFlBQU8sR0FBeUIsSUFBSSxlQUFlLENBQUM7WUFDbEQsTUFBTSxFQUFFLFdBQVc7WUFDbkIsV0FBVyxFQUFFLEtBQUssQ0FBQyxHQUFHO1NBQ3ZCLENBQUMsQ0FBQztRQUVILHlDQUF5QztRQUNqQyxlQUFVLEdBQStDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLGNBQVMsR0FBdUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xELFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDYixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3pELFNBQVMs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QyxPQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLDBDQUFFLFdBQVcsTUFBSyxLQUFLLENBQUMsSUFBSTtZQUNuRCxRQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLDBDQUFFLFdBQVcsQ0FBQTtZQUNuQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUc7WUFDWCxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixNQUFNLEVBQUUsUUFBUTtZQUNoQixXQUFXLEVBQUUsWUFBWTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7OztZQS9IZCxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsODFHQUFvQztnQkFFcEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7Ozs7bUJBRUUsS0FBSztxQkFLTCxLQUFLO3FCQUtMLEtBQUs7bUJBS0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tICcuL21vZGVscy90YWJsZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi9tb2RlbHMvdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcmRlciB9IGZyb20gJy4vZW51bXMvb3JkZXIuZW51bSc7XG5pbXBvcnQgeyBjaHVuaywgc2VhcmNoIH0gZnJvbSAnLi91dGlsaXRpZXMvdXRpbGl0aWVzJztcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSAnLi9tb2RlbHMvdGFibGUtcm93LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJsZVNvcnQgfSBmcm9tICcuL21vZGVscy90YWJsZS1zb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJsZUluZm8gfSBmcm9tICcuL21vZGVscy90YWJsZS1pbmZvLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FuZ3VsYXItZ2VuZXJpYy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBzZXQgcGFnZSh2YWx1ZTogT2JzZXJ2YWJsZTxudW1iZXI+IHwgbnVtYmVyKSB7XG4gICAgdGhpcy5fY3VycmVudFBhZ2UkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaCh2YWx1ZTogT2JzZXJ2YWJsZTxzdHJpbmc+IHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VhcmNoQnkkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbmZpZyh2YWx1ZTogT2JzZXJ2YWJsZTxUYWJsZUNvbmZpZz4gfCBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMuX3RhYmxlQ29uZmlnJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhKHZhbHVlOiBPYnNlcnZhYmxlPEFycmF5PFRhYmxlUm93Pj4gfCBBcnJheTxUYWJsZVJvdz4pIHtcbiAgICB0aGlzLl9kYXRhJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbG9hZGluZyQgPSBvZihmYWxzZSk7XG5cbiAgc29ydEJ5JDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHtcbiAgICBzb3J0Qnk6ICdmaXJzdE5hbWUnLFxuICAgIHNvcnRCeU9yZGVyOiBPcmRlci5BU0MsXG4gIH0pO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX3NlYXJjaEJ5JDogUmVwbGF5U3ViamVjdDxPYnNlcnZhYmxlPHN0cmluZz4gfCBzdHJpbmc+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG4gIHNlYXJjaEJ5JDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5fc2VhcmNoQnkkLnBpcGUoXG4gICAgc3RhcnRXaXRoKCcnKSxcbiAgICBtYXAoKHZhbHVlKSA9PiAoaXNPYnNlcnZhYmxlKHZhbHVlKSA/IHZhbHVlIDogb2YodmFsdWUpKSksXG4gICAgc3dpdGNoTWFwKChvYnMpID0+IG9icyksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF90YWJsZUNvbmZpZyQ6IFJlcGxheVN1YmplY3Q8VGFibGVDb25maWcgfCBPYnNlcnZhYmxlPFRhYmxlQ29uZmlnPj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgdGFibGVDb25maWckOiBPYnNlcnZhYmxlPFRhYmxlQ29uZmlnPiA9IHRoaXMuX3RhYmxlQ29uZmlnJC5waXBlKFxuICAgIG1hcCgodmFsdWUpID0+IChpc09ic2VydmFibGUodmFsdWUpID8gdmFsdWUgOiBvZih2YWx1ZSkpKSxcbiAgICBzd2l0Y2hNYXAoKG9icykgPT4gb2JzKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2RhdGEkOiBSZXBsYXlTdWJqZWN0PEFycmF5PFRhYmxlUm93PiB8IE9ic2VydmFibGU8QXJyYXk8VGFibGVSb3c+Pj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgZGF0YSQ6IE9ic2VydmFibGU8QXJyYXk8VGFibGVSb3c+PiA9IHRoaXMuX2RhdGEkLnBpcGUoXG4gICAgbWFwKCh2YWx1ZSkgPT4gKGlzT2JzZXJ2YWJsZSh2YWx1ZSkgPyB2YWx1ZSA6IG9mKHZhbHVlKSkpLFxuICAgIHN3aXRjaE1hcCgob2JzKSA9PiBjb21iaW5lTGF0ZXN0KFtvYnMsIHRoaXMuc29ydEJ5JCwgdGhpcy5zZWFyY2hCeSRdKSksXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy50YWJsZUNvbmZpZyQpLFxuICAgIG1hcCgoW1tkYXRhLCBzb3J0QnksIHNlYXJjaEJ5XSwgY29uZmlnXSkgPT4ge1xuICAgICAgcmV0dXJuICFzb3J0QnlcbiAgICAgICAgPyBzZWFyY2hCeVxuICAgICAgICAgID8gc2VhcmNoKHNlYXJjaEJ5LCBmYWxzZSwgZGF0YSwgY29uZmlnKVxuICAgICAgICAgIDogZGF0YVxuICAgICAgICA6IChzZWFyY2hCeSA/IHNlYXJjaChzZWFyY2hCeSwgZmFsc2UsIGRhdGEsIGNvbmZpZykgOiBkYXRhKS5zb3J0KChhLCBiKSA9PlxuICAgICAgICAgICAgYVtzb3J0Qnkuc29ydEJ5XSA+IGJbc29ydEJ5LnNvcnRCeV1cbiAgICAgICAgICAgICAgPyBzb3J0Qnkuc29ydEJ5T3JkZXIgPT09IE9yZGVyLkFTQ1xuICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgIDogLTFcbiAgICAgICAgICAgICAgOiBiW3NvcnRCeS5zb3J0QnldID4gYVtzb3J0Qnkuc29ydEJ5XVxuICAgICAgICAgICAgICA/IHNvcnRCeS5zb3J0QnlPcmRlciA9PT0gT3JkZXIuQVNDXG4gICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgIDogMVxuICAgICAgICAgICAgICA6IDBcbiAgICAgICAgICApO1xuICAgIH0pXG4gICk7XG5cbiAgdGFibGUkOiBPYnNlcnZhYmxlPHsgZGF0YTogQXJyYXk8QXJyYXk8VGFibGVSb3c+PjsgY29uZmlnOiBUYWJsZUNvbmZpZzsgaW5mbzogVGFibGVJbmZvIH0+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kYXRhJCxcbiAgICB0aGlzLnRhYmxlQ29uZmlnJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtzb3J0ZWQsIGNvbmZpZ10pID0+IHtcbiAgICAgIC8vIGlmIHBhZ2luYXRpb24gaXMgZGlzYWJsZWQuLi5cbiAgICAgIGlmICghY29uZmlnLnBhZ2luYXRpb24gfHwgY29uZmlnLnBhZ2luYXRpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIC4uLnJldHVybiB1bmFsdGVyZWQgYXJyYXlcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogW3NvcnRlZF0sIGNvbmZpZywgaW5mbzogeyByZWNvcmRzOiBzb3J0ZWQubGVuZ3RoLCBwYWdlVG90YWw6IDEgfSB9O1xuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIHJlY29yZCBzZXRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IGNodW5rKHNvcnRlZCwgK2NvbmZpZy5wYWdpbmF0aW9uLmxlbmd0aCksXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgaW5mbzoge1xuICAgICAgICAgIHJlY29yZHM6IHNvcnRlZC5sZW5ndGgsXG4gICAgICAgICAgcGFnZVRvdGFsOiBNYXRoLmNlaWwoc29ydGVkLmxlbmd0aCAvICtjb25maWcucGFnaW5hdGlvbi5sZW5ndGgpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KVxuICApO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2N1cnJlbnRQYWdlJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuICBjdXJyZW50UGFnZSQgPSB0aGlzLl9jdXJyZW50UGFnZSQucGlwZShcbiAgICBtYXAoKHZhbHVlKSA9PiAoaXNPYnNlcnZhYmxlKHZhbHVlKSA/ICh2YWx1ZSBhcyBPYnNlcnZhYmxlPG51bWJlcj4pIDogKG9mKHZhbHVlKSBhcyBPYnNlcnZhYmxlPG51bWJlcj4pKSksXG4gICAgc3dpdGNoTWFwKChvYnMpID0+IG9icyksXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy50YWJsZSQpLFxuICAgIG1hcCgoW3BhZ2UsIHRhYmxlXTogYW55KSA9PiB7XG4gICAgICAvLyBkZXRlcm1pbmUgbGFzdCBwYWdlXG4gICAgICBjb25zdCBsYXN0UGFnZSA9IE1hdGguY2VpbCh0YWJsZS5pbmZvLnJlY29yZHMgLyB0YWJsZS5jb25maWcucGFnaW5hdGlvbi5sZW5ndGgpIC0gMTtcbiAgICAgIC8vIGRldGVybWluZSBtYXgvbWluIHBvc2l0aW9uXG4gICAgICByZXR1cm4gK3BhZ2UgPCAwID8gMCA6ICtwYWdlID4gbGFzdFBhZ2UgPyBsYXN0UGFnZSA6ICtwYWdlO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgc29ydChwcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbmV3U29ydE9yZGVyID1cbiAgICAgIHRoaXMuc29ydEJ5JC5nZXRWYWx1ZSgpPy5zb3J0QnkgIT09IHByb3BlcnR5IHx8XG4gICAgICB0aGlzLnNvcnRCeSQuZ2V0VmFsdWUoKT8uc29ydEJ5T3JkZXIgPT09IE9yZGVyLkRFU0MgfHxcbiAgICAgICF0aGlzLnNvcnRCeSQuZ2V0VmFsdWUoKT8uc29ydEJ5T3JkZXJcbiAgICAgICAgPyBPcmRlci5BU0NcbiAgICAgICAgOiBPcmRlci5ERVNDO1xuICAgIHRoaXMuc29ydEJ5JC5uZXh0KHtcbiAgICAgIHNvcnRCeTogcHJvcGVydHksXG4gICAgICBzb3J0QnlPcmRlcjogbmV3U29ydE9yZGVyLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGNvbHVtbk9yZGVyID0gKGE6IEtleVZhbHVlPHN0cmluZywgVGFibGVDb2x1bW4+LCBiOiBLZXlWYWx1ZTxzdHJpbmcsIFRhYmxlQ29sdW1uPik6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIChhLnZhbHVlLm9yZGVyIHx8IDApIC0gKGIudmFsdWUub3JkZXIgfHwgMCk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CoreComponent } from './core.component';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { SortClassPipe } from './pipes/sort-class.pipe';
|
|
5
|
-
import { DashCasePipe } from './pipes/dash-case.pipe';
|
|
6
|
-
import { HighlightPipe } from './pipes/highlight.pipe';
|
|
7
|
-
export class GenericTableCoreModule {
|
|
8
|
-
}
|
|
9
|
-
GenericTableCoreModule.decorators = [
|
|
10
|
-
{ type: NgModule, args: [{
|
|
11
|
-
declarations: [CoreComponent, SortClassPipe, DashCasePipe, HighlightPipe],
|
|
12
|
-
imports: [CommonModule],
|
|
13
|
-
exports: [CoreComponent]
|
|
14
|
-
},] }
|
|
15
|
-
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3ZELE1BQU0sT0FBTyxzQkFBc0I7OztZQUxsQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDO2dCQUN6RSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU29ydENsYXNzUGlwZSB9IGZyb20gJy4vcGlwZXMvc29ydC1jbGFzcy5waXBlJztcbmltcG9ydCB7IERhc2hDYXNlUGlwZSB9IGZyb20gJy4vcGlwZXMvZGFzaC1jYXNlLnBpcGUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0UGlwZSB9IGZyb20gJy4vcGlwZXMvaGlnaGxpZ2h0LnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb3JlQ29tcG9uZW50LCBTb3J0Q2xhc3NQaXBlLCBEYXNoQ2FzZVBpcGUsIEhpZ2hsaWdodFBpcGVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0NvcmVDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZUNvcmVNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CoreService {
|
|
4
|
-
constructor() { }
|
|
5
|
-
}
|
|
6
|
-
CoreService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CoreService_Factory() { return new CoreService(); }, token: CoreService, providedIn: "root" });
|
|
7
|
-
CoreService.decorators = [
|
|
8
|
-
{ type: Injectable, args: [{
|
|
9
|
-
providedIn: 'root'
|
|
10
|
-
},] }
|
|
11
|
-
];
|
|
12
|
-
CoreService.ctorParameters = () => [];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sV0FBVztJQUN0QixnQkFBZSxDQUFDOzs7O1lBSmpCLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29yZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export var Order;
|
|
2
|
-
(function (Order) {
|
|
3
|
-
Order["ASC"] = "asc";
|
|
4
|
-
Order["DESC"] = "desc";
|
|
5
|
-
})(Order || (Order = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9lbnVtcy9vcmRlci5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLEtBR1g7QUFIRCxXQUFZLEtBQUs7SUFDZixvQkFBVyxDQUFBO0lBQ1gsc0JBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxLQUFLLEtBQUwsS0FBSyxRQUdoQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE9yZGVyIHtcbiAgQVNDID0gJ2FzYycsXG4gIERFU0MgPSAnZGVzYydcbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvdGFibGUtY29sdW1uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbiB7XG4gIGhlYWRlcj86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICBvcmRlcj86IG51bWJlcjtcbiAgc2VhcmNoPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvdGFibGUtY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29uZmlnIHtcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgY29sdW1uczoge1xuICAgIFtrZXk6IHN0cmluZ106IFRhYmxlQ29sdW1uO1xuICB9O1xuICBwYWdpbmF0aW9uOiB7XG4gICAgbGVuZ3RoOiBudW1iZXI7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaW5mby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3RhYmxlLWluZm8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRhYmxlSW5mbyB7XG4gIHJlY29yZHM6IG51bWJlcjtcbiAgcGFnZVRvdGFsOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvdGFibGUtcm93LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUYWJsZVJvdyB7XG4gIFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc29ydC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3RhYmxlLXNvcnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmRlciB9IGZyb20gJy4uL2VudW1zL29yZGVyLmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU29ydCB7XG4gIHNvcnRCeTogc3RyaW5nO1xuICBzb3J0QnlPcmRlcjogT3JkZXI7XG59XG4iXX0=
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { dashed } from '../utilities/utilities';
|
|
3
|
-
export class DashCasePipe {
|
|
4
|
-
transform(s) {
|
|
5
|
-
return dashed(s);
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
DashCasePipe.decorators = [
|
|
9
|
-
{ type: Pipe, args: [{
|
|
10
|
-
name: 'dashCase'
|
|
11
|
-
},] }
|
|
12
|
-
];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaC1jYXNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcGlwZXMvZGFzaC1jYXNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBS2hELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFNBQVMsQ0FBQyxDQUFTO1FBQ2pCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7OztZQU5GLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsVUFBVTthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRhc2hlZCB9IGZyb20gJy4uL3V0aWxpdGllcy91dGlsaXRpZXMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdkYXNoQ2FzZSdcbn0pXG5leHBvcnQgY2xhc3MgRGFzaENhc2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShzOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBkYXNoZWQocyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
export class HighlightPipe {
|
|
3
|
-
transform(text, searchTerm) {
|
|
4
|
-
if (!searchTerm) {
|
|
5
|
-
return text;
|
|
6
|
-
}
|
|
7
|
-
const haystackAlwaysString = text + '';
|
|
8
|
-
let highlightedText = haystackAlwaysString; // fallback
|
|
9
|
-
let searchPattern;
|
|
10
|
-
try {
|
|
11
|
-
searchPattern = new RegExp('(' +
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
searchTerm
|
|
14
|
-
.toLowerCase()
|
|
15
|
-
.match(/".*?"|[^ ]+/g) // extract words
|
|
16
|
-
.map(needle => needle.replace(/"(.*?)"/, '$1') // strip away '"'
|
|
17
|
-
)
|
|
18
|
-
.join('|') + // combine words
|
|
19
|
-
')', 'ig');
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
return highlightedText;
|
|
23
|
-
}
|
|
24
|
-
const containsTagPattern = /(<.*?>)(.*)(<\/.*?>)/gi;
|
|
25
|
-
const containsTagMatches = containsTagPattern.exec(haystackAlwaysString);
|
|
26
|
-
if (containsTagMatches) {
|
|
27
|
-
// tag exists in haystack
|
|
28
|
-
highlightedText =
|
|
29
|
-
containsTagMatches[1] +
|
|
30
|
-
containsTagMatches[2].replace(searchPattern, '<span class="gt-highlight-search">$1</span>') +
|
|
31
|
-
containsTagMatches[3];
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
highlightedText = haystackAlwaysString.replace(searchPattern, '<span class="gt-highlight-search">$1</span>');
|
|
35
|
-
}
|
|
36
|
-
return highlightedText;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
HighlightPipe.decorators = [
|
|
40
|
-
{ type: Pipe, args: [{
|
|
41
|
-
name: 'highlight'
|
|
42
|
-
},] }
|
|
43
|
-
];
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcGlwZXMvaGlnaGxpZ2h0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFLcEQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxDQUFDLElBQVMsRUFBRSxVQUF5QjtRQUM1QyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QyxJQUFJLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLFdBQVc7UUFFdkQsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSTtZQUNGLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FDeEIsR0FBRztnQkFDSCxhQUFhO2dCQUNiLFVBQVU7cUJBQ1AsV0FBVyxFQUFFO3FCQUNiLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxnQkFBZ0I7cUJBQ3RDLEdBQUcsQ0FDRixNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLGlCQUFpQjtpQkFDNUQ7cUJBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQjtnQkFDN0IsR0FBRyxFQUNMLElBQUksQ0FDTCxDQUFDO1NBQ0g7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sZUFBZSxDQUFDO1NBQ3hCO1FBRUQsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztRQUNwRCxNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXpFLElBQUksa0JBQWtCLEVBQUU7WUFDdEIseUJBQXlCO1lBQ3pCLGVBQWU7Z0JBQ2Isa0JBQWtCLENBQUMsQ0FBQyxDQUFDO29CQUNyQixrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLDZDQUE2QyxDQUFDO29CQUMzRixrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QjthQUFNO1lBQ0wsZUFBZSxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsNkNBQTZDLENBQUMsQ0FBQztTQUM5RztRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7OztZQTVDRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFdBQVc7YUFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2hpZ2hsaWdodCdcbn0pXG5leHBvcnQgY2xhc3MgSGlnaGxpZ2h0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odGV4dDogYW55LCBzZWFyY2hUZXJtOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAoIXNlYXJjaFRlcm0pIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbiAgICBjb25zdCBoYXlzdGFja0Fsd2F5c1N0cmluZyA9IHRleHQgKyAnJztcbiAgICBsZXQgaGlnaGxpZ2h0ZWRUZXh0ID0gaGF5c3RhY2tBbHdheXNTdHJpbmc7IC8vIGZhbGxiYWNrXG5cbiAgICBsZXQgc2VhcmNoUGF0dGVybjtcbiAgICB0cnkge1xuICAgICAgc2VhcmNoUGF0dGVybiA9IG5ldyBSZWdFeHAoXG4gICAgICAgICcoJyArXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgc2VhcmNoVGVybVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgLm1hdGNoKC9cIi4qP1wifFteIF0rL2cpIC8vIGV4dHJhY3Qgd29yZHNcbiAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgbmVlZGxlID0+IG5lZWRsZS5yZXBsYWNlKC9cIiguKj8pXCIvLCAnJDEnKSAvLyBzdHJpcCBhd2F5ICdcIidcbiAgICAgICAgICApXG4gICAgICAgICAgLmpvaW4oJ3wnKSArIC8vIGNvbWJpbmUgd29yZHNcbiAgICAgICAgICAnKScsXG4gICAgICAgICdpZydcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBoaWdobGlnaHRlZFRleHQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbnNUYWdQYXR0ZXJuID0gLyg8Lio/PikoLiopKDxcXC8uKj8+KS9naTtcbiAgICBjb25zdCBjb250YWluc1RhZ01hdGNoZXMgPSBjb250YWluc1RhZ1BhdHRlcm4uZXhlYyhoYXlzdGFja0Fsd2F5c1N0cmluZyk7XG5cbiAgICBpZiAoY29udGFpbnNUYWdNYXRjaGVzKSB7XG4gICAgICAvLyB0YWcgZXhpc3RzIGluIGhheXN0YWNrXG4gICAgICBoaWdobGlnaHRlZFRleHQgPVxuICAgICAgICBjb250YWluc1RhZ01hdGNoZXNbMV0gK1xuICAgICAgICBjb250YWluc1RhZ01hdGNoZXNbMl0ucmVwbGFjZShzZWFyY2hQYXR0ZXJuLCAnPHNwYW4gY2xhc3M9XCJndC1oaWdobGlnaHQtc2VhcmNoXCI+JDE8L3NwYW4+JykgK1xuICAgICAgICBjb250YWluc1RhZ01hdGNoZXNbM107XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpZ2hsaWdodGVkVGV4dCA9IGhheXN0YWNrQWx3YXlzU3RyaW5nLnJlcGxhY2Uoc2VhcmNoUGF0dGVybiwgJzxzcGFuIGNsYXNzPVwiZ3QtaGlnaGxpZ2h0LXNlYXJjaFwiPiQxPC9zcGFuPicpO1xuICAgIH1cblxuICAgIHJldHVybiBoaWdobGlnaHRlZFRleHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
export class SortClassPipe {
|
|
3
|
-
transform(selection, property) {
|
|
4
|
-
return selection.sortBy === property ? 'sort-' + selection.sortByOrder : '';
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
SortClassPipe.decorators = [
|
|
8
|
-
{ type: Pipe, args: [{
|
|
9
|
-
name: 'sortClass'
|
|
10
|
-
},] }
|
|
11
|
-
];
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1jbGFzcy5waXBlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3BpcGVzL3NvcnQtY2xhc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU1wRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixTQUFTLENBQUMsU0FBdUQsRUFBRSxRQUFnQjtRQUNqRixPQUFPLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlFLENBQUM7OztZQU5GLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsV0FBVzthQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9yZGVyIH0gZnJvbSAnLi4vZW51bXMvb3JkZXIuZW51bSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NvcnRDbGFzcydcbn0pXG5leHBvcnQgY2xhc3MgU29ydENsYXNzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oc2VsZWN0aW9uOiB7IHNvcnRCeTogc3RyaW5nOyBzb3J0QnlPcmRlcjogT3JkZXIgfSB8IGFueSwgcHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlbGVjdGlvbi5zb3J0QnkgPT09IHByb3BlcnR5ID8gJ3NvcnQtJyArIHNlbGVjdGlvbi5zb3J0QnlPcmRlciA6ICcnO1xuICB9XG59XG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export let dashed;
|
|
2
|
-
dashed = (s) => s.replace(/[A-Z]/g, m => '-' + m.toLowerCase());
|
|
3
|
-
export let chunk;
|
|
4
|
-
chunk = (array, chunkSize) => {
|
|
5
|
-
if (chunkSize < 0) {
|
|
6
|
-
throw new Error('Invalid chunk size');
|
|
7
|
-
}
|
|
8
|
-
if (chunkSize === 0 && !chunkSize) {
|
|
9
|
-
return [array];
|
|
10
|
-
}
|
|
11
|
-
const CHUNK = [];
|
|
12
|
-
for (let i = 0, len = array.length; i < len; i += chunkSize) {
|
|
13
|
-
CHUNK.push(array.slice(i, i + chunkSize));
|
|
14
|
-
}
|
|
15
|
-
return CHUNK;
|
|
16
|
-
};
|
|
17
|
-
export let search;
|
|
18
|
-
search = (text, caseSensitive, data, config) => {
|
|
19
|
-
const searchColumns = Object.keys(config.columns).filter(key => !config.columns[key].hidden && config.columns[key].search !== false);
|
|
20
|
-
return data.filter(row => Object.entries(row)
|
|
21
|
-
.filter(([key, value]) => searchColumns.indexOf(key) !== -1)
|
|
22
|
-
.reduce((prev, [key, value]) => prev + (prev === '' ? '' : ' & ') + (caseSensitive ? value + '' : (value + '').toLowerCase()), '')
|
|
23
|
-
.indexOf(text) !== -1);
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3V0aWxpdGllcy91dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLElBQUksTUFBNkIsQ0FBQztBQUN6QyxNQUFNLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRXhFLE1BQU0sQ0FBQyxJQUFJLEtBQXVFLENBQUM7QUFDbkYsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO0lBQzNCLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDdkM7SUFDRCxJQUFJLFNBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hCO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRTtRQUMzRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQzNDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBSSxNQUF3RyxDQUFDO0FBQ3BILE1BQU0sR0FBRyxDQUFDLElBQVksRUFBRSxhQUFzQixFQUFFLElBQXFCLEVBQUUsTUFBbUIsRUFBRSxFQUFFO0lBQzVGLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDdEQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FDM0UsQ0FBQztJQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsR0FBRyxDQUFDLEVBQUUsQ0FDSixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUNoQixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMzRCxNQUFNLENBQ0wsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQVUsRUFBRSxDQUM3QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUMvRixFQUFFLENBQ0g7U0FDQSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzFCLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZVJvdyB9IGZyb20gJy4uL21vZGVscy90YWJsZS1yb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgbGV0IGRhc2hlZDogKHM6IHN0cmluZykgPT4gc3RyaW5nO1xuZGFzaGVkID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC9bQS1aXS9nLCBtID0+ICctJyArIG0udG9Mb3dlckNhc2UoKSk7XG5cbmV4cG9ydCBsZXQgY2h1bms6IChhcnJheTogQXJyYXk8YW55PiwgY2h1bmtTaXplOiBudW1iZXIpID0+IEFycmF5PEFycmF5PFRhYmxlUm93Pj47XG5jaHVuayA9IChhcnJheSwgY2h1bmtTaXplKSA9PiB7XG4gIGlmIChjaHVua1NpemUgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNodW5rIHNpemUnKTtcbiAgfVxuICBpZiAoY2h1bmtTaXplID09PSAwICYmICFjaHVua1NpemUpIHtcbiAgICByZXR1cm4gW2FycmF5XTtcbiAgfVxuICBjb25zdCBDSFVOSyA9IFtdO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpICs9IGNodW5rU2l6ZSkge1xuICAgIENIVU5LLnB1c2goYXJyYXkuc2xpY2UoaSwgaSArIGNodW5rU2l6ZSkpO1xuICB9XG4gIHJldHVybiBDSFVOSztcbn07XG5cbmV4cG9ydCBsZXQgc2VhcmNoOiAodGV4dDogc3RyaW5nLCBjYXNlU2Vuc2l0aXZlOiBib29sZWFuLCBkYXRhOiBBcnJheTxUYWJsZVJvdz4sIGNvbmZpZzogVGFibGVDb25maWcpID0+IFRhYmxlUm93W107XG5zZWFyY2ggPSAodGV4dDogc3RyaW5nLCBjYXNlU2Vuc2l0aXZlOiBib29sZWFuLCBkYXRhOiBBcnJheTxUYWJsZVJvdz4sIGNvbmZpZzogVGFibGVDb25maWcpID0+IHtcbiAgY29uc3Qgc2VhcmNoQ29sdW1ucyA9IE9iamVjdC5rZXlzKGNvbmZpZy5jb2x1bW5zKS5maWx0ZXIoXG4gICAga2V5ID0+ICFjb25maWcuY29sdW1uc1trZXldLmhpZGRlbiAmJiBjb25maWcuY29sdW1uc1trZXldLnNlYXJjaCAhPT0gZmFsc2VcbiAgKTtcbiAgcmV0dXJuIGRhdGEuZmlsdGVyKFxuICAgIHJvdyA9PlxuICAgICAgT2JqZWN0LmVudHJpZXMocm93KVxuICAgICAgICAuZmlsdGVyKChba2V5LCB2YWx1ZV0pID0+IHNlYXJjaENvbHVtbnMuaW5kZXhPZihrZXkpICE9PSAtMSlcbiAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAocHJldiwgW2tleSwgdmFsdWVdKTogc3RyaW5nID0+XG4gICAgICAgICAgICBwcmV2ICsgKHByZXYgPT09ICcnID8gJycgOiAnICYgJykgKyAoY2FzZVNlbnNpdGl2ZSA/IHZhbHVlICsgJycgOiAodmFsdWUgKyAnJykudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgJydcbiAgICAgICAgKVxuICAgICAgICAuaW5kZXhPZih0ZXh0KSAhPT0gLTFcbiAgKTtcbn07XG4iXX0=
|
package/esm2015/public-api.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of core
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/core.service';
|
|
5
|
-
export * from './lib/core.component';
|
|
6
|
-
export * from './lib/core.module';
|
|
7
|
-
export * from './lib/models/table-config.interface';
|
|
8
|
-
export * from './lib/models/table-column.interface';
|
|
9
|
-
export * from './lib/models/table-info.interface';
|
|
10
|
-
export * from './lib/models/table-row.interface';
|
|
11
|
-
export * from './lib/models/table-sort.interface';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RhYmxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RhYmxlLWluZm8uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YWJsZS1yb3cuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YWJsZS1zb3J0LmludGVyZmFjZSc7XG4iXX0=
|