ng-tailwind 5.2.1 → 5.2.2

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 (212) hide show
  1. package/README.md +24 -24
  2. package/animations/ngt-angular-animations.d.ts +5 -5
  3. package/base/ngt-base-ng-model.d.ts +32 -32
  4. package/components/ngt-action/ngt-action.component.d.ts +30 -30
  5. package/components/ngt-action/ngt-action.module.d.ts +10 -10
  6. package/components/ngt-button/ngt-button.component.d.ts +35 -35
  7. package/components/ngt-button/ngt-button.module.d.ts +10 -10
  8. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +53 -53
  9. package/components/ngt-checkbox/ngt-checkbox.module.d.ts +10 -10
  10. package/components/ngt-content/ngt-content.component.d.ts +12 -12
  11. package/components/ngt-content/ngt-content.module.d.ts +8 -8
  12. package/components/ngt-context-menu/ngt-context-menu.component.d.ts +19 -19
  13. package/components/ngt-context-menu/ngt-context-menu.directive.d.ts +25 -25
  14. package/components/ngt-context-menu/ngt-context-menu.module.d.ts +10 -10
  15. package/components/ngt-datatable/ngt-datatable.component.d.ts +125 -125
  16. package/components/ngt-datatable/ngt-datatable.module.d.ts +25 -25
  17. package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +14 -14
  18. package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +14 -14
  19. package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +29 -29
  20. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +55 -55
  21. package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +32 -32
  22. package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +13 -13
  23. package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +20 -20
  24. package/components/ngt-date/ngt-date.component.d.ts +85 -85
  25. package/components/ngt-date/ngt-date.module.d.ts +13 -13
  26. package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +8 -8
  27. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +53 -53
  28. package/components/ngt-dropdown/ngt-dropdown.module.d.ts +9 -9
  29. package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +14 -14
  30. package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +25 -25
  31. package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +35 -35
  32. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +95 -95
  33. package/components/ngt-dropzone/ngt-dropzone.meta.d.ts +27 -27
  34. package/components/ngt-dropzone/ngt-dropzone.module.d.ts +17 -17
  35. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +35 -35
  36. package/components/ngt-floating-button/ngt-floating-button.module.d.ts +10 -10
  37. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +10 -10
  38. package/components/ngt-form/ngt-form.component.d.ts +60 -60
  39. package/components/ngt-form/ngt-form.module.d.ts +9 -9
  40. package/components/ngt-header-nav/ngt-header-nav.component.d.ts +14 -14
  41. package/components/ngt-header-nav/ngt-header-nav.module.d.ts +8 -8
  42. package/components/ngt-helper/ngt-helper.component.d.ts +25 -25
  43. package/components/ngt-helper/ngt-helper.module.d.ts +10 -10
  44. package/components/ngt-input/ngt-input.component.d.ts +129 -129
  45. package/components/ngt-input/ngt-input.module.d.ts +14 -14
  46. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +17 -17
  47. package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +12 -12
  48. package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +15 -15
  49. package/components/ngt-modal/ngt-modal.component.d.ts +31 -31
  50. package/components/ngt-modal/ngt-modal.module.d.ts +11 -11
  51. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +116 -116
  52. package/components/ngt-multi-select/ngt-multi-select.module.d.ts +15 -15
  53. package/components/ngt-pagination/ngt-pagination.component.d.ts +43 -43
  54. package/components/ngt-pagination/ngt-pagination.module.d.ts +12 -12
  55. package/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.d.ts +21 -21
  56. package/components/ngt-popover/ngt-popover.component.d.ts +31 -31
  57. package/components/ngt-popover/ngt-popover.directive.d.ts +31 -31
  58. package/components/ngt-popover/ngt-popover.module.d.ts +11 -11
  59. package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +12 -12
  60. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +12 -12
  61. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +18 -18
  62. package/components/ngt-portlet/ngt-portlet.component.d.ts +20 -20
  63. package/components/ngt-portlet/ngt-portlet.module.d.ts +13 -13
  64. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +9 -9
  65. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +45 -45
  66. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +11 -11
  67. package/components/ngt-section/ngt-section.component.d.ts +38 -38
  68. package/components/ngt-section/ngt-section.module.d.ts +11 -11
  69. package/components/ngt-select/ngt-select.component.d.ts +154 -154
  70. package/components/ngt-select/ngt-select.directive.d.ts +20 -20
  71. package/components/ngt-select/ngt-select.module.d.ts +16 -16
  72. package/components/ngt-shining/ngt-shining.component.d.ts +19 -19
  73. package/components/ngt-shining/ngt-shining.module.d.ts +8 -8
  74. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +32 -32
  75. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +8 -8
  76. package/components/ngt-slider/ngt-slider.component.d.ts +36 -36
  77. package/components/ngt-slider/ngt-slider.module.d.ts +9 -9
  78. package/components/ngt-svg/ngt-svg.component.d.ts +13 -13
  79. package/components/ngt-svg/ngt-svg.module.d.ts +10 -10
  80. package/components/ngt-tag/ngt-tag.component.d.ts +13 -13
  81. package/components/ngt-tag/ngt-tag.module.d.ts +9 -9
  82. package/components/ngt-textarea/ngt-textarea.component.d.ts +49 -49
  83. package/components/ngt-textarea/ngt-textarea.module.d.ts +13 -13
  84. package/components/ngt-validation/ngt-validation.component.d.ts +13 -13
  85. package/components/ngt-validation/ngt-validation.module.d.ts +8 -8
  86. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +68 -68
  87. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +8 -8
  88. package/enums/size.enum.d.ts +8 -8
  89. package/esm2020/animations/ngt-angular-animations.mjs +34 -34
  90. package/esm2020/base/ngt-base-ng-model.mjs +90 -90
  91. package/esm2020/components/ngt-action/ngt-action.component.mjs +96 -96
  92. package/esm2020/components/ngt-action/ngt-action.module.mjs +28 -28
  93. package/esm2020/components/ngt-button/ngt-button.component.mjs +142 -142
  94. package/esm2020/components/ngt-button/ngt-button.module.mjs +28 -28
  95. package/esm2020/components/ngt-checkbox/ngt-checkbox.component.mjs +192 -192
  96. package/esm2020/components/ngt-checkbox/ngt-checkbox.module.mjs +28 -28
  97. package/esm2020/components/ngt-content/ngt-content.component.mjs +32 -32
  98. package/esm2020/components/ngt-content/ngt-content.module.mjs +20 -20
  99. package/esm2020/components/ngt-context-menu/ngt-context-menu.component.mjs +25 -25
  100. package/esm2020/components/ngt-context-menu/ngt-context-menu.directive.mjs +89 -89
  101. package/esm2020/components/ngt-context-menu/ngt-context-menu.module.mjs +33 -33
  102. package/esm2020/components/ngt-datatable/ngt-datatable.component.mjs +470 -470
  103. package/esm2020/components/ngt-datatable/ngt-datatable.module.mjs +99 -99
  104. package/esm2020/components/ngt-datatable/ngt-tbody/ngt-tbody.component.mjs +57 -57
  105. package/esm2020/components/ngt-datatable/ngt-td/ngt-td.component.mjs +62 -62
  106. package/esm2020/components/ngt-datatable/ngt-td-check/ngt-td-check.component.mjs +113 -113
  107. package/esm2020/components/ngt-datatable/ngt-th/ngt-th.component.mjs +228 -228
  108. package/esm2020/components/ngt-datatable/ngt-th-check/ngt-th-check.component.mjs +127 -127
  109. package/esm2020/components/ngt-datatable/ngt-thead/ngt-thead.component.mjs +55 -55
  110. package/esm2020/components/ngt-datatable/ngt-tr/ngt-tr.component.mjs +86 -86
  111. package/esm2020/components/ngt-date/ngt-date.component.mjs +435 -435
  112. package/esm2020/components/ngt-date/ngt-date.module.mjs +40 -40
  113. package/esm2020/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.mjs +19 -19
  114. package/esm2020/components/ngt-dropdown/ngt-dropdown.component.mjs +204 -204
  115. package/esm2020/components/ngt-dropdown/ngt-dropdown.module.mjs +21 -21
  116. package/esm2020/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +54 -54
  117. package/esm2020/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +69 -66
  118. package/esm2020/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.mjs +94 -94
  119. package/esm2020/components/ngt-dropzone/ngt-dropzone.component.mjs +496 -496
  120. package/esm2020/components/ngt-dropzone/ngt-dropzone.meta.mjs +24 -24
  121. package/esm2020/components/ngt-dropzone/ngt-dropzone.module.mjs +55 -55
  122. package/esm2020/components/ngt-floating-button/ngt-floating-button.component.mjs +119 -119
  123. package/esm2020/components/ngt-floating-button/ngt-floating-button.module.mjs +28 -28
  124. package/esm2020/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.mjs +22 -22
  125. package/esm2020/components/ngt-form/ngt-form.component.mjs +207 -207
  126. package/esm2020/components/ngt-form/ngt-form.module.mjs +29 -29
  127. package/esm2020/components/ngt-header-nav/ngt-header-nav.component.mjs +39 -39
  128. package/esm2020/components/ngt-header-nav/ngt-header-nav.module.mjs +20 -20
  129. package/esm2020/components/ngt-helper/ngt-helper.component.mjs +68 -68
  130. package/esm2020/components/ngt-helper/ngt-helper.module.mjs +28 -28
  131. package/esm2020/components/ngt-input/ngt-input.component.mjs +844 -844
  132. package/esm2020/components/ngt-input/ngt-input.module.mjs +47 -47
  133. package/esm2020/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +46 -46
  134. package/esm2020/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.mjs +33 -33
  135. package/esm2020/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.mjs +40 -40
  136. package/esm2020/components/ngt-modal/ngt-modal.component.mjs +122 -122
  137. package/esm2020/components/ngt-modal/ngt-modal.module.mjs +39 -39
  138. package/esm2020/components/ngt-multi-select/ngt-multi-select.component.mjs +503 -503
  139. package/esm2020/components/ngt-multi-select/ngt-multi-select.module.mjs +52 -52
  140. package/esm2020/components/ngt-pagination/ngt-pagination.component.mjs +162 -162
  141. package/esm2020/components/ngt-pagination/ngt-pagination.module.mjs +36 -36
  142. package/esm2020/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.mjs +58 -58
  143. package/esm2020/components/ngt-popover/ngt-popover.component.mjs +85 -85
  144. package/esm2020/components/ngt-popover/ngt-popover.directive.mjs +126 -126
  145. package/esm2020/components/ngt-popover/ngt-popover.module.mjs +36 -36
  146. package/esm2020/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.mjs +34 -34
  147. package/esm2020/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.mjs +35 -35
  148. package/esm2020/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.mjs +57 -57
  149. package/esm2020/components/ngt-portlet/ngt-portlet.component.mjs +74 -74
  150. package/esm2020/components/ngt-portlet/ngt-portlet.module.mjs +47 -47
  151. package/esm2020/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.mjs +19 -19
  152. package/esm2020/components/ngt-radio-button/ngt-radio-button.component.mjs +153 -153
  153. package/esm2020/components/ngt-radio-button/ngt-radio-button.module.mjs +29 -29
  154. package/esm2020/components/ngt-section/ngt-section.component.mjs +151 -151
  155. package/esm2020/components/ngt-section/ngt-section.module.mjs +32 -32
  156. package/esm2020/components/ngt-select/ngt-select.component.mjs +670 -670
  157. package/esm2020/components/ngt-select/ngt-select.directive.mjs +36 -36
  158. package/esm2020/components/ngt-select/ngt-select.module.mjs +65 -65
  159. package/esm2020/components/ngt-shining/ngt-shining.component.mjs +40 -40
  160. package/esm2020/components/ngt-shining/ngt-shining.module.mjs +20 -20
  161. package/esm2020/components/ngt-sidenav/ngt-sidenav.component.mjs +132 -132
  162. package/esm2020/components/ngt-sidenav/ngt-sidenav.module.mjs +20 -20
  163. package/esm2020/components/ngt-slider/ngt-slider.component.mjs +100 -100
  164. package/esm2020/components/ngt-slider/ngt-slider.module.mjs +24 -24
  165. package/esm2020/components/ngt-svg/ngt-svg.component.mjs +53 -53
  166. package/esm2020/components/ngt-svg/ngt-svg.module.mjs +28 -28
  167. package/esm2020/components/ngt-tag/ngt-tag.component.mjs +37 -37
  168. package/esm2020/components/ngt-tag/ngt-tag.module.mjs +24 -24
  169. package/esm2020/components/ngt-textarea/ngt-textarea.component.mjs +238 -238
  170. package/esm2020/components/ngt-textarea/ngt-textarea.module.mjs +43 -43
  171. package/esm2020/components/ngt-validation/ngt-validation.component.mjs +26 -26
  172. package/esm2020/components/ngt-validation/ngt-validation.module.mjs +20 -20
  173. package/esm2020/directives/ngt-stylizable/ngt-stylizable.directive.mjs +290 -290
  174. package/esm2020/directives/ngt-stylizable/ngt-stylizable.module.mjs +20 -20
  175. package/esm2020/enums/size.enum.mjs +11 -11
  176. package/esm2020/helpers/enum/enum.mjs +7 -7
  177. package/esm2020/helpers/form/form.mjs +14 -14
  178. package/esm2020/helpers/input-mask/input-mask.helper.mjs +26 -26
  179. package/esm2020/helpers/promise/promise-helper.mjs +4 -4
  180. package/esm2020/helpers/routing/route.mjs +11 -11
  181. package/esm2020/helpers/uuid.mjs +10 -10
  182. package/esm2020/ng-tailwind.mjs +4 -4
  183. package/esm2020/public-api.mjs +127 -127
  184. package/esm2020/services/http/ngt-attachment-http.service.mjs +3 -3
  185. package/esm2020/services/http/ngt-http-form.service.mjs +3 -3
  186. package/esm2020/services/http/ngt-http-resource.service.mjs +3 -3
  187. package/esm2020/services/http/ngt-http-validation.service.mjs +3 -3
  188. package/esm2020/services/http/ngt-http.service.mjs +3 -3
  189. package/esm2020/services/http/ngt-translate.service.mjs +3 -3
  190. package/esm2020/services/ngt-stylizable/ngt-stylizable.service.mjs +273 -273
  191. package/esm2020/services/validation/ngt-ability-validation.service.mjs +3 -3
  192. package/fesm2015/ng-tailwind.mjs +8656 -8653
  193. package/fesm2015/ng-tailwind.mjs.map +1 -1
  194. package/fesm2020/ng-tailwind.mjs +8481 -8478
  195. package/fesm2020/ng-tailwind.mjs.map +1 -1
  196. package/helpers/enum/enum.d.ts +1 -1
  197. package/helpers/form/form.d.ts +4 -4
  198. package/helpers/input-mask/input-mask.helper.d.ts +20 -20
  199. package/helpers/promise/promise-helper.d.ts +1 -1
  200. package/helpers/routing/route.d.ts +2 -2
  201. package/helpers/uuid.d.ts +1 -1
  202. package/index.d.ts +5 -5
  203. package/package.json +1 -1
  204. package/public-api.d.ts +87 -87
  205. package/services/http/ngt-attachment-http.service.d.ts +9 -9
  206. package/services/http/ngt-http-form.service.d.ts +5 -5
  207. package/services/http/ngt-http-resource.service.d.ts +12 -12
  208. package/services/http/ngt-http-validation.service.d.ts +12 -12
  209. package/services/http/ngt-http.service.d.ts +27 -27
  210. package/services/http/ngt-translate.service.d.ts +33 -33
  211. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -96
  212. package/services/validation/ngt-ability-validation.service.d.ts +5 -5
@@ -1,52 +1,52 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';
5
- import { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';
6
- import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
7
- import { NgtInputModule } from '../ngt-input/ngt-input.module';
8
- import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
9
- import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
10
- import { NgtMultiSelectComponent } from './ngt-multi-select.component';
11
- import * as i0 from "@angular/core";
12
- export class NgtMultiSelectModule {
13
- }
14
- NgtMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- NgtMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, declarations: [NgtMultiSelectComponent], imports: [CommonModule,
16
- FormsModule,
17
- NgtValidationModule,
18
- NgtShiningModule,
19
- NgtHelperModule,
20
- NgtInputModule,
21
- NgtCheckboxModule,
22
- NgtStylizableModule], exports: [NgtMultiSelectComponent] });
23
- NgtMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, imports: [CommonModule,
24
- FormsModule,
25
- NgtValidationModule,
26
- NgtShiningModule,
27
- NgtHelperModule,
28
- NgtInputModule,
29
- NgtCheckboxModule,
30
- NgtStylizableModule] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, decorators: [{
32
- type: NgModule,
33
- args: [{
34
- declarations: [
35
- NgtMultiSelectComponent
36
- ],
37
- exports: [
38
- NgtMultiSelectComponent
39
- ],
40
- imports: [
41
- CommonModule,
42
- FormsModule,
43
- NgtValidationModule,
44
- NgtShiningModule,
45
- NgtHelperModule,
46
- NgtInputModule,
47
- NgtCheckboxModule,
48
- NgtStylizableModule
49
- ]
50
- }]
51
- }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW11bHRpLXNlbGVjdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtbXVsdGktc2VsZWN0L25ndC1tdWx0aS1zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQW9CdkUsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWhCekIsdUJBQXVCLGFBTXZCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixtQkFBbUIsYUFWbkIsdUJBQXVCO2tIQWFsQixvQkFBb0IsWUFWekIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLG1CQUFtQjsyRkFHZCxvQkFBb0I7a0JBbEJoQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVix1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5tb2R1bGUnO1xuaW1wb3J0IHsgTmd0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICcuLi9uZ3QtY2hlY2tib3gvbmd0LWNoZWNrYm94Lm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3RIZWxwZXJNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaGVscGVyL25ndC1oZWxwZXIubW9kdWxlJztcbmltcG9ydCB7IE5ndElucHV0TW9kdWxlIH0gZnJvbSAnLi4vbmd0LWlucHV0L25ndC1pbnB1dC5tb2R1bGUnO1xuaW1wb3J0IHsgTmd0U2hpbmluZ01vZHVsZSB9IGZyb20gJy4uL25ndC1zaGluaW5nL25ndC1zaGluaW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3RWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vbmd0LXZhbGlkYXRpb24vbmd0LXZhbGlkYXRpb24ubW9kdWxlJztcbmltcG9ydCB7IE5ndE11bHRpU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIE5ndE11bHRpU2VsZWN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5ndE11bHRpU2VsZWN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5ndFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgICAgIE5ndFNoaW5pbmdNb2R1bGUsXG4gICAgICAgIE5ndEhlbHBlck1vZHVsZSxcbiAgICAgICAgTmd0SW5wdXRNb2R1bGUsXG4gICAgICAgIE5ndENoZWNrYm94TW9kdWxlLFxuICAgICAgICBOZ3RTdHlsaXphYmxlTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3RNdWx0aVNlbGVjdE1vZHVsZSB7IH1cbiJdfQ==
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';
5
+ import { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';
6
+ import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
7
+ import { NgtInputModule } from '../ngt-input/ngt-input.module';
8
+ import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
9
+ import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
10
+ import { NgtMultiSelectComponent } from './ngt-multi-select.component';
11
+ import * as i0 from "@angular/core";
12
+ export class NgtMultiSelectModule {
13
+ }
14
+ NgtMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ NgtMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, declarations: [NgtMultiSelectComponent], imports: [CommonModule,
16
+ FormsModule,
17
+ NgtValidationModule,
18
+ NgtShiningModule,
19
+ NgtHelperModule,
20
+ NgtInputModule,
21
+ NgtCheckboxModule,
22
+ NgtStylizableModule], exports: [NgtMultiSelectComponent] });
23
+ NgtMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, imports: [CommonModule,
24
+ FormsModule,
25
+ NgtValidationModule,
26
+ NgtShiningModule,
27
+ NgtHelperModule,
28
+ NgtInputModule,
29
+ NgtCheckboxModule,
30
+ NgtStylizableModule] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, decorators: [{
32
+ type: NgModule,
33
+ args: [{
34
+ declarations: [
35
+ NgtMultiSelectComponent
36
+ ],
37
+ exports: [
38
+ NgtMultiSelectComponent
39
+ ],
40
+ imports: [
41
+ CommonModule,
42
+ FormsModule,
43
+ NgtValidationModule,
44
+ NgtShiningModule,
45
+ NgtHelperModule,
46
+ NgtInputModule,
47
+ NgtCheckboxModule,
48
+ NgtStylizableModule
49
+ ]
50
+ }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW11bHRpLXNlbGVjdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtbXVsdGktc2VsZWN0L25ndC1tdWx0aS1zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQW9CdkUsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWhCekIsdUJBQXVCLGFBTXZCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixtQkFBbUIsYUFWbkIsdUJBQXVCO2tIQWFsQixvQkFBb0IsWUFWekIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLG1CQUFtQjsyRkFHZCxvQkFBb0I7a0JBbEJoQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVix1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE5ndFN0eWxpemFibGVNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5ndENoZWNrYm94TW9kdWxlIH0gZnJvbSAnLi4vbmd0LWNoZWNrYm94L25ndC1jaGVja2JveC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ3RIZWxwZXJNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaGVscGVyL25ndC1oZWxwZXIubW9kdWxlJztcclxuaW1wb3J0IHsgTmd0SW5wdXRNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaW5wdXQvbmd0LWlucHV0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IE5ndFNoaW5pbmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc2hpbmluZy9uZ3Qtc2hpbmluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ3RWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vbmd0LXZhbGlkYXRpb24vbmd0LXZhbGlkYXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTmd0TXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL25ndC1tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBOZ3RNdWx0aVNlbGVjdENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBOZ3RNdWx0aVNlbGVjdENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTmd0VmFsaWRhdGlvbk1vZHVsZSxcclxuICAgICAgICBOZ3RTaGluaW5nTW9kdWxlLFxyXG4gICAgICAgIE5ndEhlbHBlck1vZHVsZSxcclxuICAgICAgICBOZ3RJbnB1dE1vZHVsZSxcclxuICAgICAgICBOZ3RDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBOZ3RTdHlsaXphYmxlTW9kdWxlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3RNdWx0aVNlbGVjdE1vZHVsZSB7IH1cclxuIl19
@@ -1,162 +1,162 @@
1
- import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
2
- import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../services/http/ngt-translate.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
8
- import * as i5 from "../ngt-action/ngt-action.component";
9
- import * as i6 from "../ngt-select/ngt-select.component";
10
- import * as i7 from "../ngt-select/ngt-select.directive";
11
- export class NgtPaginationComponent {
12
- constructor(injector, ngtTranslateService) {
13
- this.injector = injector;
14
- this.ngtTranslateService = ngtTranslateService;
15
- this.onPageChange = new EventEmitter();
16
- this.onPerPageChange = new EventEmitter();
17
- this.displayPagination = true;
18
- this.pagination = {
19
- count: null,
20
- page: 1,
21
- pages: null,
22
- total: null,
23
- from: null,
24
- to: null,
25
- per_page: null
26
- };
27
- this.pages = [];
28
- this.registersPerPageOptions = [
29
- 5, 10, 15, 30, 50, 100
30
- ];
31
- this.currentRegistersPerPage = 15;
32
- this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();
33
- this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();
34
- this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();
35
- this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();
36
- this.ngtPaginationPageButtonStyle = new NgtStylizableService();
37
- this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
38
- h: 'h-6',
39
- w: 'w-6',
40
- color: {
41
- text: 'text-white',
42
- bg: 'bg-gray-700'
43
- }
44
- });
45
- this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
46
- h: 'h-6',
47
- w: 'w-6',
48
- color: {
49
- text: 'text-white',
50
- bg: 'bg-gray-300'
51
- }
52
- });
53
- this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {
54
- h: 'h-6',
55
- w: 'w-6',
56
- color: {
57
- text: 'text-white',
58
- bg: 'bg-gray-900'
59
- }
60
- });
61
- this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {
62
- h: 'h-6',
63
- w: 'w-6',
64
- color: {
65
- text: 'text-white',
66
- bg: 'bg-gray-500'
67
- }
68
- });
69
- this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {
70
- h: 'h-6',
71
- w: 'w-6',
72
- color: {
73
- text: 'text-white',
74
- bg: 'bg-gray-300'
75
- }
76
- });
77
- }
78
- onRegistersPerPageChange(value) {
79
- if (value && this.pagination.per_page != value) {
80
- this.pagination.per_page = value;
81
- this.currentRegistersPerPage = value;
82
- this.onPerPageChange.emit(value);
83
- }
84
- }
85
- async goToPage(page) {
86
- this.onPageChange.emit(page);
87
- }
88
- async goToPreviousPage() {
89
- if ((this.pagination.page - 1) > 0) {
90
- return this.goToPage(this.pagination.page - 1);
91
- }
92
- }
93
- async goToNextPage() {
94
- if ((this.pagination.page + 1) <= this.pagination.pages) {
95
- return this.goToPage(this.pagination.page + 1);
96
- }
97
- }
98
- async goToPreviousSection() {
99
- return this.goToPage(this.sectionStartPage - 1);
100
- }
101
- async goToNextSection() {
102
- return this.goToPage(this.sectionEndPage + 1);
103
- }
104
- async goToFirstPage() {
105
- if (this.pagination.page != 1) {
106
- return this.goToPage(1);
107
- }
108
- }
109
- async goToLastPage() {
110
- if (this.pagination.page != this.pagination.pages) {
111
- return this.goToPage(this.pagination.pages);
112
- }
113
- }
114
- getCurrentPage() {
115
- return this.pagination.page;
116
- }
117
- getPagination() {
118
- return this.pagination;
119
- }
120
- proccessPagination(meta) {
121
- this.pages = [];
122
- this.pagination = meta.pagination;
123
- this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;
124
- this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);
125
- const totalPages = this.pagination.pages;
126
- for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {
127
- this.pages.push(i);
128
- }
129
- this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);
130
- this.displayPagination = true;
131
- }
132
- resetPagination() {
133
- this.pagination = {
134
- count: null,
135
- page: 1,
136
- pages: null,
137
- total: null,
138
- from: null,
139
- to: null,
140
- per_page: null
141
- };
142
- }
143
- bindDisplayedButtonSections(sectionStartPage, sectionEndPage, totalPages) {
144
- this.displayPreviousSectionButton = sectionStartPage > 1;
145
- this.displayNextSectionButton = sectionEndPage < totalPages;
146
- }
147
- }
148
- NgtPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, deps: [{ token: i0.Injector }, { token: i1.NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
149
- NgtPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: { pagesInterval: "pagesInterval" }, outputs: { onPageChange: "onPageChange", onPerPageChange: "onPerPageChange" }, ngImport: i0, template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"text-xs ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>\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"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }, { kind: "component", type: i5.NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "component", type: i6.NgtSelectComponent, selector: "ngt-select", inputs: ["label", "labelIcon", "labelIconColor", "helpTitle", "helpText", "helpTextColor", "shining", "loading", "loadingText", "notFoundText", "dropdownPosition", "typeToSearchText", "clearAllTooltip", "placeholder", "createText", "labelForId", "dropdownPanelMinHeight", "helperReverseYPosition", "helperAutoXReverse", "name", "autoLoad", "allowCreate", "allowOriginalItemsUnselect", "isDisabled", "isReadonly", "remoteResource", "hideSelected", "bindLabel", "bindValue", "items", "inputAttrs", "closeOnSelect", "clearable", "groupBy", "maxSelectedItems", "multiple", "searchable", "clearSearchOnAdd", "virtualScroll", "tabIndex", "typeahead", "guessCompareWith", "autoSelectUniqueOption", "groupValue", "trackBy", "sortSelectedItemsFn", "isAllowedToRemoveFn", "isRequired", "compareWith"], outputs: ["onLoadRemoteResource", "onSelectedItemRemove", "onClear", "onClose"] }, { kind: "directive", type: i7.NgtSelectOptionTmp, selector: "[ngt-select-option]" }] });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, decorators: [{
151
- type: Component,
152
- args: [{ selector: 'ngt-pagination', template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"text-xs ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>\n" }]
153
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtTranslateService, decorators: [{
154
- type: Optional
155
- }] }]; }, propDecorators: { pagesInterval: [{
156
- type: Input
157
- }], onPageChange: [{
158
- type: Output
159
- }], onPerPageChange: [{
160
- type: Output
161
- }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXBhZ2luYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7OztBQU01RixNQUFNLE9BQU8sc0JBQXNCO0lBcUMvQixZQUNZLFFBQWtCLEVBRW5CLG1CQUF3QztRQUZ2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRW5CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFyQ2xDLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWFyRSxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMsZUFBVSxHQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxJQUFJO1lBQ1YsRUFBRSxFQUFFLElBQUk7WUFDUixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBRUssVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLDRCQUF1QixHQUFHO1lBQzdCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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Qyx3QkFBd0IsR0FBRyxjQUFjLEdBQUcsVUFBVSxDQUFDO0lBQ2hFLENBQUM7O21IQW5MUSxzQkFBc0I7dUdBQXRCLHNCQUFzQixpTENWbkMsc2tMQXlHQTsyRkQvRmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGdCQUFnQjs7MEJBMENyQixRQUFROzRDQXRDRyxhQUFhO3NCQUE1QixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmd0SHR0cE1ldGEsIE5ndEh0dHBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9uZ3QtaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1wYWdpbmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5ndFBhZ2luYXRpb25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdlc0ludGVydmFsOiBudW1iZXI7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uUGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblBlclBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIFN0eWxlcyAqL1xuICAgIHB1YmxpYyBuZ3RQYWdpbmF0aW9uQWN0aXZlUGFnZUJ1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgcHVibGljIG5ndFBhZ2luYXRpb25GaXJzdExhc3RCdXR0b25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgcHVibGljIG5ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuXG4gICAgcHVibGljIHNlY3Rpb25TdGFydFBhZ2U6IG51bWJlcjtcbiAgICBwdWJsaWMgc2VjdGlvbkVuZFBhZ2U6IG51bWJlcjtcbiAgICBwdWJsaWMgZGlzcGxheU5leHRTZWN0aW9uQnV0dG9uOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaXNwbGF5UHJldmlvdXNTZWN0aW9uQnV0dG9uOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaXNwbGF5UGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgcGFnaW5hdGlvbjogTmd0SHR0cFBhZ2luYXRpb24gPSB7XG4gICAgICAgIGNvdW50OiBudWxsLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBwYWdlczogbnVsbCxcbiAgICAgICAgdG90YWw6IG51bGwsXG4gICAgICAgIGZyb206IG51bGwsXG4gICAgICAgIHRvOiBudWxsLFxuICAgICAgICBwZXJfcGFnZTogbnVsbFxuICAgIH07XG5cbiAgICBwdWJsaWMgcGFnZXMgPSBbXTtcblxuICAgIHB1YmxpYyByZWdpc3RlcnNQZXJQYWdlT3B0aW9ucyA9IFtcbiAgICAgICAgNSwgMTAsIDE1LCAzMCwgNTAsIDEwMFxuICAgIF07XG5cbiAgICBwdWJsaWMgY3VycmVudFJlZ2lzdGVyc1BlclBhZ2U6IG51bWJlciA9IDE1O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHVibGljIG5ndFRyYW5zbGF0ZVNlcnZpY2U6IE5ndFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzQnV0dG9uU3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b25TdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcblxuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzQnV0dG9uJywge1xuICAgICAgICAgICAgaDogJ2gtNicsXG4gICAgICAgICAgICB3OiAndy02JyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS03MDAnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzQnV0dG9uJywge1xuICAgICAgICAgICAgaDogJ2gtNicsXG4gICAgICAgICAgICB3OiAndy02JyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS0zMDAnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25GaXJzdExhc3RCdXR0b24nLCB7XG4gICAgICAgICAgICBoOiAnaC02JyxcbiAgICAgICAgICAgIHc6ICd3LTYnLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC13aGl0ZScsXG4gICAgICAgICAgICAgICAgYmc6ICdiZy1ncmF5LTkwMCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uQWN0aXZlUGFnZUJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25BY3RpdmVQYWdlQnV0dG9uJywge1xuICAgICAgICAgICAgaDogJ2gtNicsXG4gICAgICAgICAgICB3OiAndy02JyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS01MDAnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvblBhZ2VCdXR0b25TdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvbicsIHtcbiAgICAgICAgICAgIGg6ICdoLTYnLFxuICAgICAgICAgICAgdzogJ3ctNicsXG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWdyYXktMzAwJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZWdpc3RlcnNQZXJQYWdlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMucGFnaW5hdGlvbi5wZXJfcGFnZSAhPSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnBlcl9wYWdlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRSZWdpc3RlcnNQZXJQYWdlID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHRoaXMub25QZXJQYWdlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdvVG9QYWdlKHBhZ2U6IG51bWJlcikge1xuICAgICAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNQYWdlKCkge1xuICAgICAgICBpZiAoKHRoaXMucGFnaW5hdGlvbi5wYWdlIC0gMSkgPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSh0aGlzLnBhZ2luYXRpb24ucGFnZSAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdvVG9OZXh0UGFnZSgpIHtcbiAgICAgICAgaWYgKCh0aGlzLnBhZ2luYXRpb24ucGFnZSArIDEpIDw9IHRoaXMucGFnaW5hdGlvbi5wYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5wYWdpbmF0aW9uLnBhZ2UgKyAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNTZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSh0aGlzLnNlY3Rpb25TdGFydFBhZ2UgLSAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ29Ub05leHRTZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSh0aGlzLnNlY3Rpb25FbmRQYWdlICsgMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdvVG9GaXJzdFBhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnb1RvTGFzdFBhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSB0aGlzLnBhZ2luYXRpb24ucGFnZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKHRoaXMucGFnaW5hdGlvbi5wYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24ucGFnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnaW5hdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvY2Nlc3NQYWdpbmF0aW9uKG1ldGE6IE5ndEh0dHBNZXRhKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbXTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0gbWV0YS5wYWdpbmF0aW9uO1xuXG4gICAgICAgIHRoaXMuc2VjdGlvblN0YXJ0UGFnZSA9IE1hdGguZmxvb3IoKHRoaXMucGFnaW5hdGlvbi5wYWdlIC0gMSkgLyB0aGlzLnBhZ2VzSW50ZXJ2YWwpICogdGhpcy5wYWdlc0ludGVydmFsICsgMTtcbiAgICAgICAgdGhpcy5zZWN0aW9uRW5kUGFnZSA9IHRoaXMuc2VjdGlvblN0YXJ0UGFnZSArICh0aGlzLnBhZ2VzSW50ZXJ2YWwgLSAxKTtcblxuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uLnBhZ2VzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnNlY3Rpb25TdGFydFBhZ2U7IGkgPD0gdGhpcy5zZWN0aW9uRW5kUGFnZSAmJiBpIDw9IHRvdGFsUGFnZXM7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wYWdlcy5wdXNoKGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5iaW5kRGlzcGxheWVkQnV0dG9uU2VjdGlvbnModGhpcy5zZWN0aW9uU3RhcnRQYWdlLCB0aGlzLnNlY3Rpb25FbmRQYWdlLCB0b3RhbFBhZ2VzKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5UGFnaW5hdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0UGFnaW5hdGlvbigpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0ge1xuICAgICAgICAgICAgY291bnQ6IG51bGwsXG4gICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgcGFnZXM6IG51bGwsXG4gICAgICAgICAgICB0b3RhbDogbnVsbCxcbiAgICAgICAgICAgIGZyb206IG51bGwsXG4gICAgICAgICAgICB0bzogbnVsbCxcbiAgICAgICAgICAgIHBlcl9wYWdlOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kRGlzcGxheWVkQnV0dG9uU2VjdGlvbnMoc2VjdGlvblN0YXJ0UGFnZTogbnVtYmVyLCBzZWN0aW9uRW5kUGFnZTogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNTZWN0aW9uQnV0dG9uID0gc2VjdGlvblN0YXJ0UGFnZSA+IDE7XG4gICAgICAgIHRoaXMuZGlzcGxheU5leHRTZWN0aW9uQnV0dG9uID0gc2VjdGlvbkVuZFBhZ2UgPCB0b3RhbFBhZ2VzO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ7eyBkaXNwbGF5UGFnaW5hdGlvbiA/ICdmbGV4JyA6ICdoaWRkZW4nIH19IGl0ZW1zLWNlbnRlciB3LWZ1bGwgaC1mdWxsIHJlbGF0aXZlXCI+XG4gICAgPHVsIGNsYXNzPVwiZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgIDwhLS0gRklSU1QgLS0+XG4gICAgICAgIDxsaSAoY2xpY2spPSdnb1RvRmlyc3RQYWdlKCknIGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcbiAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjQxIDcuNDFMMTcgNmwtNiA2bDYgNmwxLjQxLTEuNDFMMTMuODMgMTJsNC41OC00LjU5bS02IDBMMTEgNmwtNiA2bDYgNmwxLjQxLTEuNDFMNy44MyAxMmw0LjU4LTQuNTl6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8IS0tIFBSRVZJT1VTIC0tPlxuICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1ByZXZpb3VzUGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICAgIDxuZ3QtYWN0aW9uIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS40MSAxNi41OEwxMC44MyAxMmw0LjU4LTQuNTlMMTQgNmwtNiA2bDYgNmwxLjQxLTEuNDJ6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8IS0tIFBSRVZJT1VTIFNFQ1RJT04gLS0+XG4gICAgICAgIDxsaSAqbmdJZj1cImRpc3BsYXlQcmV2aW91c1NlY3Rpb25CdXR0b25cIiAoY2xpY2spPSdnb1RvUHJldmlvdXNTZWN0aW9uKCknIGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNCAxMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj0nbGV0IHBhZ2Ugb2YgcGFnZXMnPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0ncGFnZSA9PSBwYWdpbmF0aW9uLnBhZ2UnPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5ndC1hY3Rpb24gY2xhc3M9XCJ0ZXh0LXhzXCIgW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0ncGFnZSAhPT0gcGFnaW5hdGlvbi5wYWdlJz5cbiAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1BhZ2UocGFnZSknIGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd0LWFjdGlvbiBjbGFzcz1cInRleHQteHNcIiBbbmd0U3R5bGVdPSduZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L25ndC1hY3Rpb24+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTkVYVCBTRUNUSU9OIC0tPlxuICAgICAgICA8bGkgKm5nSWY9XCJkaXNwbGF5TmV4dFNlY3Rpb25CdXR0b25cIiAoY2xpY2spPSdnb1RvTmV4dFNlY3Rpb24oKScgY2xhc3M9XCJtci0yXCI+XG4gICAgICAgICAgICA8bmd0LWFjdGlvbiBbbmd0U3R5bGVdPSduZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDEyYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNHptNiAwYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNHptNiAwYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNHpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxuICAgICAgICA8L2xpPlxuXG4gICAgICAgIDwhLS0gTkVYVCAtLT5cbiAgICAgICAgPGxpIChjbGljayk9J2dvVG9OZXh0UGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICAgIDxuZ3QtYWN0aW9uIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjU5IDE2LjU4TDEzLjE3IDEyTDguNTkgNy40MUwxMCA2bDYgNmwtNiA2bC0xLjQxLTEuNDJ6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8IS0tIExBU1QgLS0+XG4gICAgICAgIDxsaSAoY2xpY2spPSdnb1RvTGFzdFBhZ2UoKScgY2xhc3M9XCJtci0yXCI+XG4gICAgICAgICAgICA8bmd0LWFjdGlvbiBbbmd0U3R5bGVdPSduZ3RQYWdpbmF0aW9uRmlyc3RMYXN0QnV0dG9uU3R5bGUnIFtmb3JjZUVuYWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNS41OSA3LjQxTDcgNmw2IDZsLTYgNmwtMS40MS0xLjQxTDEwLjE3IDEyTDUuNTkgNy40MW02IDBMMTMgNmw2IDZsLTYgNmwtMS40MS0xLjQxTDE2LjE3IDEybC00LjU4LTQuNTl6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgPCEtLSBSRUdJU1RFUlMgUEVSIFBBR0UgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHctYXV0byBhYnNvbHV0ZSByaWdodC0wXCI+XG4gICAgICAgIDxuZ3Qtc2VsZWN0IGNsYXNzPSdibG9jayB3LTIwIGxlZnQtMCcgW3NlYXJjaGFibGVdPSdmYWxzZScgW2NsZWFyYWJsZV09J2ZhbHNlJyBkcm9wZG93blBvc2l0aW9uPSd0b3AnXG4gICAgICAgICAgICBbaXRlbXNdPSdyZWdpc3RlcnNQZXJQYWdlT3B0aW9ucycgbmFtZT0ncmVnaXN0ZXJzUGVyUGFnZVNlbGVjdCcgWyhuZ01vZGVsKV09XCJjdXJyZW50UmVnaXN0ZXJzUGVyUGFnZVwiXG4gICAgICAgICAgICBoPSdoLWF1dG8nIChuZ01vZGVsQ2hhbmdlKT0nb25SZWdpc3RlcnNQZXJQYWdlQ2hhbmdlKCRldmVudCknIG5ndC1zdHlsaXphYmxlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbmd0LXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAge3sgaXRlbSA/IGl0ZW0gOiAnJyB9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3Qtc2VsZWN0PlxuXG4gICAgICAgIDxQIGNsYXNzPVwidGV4dC14cyBtbC0yXCI+XG4gICAgICAgICAgICB7eyBuZ3RUcmFuc2xhdGVTZXJ2aWNlLm5ndFBhZ2luYXRpb24ocGFnaW5hdGlvbi5mcm9tLCBwYWdpbmF0aW9uLnRvLCBwYWdpbmF0aW9uLnRvdGFsKSB9fVxuICAgICAgICA8L1A+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
1
+ import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
2
+ import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/http/ngt-translate.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
8
+ import * as i5 from "../ngt-action/ngt-action.component";
9
+ import * as i6 from "../ngt-select/ngt-select.component";
10
+ import * as i7 from "../ngt-select/ngt-select.directive";
11
+ export class NgtPaginationComponent {
12
+ constructor(injector, ngtTranslateService) {
13
+ this.injector = injector;
14
+ this.ngtTranslateService = ngtTranslateService;
15
+ this.onPageChange = new EventEmitter();
16
+ this.onPerPageChange = new EventEmitter();
17
+ this.displayPagination = true;
18
+ this.pagination = {
19
+ count: null,
20
+ page: 1,
21
+ pages: null,
22
+ total: null,
23
+ from: null,
24
+ to: null,
25
+ per_page: null
26
+ };
27
+ this.pages = [];
28
+ this.registersPerPageOptions = [
29
+ 5, 10, 15, 30, 50, 100
30
+ ];
31
+ this.currentRegistersPerPage = 15;
32
+ this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();
33
+ this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();
34
+ this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();
35
+ this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();
36
+ this.ngtPaginationPageButtonStyle = new NgtStylizableService();
37
+ this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
38
+ h: 'h-6',
39
+ w: 'w-6',
40
+ color: {
41
+ text: 'text-white',
42
+ bg: 'bg-gray-700'
43
+ }
44
+ });
45
+ this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
46
+ h: 'h-6',
47
+ w: 'w-6',
48
+ color: {
49
+ text: 'text-white',
50
+ bg: 'bg-gray-300'
51
+ }
52
+ });
53
+ this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {
54
+ h: 'h-6',
55
+ w: 'w-6',
56
+ color: {
57
+ text: 'text-white',
58
+ bg: 'bg-gray-900'
59
+ }
60
+ });
61
+ this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {
62
+ h: 'h-6',
63
+ w: 'w-6',
64
+ color: {
65
+ text: 'text-white',
66
+ bg: 'bg-gray-500'
67
+ }
68
+ });
69
+ this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {
70
+ h: 'h-6',
71
+ w: 'w-6',
72
+ color: {
73
+ text: 'text-white',
74
+ bg: 'bg-gray-300'
75
+ }
76
+ });
77
+ }
78
+ onRegistersPerPageChange(value) {
79
+ if (value && this.pagination.per_page != value) {
80
+ this.pagination.per_page = value;
81
+ this.currentRegistersPerPage = value;
82
+ this.onPerPageChange.emit(value);
83
+ }
84
+ }
85
+ async goToPage(page) {
86
+ this.onPageChange.emit(page);
87
+ }
88
+ async goToPreviousPage() {
89
+ if ((this.pagination.page - 1) > 0) {
90
+ return this.goToPage(this.pagination.page - 1);
91
+ }
92
+ }
93
+ async goToNextPage() {
94
+ if ((this.pagination.page + 1) <= this.pagination.pages) {
95
+ return this.goToPage(this.pagination.page + 1);
96
+ }
97
+ }
98
+ async goToPreviousSection() {
99
+ return this.goToPage(this.sectionStartPage - 1);
100
+ }
101
+ async goToNextSection() {
102
+ return this.goToPage(this.sectionEndPage + 1);
103
+ }
104
+ async goToFirstPage() {
105
+ if (this.pagination.page != 1) {
106
+ return this.goToPage(1);
107
+ }
108
+ }
109
+ async goToLastPage() {
110
+ if (this.pagination.page != this.pagination.pages) {
111
+ return this.goToPage(this.pagination.pages);
112
+ }
113
+ }
114
+ getCurrentPage() {
115
+ return this.pagination.page;
116
+ }
117
+ getPagination() {
118
+ return this.pagination;
119
+ }
120
+ proccessPagination(meta) {
121
+ this.pages = [];
122
+ this.pagination = meta.pagination;
123
+ this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;
124
+ this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);
125
+ const totalPages = this.pagination.pages;
126
+ for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {
127
+ this.pages.push(i);
128
+ }
129
+ this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);
130
+ this.displayPagination = true;
131
+ }
132
+ resetPagination() {
133
+ this.pagination = {
134
+ count: null,
135
+ page: 1,
136
+ pages: null,
137
+ total: null,
138
+ from: null,
139
+ to: null,
140
+ per_page: null
141
+ };
142
+ }
143
+ bindDisplayedButtonSections(sectionStartPage, sectionEndPage, totalPages) {
144
+ this.displayPreviousSectionButton = sectionStartPage > 1;
145
+ this.displayNextSectionButton = sectionEndPage < totalPages;
146
+ }
147
+ }
148
+ NgtPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, deps: [{ token: i0.Injector }, { token: i1.NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
149
+ NgtPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: { pagesInterval: "pagesInterval" }, outputs: { onPageChange: "onPageChange", onPerPageChange: "onPerPageChange" }, ngImport: i0, template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\r\n <ul class=\"flex justify-start\">\r\n <!-- FIRST -->\r\n <li (click)='goToFirstPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS -->\r\n <li (click)='goToPreviousPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS SECTION -->\r\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <ng-container *ngFor='let page of pages'>\r\n <ng-container *ngIf='page == pagination.page'>\r\n <li class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='page !== pagination.page'>\r\n <li (click)='goToPage(page)' class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <!-- NEXT SECTION -->\r\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- NEXT -->\r\n <li (click)='goToNextPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- LAST -->\r\n <li (click)='goToLastPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n </ul>\r\n\r\n <!-- REGISTERS PER PAGE -->\r\n <div class=\"flex items-center w-auto absolute right-0\">\r\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\r\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\r\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\r\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\r\n {{ item ? item : '' }}\r\n </ng-template>\r\n </ngt-select>\r\n\r\n <P class=\"text-xs ml-2\">\r\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\r\n </P>\r\n </div>\r\n</div>\r\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"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }, { kind: "component", type: i5.NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "component", type: i6.NgtSelectComponent, selector: "ngt-select", inputs: ["label", "labelIcon", "labelIconColor", "helpTitle", "helpText", "helpTextColor", "shining", "loading", "loadingText", "notFoundText", "dropdownPosition", "typeToSearchText", "clearAllTooltip", "placeholder", "createText", "labelForId", "dropdownPanelMinHeight", "helperReverseYPosition", "helperAutoXReverse", "name", "autoLoad", "allowCreate", "allowOriginalItemsUnselect", "isDisabled", "isReadonly", "remoteResource", "hideSelected", "bindLabel", "bindValue", "items", "inputAttrs", "closeOnSelect", "clearable", "groupBy", "maxSelectedItems", "multiple", "searchable", "clearSearchOnAdd", "virtualScroll", "tabIndex", "typeahead", "guessCompareWith", "autoSelectUniqueOption", "groupValue", "trackBy", "sortSelectedItemsFn", "isAllowedToRemoveFn", "isRequired", "compareWith"], outputs: ["onLoadRemoteResource", "onSelectedItemRemove", "onClear", "onClose"] }, { kind: "directive", type: i7.NgtSelectOptionTmp, selector: "[ngt-select-option]" }] });
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'ngt-pagination', template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\r\n <ul class=\"flex justify-start\">\r\n <!-- FIRST -->\r\n <li (click)='goToFirstPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS -->\r\n <li (click)='goToPreviousPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS SECTION -->\r\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <ng-container *ngFor='let page of pages'>\r\n <ng-container *ngIf='page == pagination.page'>\r\n <li class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='page !== pagination.page'>\r\n <li (click)='goToPage(page)' class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <!-- NEXT SECTION -->\r\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- NEXT -->\r\n <li (click)='goToNextPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- LAST -->\r\n <li (click)='goToLastPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n </ul>\r\n\r\n <!-- REGISTERS PER PAGE -->\r\n <div class=\"flex items-center w-auto absolute right-0\">\r\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\r\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\r\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\r\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\r\n {{ item ? item : '' }}\r\n </ng-template>\r\n </ngt-select>\r\n\r\n <P class=\"text-xs ml-2\">\r\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\r\n </P>\r\n </div>\r\n</div>\r\n" }]
153
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtTranslateService, decorators: [{
154
+ type: Optional
155
+ }] }]; }, propDecorators: { pagesInterval: [{
156
+ type: Input
157
+ }], onPageChange: [{
158
+ type: Output
159
+ }], onPerPageChange: [{
160
+ type: Output
161
+ }] } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXBhZ2luYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7OztBQU01RixNQUFNLE9BQU8sc0JBQXNCO0lBcUMvQixZQUNZLFFBQWtCLEVBRW5CLG1CQUF3QztRQUZ2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRW5CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFyQ2xDLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWFyRSxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMsZUFBVSxHQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxJQUFJO1lBQ1YsRUFBRSxFQUFFLElBQUk7WUFDUixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBRUssVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLDRCQUF1QixHQUFHO1lBQzdCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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Qyx3QkFBd0IsR0FBRyxjQUFjLEdBQUcsVUFBVSxDQUFDO0lBQ2hFLENBQUM7O21IQW5MUSxzQkFBc0I7dUdBQXRCLHNCQUFzQixpTENWbkMsd3hMQXlHQTsyRkQvRmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGdCQUFnQjs7MEJBMENyQixRQUFROzRDQXRDRyxhQUFhO3NCQUE1QixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE5ndEh0dHBNZXRhLCBOZ3RIdHRwUGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvbmd0LWh0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd0LXBhZ2luYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd0UGFnaW5hdGlvbkNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnZXNJbnRlcnZhbDogbnVtYmVyO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25QYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25QZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAvKiogU3R5bGVzICovXHJcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XHJcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcclxuICAgIHB1YmxpYyBuZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcclxuICAgIHB1YmxpYyBuZ3RQYWdpbmF0aW9uRmlyc3RMYXN0QnV0dG9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xyXG4gICAgcHVibGljIG5ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xyXG5cclxuICAgIHB1YmxpYyBzZWN0aW9uU3RhcnRQYWdlOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgc2VjdGlvbkVuZFBhZ2U6IG51bWJlcjtcclxuICAgIHB1YmxpYyBkaXNwbGF5TmV4dFNlY3Rpb25CdXR0b246IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgZGlzcGxheVByZXZpb3VzU2VjdGlvbkJ1dHRvbjogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBkaXNwbGF5UGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHVibGljIHBhZ2luYXRpb246IE5ndEh0dHBQYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIGNvdW50OiBudWxsLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgcGFnZXM6IG51bGwsXHJcbiAgICAgICAgdG90YWw6IG51bGwsXHJcbiAgICAgICAgZnJvbTogbnVsbCxcclxuICAgICAgICB0bzogbnVsbCxcclxuICAgICAgICBwZXJfcGFnZTogbnVsbFxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgcGFnZXMgPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJzUGVyUGFnZU9wdGlvbnMgPSBbXHJcbiAgICAgICAgNSwgMTAsIDE1LCAzMCwgNTAsIDEwMFxyXG4gICAgXTtcclxuXHJcbiAgICBwdWJsaWMgY3VycmVudFJlZ2lzdGVyc1BlclBhZ2U6IG51bWJlciA9IDE1O1xyXG5cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBAT3B0aW9uYWwoKVxyXG4gICAgICAgIHB1YmxpYyBuZ3RUcmFuc2xhdGVTZXJ2aWNlOiBOZ3RUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xyXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xyXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uQWN0aXZlUGFnZUJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b24nLCB7XHJcbiAgICAgICAgICAgIGg6ICdoLTYnLFxyXG4gICAgICAgICAgICB3OiAndy02JyxcclxuICAgICAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcclxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS03MDAnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b24nLCB7XHJcbiAgICAgICAgICAgIGg6ICdoLTYnLFxyXG4gICAgICAgICAgICB3OiAndy02JyxcclxuICAgICAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcclxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS0zMDAnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uRmlyc3RMYXN0QnV0dG9uU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvbicsIHtcclxuICAgICAgICAgICAgaDogJ2gtNicsXHJcbiAgICAgICAgICAgIHc6ICd3LTYnLFxyXG4gICAgICAgICAgICBjb2xvcjoge1xyXG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxyXG4gICAgICAgICAgICAgICAgYmc6ICdiZy1ncmF5LTkwMCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25BY3RpdmVQYWdlQnV0dG9uU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b24nLCB7XHJcbiAgICAgICAgICAgIGg6ICdoLTYnLFxyXG4gICAgICAgICAgICB3OiAndy02JyxcclxuICAgICAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcclxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS01MDAnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25QYWdlQnV0dG9uJywge1xyXG4gICAgICAgICAgICBoOiAnaC02JyxcclxuICAgICAgICAgICAgdzogJ3ctNicsXHJcbiAgICAgICAgICAgIGNvbG9yOiB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC13aGl0ZScsXHJcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWdyYXktMzAwJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUmVnaXN0ZXJzUGVyUGFnZUNoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMucGFnaW5hdGlvbi5wZXJfcGFnZSAhPSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGVyX3BhZ2UgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50UmVnaXN0ZXJzUGVyUGFnZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5vblBlclBhZ2VDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvUGFnZShwYWdlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNQYWdlKCkge1xyXG4gICAgICAgIGlmICgodGhpcy5wYWdpbmF0aW9uLnBhZ2UgLSAxKSA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5wYWdpbmF0aW9uLnBhZ2UgLSAxKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdvVG9OZXh0UGFnZSgpIHtcclxuICAgICAgICBpZiAoKHRoaXMucGFnaW5hdGlvbi5wYWdlICsgMSkgPD0gdGhpcy5wYWdpbmF0aW9uLnBhZ2VzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKHRoaXMucGFnaW5hdGlvbi5wYWdlICsgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNTZWN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKHRoaXMuc2VjdGlvblN0YXJ0UGFnZSAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvTmV4dFNlY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5zZWN0aW9uRW5kUGFnZSArIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvRmlyc3RQYWdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ29Ub0xhc3RQYWdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSB0aGlzLnBhZ2luYXRpb24ucGFnZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5wYWdpbmF0aW9uLnBhZ2VzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEN1cnJlbnRQYWdlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24ucGFnZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UGFnaW5hdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcm9jY2Vzc1BhZ2luYXRpb24obWV0YTogTmd0SHR0cE1ldGEpIHtcclxuICAgICAgICB0aGlzLnBhZ2VzID0gW107XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0gbWV0YS5wYWdpbmF0aW9uO1xyXG5cclxuICAgICAgICB0aGlzLnNlY3Rpb25TdGFydFBhZ2UgPSBNYXRoLmZsb29yKCh0aGlzLnBhZ2luYXRpb24ucGFnZSAtIDEpIC8gdGhpcy5wYWdlc0ludGVydmFsKSAqIHRoaXMucGFnZXNJbnRlcnZhbCArIDE7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uRW5kUGFnZSA9IHRoaXMuc2VjdGlvblN0YXJ0UGFnZSArICh0aGlzLnBhZ2VzSW50ZXJ2YWwgLSAxKTtcclxuXHJcbiAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IHRoaXMucGFnaW5hdGlvbi5wYWdlcztcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc2VjdGlvblN0YXJ0UGFnZTsgaSA8PSB0aGlzLnNlY3Rpb25FbmRQYWdlICYmIGkgPD0gdG90YWxQYWdlczsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMucHVzaChpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYmluZERpc3BsYXllZEJ1dHRvblNlY3Rpb25zKHRoaXMuc2VjdGlvblN0YXJ0UGFnZSwgdGhpcy5zZWN0aW9uRW5kUGFnZSwgdG90YWxQYWdlcyk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5UGFnaW5hdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0UGFnaW5hdGlvbigpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7XHJcbiAgICAgICAgICAgIGNvdW50OiBudWxsLFxyXG4gICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICBwYWdlczogbnVsbCxcclxuICAgICAgICAgICAgdG90YWw6IG51bGwsXHJcbiAgICAgICAgICAgIGZyb206IG51bGwsXHJcbiAgICAgICAgICAgIHRvOiBudWxsLFxyXG4gICAgICAgICAgICBwZXJfcGFnZTogbnVsbFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBiaW5kRGlzcGxheWVkQnV0dG9uU2VjdGlvbnMoc2VjdGlvblN0YXJ0UGFnZTogbnVtYmVyLCBzZWN0aW9uRW5kUGFnZTogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1NlY3Rpb25CdXR0b24gPSBzZWN0aW9uU3RhcnRQYWdlID4gMTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlOZXh0U2VjdGlvbkJ1dHRvbiA9IHNlY3Rpb25FbmRQYWdlIDwgdG90YWxQYWdlcztcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwie3sgZGlzcGxheVBhZ2luYXRpb24gPyAnZmxleCcgOiAnaGlkZGVuJyB9fSBpdGVtcy1jZW50ZXIgdy1mdWxsIGgtZnVsbCByZWxhdGl2ZVwiPlxyXG4gICAgPHVsIGNsYXNzPVwiZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XHJcbiAgICAgICAgPCEtLSBGSVJTVCAtLT5cclxuICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub0ZpcnN0UGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcclxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjQxIDcuNDFMMTcgNmwtNiA2bDYgNmwxLjQxLTEuNDFMMTMuODMgMTJsNC41OC00LjU5bS02IDBMMTEgNmwtNiA2bDYgNmwxLjQxLTEuNDFMNy44MyAxMmw0LjU4LTQuNTl6XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgPCEtLSBQUkVWSU9VUyAtLT5cclxuICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1ByZXZpb3VzUGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxyXG4gICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuNDEgMTYuNThMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNmw2IDZsMS40MS0xLjQyelwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxyXG4gICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgIDwhLS0gUFJFVklPVVMgU0VDVElPTiAtLT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJkaXNwbGF5UHJldmlvdXNTZWN0aW9uQnV0dG9uXCIgKGNsaWNrKT0nZ29Ub1ByZXZpb3VzU2VjdGlvbigpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNCAxMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9J2xldCBwYWdlIG9mIHBhZ2VzJz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0ncGFnZSA9PSBwYWdpbmF0aW9uLnBhZ2UnPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3QtYWN0aW9uIGNsYXNzPVwidGV4dC14c1wiIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25BY3RpdmVQYWdlQnV0dG9uU3R5bGUnIFtmb3JjZUVuYWJsZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9J3BhZ2UgIT09IHBhZ2luYXRpb24ucGFnZSc+XHJcbiAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1BhZ2UocGFnZSknIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3QtYWN0aW9uIGNsYXNzPVwidGV4dC14c1wiIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGUnIFtmb3JjZUVuYWJsZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gTkVYVCBTRUNUSU9OIC0tPlxyXG4gICAgICAgIDxsaSAqbmdJZj1cImRpc3BsYXlOZXh0U2VjdGlvbkJ1dHRvblwiIChjbGljayk9J2dvVG9OZXh0U2VjdGlvbigpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNCAxMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgPCEtLSBORVhUIC0tPlxyXG4gICAgICAgIDxsaSAoY2xpY2spPSdnb1RvTmV4dFBhZ2UoKScgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgIDxuZ3QtYWN0aW9uIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcclxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNTkgMTYuNThMMTMuMTcgMTJMOC41OSA3LjQxTDEwIDZsNiA2bC02IDZsLTEuNDEtMS40MnpcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cclxuICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICA8IS0tIExBU1QgLS0+XHJcbiAgICAgICAgPGxpIChjbGljayk9J2dvVG9MYXN0UGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcclxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUuNTkgNy40MUw3IDZsNiA2bC02IDZsLTEuNDEtMS40MUwxMC4xNyAxMkw1LjU5IDcuNDFtNiAwTDEzIDZsNiA2bC02IDZsLTEuNDEtMS40MUwxNi4xNyAxMmwtNC41OC00LjU5elwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG5cclxuICAgIDwhLS0gUkVHSVNURVJTIFBFUiBQQUdFIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHctYXV0byBhYnNvbHV0ZSByaWdodC0wXCI+XHJcbiAgICAgICAgPG5ndC1zZWxlY3QgY2xhc3M9J2Jsb2NrIHctMjAgbGVmdC0wJyBbc2VhcmNoYWJsZV09J2ZhbHNlJyBbY2xlYXJhYmxlXT0nZmFsc2UnIGRyb3Bkb3duUG9zaXRpb249J3RvcCdcclxuICAgICAgICAgICAgW2l0ZW1zXT0ncmVnaXN0ZXJzUGVyUGFnZU9wdGlvbnMnIG5hbWU9J3JlZ2lzdGVyc1BlclBhZ2VTZWxlY3QnIFsobmdNb2RlbCldPVwiY3VycmVudFJlZ2lzdGVyc1BlclBhZ2VcIlxyXG4gICAgICAgICAgICBoPSdoLWF1dG8nIChuZ01vZGVsQ2hhbmdlKT0nb25SZWdpc3RlcnNQZXJQYWdlQ2hhbmdlKCRldmVudCknIG5ndC1zdHlsaXphYmxlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBuZ3Qtc2VsZWN0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIHt7IGl0ZW0gPyBpdGVtIDogJycgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25ndC1zZWxlY3Q+XHJcblxyXG4gICAgICAgIDxQIGNsYXNzPVwidGV4dC14cyBtbC0yXCI+XHJcbiAgICAgICAgICAgIHt7IG5ndFRyYW5zbGF0ZVNlcnZpY2Uubmd0UGFnaW5hdGlvbihwYWdpbmF0aW9uLmZyb20sIHBhZ2luYXRpb24udG8sIHBhZ2luYXRpb24udG90YWwpIH19XHJcbiAgICAgICAgPC9QPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=