@angular-generic-table/core 5.0.0-rc.4 → 5.0.0-rc.5
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/angular-generic-table-core.d.ts +1 -3
- package/esm2020/angular-generic-table-core.mjs +5 -0
- package/esm2020/lib/core.component.mjs +118 -0
- package/esm2020/lib/core.module.mjs +23 -0
- package/esm2020/lib/core.service.mjs +14 -0
- package/esm2020/lib/enums/order.enum.mjs +6 -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-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 +63 -0
- package/esm2020/lib/pagination/pagination.module.mjs +18 -0
- package/esm2020/lib/pipes/capital-case.pipe.mjs +17 -0
- package/esm2020/lib/pipes/dash-case.pipe.mjs +17 -0
- package/esm2020/lib/pipes/dynamic.pipe.mjs +26 -0
- package/esm2020/lib/pipes/highlight.pipe.mjs +48 -0
- package/esm2020/lib/pipes/sort-class.pipe.mjs +16 -0
- package/esm2020/lib/utilities/utilities.mjs +38 -0
- package/esm2020/public-api.mjs +15 -0
- package/fesm2015/angular-generic-table-core.mjs +379 -0
- package/fesm2015/angular-generic-table-core.mjs.map +1 -0
- package/fesm2020/angular-generic-table-core.mjs +377 -0
- package/fesm2020/angular-generic-table-core.mjs.map +1 -0
- package/lib/core.component.d.ts +8 -10
- package/lib/core.module.d.ts +11 -0
- package/lib/core.service.d.ts +3 -0
- package/lib/models/table-column.interface.d.ts +5 -0
- package/lib/models/table-config.interface.d.ts +3 -2
- package/lib/models/table-meta.interface.d.ts +8 -0
- package/lib/models/table-row.interface.d.ts +1 -0
- package/lib/pagination/pagination.component.d.ts +14 -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/sort-class.pipe.d.ts +3 -0
- package/lib/utilities/utilities.d.ts +1 -0
- package/package.json +19 -7
- package/public-api.d.ts +3 -0
- package/scss/index.scss +4 -0
- package/scss/mixins.scss +79 -0
- package/scss/tokens.scss +12 -0
- package/angular-generic-table-core.metadata.json +0 -1
- package/bundles/angular-generic-table-core.umd.js +0 -610
- 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 -115
- 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 -242
- package/fesm2015/angular-generic-table-core.js.map +0 -1
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class HighlightPipe implements PipeTransform {
|
|
3
4
|
transform(text: any, searchTerm: string | null): string;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HighlightPipe, never>;
|
|
6
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<HighlightPipe, "highlight">;
|
|
4
7
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { PipeTransform } from '@angular/core';
|
|
2
2
|
import { Order } from '../enums/order.enum';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class SortClassPipe implements PipeTransform {
|
|
4
5
|
transform(selection: {
|
|
5
6
|
sortBy: string;
|
|
6
7
|
sortByOrder: Order;
|
|
7
8
|
} | any, property: string): string;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SortClassPipe, never>;
|
|
10
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SortClassPipe, "sortClass">;
|
|
8
11
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TableRow } from '../models/table-row.interface';
|
|
2
2
|
import { TableConfig } from '../models/table-config.interface';
|
|
3
3
|
export declare let dashed: (s: string) => string;
|
|
4
|
+
export declare let capitalize: (s: string) => string;
|
|
4
5
|
export declare let chunk: (array: Array<any>, chunkSize: number) => Array<Array<TableRow>>;
|
|
5
6
|
export declare let search: (text: string, caseSensitive: boolean, data: Array<TableRow>, config: TableConfig) => TableRow[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular-generic-table/core",
|
|
3
|
-
"version": "5.0.0-rc.
|
|
3
|
+
"version": "5.0.0-rc.5",
|
|
4
4
|
"author": "Robert Hjalmers <opensource@rhj.se> (http://www.linkedin.com/in/robert-hjalmers/)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,12 +14,24 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"tslib": "^2.0.0"
|
|
16
16
|
},
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"fesm2015": "fesm2015/angular-generic-table-core.
|
|
17
|
+
"module": "fesm2015/angular-generic-table-core.mjs",
|
|
18
|
+
"es2020": "fesm2020/angular-generic-table-core.mjs",
|
|
19
|
+
"esm2020": "esm2020/angular-generic-table-core.mjs",
|
|
20
|
+
"fesm2020": "fesm2020/angular-generic-table-core.mjs",
|
|
21
|
+
"fesm2015": "fesm2015/angular-generic-table-core.mjs",
|
|
22
22
|
"typings": "angular-generic-table-core.d.ts",
|
|
23
|
-
"
|
|
23
|
+
"exports": {
|
|
24
|
+
"./package.json": {
|
|
25
|
+
"default": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./angular-generic-table-core.d.ts",
|
|
29
|
+
"esm2020": "./esm2020/angular-generic-table-core.mjs",
|
|
30
|
+
"es2020": "./fesm2020/angular-generic-table-core.mjs",
|
|
31
|
+
"es2015": "./fesm2015/angular-generic-table-core.mjs",
|
|
32
|
+
"node": "./fesm2015/angular-generic-table-core.mjs",
|
|
33
|
+
"default": "./fesm2020/angular-generic-table-core.mjs"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
24
36
|
"sideEffects": false
|
|
25
37
|
}
|
package/public-api.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from './lib/core.service';
|
|
2
2
|
export * from './lib/core.component';
|
|
3
3
|
export * from './lib/core.module';
|
|
4
|
+
export * from './lib/pagination/pagination.component';
|
|
5
|
+
export * from './lib/pagination/pagination.module';
|
|
4
6
|
export * from './lib/models/table-config.interface';
|
|
5
7
|
export * from './lib/models/table-column.interface';
|
|
6
8
|
export * from './lib/models/table-info.interface';
|
|
7
9
|
export * from './lib/models/table-row.interface';
|
|
8
10
|
export * from './lib/models/table-sort.interface';
|
|
11
|
+
export * from './lib/models/table-meta.interface';
|
package/scss/index.scss
ADDED
package/scss/mixins.scss
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
@use "tokens";
|
|
2
|
+
|
|
3
|
+
@mixin add-search-style {
|
|
4
|
+
.gt-highlight-search {
|
|
5
|
+
background: tokens.$highlight-background-color;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
@mixin add-mobile-style($selector: tokens.$mobile-style-selector) {
|
|
9
|
+
#{$selector} {
|
|
10
|
+
.mobile-header {
|
|
11
|
+
display: none;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
@media (max-width: tokens.$mobile-style-max-width) {
|
|
15
|
+
#{$selector} {
|
|
16
|
+
table-layout: fixed;
|
|
17
|
+
border-bottom: none;
|
|
18
|
+
thead {
|
|
19
|
+
position: sticky;
|
|
20
|
+
top: 0;
|
|
21
|
+
display: block;
|
|
22
|
+
@media (hover: none) and (pointer: coarse) {
|
|
23
|
+
display: table-header-group;
|
|
24
|
+
}
|
|
25
|
+
background: tokens.$mobile-style-header-background-color;
|
|
26
|
+
tr {
|
|
27
|
+
display: flex;
|
|
28
|
+
overflow: auto;
|
|
29
|
+
&::-webkit-scrollbar {
|
|
30
|
+
display: none;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
tbody {
|
|
35
|
+
tr {
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
border-bottom: tokens.$mobile-style-border-bottom;
|
|
39
|
+
}
|
|
40
|
+
td {
|
|
41
|
+
display: flex;
|
|
42
|
+
justify-content: space-between;
|
|
43
|
+
align-items: center;
|
|
44
|
+
border-top: none !important;
|
|
45
|
+
& > .mobile-header {
|
|
46
|
+
font-weight: tokens.$mobile-style-header-font-weight;
|
|
47
|
+
display: block;
|
|
48
|
+
}
|
|
49
|
+
#{tokens.$mobile-style-button-selector} {
|
|
50
|
+
width: 100%;
|
|
51
|
+
font-size: tokens.$mobile-style-button-font-size;
|
|
52
|
+
padding: tokens.$mobile-style-button-padding;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
@mixin add-pagination-style() {
|
|
60
|
+
nav.gt-pagination {
|
|
61
|
+
display: flex;
|
|
62
|
+
justify-content: tokens.$pagination-justify-content;
|
|
63
|
+
ul {
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
list-style: none;
|
|
66
|
+
margin: 0;
|
|
67
|
+
padding: 0;
|
|
68
|
+
li {
|
|
69
|
+
&.ellipsis::after {
|
|
70
|
+
content: tokens.$pagination-ellipsis-content;
|
|
71
|
+
display: inline-flex;
|
|
72
|
+
}
|
|
73
|
+
&.active button {
|
|
74
|
+
color: tokens.$pagination-active-color;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
package/scss/tokens.scss
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
$highlight-background-color: #ffdd00;
|
|
2
|
+
$mobile-style-selector: 'table.table-mobile';
|
|
3
|
+
$mobile-style-max-width: 576px;
|
|
4
|
+
$mobile-style-header-font-weight: 500;
|
|
5
|
+
$mobile-style-header-background-color: #fff;
|
|
6
|
+
$mobile-style-button-selector: '.btn-sm';
|
|
7
|
+
$mobile-style-border-bottom: solid 1px #dedede;
|
|
8
|
+
$mobile-style-button-font-size: 1rem;
|
|
9
|
+
$mobile-style-button-padding: 0.5625rem 1rem;
|
|
10
|
+
$pagination-ellipsis-content: '...';
|
|
11
|
+
$pagination-active-color: #000;
|
|
12
|
+
$pagination-justify-content: center;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"CoreService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ɵprov":{}}},"CoreComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"angular-generic-table","styles":[],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":16,"character":19},"member":"OnPush"},"template":"<table class=\"table text-nowrap mb-0\" id=\"agreementList_table\">\n <thead>\n <tr *ngIf=\"{\n config:(tableConfig$ | async)!,\n loading: loading$ | async\n } as table\">\n <ng-container *ngFor=\"let column of table.config.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 }} {{column.value.class}}\"\n [class.disabled]=\"table.loading\"\n (click)=\"table.loading || !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=\"loading$ | async; else tableContent\">\n <tr>\n <td class=\"p-0\" [colSpan]=\"colspan$ | async\">\n <ng-content select=\".table-loading\"></ng-content>\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\" ngClass=\"{{(column.key | dashCase) + '-column'}} {{column.value.class}}\">\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>\n <tbody>\n <tr>\n <td class=\"p-0\" [colSpan]=\"colspan$ | async\">\n <ng-content select=\".table-no-data\"></ng-content>\n </td>\n </tr>\n </tbody>\n</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"}]}],"members":{"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"page":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"sort":[{"__symbolic":"method"}]}},"GenericTableCoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CoreComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":12}],"exports":[{"__symbolic":"reference","name":"CoreComponent"}]}]}],"members":{}},"TableConfig":{"__symbolic":"interface"},"TableColumn":{"__symbolic":"interface"},"TableInfo":{"__symbolic":"interface"},"TableRow":{"__symbolic":"interface"},"TableSort":{"__symbolic":"interface"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sortClass"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"dashCase"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"highlight"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"CoreService":"./lib/core.service","CoreComponent":"./lib/core.component","GenericTableCoreModule":"./lib/core.module","TableConfig":"./lib/models/table-config.interface","TableColumn":"./lib/models/table-column.interface","TableInfo":"./lib/models/table-info.interface","TableRow":"./lib/models/table-row.interface","TableSort":"./lib/models/table-sort.interface","ɵa":"./lib/pipes/sort-class.pipe","ɵb":"./lib/pipes/dash-case.pipe","ɵc":"./lib/pipes/highlight.pipe"},"importAs":"@angular-generic-table/core"}
|