vc-create-dashboard 3.0.4 → 3.0.6
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/README.md +24 -24
- package/esm2022/lib/configurations.mjs +7 -7
- package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -210
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +551 -549
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -47
- package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +35 -10
- package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1119 -1121
- package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +132 -132
- package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -24
- package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -36
- package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -153
- package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -309
- package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -30
- package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -25
- package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +19 -19
- package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +149 -145
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -195
- package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +31 -31
- package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +230 -227
- package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +160 -160
- package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -28
- package/esm2022/lib/create-dashboard-container/services/urlConfig.service.mjs +29 -29
- package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -421
- package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -2
- package/esm2022/lib/create-dashboard.service.mjs +14 -14
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -52
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -2
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -32
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -7
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -17
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -11
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +99 -99
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -20
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -56
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -17
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -57
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -32
- package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -30
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -29
- package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -34
- package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -14
- package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -119
- package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -39
- package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -55
- package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -19
- package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -24
- package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -47
- package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -18
- package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -130
- package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -18
- package/esm2022/lib/ui-kit/popover/popover.component.mjs +142 -142
- package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -93
- package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -21
- package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -23
- package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -41
- package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -107
- package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -21
- package/esm2022/lib/ui-kit/select/select.module.mjs +21 -21
- package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -16
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -52
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -46
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -23
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -168
- package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -18
- package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -19
- package/esm2022/public-api.mjs +10 -10
- package/esm2022/vc-create-dashboard.mjs +4 -4
- package/fesm2022/vc-create-dashboard.mjs +5367 -5309
- package/fesm2022/vc-create-dashboard.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/configurations.d.ts +4 -4
- package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/categories/categories.component.d.ts +65 -31
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +122 -88
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -9
- package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -14
- package/lib/create-dashboard-container/constants/assets.constant.d.ts +34 -9
- package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -18
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +178 -178
- package/lib/create-dashboard-container/create-dashboard.module.d.ts +40 -40
- package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -8
- package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -12
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -48
- package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -39
- package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -8
- package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +61 -27
- package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +65 -31
- package/lib/create-dashboard-container/services/auth.service.d.ts +11 -11
- package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +38 -38
- package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +45 -45
- package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -12
- package/lib/create-dashboard-container/services/urlConfig.service.d.ts +10 -10
- package/lib/create-dashboard-container/user-list/user-list.component.d.ts +122 -88
- package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -13
- package/lib/create-dashboard.service.d.ts +6 -6
- package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -17
- package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -11
- package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -10
- package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
- package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
- package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
- package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
- package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -20
- package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -10
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -10
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -13
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -8
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -36
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -17
- package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -7
- package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -7
- package/lib/ui-kit/no-data/no-data.component.d.ts +19 -19
- package/lib/ui-kit/no-data/no-data.module.d.ts +8 -8
- package/lib/ui-kit/pagination/pagination.component.d.ts +21 -21
- package/lib/ui-kit/pagination/pagination.module.d.ts +8 -8
- package/lib/ui-kit/popover/popover.component.d.ts +28 -28
- package/lib/ui-kit/popover/popover.directive.d.ts +17 -17
- package/lib/ui-kit/popover/popover.module.d.ts +9 -9
- package/lib/ui-kit/popover/popover.service.d.ts +13 -13
- package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -16
- package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -32
- package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -10
- package/lib/ui-kit/select/select.module.d.ts +11 -11
- package/lib/ui-kit/services/cs-select.service.d.ts +7 -7
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -17
- package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -17
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -9
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -28
- package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -8
- package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +3 -3
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../create-dashboard-container/services/pagination.service";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
/**
|
|
6
|
-
* Adds place holder for Pagination on the lists
|
|
7
|
-
*/
|
|
8
|
-
export class PaginationComponent {
|
|
9
|
-
paginationService;
|
|
10
|
-
start = 1;
|
|
11
|
-
totalCount;
|
|
12
|
-
paginationArray = [];
|
|
13
|
-
currentPage;
|
|
14
|
-
totalPages = 1;
|
|
15
|
-
limit = 1;
|
|
16
|
-
totalList = 1;
|
|
17
|
-
paginationFilter = new EventEmitter();
|
|
18
|
-
constructor(paginationService) {
|
|
19
|
-
this.paginationService = paginationService;
|
|
20
|
-
}
|
|
21
|
-
ngOnChanges() {
|
|
22
|
-
this.currentPage = Number(this.paginationService.currentPage);
|
|
23
|
-
this.start = Number(this.paginationService.currentPage);
|
|
24
|
-
this.rebuildPagination(this.currentPage, this.totalPages);
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
this.currentPage = Number(this.paginationService.currentPage);
|
|
28
|
-
this.start = Number(this.paginationService.currentPage);
|
|
29
|
-
this.rebuildPagination(this.currentPage, this.totalPages);
|
|
30
|
-
this.paginationService.currentValues.subscribe(event => {
|
|
31
|
-
if (event && (this.paginationService.currentPage !== this.currentPage)) {
|
|
32
|
-
this.currentPage = this.paginationService.currentPage;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
/* In this function we will recreate the pagination structure as per current page and
|
|
37
|
-
total number of pages */
|
|
38
|
-
rebuildPagination(currentPage, totalCount) {
|
|
39
|
-
this.paginationArray = [];
|
|
40
|
-
this.totalCount = totalCount;
|
|
41
|
-
this.currentPage = currentPage;
|
|
42
|
-
if (this.paginationService.currentPage !== this.currentPage) {
|
|
43
|
-
this.paginationService.currentPage = this.currentPage;
|
|
44
|
-
this.paginationFilter.emit(true);
|
|
45
|
-
}
|
|
46
|
-
// If there are only 6 pages or less in total, just display all pages without "..."
|
|
47
|
-
if (totalCount <= 6) {
|
|
48
|
-
for (let i = 1; i <= totalCount; i++) {
|
|
49
|
-
this.paginationArray.push(i);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// ELSE display with ...
|
|
53
|
-
else {
|
|
54
|
-
// Always print first page button
|
|
55
|
-
this.paginationArray.push(1);
|
|
56
|
-
// Print "..." if currentPage is > 3
|
|
57
|
-
if (currentPage > 3) {
|
|
58
|
-
// this.paginationArray.push(2);
|
|
59
|
-
this.paginationArray.push('...');
|
|
60
|
-
}
|
|
61
|
-
// special case where last page is selected...
|
|
62
|
-
// Without this special case, only 2 buttons would be shown after ... if you were on last page
|
|
63
|
-
if (currentPage === totalCount) {
|
|
64
|
-
this.paginationArray.push(currentPage - 2);
|
|
65
|
-
}
|
|
66
|
-
// Print previous number button if currentPage > 2
|
|
67
|
-
if (currentPage > 2) {
|
|
68
|
-
this.paginationArray.push(currentPage - 1);
|
|
69
|
-
}
|
|
70
|
-
// Print current page number button as long as it not the first or last page
|
|
71
|
-
if (currentPage !== 1 && currentPage !== totalCount) {
|
|
72
|
-
this.paginationArray.push(currentPage);
|
|
73
|
-
}
|
|
74
|
-
// print next page number button if currentPage < lastPage - 1
|
|
75
|
-
if (currentPage < totalCount - 1) {
|
|
76
|
-
this.paginationArray.push(currentPage + 1);
|
|
77
|
-
}
|
|
78
|
-
// special case where first page is selected...
|
|
79
|
-
// Without this special case, only 2 buttons would be shown before ... if you were on first page
|
|
80
|
-
if (currentPage === 1) {
|
|
81
|
-
this.paginationArray.push(currentPage + 2);
|
|
82
|
-
}
|
|
83
|
-
// print "..." if currentPage is < lastPage -2
|
|
84
|
-
if (currentPage < totalCount - 2) {
|
|
85
|
-
this.paginationArray.push('...');
|
|
86
|
-
// HTML += "...";
|
|
87
|
-
}
|
|
88
|
-
// Always print last page button if there is more than 1 page
|
|
89
|
-
if (totalCount > 1) {
|
|
90
|
-
this.paginationArray.push(totalCount);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/* In this function we will set current page according to the action performed on browser
|
|
95
|
-
ex: prev next buttons clicks or selecting a particular page */
|
|
96
|
-
changePage(prev, page, next) {
|
|
97
|
-
if (prev) {
|
|
98
|
-
if (this.start > 1) {
|
|
99
|
-
this.start--;
|
|
100
|
-
// We have changed the start page, total rebuild the pagination
|
|
101
|
-
this.rebuildPagination(this.start, this.totalCount);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (next) {
|
|
105
|
-
if (this.start < this.totalCount) {
|
|
106
|
-
this.start++;
|
|
107
|
-
this.rebuildPagination(this.start, this.totalCount);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
if (page) {
|
|
111
|
-
this.start = page;
|
|
112
|
-
this.rebuildPagination(this.start, this.totalCount);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, deps: [{ token: i1.PaginationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PaginationComponent, selector: "app-pagination", inputs: { totalPages: "totalPages", limit: "limit", totalList: "totalList" }, outputs: { paginationFilter: "paginationFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-box\">\
|
|
117
|
-
}
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
119
|
-
type: Component,
|
|
120
|
-
args: [{ selector: 'app-pagination', template: "<div class=\"pagination-box\">\
|
|
121
|
-
}], ctorParameters: function () { return [{ type: i1.PaginationService }]; }, propDecorators: { totalPages: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], limit: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], totalList: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], paginationFilter: [{
|
|
128
|
-
type: Output
|
|
129
|
-
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVExRjs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFVVjtJQVRwQixLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsVUFBVSxDQUFVO0lBQ3BCLGVBQWUsR0FBVSxFQUFFLENBQUM7SUFDNUIsV0FBVyxDQUFVO0lBQ1osVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVoRCxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUN4RCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7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QkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9zZXJ2aWNlcy9wYWdpbmF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcGFnaW5hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG4vKipcclxuICogQWRkcyBwbGFjZSBob2xkZXIgZm9yIFBhZ2luYXRpb24gb24gdGhlIGxpc3RzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBzdGFydCA9IDE7XHJcbiAgdG90YWxDb3VudCE6IG51bWJlcjtcclxuICBwYWdpbmF0aW9uQXJyYXk6IGFueVtdID0gW107XHJcbiAgY3VycmVudFBhZ2UhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdG90YWxQYWdlcyA9IDE7XHJcbiAgQElucHV0KCkgbGltaXQgPSAxO1xyXG4gIEBJbnB1dCgpIHRvdGFsTGlzdCA9IDE7XHJcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IE51bWJlcih0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlKTtcclxuICAgIHRoaXMuc3RhcnQgPSBOdW1iZXIodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSk7XHJcbiAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuY3VycmVudFBhZ2UsIHRoaXMudG90YWxQYWdlcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBOdW1iZXIodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSk7XHJcbiAgICB0aGlzLnN0YXJ0ID0gTnVtYmVyKHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UpO1xyXG4gICAgdGhpcy5yZWJ1aWxkUGFnaW5hdGlvbih0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLnRvdGFsUGFnZXMpO1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50VmFsdWVzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudCAmJiAodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSAhPT0gdGhpcy5jdXJyZW50UGFnZSkpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiBJbiB0aGlzIGZ1bmN0aW9uIHdlIHdpbGwgcmVjcmVhdGUgdGhlIHBhZ2luYXRpb24gc3RydWN0dXJlIGFzIHBlciBjdXJyZW50IHBhZ2UgYW5kXHJcbiAgIHRvdGFsIG51bWJlciBvZiBwYWdlcyAqL1xyXG5cclxuICByZWJ1aWxkUGFnaW5hdGlvbihjdXJyZW50UGFnZTogbnVtYmVyLCB0b3RhbENvdW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMucGFnaW5hdGlvbkFycmF5ID0gW107XHJcbiAgICB0aGlzLnRvdGFsQ291bnQgPSB0b3RhbENvdW50O1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlO1xyXG4gICAgaWYgKHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UgIT09IHRoaXMuY3VycmVudFBhZ2UpIHtcclxuICAgICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvbkZpbHRlci5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZXJlIGFyZSBvbmx5IDYgcGFnZXMgb3IgbGVzcyBpbiB0b3RhbCwganVzdCBkaXNwbGF5IGFsbCBwYWdlcyB3aXRob3V0IFwiLi4uXCJcclxuICAgIGlmICh0b3RhbENvdW50IDw9IDYpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWxDb3VudDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gRUxTRSBkaXNwbGF5IHdpdGggLi4uXHJcbiAgICBlbHNlIHtcclxuXHJcbiAgICAgIC8vIEFsd2F5cyBwcmludCBmaXJzdCBwYWdlIGJ1dHRvblxyXG4gICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKDEpO1xyXG5cclxuICAgICAgLy8gUHJpbnQgXCIuLi5cIiBpZiBjdXJyZW50UGFnZSBpcyA+IDNcclxuICAgICAgaWYgKGN1cnJlbnRQYWdlID4gMykge1xyXG4gICAgICAgIC8vIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goMik7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaCgnLi4uJyk7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIC8vIHNwZWNpYWwgY2FzZSB3aGVyZSBsYXN0IHBhZ2UgaXMgc2VsZWN0ZWQuLi5cclxuICAgICAgLy8gV2l0aG91dCB0aGlzIHNwZWNpYWwgY2FzZSwgb25seSAyIGJ1dHRvbnMgd291bGQgYmUgc2hvd24gYWZ0ZXIgLi4uIGlmIHlvdSB3ZXJlIG9uIGxhc3QgcGFnZVxyXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPT09IHRvdGFsQ291bnQpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlIC0gMik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFByaW50IHByZXZpb3VzIG51bWJlciBidXR0b24gaWYgY3VycmVudFBhZ2UgPiAyXHJcbiAgICAgIGlmIChjdXJyZW50UGFnZSA+IDIpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlIC0gMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFByaW50IGN1cnJlbnQgcGFnZSBudW1iZXIgYnV0dG9uIGFzIGxvbmcgYXMgaXQgbm90IHRoZSBmaXJzdCBvciBsYXN0IHBhZ2VcclxuICAgICAgaWYgKGN1cnJlbnRQYWdlICE9PSAxICYmIGN1cnJlbnRQYWdlICE9PSB0b3RhbENvdW50KSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaChjdXJyZW50UGFnZSk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBwcmludCBuZXh0IHBhZ2UgbnVtYmVyIGJ1dHRvbiBpZiBjdXJyZW50UGFnZSA8IGxhc3RQYWdlIC0gMVxyXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPCB0b3RhbENvdW50IC0gMSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goY3VycmVudFBhZ2UgKyAxKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHNwZWNpYWwgY2FzZSB3aGVyZSBmaXJzdCBwYWdlIGlzIHNlbGVjdGVkLi4uXHJcbiAgICAgIC8vIFdpdGhvdXQgdGhpcyBzcGVjaWFsIGNhc2UsIG9ubHkgMiBidXR0b25zIHdvdWxkIGJlIHNob3duIGJlZm9yZSAuLi4gaWYgeW91IHdlcmUgb24gZmlyc3QgcGFnZVxyXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPT09IDEpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlICsgMik7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBwcmludCBcIi4uLlwiIGlmIGN1cnJlbnRQYWdlIGlzIDwgbGFzdFBhZ2UgLTJcclxuICAgICAgaWYgKGN1cnJlbnRQYWdlIDwgdG90YWxDb3VudCAtIDIpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKCcuLi4nKTtcclxuXHJcbiAgICAgICAgLy8gSFRNTCArPSBcIi4uLlwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBBbHdheXMgcHJpbnQgbGFzdCBwYWdlIGJ1dHRvbiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gMSBwYWdlXHJcbiAgICAgIGlmICh0b3RhbENvdW50ID4gMSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2godG90YWxDb3VudCk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuLyogSW4gdGhpcyBmdW5jdGlvbiB3ZSB3aWxsIHNldCBjdXJyZW50IHBhZ2UgYWNjb3JkaW5nIHRvIHRoZSBhY3Rpb24gcGVyZm9ybWVkIG9uIGJyb3dzZXJcclxuICAgZXg6IHByZXYgbmV4dCBidXR0b25zIGNsaWNrcyBvciBzZWxlY3RpbmcgYSBwYXJ0aWN1bGFyIHBhZ2UgKi9cclxuXHJcbiAgY2hhbmdlUGFnZShwcmV2OiBzdHJpbmcsIHBhZ2U6IG51bWJlciwgbmV4dDogc3RyaW5nKSB7XHJcbiAgICBpZiAocHJldikge1xyXG4gICAgICBpZiAodGhpcy5zdGFydCA+IDEpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0LS07XHJcbiAgICAgICAgLy8gV2UgaGF2ZSBjaGFuZ2VkIHRoZSBzdGFydCBwYWdlLCB0b3RhbCByZWJ1aWxkIHRoZSBwYWdpbmF0aW9uXHJcbiAgICAgICAgdGhpcy5yZWJ1aWxkUGFnaW5hdGlvbih0aGlzLnN0YXJ0LCB0aGlzLnRvdGFsQ291bnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dCkge1xyXG4gICAgICBpZiAodGhpcy5zdGFydCA8IHRoaXMudG90YWxDb3VudCkge1xyXG4gICAgICAgIHRoaXMuc3RhcnQrKztcclxuICAgICAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuc3RhcnQsIHRoaXMudG90YWxDb3VudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwYWdlKSB7XHJcbiAgICAgIHRoaXMuc3RhcnQgPSBwYWdlO1xyXG4gICAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuc3RhcnQsIHRoaXMudG90YWxDb3VudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWJveFwiPlxyXG4gICAgPHVsPlxyXG4gICAgICAgIDxsaT48YnV0dG9uIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZT09MVwiIChjbGljayk9XCJjaGFuZ2VQYWdlKCdwcmV2JywwLCcnKVwiPjxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4mI3hlOTZiOzwvaT48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdpbmF0aW9uQXJyYXlcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnZT09Jy4uLidcIiBbY2xhc3MuZGlzYWJsZV09XCJwYWdlPT0nLi4uJ1wiIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFBhZ2U9PXBhZ2VcIiAoY2xpY2spPVwiY2hhbmdlUGFnZSgnJyxwYWdlLCcnKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJwYWdlPT0nLi4uJ1wiIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTExOzwvaT57e3BhZ2UhPScuLi4nP3BhZ2UgOiAnJ319XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpPjxidXR0b24gW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlPT10b3RhbENvdW50XCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UoJycsMCwnbmV4dCcpXCI+PGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiYjeGU5NzA7PC9pPjwvYnV0dG9uPjwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj4iXX0=
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../create-dashboard-container/services/pagination.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* Adds place holder for Pagination on the lists
|
|
7
|
+
*/
|
|
8
|
+
export class PaginationComponent {
|
|
9
|
+
paginationService;
|
|
10
|
+
start = 1;
|
|
11
|
+
totalCount;
|
|
12
|
+
paginationArray = [];
|
|
13
|
+
currentPage;
|
|
14
|
+
totalPages = 1;
|
|
15
|
+
limit = 1;
|
|
16
|
+
totalList = 1;
|
|
17
|
+
paginationFilter = new EventEmitter();
|
|
18
|
+
constructor(paginationService) {
|
|
19
|
+
this.paginationService = paginationService;
|
|
20
|
+
}
|
|
21
|
+
ngOnChanges() {
|
|
22
|
+
this.currentPage = Number(this.paginationService.currentPage);
|
|
23
|
+
this.start = Number(this.paginationService.currentPage);
|
|
24
|
+
this.rebuildPagination(this.currentPage, this.totalPages);
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.currentPage = Number(this.paginationService.currentPage);
|
|
28
|
+
this.start = Number(this.paginationService.currentPage);
|
|
29
|
+
this.rebuildPagination(this.currentPage, this.totalPages);
|
|
30
|
+
this.paginationService.currentValues.subscribe(event => {
|
|
31
|
+
if (event && (this.paginationService.currentPage !== this.currentPage)) {
|
|
32
|
+
this.currentPage = this.paginationService.currentPage;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/* In this function we will recreate the pagination structure as per current page and
|
|
37
|
+
total number of pages */
|
|
38
|
+
rebuildPagination(currentPage, totalCount) {
|
|
39
|
+
this.paginationArray = [];
|
|
40
|
+
this.totalCount = totalCount;
|
|
41
|
+
this.currentPage = currentPage;
|
|
42
|
+
if (this.paginationService.currentPage !== this.currentPage) {
|
|
43
|
+
this.paginationService.currentPage = this.currentPage;
|
|
44
|
+
this.paginationFilter.emit(true);
|
|
45
|
+
}
|
|
46
|
+
// If there are only 6 pages or less in total, just display all pages without "..."
|
|
47
|
+
if (totalCount <= 6) {
|
|
48
|
+
for (let i = 1; i <= totalCount; i++) {
|
|
49
|
+
this.paginationArray.push(i);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// ELSE display with ...
|
|
53
|
+
else {
|
|
54
|
+
// Always print first page button
|
|
55
|
+
this.paginationArray.push(1);
|
|
56
|
+
// Print "..." if currentPage is > 3
|
|
57
|
+
if (currentPage > 3) {
|
|
58
|
+
// this.paginationArray.push(2);
|
|
59
|
+
this.paginationArray.push('...');
|
|
60
|
+
}
|
|
61
|
+
// special case where last page is selected...
|
|
62
|
+
// Without this special case, only 2 buttons would be shown after ... if you were on last page
|
|
63
|
+
if (currentPage === totalCount) {
|
|
64
|
+
this.paginationArray.push(currentPage - 2);
|
|
65
|
+
}
|
|
66
|
+
// Print previous number button if currentPage > 2
|
|
67
|
+
if (currentPage > 2) {
|
|
68
|
+
this.paginationArray.push(currentPage - 1);
|
|
69
|
+
}
|
|
70
|
+
// Print current page number button as long as it not the first or last page
|
|
71
|
+
if (currentPage !== 1 && currentPage !== totalCount) {
|
|
72
|
+
this.paginationArray.push(currentPage);
|
|
73
|
+
}
|
|
74
|
+
// print next page number button if currentPage < lastPage - 1
|
|
75
|
+
if (currentPage < totalCount - 1) {
|
|
76
|
+
this.paginationArray.push(currentPage + 1);
|
|
77
|
+
}
|
|
78
|
+
// special case where first page is selected...
|
|
79
|
+
// Without this special case, only 2 buttons would be shown before ... if you were on first page
|
|
80
|
+
if (currentPage === 1) {
|
|
81
|
+
this.paginationArray.push(currentPage + 2);
|
|
82
|
+
}
|
|
83
|
+
// print "..." if currentPage is < lastPage -2
|
|
84
|
+
if (currentPage < totalCount - 2) {
|
|
85
|
+
this.paginationArray.push('...');
|
|
86
|
+
// HTML += "...";
|
|
87
|
+
}
|
|
88
|
+
// Always print last page button if there is more than 1 page
|
|
89
|
+
if (totalCount > 1) {
|
|
90
|
+
this.paginationArray.push(totalCount);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/* In this function we will set current page according to the action performed on browser
|
|
95
|
+
ex: prev next buttons clicks or selecting a particular page */
|
|
96
|
+
changePage(prev, page, next) {
|
|
97
|
+
if (prev) {
|
|
98
|
+
if (this.start > 1) {
|
|
99
|
+
this.start--;
|
|
100
|
+
// We have changed the start page, total rebuild the pagination
|
|
101
|
+
this.rebuildPagination(this.start, this.totalCount);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (next) {
|
|
105
|
+
if (this.start < this.totalCount) {
|
|
106
|
+
this.start++;
|
|
107
|
+
this.rebuildPagination(this.start, this.totalCount);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (page) {
|
|
111
|
+
this.start = page;
|
|
112
|
+
this.rebuildPagination(this.start, this.totalCount);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, deps: [{ token: i1.PaginationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PaginationComponent, selector: "app-pagination", inputs: { totalPages: "totalPages", limit: "limit", totalList: "totalList" }, outputs: { paginationFilter: "paginationFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-box\">\n <ul>\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\"></i></button></li>\n <li *ngFor=\"let page of paginationArray\">\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\n <i *ngIf=\"page=='...'\" class=\"icons\"></i>{{page!='...'?page : ''}}\n </button>\n </li>\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\"></i></button></li>\n </ul>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.pagination-box{margin-bottom:12px}.pagination-box ul{display:flex;align-items:center;padding:0;margin:0}.pagination-box ul li{list-style:none;display:flex}.pagination-box ul li+li{margin-left:4px}.pagination-box ul li:first-child{margin-right:4px;height:24px}.pagination-box ul li:first-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li:last-child{margin-left:8px!important;height:24px}.pagination-box ul li:last-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li button{border:1px solid #dbdbdb;background:#fff;border-radius:2px;color:#161b2f;font-weight:400;height:24px;min-width:24px;padding:0 5px;display:inline-flex;justify-content:center;align-items:center;outline:none;cursor:pointer;font-size:11px;margin:0}.pagination-box ul li button.active,.pagination-box ul li button:hover{border-color:#1e5dd3;color:#1e5dd3}.pagination-box ul li button.disabled{filter:grayscale(100%);pointer-events:none;background:#f1f1f1;color:#bcbcbc!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
119
|
+
type: Component,
|
|
120
|
+
args: [{ selector: 'app-pagination', template: "<div class=\"pagination-box\">\n <ul>\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\"></i></button></li>\n <li *ngFor=\"let page of paginationArray\">\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\n <i *ngIf=\"page=='...'\" class=\"icons\"></i>{{page!='...'?page : ''}}\n </button>\n </li>\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\"></i></button></li>\n </ul>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.pagination-box{margin-bottom:12px}.pagination-box ul{display:flex;align-items:center;padding:0;margin:0}.pagination-box ul li{list-style:none;display:flex}.pagination-box ul li+li{margin-left:4px}.pagination-box ul li:first-child{margin-right:4px;height:24px}.pagination-box ul li:first-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li:last-child{margin-left:8px!important;height:24px}.pagination-box ul li:last-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li button{border:1px solid #dbdbdb;background:#fff;border-radius:2px;color:#161b2f;font-weight:400;height:24px;min-width:24px;padding:0 5px;display:inline-flex;justify-content:center;align-items:center;outline:none;cursor:pointer;font-size:11px;margin:0}.pagination-box ul li button.active,.pagination-box ul li button:hover{border-color:#1e5dd3;color:#1e5dd3}.pagination-box ul li button.disabled{filter:grayscale(100%);pointer-events:none;background:#f1f1f1;color:#bcbcbc!important}\n"] }]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i1.PaginationService }]; }, propDecorators: { totalPages: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], limit: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], totalList: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], paginationFilter: [{
|
|
128
|
+
type: Output
|
|
129
|
+
}] } });
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVExRjs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFVVjtJQVRwQixLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsVUFBVSxDQUFVO0lBQ3BCLGVBQWUsR0FBVSxFQUFFLENBQUM7SUFDNUIsV0FBVyxDQUFVO0lBQ1osVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVoRCxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUN4RCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7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QkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2luYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvc2VydmljZXMvcGFnaW5hdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50Lmxlc3MnXVxufSlcbi8qKlxuICogQWRkcyBwbGFjZSBob2xkZXIgZm9yIFBhZ2luYXRpb24gb24gdGhlIGxpc3RzXG4gKi9cbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBzdGFydCA9IDE7XG4gIHRvdGFsQ291bnQhOiBudW1iZXI7XG4gIHBhZ2luYXRpb25BcnJheTogYW55W10gPSBbXTtcbiAgY3VycmVudFBhZ2UhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHRvdGFsUGFnZXMgPSAxO1xuICBASW5wdXQoKSBsaW1pdCA9IDE7XG4gIEBJbnB1dCgpIHRvdGFsTGlzdCA9IDE7XG4gIEBPdXRwdXQoKSBwYWdpbmF0aW9uRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlKSB7XG4gIH1cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IE51bWJlcih0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlKTtcbiAgICB0aGlzLnN0YXJ0ID0gTnVtYmVyKHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UpO1xuICAgIHRoaXMucmVidWlsZFBhZ2luYXRpb24odGhpcy5jdXJyZW50UGFnZSwgdGhpcy50b3RhbFBhZ2VzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBOdW1iZXIodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSk7XG4gICAgdGhpcy5zdGFydCA9IE51bWJlcih0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlKTtcbiAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuY3VycmVudFBhZ2UsIHRoaXMudG90YWxQYWdlcyk7XG4gICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50VmFsdWVzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgJiYgKHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UgIT09IHRoaXMuY3VycmVudFBhZ2UpKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyogSW4gdGhpcyBmdW5jdGlvbiB3ZSB3aWxsIHJlY3JlYXRlIHRoZSBwYWdpbmF0aW9uIHN0cnVjdHVyZSBhcyBwZXIgY3VycmVudCBwYWdlIGFuZFxuICAgdG90YWwgbnVtYmVyIG9mIHBhZ2VzICovXG5cbiAgcmVidWlsZFBhZ2luYXRpb24oY3VycmVudFBhZ2U6IG51bWJlciwgdG90YWxDb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkgPSBbXTtcbiAgICB0aGlzLnRvdGFsQ291bnQgPSB0b3RhbENvdW50O1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBjdXJyZW50UGFnZTtcbiAgICBpZiAodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSAhPT0gdGhpcy5jdXJyZW50UGFnZSkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgICB0aGlzLnBhZ2luYXRpb25GaWx0ZXIuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgb25seSA2IHBhZ2VzIG9yIGxlc3MgaW4gdG90YWwsIGp1c3QgZGlzcGxheSBhbGwgcGFnZXMgd2l0aG91dCBcIi4uLlwiXG4gICAgaWYgKHRvdGFsQ291bnQgPD0gNikge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWxDb3VudDsgaSsrKSB7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goaSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEVMU0UgZGlzcGxheSB3aXRoIC4uLlxuICAgIGVsc2Uge1xuXG4gICAgICAvLyBBbHdheXMgcHJpbnQgZmlyc3QgcGFnZSBidXR0b25cbiAgICAgIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goMSk7XG5cbiAgICAgIC8vIFByaW50IFwiLi4uXCIgaWYgY3VycmVudFBhZ2UgaXMgPiAzXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPiAzKSB7XG4gICAgICAgIC8vIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goMik7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goJy4uLicpO1xuXG4gICAgICB9XG4gICAgICAvLyBzcGVjaWFsIGNhc2Ugd2hlcmUgbGFzdCBwYWdlIGlzIHNlbGVjdGVkLi4uXG4gICAgICAvLyBXaXRob3V0IHRoaXMgc3BlY2lhbCBjYXNlLCBvbmx5IDIgYnV0dG9ucyB3b3VsZCBiZSBzaG93biBhZnRlciAuLi4gaWYgeW91IHdlcmUgb24gbGFzdCBwYWdlXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPT09IHRvdGFsQ291bnQpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaChjdXJyZW50UGFnZSAtIDIpO1xuICAgICAgfVxuXG4gICAgICAvLyBQcmludCBwcmV2aW91cyBudW1iZXIgYnV0dG9uIGlmIGN1cnJlbnRQYWdlID4gMlxuICAgICAgaWYgKGN1cnJlbnRQYWdlID4gMikge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlIC0gMSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFByaW50IGN1cnJlbnQgcGFnZSBudW1iZXIgYnV0dG9uIGFzIGxvbmcgYXMgaXQgbm90IHRoZSBmaXJzdCBvciBsYXN0IHBhZ2VcbiAgICAgIGlmIChjdXJyZW50UGFnZSAhPT0gMSAmJiBjdXJyZW50UGFnZSAhPT0gdG90YWxDb3VudCkge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlKTtcblxuICAgICAgfVxuXG4gICAgICAvLyBwcmludCBuZXh0IHBhZ2UgbnVtYmVyIGJ1dHRvbiBpZiBjdXJyZW50UGFnZSA8IGxhc3RQYWdlIC0gMVxuICAgICAgaWYgKGN1cnJlbnRQYWdlIDwgdG90YWxDb3VudCAtIDEpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaChjdXJyZW50UGFnZSArIDEpO1xuXG4gICAgICB9XG5cbiAgICAgIC8vIHNwZWNpYWwgY2FzZSB3aGVyZSBmaXJzdCBwYWdlIGlzIHNlbGVjdGVkLi4uXG4gICAgICAvLyBXaXRob3V0IHRoaXMgc3BlY2lhbCBjYXNlLCBvbmx5IDIgYnV0dG9ucyB3b3VsZCBiZSBzaG93biBiZWZvcmUgLi4uIGlmIHlvdSB3ZXJlIG9uIGZpcnN0IHBhZ2VcbiAgICAgIGlmIChjdXJyZW50UGFnZSA9PT0gMSkge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlICsgMik7XG5cbiAgICAgIH1cblxuICAgICAgLy8gcHJpbnQgXCIuLi5cIiBpZiBjdXJyZW50UGFnZSBpcyA8IGxhc3RQYWdlIC0yXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPCB0b3RhbENvdW50IC0gMikge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKCcuLi4nKTtcblxuICAgICAgICAvLyBIVE1MICs9IFwiLi4uXCI7XG4gICAgICB9XG5cbiAgICAgIC8vIEFsd2F5cyBwcmludCBsYXN0IHBhZ2UgYnV0dG9uIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiAxIHBhZ2VcbiAgICAgIGlmICh0b3RhbENvdW50ID4gMSkge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKHRvdGFsQ291bnQpO1xuXG4gICAgICB9XG4gICAgfVxuXG4gIH1cbi8qIEluIHRoaXMgZnVuY3Rpb24gd2Ugd2lsbCBzZXQgY3VycmVudCBwYWdlIGFjY29yZGluZyB0byB0aGUgYWN0aW9uIHBlcmZvcm1lZCBvbiBicm93c2VyXG4gICBleDogcHJldiBuZXh0IGJ1dHRvbnMgY2xpY2tzIG9yIHNlbGVjdGluZyBhIHBhcnRpY3VsYXIgcGFnZSAqL1xuXG4gIGNoYW5nZVBhZ2UocHJldjogc3RyaW5nLCBwYWdlOiBudW1iZXIsIG5leHQ6IHN0cmluZykge1xuICAgIGlmIChwcmV2KSB7XG4gICAgICBpZiAodGhpcy5zdGFydCA+IDEpIHtcbiAgICAgICAgdGhpcy5zdGFydC0tO1xuICAgICAgICAvLyBXZSBoYXZlIGNoYW5nZWQgdGhlIHN0YXJ0IHBhZ2UsIHRvdGFsIHJlYnVpbGQgdGhlIHBhZ2luYXRpb25cbiAgICAgICAgdGhpcy5yZWJ1aWxkUGFnaW5hdGlvbih0aGlzLnN0YXJ0LCB0aGlzLnRvdGFsQ291bnQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobmV4dCkge1xuICAgICAgaWYgKHRoaXMuc3RhcnQgPCB0aGlzLnRvdGFsQ291bnQpIHtcbiAgICAgICAgdGhpcy5zdGFydCsrO1xuICAgICAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuc3RhcnQsIHRoaXMudG90YWxDb3VudCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwYWdlKSB7XG4gICAgICB0aGlzLnN0YXJ0ID0gcGFnZTtcbiAgICAgIHRoaXMucmVidWlsZFBhZ2luYXRpb24odGhpcy5zdGFydCwgdGhpcy50b3RhbENvdW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWJveFwiPlxuICAgIDx1bD5cbiAgICAgICAgPGxpPjxidXR0b24gW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlPT0xXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UoJ3ByZXYnLDAsJycpXCI+PGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiYjeGU5NmI7PC9pPjwvYnV0dG9uPjwvbGk+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdpbmF0aW9uQXJyYXlcIj5cbiAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInBhZ2U9PScuLi4nXCIgW2NsYXNzLmRpc2FibGVdPVwicGFnZT09Jy4uLidcIiBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRQYWdlPT1wYWdlXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UoJycscGFnZSwnJylcIj5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInBhZ2U9PScuLi4nXCIgY2xhc3M9XCJpY29uc1wiPiYjeGU5MTE7PC9pPnt7cGFnZSE9Jy4uLic/cGFnZSA6ICcnfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGk+PGJ1dHRvbiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2U9PXRvdGFsQ291bnRcIiAoY2xpY2spPVwiY2hhbmdlUGFnZSgnJywwLCduZXh0JylcIj48aSBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+JiN4ZTk3MDs8L2k+PC9idXR0b24+PC9saT5cbiAgICA8L3VsPlxuPC9kaXY+Il19
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { PaginationComponent } from './pagination.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class PaginationModule {
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule], exports: [PaginationComponent] });
|
|
8
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, imports: [CommonModule] });
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [PaginationComponent],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
-
exports: [PaginationComponent],
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { PaginationComponent } from './pagination.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class PaginationModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule], exports: [PaginationComponent] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, imports: [CommonModule] });
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [PaginationComponent],
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
exports: [PaginationComponent],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdELE1BQU0sT0FBTyxnQkFBZ0I7d0dBQWhCLGdCQUFnQjt5R0FBaEIsZ0JBQWdCLGlCQUpaLG1CQUFtQixhQUN4QixZQUFZLGFBQ1osbUJBQW1CO3lHQUVsQixnQkFBZ0IsWUFIakIsWUFBWTs7NEZBR1gsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQYWdpbmF0aW9uQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtQYWdpbmF0aW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1vZHVsZSB7fSJdfQ==
|