vc-create-dashboard 3.0.4 → 3.0.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.
Files changed (154) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/configurations.mjs +7 -7
  3. package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -2
  4. package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -210
  5. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +551 -549
  6. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -2
  7. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -47
  8. package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +34 -10
  9. package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -2
  10. package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1121 -1121
  11. package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +132 -132
  12. package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -24
  13. package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -36
  14. package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -153
  15. package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -309
  16. package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -2
  17. package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -30
  18. package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -25
  19. package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +19 -19
  20. package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +149 -145
  21. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -2
  22. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -195
  23. package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +31 -31
  24. package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +230 -227
  25. package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +160 -160
  26. package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -28
  27. package/esm2022/lib/create-dashboard-container/services/urlConfig.service.mjs +29 -29
  28. package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -421
  29. package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -2
  30. package/esm2022/lib/create-dashboard.service.mjs +14 -14
  31. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -52
  32. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -2
  33. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -32
  34. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -7
  35. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -17
  36. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -11
  37. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +99 -99
  38. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -20
  39. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -56
  40. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -17
  41. package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -57
  42. package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -32
  43. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -30
  44. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -29
  45. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -34
  46. package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -14
  47. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -119
  48. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -39
  49. package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -55
  50. package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -19
  51. package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -24
  52. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -47
  53. package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -18
  54. package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -130
  55. package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -18
  56. package/esm2022/lib/ui-kit/popover/popover.component.mjs +142 -142
  57. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -93
  58. package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -21
  59. package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -23
  60. package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -41
  61. package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -107
  62. package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -21
  63. package/esm2022/lib/ui-kit/select/select.module.mjs +21 -21
  64. package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -16
  65. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -52
  66. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -18
  67. package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -46
  68. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -18
  69. package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -23
  70. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -168
  71. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -18
  72. package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -24
  73. package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -24
  74. package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -19
  75. package/esm2022/public-api.mjs +10 -10
  76. package/esm2022/vc-create-dashboard.mjs +4 -4
  77. package/fesm2022/vc-create-dashboard.mjs +5367 -5308
  78. package/fesm2022/vc-create-dashboard.mjs.map +1 -1
  79. package/index.d.ts +5 -5
  80. package/lib/configurations.d.ts +4 -4
  81. package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -18
  82. package/lib/create-dashboard-container/categories/categories.component.d.ts +64 -31
  83. package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +121 -88
  84. package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -9
  85. package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -14
  86. package/lib/create-dashboard-container/constants/assets.constant.d.ts +33 -9
  87. package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -18
  88. package/lib/create-dashboard-container/create-dashboard.component.d.ts +178 -178
  89. package/lib/create-dashboard-container/create-dashboard.module.d.ts +40 -40
  90. package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -8
  91. package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -12
  92. package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -48
  93. package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -39
  94. package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -8
  95. package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -7
  96. package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -7
  97. package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -7
  98. package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +60 -27
  99. package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -18
  100. package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +64 -31
  101. package/lib/create-dashboard-container/services/auth.service.d.ts +11 -11
  102. package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +38 -38
  103. package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +45 -45
  104. package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -12
  105. package/lib/create-dashboard-container/services/urlConfig.service.d.ts +10 -10
  106. package/lib/create-dashboard-container/user-list/user-list.component.d.ts +121 -88
  107. package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -13
  108. package/lib/create-dashboard.service.d.ts +6 -6
  109. package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -17
  110. package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -11
  111. package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -10
  112. package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
  113. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
  114. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
  115. package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
  116. package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
  117. package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
  118. package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
  119. package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -20
  120. package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -10
  121. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -10
  122. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -13
  123. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -15
  124. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -8
  125. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -36
  126. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -15
  127. package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -17
  128. package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -7
  129. package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -7
  130. package/lib/ui-kit/no-data/no-data.component.d.ts +19 -19
  131. package/lib/ui-kit/no-data/no-data.module.d.ts +8 -8
  132. package/lib/ui-kit/pagination/pagination.component.d.ts +21 -21
  133. package/lib/ui-kit/pagination/pagination.module.d.ts +8 -8
  134. package/lib/ui-kit/popover/popover.component.d.ts +28 -28
  135. package/lib/ui-kit/popover/popover.directive.d.ts +17 -17
  136. package/lib/ui-kit/popover/popover.module.d.ts +9 -9
  137. package/lib/ui-kit/popover/popover.service.d.ts +13 -13
  138. package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -16
  139. package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -32
  140. package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -10
  141. package/lib/ui-kit/select/select.module.d.ts +11 -11
  142. package/lib/ui-kit/services/cs-select.service.d.ts +7 -7
  143. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -17
  144. package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -8
  145. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -17
  146. package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
  147. package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -9
  148. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -28
  149. package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -8
  150. package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -11
  151. package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -11
  152. package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -9
  153. package/package.json +1 -1
  154. 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\">\r\n <ul>\r\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\">&#xe96b;</i></button></li>\r\n <li *ngFor=\"let page of paginationArray\">\r\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\r\n <i *ngIf=\"page=='...'\" class=\"icons\">&#xe911;</i>{{page!='...'?page : ''}}\r\n </button>\r\n </li>\r\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\">&#xe970;</i></button></li>\r\n </ul>\r\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\">\r\n <ul>\r\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\">&#xe96b;</i></button></li>\r\n <li *ngFor=\"let page of paginationArray\">\r\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\r\n <i *ngIf=\"page=='...'\" class=\"icons\">&#xe911;</i>{{page!='...'?page : ''}}\r\n </button>\r\n </li>\r\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\">&#xe970;</i></button></li>\r\n </ul>\r\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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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\">&#xe96b;</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\">&#xe911;</i>{{page!='...'?page : ''}}\n </button>\n </li>\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\">&#xe970;</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\">&#xe96b;</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\">&#xe911;</i>{{page!='...'?page : ''}}\n </button>\n </li>\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\">&#xe970;</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdELE1BQU0sT0FBTyxnQkFBZ0I7d0dBQWhCLGdCQUFnQjt5R0FBaEIsZ0JBQWdCLGlCQUpaLG1CQUFtQixhQUN4QixZQUFZLGFBQ1osbUJBQW1CO3lHQUVsQixnQkFBZ0IsWUFIakIsWUFBWTs7NEZBR1gsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1BhZ2luYXRpb25Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1vZHVsZSB7fSJdfQ==
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==