ngx-bootstrap 9.0.0 → 10.1.0

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 (288) hide show
  1. package/README.md +4 -4
  2. package/accordion/accordion-group.component.d.ts +1 -2
  3. package/accordion/accordion.component.d.ts +1 -1
  4. package/accordion/esm2020/accordion-group.component.mjs +4 -8
  5. package/accordion/esm2020/accordion.component.mjs +3 -3
  6. package/accordion/esm2020/accordion.config.mjs +3 -3
  7. package/accordion/esm2020/accordion.module.mjs +4 -4
  8. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs +13 -17
  9. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs.map +1 -1
  10. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs +13 -17
  11. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs.map +1 -1
  12. package/accordion/package.json +4 -5
  13. package/alert/alert.component.d.ts +1 -1
  14. package/alert/esm2020/alert.component.mjs +4 -4
  15. package/alert/esm2020/alert.config.mjs +3 -3
  16. package/alert/esm2020/alert.module.mjs +4 -4
  17. package/alert/fesm2015/ngx-bootstrap-alert.mjs +10 -10
  18. package/alert/fesm2015/ngx-bootstrap-alert.mjs.map +1 -1
  19. package/alert/fesm2020/ngx-bootstrap-alert.mjs +10 -10
  20. package/alert/fesm2020/ngx-bootstrap-alert.mjs.map +1 -1
  21. package/alert/package.json +4 -4
  22. package/buttons/button-checkbox.directive.d.ts +1 -1
  23. package/buttons/button-radio-group.directive.d.ts +3 -3
  24. package/buttons/button-radio.directive.d.ts +6 -6
  25. package/buttons/esm2020/button-checkbox.directive.mjs +3 -3
  26. package/buttons/esm2020/button-radio-group.directive.mjs +4 -4
  27. package/buttons/esm2020/button-radio.directive.mjs +4 -4
  28. package/buttons/esm2020/buttons.module.mjs +4 -4
  29. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs +13 -13
  30. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs.map +1 -1
  31. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs +13 -13
  32. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs.map +1 -1
  33. package/buttons/package.json +3 -3
  34. package/carousel/carousel.component.d.ts +1 -2
  35. package/carousel/esm2020/carousel.component.mjs +6 -9
  36. package/carousel/esm2020/carousel.config.mjs +3 -3
  37. package/carousel/esm2020/carousel.module.mjs +4 -4
  38. package/carousel/esm2020/slide.component.mjs +3 -3
  39. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs +15 -18
  40. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs.map +1 -1
  41. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs +15 -18
  42. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs.map +1 -1
  43. package/carousel/package.json +4 -4
  44. package/carousel/slide.component.d.ts +1 -1
  45. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +1 -1
  46. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +1 -1
  47. package/chronos/package.json +1 -1
  48. package/collapse/collapse.directive.d.ts +1 -1
  49. package/collapse/esm2020/collapse.directive.mjs +3 -3
  50. package/collapse/esm2020/collapse.module.mjs +4 -4
  51. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs +7 -7
  52. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs.map +1 -1
  53. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs +7 -7
  54. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs.map +1 -1
  55. package/collapse/package.json +4 -4
  56. package/component-loader/component-loader.class.d.ts +1 -1
  57. package/component-loader/component-loader.factory.d.ts +1 -1
  58. package/component-loader/esm2020/component-loader.class.mjs +1 -1
  59. package/component-loader/esm2020/component-loader.factory.mjs +4 -4
  60. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +3 -3
  61. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +1 -1
  62. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs +3 -3
  63. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +1 -1
  64. package/component-loader/package.json +3 -3
  65. package/datepicker/bs-datepicker-inline.component.d.ts +1 -1
  66. package/datepicker/bs-datepicker-input.directive.d.ts +1 -1
  67. package/datepicker/bs-datepicker.component.d.ts +1 -1
  68. package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
  69. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -1
  70. package/datepicker/bs-daterangepicker.component.d.ts +1 -1
  71. package/datepicker/esm2020/bs-datepicker-inline.component.mjs +3 -3
  72. package/datepicker/esm2020/bs-datepicker-inline.config.mjs +3 -3
  73. package/datepicker/esm2020/bs-datepicker-input.directive.mjs +3 -3
  74. package/datepicker/esm2020/bs-datepicker.component.mjs +3 -3
  75. package/datepicker/esm2020/bs-datepicker.config.mjs +3 -3
  76. package/datepicker/esm2020/bs-datepicker.module.mjs +4 -4
  77. package/datepicker/esm2020/bs-daterangepicker-inline.component.mjs +3 -3
  78. package/datepicker/esm2020/bs-daterangepicker-inline.config.mjs +3 -3
  79. package/datepicker/esm2020/bs-daterangepicker-input.directive.mjs +3 -3
  80. package/datepicker/esm2020/bs-daterangepicker.component.mjs +3 -3
  81. package/datepicker/esm2020/bs-daterangepicker.config.mjs +3 -3
  82. package/datepicker/esm2020/bs-locale.service.mjs +3 -3
  83. package/datepicker/esm2020/reducer/bs-datepicker.actions.mjs +4 -4
  84. package/datepicker/esm2020/reducer/bs-datepicker.effects.mjs +3 -3
  85. package/datepicker/esm2020/reducer/bs-datepicker.store.mjs +3 -3
  86. package/datepicker/esm2020/themes/bs/bs-calendar-layout.component.mjs +3 -3
  87. package/datepicker/esm2020/themes/bs/bs-current-date-view.component.mjs +3 -3
  88. package/datepicker/esm2020/themes/bs/bs-custom-dates-view.component.mjs +3 -3
  89. package/datepicker/esm2020/themes/bs/bs-datepicker-container.component.mjs +3 -3
  90. package/datepicker/esm2020/themes/bs/bs-datepicker-day-decorator.directive.mjs +3 -3
  91. package/datepicker/esm2020/themes/bs/bs-datepicker-inline-container.component.mjs +3 -3
  92. package/datepicker/esm2020/themes/bs/bs-datepicker-navigation-view.component.mjs +3 -3
  93. package/datepicker/esm2020/themes/bs/bs-daterangepicker-container.component.mjs +3 -3
  94. package/datepicker/esm2020/themes/bs/bs-daterangepicker-inline-container.component.mjs +3 -3
  95. package/datepicker/esm2020/themes/bs/bs-days-calendar-view.component.mjs +3 -3
  96. package/datepicker/esm2020/themes/bs/bs-months-calendar-view.component.mjs +3 -3
  97. package/datepicker/esm2020/themes/bs/bs-timepicker-view.component.mjs +3 -3
  98. package/datepicker/esm2020/themes/bs/bs-years-calendar-view.component.mjs +3 -3
  99. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +85 -85
  100. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +1 -1
  101. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs +85 -85
  102. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +1 -1
  103. package/datepicker/package.json +8 -8
  104. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +1 -1
  105. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +1 -1
  106. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -1
  107. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +1 -1
  108. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +1 -1
  109. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +1 -1
  110. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +1 -1
  111. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +1 -1
  112. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +1 -1
  113. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +1 -1
  114. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
  115. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +1 -1
  116. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
  117. package/dropdown/bs-dropdown-container.component.d.ts +1 -1
  118. package/dropdown/bs-dropdown-menu.directive.d.ts +1 -1
  119. package/dropdown/bs-dropdown-toggle.directive.d.ts +1 -1
  120. package/dropdown/bs-dropdown.directive.d.ts +1 -2
  121. package/dropdown/esm2020/bs-dropdown-container.component.mjs +5 -6
  122. package/dropdown/esm2020/bs-dropdown-menu.directive.mjs +3 -3
  123. package/dropdown/esm2020/bs-dropdown-toggle.directive.mjs +3 -3
  124. package/dropdown/esm2020/bs-dropdown.config.mjs +3 -3
  125. package/dropdown/esm2020/bs-dropdown.directive.mjs +8 -14
  126. package/dropdown/esm2020/bs-dropdown.module.mjs +4 -4
  127. package/dropdown/esm2020/bs-dropdown.state.mjs +3 -3
  128. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs +27 -33
  129. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs.map +1 -1
  130. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs +27 -33
  131. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs.map +1 -1
  132. package/dropdown/package.json +5 -6
  133. package/fesm2015/ngx-bootstrap.mjs.map +1 -1
  134. package/fesm2020/ngx-bootstrap.mjs.map +1 -1
  135. package/focus-trap/esm2020/focus-trap-manager.mjs +3 -3
  136. package/focus-trap/esm2020/focus-trap.mjs +7 -7
  137. package/focus-trap/esm2020/focus-trap.module.mjs +4 -4
  138. package/focus-trap/esm2020/interactivity-checker.mjs +3 -3
  139. package/focus-trap/esm2020/platform.mjs +4 -4
  140. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs +19 -19
  141. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs.map +1 -1
  142. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs +19 -19
  143. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs.map +1 -1
  144. package/focus-trap/focus-trap.d.ts +1 -1
  145. package/focus-trap/package.json +3 -3
  146. package/locale/fesm2015/ngx-bootstrap-locale.mjs.map +1 -1
  147. package/locale/fesm2020/ngx-bootstrap-locale.mjs.map +1 -1
  148. package/locale/package.json +2 -2
  149. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs.map +1 -1
  150. package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs.map +1 -1
  151. package/mini-ngrx/package.json +1 -1
  152. package/modal/esm2020/bs-modal-ref.service.mjs +3 -3
  153. package/modal/esm2020/bs-modal.service.mjs +5 -5
  154. package/modal/esm2020/modal-backdrop.component.mjs +7 -15
  155. package/modal/esm2020/modal-container.component.mjs +7 -8
  156. package/modal/esm2020/modal-options.class.mjs +5 -5
  157. package/modal/esm2020/modal.directive.mjs +7 -15
  158. package/modal/esm2020/modal.module.mjs +4 -4
  159. package/modal/fesm2015/ngx-bootstrap-modal.mjs +32 -48
  160. package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +1 -1
  161. package/modal/fesm2020/ngx-bootstrap-modal.mjs +32 -48
  162. package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +1 -1
  163. package/modal/modal-backdrop.component.d.ts +1 -1
  164. package/modal/modal-container.component.d.ts +1 -1
  165. package/modal/modal.directive.d.ts +1 -1
  166. package/modal/package.json +4 -4
  167. package/package.json +6 -6
  168. package/pagination/esm2020/pager.component.mjs +3 -3
  169. package/pagination/esm2020/pagination.component.mjs +3 -3
  170. package/pagination/esm2020/pagination.config.mjs +3 -3
  171. package/pagination/esm2020/pagination.module.mjs +4 -4
  172. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs +13 -13
  173. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs.map +1 -1
  174. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs +13 -13
  175. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs.map +1 -1
  176. package/pagination/package.json +4 -4
  177. package/pagination/pager.component.d.ts +1 -1
  178. package/pagination/pagination.component.d.ts +1 -1
  179. package/popover/esm2020/popover-container.component.mjs +3 -3
  180. package/popover/esm2020/popover.config.mjs +3 -3
  181. package/popover/esm2020/popover.directive.mjs +3 -3
  182. package/popover/esm2020/popover.module.mjs +4 -4
  183. package/popover/fesm2015/ngx-bootstrap-popover.mjs +13 -13
  184. package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +1 -1
  185. package/popover/fesm2020/ngx-bootstrap-popover.mjs +13 -13
  186. package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +1 -1
  187. package/popover/package.json +5 -5
  188. package/popover/popover-container.component.d.ts +1 -1
  189. package/popover/popover.directive.d.ts +1 -1
  190. package/positioning/esm2020/positioning.service.mjs +3 -3
  191. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +3 -3
  192. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +1 -1
  193. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs +3 -3
  194. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +1 -1
  195. package/positioning/package.json +5 -5
  196. package/progressbar/bar.component.d.ts +1 -2
  197. package/progressbar/esm2020/bar.component.mjs +5 -10
  198. package/progressbar/esm2020/progressbar-type.interface.mjs +1 -1
  199. package/progressbar/esm2020/progressbar.component.mjs +3 -3
  200. package/progressbar/esm2020/progressbar.config.mjs +3 -3
  201. package/progressbar/esm2020/progressbar.module.mjs +4 -4
  202. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs +14 -19
  203. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs.map +1 -1
  204. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs +14 -19
  205. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs.map +1 -1
  206. package/progressbar/package.json +3 -4
  207. package/progressbar/progressbar.component.d.ts +1 -1
  208. package/rating/esm2020/rating.component.mjs +3 -3
  209. package/rating/esm2020/rating.config.mjs +3 -3
  210. package/rating/esm2020/rating.module.mjs +4 -4
  211. package/rating/fesm2015/ngx-bootstrap-rating.mjs +10 -10
  212. package/rating/fesm2015/ngx-bootstrap-rating.mjs.map +1 -1
  213. package/rating/fesm2020/ngx-bootstrap-rating.mjs +10 -10
  214. package/rating/fesm2020/ngx-bootstrap-rating.mjs.map +1 -1
  215. package/rating/package.json +4 -4
  216. package/rating/rating.component.d.ts +1 -1
  217. package/schematics/ng-add/index.js +1 -1
  218. package/schematics/package.json +4 -4
  219. package/schematics/utils/current_dependency_versions.json +1 -1
  220. package/schematics/utils/index.js +9 -4
  221. package/schematics/utils/index.js.map +1 -1
  222. package/sortable/esm2020/draggable-item.service.mjs +3 -3
  223. package/sortable/esm2020/sortable.component.mjs +4 -4
  224. package/sortable/esm2020/sortable.module.mjs +4 -4
  225. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs +10 -10
  226. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs.map +1 -1
  227. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs +10 -10
  228. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs.map +1 -1
  229. package/sortable/package.json +5 -5
  230. package/sortable/sortable.component.d.ts +1 -1
  231. package/tabs/esm2020/ng-transclude.directive.mjs +3 -3
  232. package/tabs/esm2020/tab-heading.directive.mjs +3 -3
  233. package/tabs/esm2020/tab.directive.mjs +3 -3
  234. package/tabs/esm2020/tabs.module.mjs +4 -4
  235. package/tabs/esm2020/tabset.component.mjs +3 -3
  236. package/tabs/esm2020/tabset.config.mjs +3 -3
  237. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs +19 -19
  238. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs.map +1 -1
  239. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs +19 -19
  240. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs.map +1 -1
  241. package/tabs/ng-transclude.directive.d.ts +1 -1
  242. package/tabs/package.json +3 -3
  243. package/tabs/tab-heading.directive.d.ts +1 -1
  244. package/tabs/tab.directive.d.ts +1 -1
  245. package/tabs/tabset.component.d.ts +1 -1
  246. package/timepicker/esm2020/reducer/timepicker.actions.mjs +4 -4
  247. package/timepicker/esm2020/reducer/timepicker.store.mjs +3 -3
  248. package/timepicker/esm2020/timepicker.component.mjs +5 -5
  249. package/timepicker/esm2020/timepicker.config.mjs +3 -3
  250. package/timepicker/esm2020/timepicker.module.mjs +4 -4
  251. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs +17 -17
  252. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs.map +1 -1
  253. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs +17 -17
  254. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs.map +1 -1
  255. package/timepicker/package.json +6 -6
  256. package/timepicker/timepicker.component.d.ts +1 -1
  257. package/tooltip/esm2020/tooltip-container.component.mjs +5 -7
  258. package/tooltip/esm2020/tooltip.config.mjs +3 -3
  259. package/tooltip/esm2020/tooltip.directive.mjs +4 -4
  260. package/tooltip/esm2020/tooltip.module.mjs +4 -4
  261. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs +14 -16
  262. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs.map +1 -1
  263. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs +14 -16
  264. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs.map +1 -1
  265. package/tooltip/package.json +6 -6
  266. package/tooltip/tooltip-container.component.d.ts +1 -1
  267. package/tooltip/tooltip.directive.d.ts +1 -1
  268. package/typeahead/esm2020/typeahead-container.component.mjs +9 -13
  269. package/typeahead/esm2020/typeahead.config.mjs +3 -3
  270. package/typeahead/esm2020/typeahead.directive.mjs +3 -3
  271. package/typeahead/esm2020/typeahead.module.mjs +4 -4
  272. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs +18 -22
  273. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs.map +1 -1
  274. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs +18 -22
  275. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs.map +1 -1
  276. package/typeahead/package.json +7 -7
  277. package/typeahead/typeahead-container.component.d.ts +1 -2
  278. package/typeahead/typeahead.directive.d.ts +1 -1
  279. package/utils/esm2020/public_api.mjs +2 -2
  280. package/utils/esm2020/theme-provider.mjs +1 -29
  281. package/utils/esm2020/utils.class.mjs +4 -4
  282. package/utils/fesm2015/ngx-bootstrap-utils.mjs +4 -32
  283. package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +1 -1
  284. package/utils/fesm2020/ngx-bootstrap-utils.mjs +4 -32
  285. package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +1 -1
  286. package/utils/package.json +2 -2
  287. package/utils/public_api.d.ts +1 -1
  288. package/utils/theme-provider.d.ts +1 -4
@@ -28,9 +28,9 @@ class PaginationConfig {
28
28
  };
29
29
  }
30
30
  }
31
- PaginationConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
- PaginationConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationConfig, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationConfig, decorators: [{
31
+ PaginationConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
+ PaginationConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationConfig, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationConfig, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
36
36
  providedIn: 'root'
@@ -250,9 +250,9 @@ class PagerComponent {
250
250
  return Math.max(totalPages || 0, 1);
251
251
  }
252
252
  }
253
- PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PagerComponent, deps: [{ token: i0.ElementRef }, { token: PaginationConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
254
- PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PagerComponent, selector: "pager", inputs: { align: "align", maxSize: "maxSize", boundaryLinks: "boundaryLinks", directionLinks: "directionLinks", firstText: "firstText", previousText: "previousText", nextText: "nextText", lastText: "lastText", rotate: "rotate", pageBtnClass: "pageBtnClass", disabled: "disabled", itemsPerPage: "itemsPerPage", totalItems: "totalItems" }, outputs: { numPages: "numPages", pageChanged: "pageChanged" }, providers: [PAGER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<ul class=\"pager\">\n <li [class.disabled]=\"noPrevious()\" [class.previous]=\"align\"\n [ngClass]=\"{'pull-left': align, 'float-left': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page - 1, $event)\">{{ getText('previous') }}</a>\n </li>\n <li [class.disabled]=\"noNext()\" [class.next]=\"align\"\n [ngClass]=\"{'pull-right': align, 'float-right': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page + 1, $event)\">{{ getText('next') }}</a>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PagerComponent, decorators: [{
253
+ PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PagerComponent, deps: [{ token: i0.ElementRef }, { token: PaginationConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
254
+ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: PagerComponent, selector: "pager", inputs: { align: "align", maxSize: "maxSize", boundaryLinks: "boundaryLinks", directionLinks: "directionLinks", firstText: "firstText", previousText: "previousText", nextText: "nextText", lastText: "lastText", rotate: "rotate", pageBtnClass: "pageBtnClass", disabled: "disabled", itemsPerPage: "itemsPerPage", totalItems: "totalItems" }, outputs: { numPages: "numPages", pageChanged: "pageChanged" }, providers: [PAGER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<ul class=\"pager\">\n <li [class.disabled]=\"noPrevious()\" [class.previous]=\"align\"\n [ngClass]=\"{'pull-left': align, 'float-left': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page - 1, $event)\">{{ getText('previous') }}</a>\n </li>\n <li [class.disabled]=\"noNext()\" [class.next]=\"align\"\n [ngClass]=\"{'pull-right': align, 'float-right': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page + 1, $event)\">{{ getText('next') }}</a>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PagerComponent, decorators: [{
256
256
  type: Component,
257
257
  args: [{ selector: 'pager', providers: [PAGER_CONTROL_VALUE_ACCESSOR], template: "<ul class=\"pager\">\n <li [class.disabled]=\"noPrevious()\" [class.previous]=\"align\"\n [ngClass]=\"{'pull-left': align, 'float-left': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page - 1, $event)\">{{ getText('previous') }}</a>\n </li>\n <li [class.disabled]=\"noNext()\" [class.next]=\"align\"\n [ngClass]=\"{'pull-right': align, 'float-right': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page + 1, $event)\">{{ getText('next') }}</a>\n </li>\n</ul>\n" }]
258
258
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: PaginationConfig }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { align: [{
@@ -491,9 +491,9 @@ class PaginationComponent {
491
491
  return Math.max(totalPages || 0, 1);
492
492
  }
493
493
  }
494
- PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationComponent, deps: [{ token: i0.ElementRef }, { token: PaginationConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
495
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PaginationComponent, selector: "pagination", inputs: { align: "align", maxSize: "maxSize", boundaryLinks: "boundaryLinks", directionLinks: "directionLinks", firstText: "firstText", previousText: "previousText", nextText: "nextText", lastText: "lastText", rotate: "rotate", pageBtnClass: "pageBtnClass", disabled: "disabled", customPageTemplate: "customPageTemplate", customNextTemplate: "customNextTemplate", customPreviousTemplate: "customPreviousTemplate", customFirstTemplate: "customFirstTemplate", customLastTemplate: "customLastTemplate", itemsPerPage: "itemsPerPage", totalItems: "totalItems" }, outputs: { numPages: "numPages", pageChanged: "pageChanged" }, providers: [PAGINATION_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<ul class=\"pagination\" [ngClass]=\"classMap\">\n <li class=\"pagination-first page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customFirstTemplate || defaultFirstTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-prev page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page - 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPreviousTemplate || defaultPreviousTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li *ngFor=\"let pg of pages\"\n [class.active]=\"pg.active\"\n [class.disabled]=\"disabled && !pg.active\"\n class=\"pagination-page page-item\">\n <a class=\"page-link\" href (click)=\"selectPage(pg.number, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPageTemplate || defaultPageTemplate\"\n [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pg, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-next page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page + 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customNextTemplate || defaultNextTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-last page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(totalPages, $event)\">\n <ng-container [ngTemplateOutlet]=\"customLastTemplate || defaultLastTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n</ul>\n\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\n\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\n\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\n\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\n\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationComponent, decorators: [{
494
+ PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationComponent, deps: [{ token: i0.ElementRef }, { token: PaginationConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
495
+ PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: PaginationComponent, selector: "pagination", inputs: { align: "align", maxSize: "maxSize", boundaryLinks: "boundaryLinks", directionLinks: "directionLinks", firstText: "firstText", previousText: "previousText", nextText: "nextText", lastText: "lastText", rotate: "rotate", pageBtnClass: "pageBtnClass", disabled: "disabled", customPageTemplate: "customPageTemplate", customNextTemplate: "customNextTemplate", customPreviousTemplate: "customPreviousTemplate", customFirstTemplate: "customFirstTemplate", customLastTemplate: "customLastTemplate", itemsPerPage: "itemsPerPage", totalItems: "totalItems" }, outputs: { numPages: "numPages", pageChanged: "pageChanged" }, providers: [PAGINATION_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<ul class=\"pagination\" [ngClass]=\"classMap\">\n <li class=\"pagination-first page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customFirstTemplate || defaultFirstTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-prev page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page - 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPreviousTemplate || defaultPreviousTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li *ngFor=\"let pg of pages\"\n [class.active]=\"pg.active\"\n [class.disabled]=\"disabled && !pg.active\"\n class=\"pagination-page page-item\">\n <a class=\"page-link\" href (click)=\"selectPage(pg.number, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPageTemplate || defaultPageTemplate\"\n [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pg, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-next page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page + 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customNextTemplate || defaultNextTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-last page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(totalPages, $event)\">\n <ng-container [ngTemplateOutlet]=\"customLastTemplate || defaultLastTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n</ul>\n\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\n\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\n\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\n\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\n\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationComponent, decorators: [{
497
497
  type: Component,
498
498
  args: [{ selector: 'pagination', providers: [PAGINATION_CONTROL_VALUE_ACCESSOR], template: "<ul class=\"pagination\" [ngClass]=\"classMap\">\n <li class=\"pagination-first page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customFirstTemplate || defaultFirstTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-prev page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page - 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPreviousTemplate || defaultPreviousTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li *ngFor=\"let pg of pages\"\n [class.active]=\"pg.active\"\n [class.disabled]=\"disabled && !pg.active\"\n class=\"pagination-page page-item\">\n <a class=\"page-link\" href (click)=\"selectPage(pg.number, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPageTemplate || defaultPageTemplate\"\n [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pg, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-next page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page + 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customNextTemplate || defaultNextTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-last page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(totalPages, $event)\">\n <ng-container [ngTemplateOutlet]=\"customLastTemplate || defaultLastTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n</ul>\n\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\n\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\n\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\n\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\n\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\n" }]
499
499
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: PaginationConfig }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { align: [{
@@ -543,10 +543,10 @@ class PaginationModule {
543
543
  return { ngModule: PaginationModule, providers: [] };
544
544
  }
545
545
  }
546
- PaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
547
- PaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: PaginationModule, declarations: [PagerComponent, PaginationComponent], imports: [CommonModule], exports: [PagerComponent, PaginationComponent] });
548
- PaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationModule, imports: [CommonModule] });
549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PaginationModule, decorators: [{
546
+ PaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
547
+ PaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: PaginationModule, declarations: [PagerComponent, PaginationComponent], imports: [CommonModule], exports: [PagerComponent, PaginationComponent] });
548
+ PaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationModule, imports: [CommonModule] });
549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PaginationModule, decorators: [{
550
550
  type: NgModule,
551
551
  args: [{
552
552
  imports: [CommonModule],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-pagination.mjs","sources":["../../../../src/pagination/pagination.config.ts","../../../../src/pagination/pager.component.ts","../../../../src/pagination/pager.component.html","../../../../src/pagination/pagination.component.ts","../../../../src/pagination/pagination.component.html","../../../../src/pagination/pagination.module.ts","../../../../src/pagination/ngx-bootstrap-pagination.ts"],"sourcesContent":["// todo: split\nimport { Injectable } from '@angular/core';\n\nimport { ConfigModel, PagerModel } from './models';\n\n/** Provides default values for Pagination and pager components */\n@Injectable({\n providedIn: 'root'\n})\nexport class PaginationConfig {\n main: Partial<ConfigModel> = {\n itemsPerPage: 10,\n boundaryLinks: false,\n directionLinks: true,\n firstText: 'First',\n previousText: 'Previous',\n nextText: 'Next',\n lastText: 'Last',\n pageBtnClass: '',\n rotate: true\n };\n pager: PagerModel = {\n itemsPerPage: 15,\n previousText: '« Previous',\n nextText: 'Next »',\n pageBtnClass: '',\n align: true\n };\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ConfigModel, PagesModel } from './models';\n\nimport { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PagerComponent),\n multi: true\n};\n\n@Component({\n selector: 'pager',\n templateUrl: './pager.component.html',\n providers: [PAGER_CONTROL_VALUE_ACCESSOR]\n})\nexport class PagerComponent implements ControlValueAccessor, OnInit {\n config?: Partial<ConfigModel>;\n /** if `true` aligns each link to the sides of pager */\n @Input() align = false;\n /** limit number for page links in pager */\n @Input() maxSize?: number;\n /** if false first and last buttons will be hidden */\n @Input() boundaryLinks = false;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks = true;\n // labels\n /** first button text */\n @Input() firstText = 'First';\n /** previous button text */\n @Input() previousText = '« Previous';\n /** next button text */\n @Input() nextText = 'Next »';\n /** last button text */\n @Input() lastText = 'Last';\n /** if true current page will in the middle of pages list */\n @Input() rotate = true;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass = '';\n\n /** if true pagination component will be disabled */\n @Input() disabled = false;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages = new EventEmitter<number>();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to\n * object with current page index and number of items per page\n */\n @Output()\n pageChanged = new EventEmitter<PageChangedEvent>();\n onChange = Function.prototype;\n onTouched = Function.prototype;\n classMap = '';\n pages?: PagesModel[];\n protected inited = false;\n\n constructor(private elementRef: ElementRef,\n paginationConfig: PaginationConfig,\n private changeDetection: ChangeDetectorRef) {\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(\n Object.assign({}, paginationConfig.main, paginationConfig.pager)\n );\n }\n }\n\n protected _itemsPerPage = 15;\n\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n @Input()\n get itemsPerPage(): number {\n return this._itemsPerPage;\n }\n\n set itemsPerPage(v: number) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n protected _totalItems = 0;\n\n /** total number of items in all pages */\n @Input()\n get totalItems(): number {\n return this._totalItems;\n }\n\n set totalItems(v: number) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n protected _totalPages = 0;\n\n get totalPages(): number {\n return this._totalPages;\n }\n\n set totalPages(v: number) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n\n protected _page = 1;\n\n get page(): number {\n return this._page;\n }\n\n set page(value: number) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n\n configureOptions(config: Partial<ConfigModel>): void {\n this.config = Object.assign({}, config);\n }\n\n ngOnInit(): void {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n // watch for maxSize\n if (typeof this.maxSize === 'undefined') {\n this.maxSize = this.config?.maxSize || 0;\n }\n\n if (typeof this.rotate === 'undefined') {\n this.rotate = !!this.config?.rotate;\n }\n\n if (typeof this.boundaryLinks === 'undefined') {\n this.boundaryLinks = !!this.config?.boundaryLinks;\n }\n\n\n if (typeof this.directionLinks === 'undefined') {\n this.directionLinks = !!this.config?.directionLinks;\n }\n\n if (typeof this.pageBtnClass === 'undefined') {\n this.pageBtnClass = this.config?.pageBtnClass || '';\n }\n\n // base class\n if (typeof this.itemsPerPage === 'undefined') {\n this.itemsPerPage = this.config?.itemsPerPage || 0;\n }\n\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n\n writeValue(value: number): void {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n\n getText(key: string): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (this as any)[`${key}Text`] || (this as any).config[`${key}Text`];\n }\n\n noPrevious(): boolean {\n return this.page === 1;\n }\n\n noNext(): boolean {\n return this.page === this.totalPages;\n }\n\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n selectPage(page: number, event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n if (!this.disabled) {\n if (event && event.target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const target: any = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n\n // Create page object used in template\n protected makePage(num: number,\n text: string,\n active: boolean): { number: number; text: string; active: boolean } {\n return { text, number: num, active };\n }\n\n protected getPages(currentPage: number, totalPages: number): PagesModel[] {\n const pages: PagesModel[] = [];\n\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized =\n typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n\n // recompute if maxSize\n if (isMaxSized && this.maxSize) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n } else {\n // Visible pages are paginated with maxSize\n startPage =\n (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n\n return pages;\n }\n\n // base class\n protected calculateTotalPages(): number {\n const totalPages =\n this.itemsPerPage < 1\n ? 1\n : Math.ceil(this.totalItems / this.itemsPerPage);\n\n return Math.max(totalPages || 0, 1);\n }\n}\n","<ul class=\"pager\">\n <li [class.disabled]=\"noPrevious()\" [class.previous]=\"align\"\n [ngClass]=\"{'pull-left': align, 'float-left': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page - 1, $event)\">{{ getText('previous') }}</a>\n </li>\n <li [class.disabled]=\"noNext()\" [class.next]=\"align\"\n [ngClass]=\"{'pull-right': align, 'float-right': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page + 1, $event)\">{{ getText('next') }}</a>\n </li>\n</ul>\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider,\n TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\n\nimport { PaginationConfig } from './pagination.config';\n\nexport interface PageChangedEvent {\n itemsPerPage: number;\n page: number;\n}\n\nexport const PAGINATION_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PaginationComponent),\n multi: true\n};\n\n@Component({\n selector: 'pagination',\n templateUrl: './pagination.component.html',\n providers: [PAGINATION_CONTROL_VALUE_ACCESSOR]\n})\nexport class PaginationComponent implements ControlValueAccessor, OnInit {\n config?: Partial<ConfigModel>;\n /** if `true` aligns each link to the sides of pager */\n @Input() align = true;\n /** limit number for page links in pager */\n @Input() maxSize?: number;\n /** if false first and last buttons will be hidden */\n @Input() boundaryLinks = false;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks = true;\n // labels\n /** first button text */\n @Input() firstText?: string;\n /** previous button text */\n @Input() previousText?: string;\n /** next button text */\n @Input() nextText?: string;\n /** last button text */\n @Input() lastText?: string;\n /** if true current page will in the middle of pages list */\n @Input() rotate = true;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass = '';\n /** if true pagination component will be disabled */\n @Input() disabled = false;\n /** custom template for page link */\n @Input() customPageTemplate?: TemplateRef<PaginationNumberLinkContext>;\n /** custom template for next link */\n @Input() customNextTemplate?: TemplateRef<PaginationLinkContext>;\n /** custom template for previous link */\n @Input() customPreviousTemplate?: TemplateRef<PaginationLinkContext>;\n /** custom template for first link */\n @Input() customFirstTemplate?: TemplateRef<PaginationLinkContext>;\n /** custom template for last link */\n @Input() customLastTemplate?: TemplateRef<PaginationLinkContext>;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages = new EventEmitter<number>();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to object\n * with current page index and number of items per page\n */\n @Output() pageChanged = new EventEmitter<PageChangedEvent>();\n onChange = Function.prototype;\n onTouched = Function.prototype;\n classMap = '';\n pages?: PagesModel[];\n protected inited = false;\n\n constructor(\n private elementRef: ElementRef,\n paginationConfig: PaginationConfig,\n private changeDetection: ChangeDetectorRef\n ) {\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(paginationConfig.main);\n }\n }\n\n protected _itemsPerPage = 10;\n\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n @Input()\n get itemsPerPage(): number {\n return this._itemsPerPage;\n }\n\n set itemsPerPage(v: number) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n protected _totalItems = 0;\n\n /** total number of items in all pages */\n @Input()\n get totalItems(): number {\n return this._totalItems;\n }\n\n set totalItems(v: number) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n protected _totalPages = 0;\n\n get totalPages(): number {\n return this._totalPages;\n }\n\n set totalPages(v: number) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n\n protected _page = 1;\n\n get page(): number {\n return this._page;\n }\n\n set page(value: number) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n\n configureOptions(config: Partial<ConfigModel>): void {\n this.config = Object.assign({}, config);\n }\n\n ngOnInit(): void {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n\n // watch for maxSize\n if (typeof this.maxSize === 'undefined') {\n this.maxSize = this.config?.maxSize || 0;\n }\n\n if (typeof this.rotate === 'undefined') {\n this.rotate = !!this.config?.rotate;\n }\n\n if (typeof this.boundaryLinks === 'undefined') {\n this.boundaryLinks = !!this.config?.boundaryLinks;\n }\n\n\n if (typeof this.directionLinks === 'undefined') {\n this.directionLinks = !!this.config?.directionLinks;\n }\n\n if (typeof this.pageBtnClass === 'undefined') {\n this.pageBtnClass = this.config?.pageBtnClass || '';\n }\n\n // base class\n if (typeof this.itemsPerPage === 'undefined') {\n this.itemsPerPage = this.config?.itemsPerPage || 0;\n }\n\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n\n writeValue(value: number): void {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n\n getText(key: string): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (this as any)[`${key}Text`] || (this as any).config[`${key}Text`];\n }\n\n noPrevious(): boolean {\n return this.page === 1;\n }\n\n noNext(): boolean {\n return this.page === this.totalPages;\n }\n\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n selectPage(page: number, event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n if (!this.disabled) {\n if (event && event.target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const target: any = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n\n // Create page object used in template\n protected makePage(\n num: number,\n text: string,\n active: boolean\n ): { number: number; text: string; active: boolean } {\n return { text, number: num, active };\n }\n\n protected getPages(currentPage: number, totalPages: number): PagesModel[] {\n const pages: PagesModel[] = [];\n\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized =\n typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n\n // recompute if maxSize\n if (isMaxSized && this.maxSize) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n } else {\n // Visible pages are paginated with maxSize\n startPage =\n (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n\n return pages;\n }\n\n // base class\n protected calculateTotalPages(): number {\n const totalPages =\n this.itemsPerPage < 1\n ? 1\n : Math.ceil(this.totalItems / this.itemsPerPage);\n\n return Math.max(totalPages || 0, 1);\n }\n}\n","<ul class=\"pagination\" [ngClass]=\"classMap\">\n <li class=\"pagination-first page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customFirstTemplate || defaultFirstTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-prev page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page - 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPreviousTemplate || defaultPreviousTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li *ngFor=\"let pg of pages\"\n [class.active]=\"pg.active\"\n [class.disabled]=\"disabled && !pg.active\"\n class=\"pagination-page page-item\">\n <a class=\"page-link\" href (click)=\"selectPage(pg.number, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPageTemplate || defaultPageTemplate\"\n [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pg, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-next page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page + 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customNextTemplate || defaultNextTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-last page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(totalPages, $event)\">\n <ng-container [ngTemplateOutlet]=\"customLastTemplate || defaultLastTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n</ul>\n\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\n\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\n\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\n\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\n\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { PagerComponent } from './pager.component';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [PagerComponent, PaginationComponent],\n exports: [PagerComponent, PaginationComponent]\n})\nexport class PaginationModule {\n static forRoot(): ModuleWithProviders<PaginationModule> {\n return { ngModule: PaginationModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PaginationConfig"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-pagination.mjs","sources":["../esm2020/pagination.config.mjs","../esm2020/pager.component.mjs","../esm2020/pagination.component.mjs","../esm2020/pagination.module.mjs","../esm2020/ngx-bootstrap-pagination.mjs"],"sourcesContent":["// todo: split\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/** Provides default values for Pagination and pager components */\nexport class PaginationConfig {\n constructor() {\n this.main = {\n itemsPerPage: 10,\n boundaryLinks: false,\n directionLinks: true,\n firstText: 'First',\n previousText: 'Previous',\n nextText: 'Next',\n lastText: 'Last',\n pageBtnClass: '',\n rotate: true\n };\n this.pager = {\n itemsPerPage: 15,\n previousText: '« Previous',\n nextText: 'Next »',\n pageBtnClass: '',\n align: true\n };\n }\n}\nPaginationConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPaginationConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0Msa0VBQWtFO0FBSWxFLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJRSxTQUFJLEdBQXlCO1lBQzNCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLFlBQVksRUFBRSxVQUFVO1lBQ3hCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUNGLFVBQUssR0FBZTtZQUNsQixZQUFZLEVBQUUsRUFBRTtZQUNoQixZQUFZLEVBQUUsWUFBWTtZQUMxQixRQUFRLEVBQUUsUUFBUTtZQUNsQixZQUFZLEVBQUUsRUFBRTtZQUNoQixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7S0FDSDs7NkdBbkJZLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdG9kbzogc3BsaXRcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnTW9kZWwsIFBhZ2VyTW9kZWwgfSBmcm9tICcuL21vZGVscyc7XG5cbi8qKiBQcm92aWRlcyBkZWZhdWx0IHZhbHVlcyBmb3IgUGFnaW5hdGlvbiBhbmQgcGFnZXIgY29tcG9uZW50cyAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbmZpZyB7XG4gIG1haW46IFBhcnRpYWw8Q29uZmlnTW9kZWw+ID0ge1xuICAgIGl0ZW1zUGVyUGFnZTogMTAsXG4gICAgYm91bmRhcnlMaW5rczogZmFsc2UsXG4gICAgZGlyZWN0aW9uTGlua3M6IHRydWUsXG4gICAgZmlyc3RUZXh0OiAnRmlyc3QnLFxuICAgIHByZXZpb3VzVGV4dDogJ1ByZXZpb3VzJyxcbiAgICBuZXh0VGV4dDogJ05leHQnLFxuICAgIGxhc3RUZXh0OiAnTGFzdCcsXG4gICAgcGFnZUJ0bkNsYXNzOiAnJyxcbiAgICByb3RhdGU6IHRydWVcbiAgfTtcbiAgcGFnZXI6IFBhZ2VyTW9kZWwgPSB7XG4gICAgaXRlbXNQZXJQYWdlOiAxNSxcbiAgICBwcmV2aW91c1RleHQ6ICfCqyBQcmV2aW91cycsXG4gICAgbmV4dFRleHQ6ICdOZXh0IMK7JyxcbiAgICBwYWdlQnRuQ2xhc3M6ICcnLFxuICAgIGFsaWduOiB0cnVlXG4gIH07XG59XG4iXX0=","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PaginationConfig } from './pagination.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./pagination.config\";\nimport * as i2 from \"@angular/common\";\nexport const PAGER_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PagerComponent),\n multi: true\n};\nexport class PagerComponent {\n constructor(elementRef, paginationConfig, changeDetection) {\n this.elementRef = elementRef;\n this.changeDetection = changeDetection;\n /** if `true` aligns each link to the sides of pager */\n this.align = false;\n /** if false first and last buttons will be hidden */\n this.boundaryLinks = false;\n /** if false previous and next buttons will be hidden */\n this.directionLinks = true;\n // labels\n /** first button text */\n this.firstText = 'First';\n /** previous button text */\n this.previousText = '« Previous';\n /** next button text */\n this.nextText = 'Next »';\n /** last button text */\n this.lastText = 'Last';\n /** if true current page will in the middle of pages list */\n this.rotate = true;\n // css\n /** add class to <code><li\\></code> */\n this.pageBtnClass = '';\n /** if true pagination component will be disabled */\n this.disabled = false;\n /** fired when total pages count changes, $event:number equals to total pages count */\n this.numPages = new EventEmitter();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to\n * object with current page index and number of items per page\n */\n this.pageChanged = new EventEmitter();\n this.onChange = Function.prototype;\n this.onTouched = Function.prototype;\n this.classMap = '';\n this.inited = false;\n this._itemsPerPage = 15;\n this._totalItems = 0;\n this._totalPages = 0;\n this._page = 1;\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(Object.assign({}, paginationConfig.main, paginationConfig.pager));\n }\n }\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n get itemsPerPage() {\n return this._itemsPerPage;\n }\n set itemsPerPage(v) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n /** total number of items in all pages */\n get totalItems() {\n return this._totalItems;\n }\n set totalItems(v) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n get totalPages() {\n return this._totalPages;\n }\n set totalPages(v) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n get page() {\n return this._page;\n }\n set page(value) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n configureOptions(config) {\n this.config = Object.assign({}, config);\n }\n ngOnInit() {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n // watch for maxSize\n if (typeof this.maxSize === 'undefined') {\n this.maxSize = this.config?.maxSize || 0;\n }\n if (typeof this.rotate === 'undefined') {\n this.rotate = !!this.config?.rotate;\n }\n if (typeof this.boundaryLinks === 'undefined') {\n this.boundaryLinks = !!this.config?.boundaryLinks;\n }\n if (typeof this.directionLinks === 'undefined') {\n this.directionLinks = !!this.config?.directionLinks;\n }\n if (typeof this.pageBtnClass === 'undefined') {\n this.pageBtnClass = this.config?.pageBtnClass || '';\n }\n // base class\n if (typeof this.itemsPerPage === 'undefined') {\n this.itemsPerPage = this.config?.itemsPerPage || 0;\n }\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n writeValue(value) {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n getText(key) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this[`${key}Text`] || this.config[`${key}Text`];\n }\n noPrevious() {\n return this.page === 1;\n }\n noNext() {\n return this.page === this.totalPages;\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n selectPage(page, event) {\n if (event) {\n event.preventDefault();\n }\n if (!this.disabled) {\n if (event && event.target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const target = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n // Create page object used in template\n makePage(num, text, active) {\n return { text, number: num, active };\n }\n getPages(currentPage, totalPages) {\n const pages = [];\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized = typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n // recompute if maxSize\n if (isMaxSized && this.maxSize) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n }\n else {\n // Visible pages are paginated with maxSize\n startPage =\n (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n return pages;\n }\n // base class\n calculateTotalPages() {\n const totalPages = this.itemsPerPage < 1\n ? 1\n : Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(totalPages || 0, 1);\n }\n}\nPagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PagerComponent, deps: [{ token: i0.ElementRef }, { token: i1.PaginationConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nPagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: PagerComponent, selector: \"pager\", inputs: { align: \"align\", maxSize: \"maxSize\", boundaryLinks: \"boundaryLinks\", directionLinks: \"directionLinks\", firstText: \"firstText\", previousText: \"previousText\", nextText: \"nextText\", lastText: \"lastText\", rotate: \"rotate\", pageBtnClass: \"pageBtnClass\", disabled: \"disabled\", itemsPerPage: \"itemsPerPage\", totalItems: \"totalItems\" }, outputs: { numPages: \"numPages\", pageChanged: \"pageChanged\" }, providers: [PAGER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: \"<ul class=\\\"pager\\\">\\n <li [class.disabled]=\\\"noPrevious()\\\" [class.previous]=\\\"align\\\"\\n [ngClass]=\\\"{'pull-left': align, 'float-left': align}\\\"\\n class=\\\"{{ pageBtnClass }}\\\">\\n <a href (click)=\\\"selectPage(page - 1, $event)\\\">{{ getText('previous') }}</a>\\n </li>\\n <li [class.disabled]=\\\"noNext()\\\" [class.next]=\\\"align\\\"\\n [ngClass]=\\\"{'pull-right': align, 'float-right': align}\\\"\\n class=\\\"{{ pageBtnClass }}\\\">\\n <a href (click)=\\\"selectPage(page + 1, $event)\\\">{{ getText('next') }}</a>\\n </li>\\n</ul>\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PagerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'pager', providers: [PAGER_CONTROL_VALUE_ACCESSOR], template: \"<ul class=\\\"pager\\\">\\n <li [class.disabled]=\\\"noPrevious()\\\" [class.previous]=\\\"align\\\"\\n [ngClass]=\\\"{'pull-left': align, 'float-left': align}\\\"\\n class=\\\"{{ pageBtnClass }}\\\">\\n <a href (click)=\\\"selectPage(page - 1, $event)\\\">{{ getText('previous') }}</a>\\n </li>\\n <li [class.disabled]=\\\"noNext()\\\" [class.next]=\\\"align\\\"\\n [ngClass]=\\\"{'pull-right': align, 'float-right': align}\\\"\\n class=\\\"{{ pageBtnClass }}\\\">\\n <a href (click)=\\\"selectPage(page + 1, $event)\\\">{{ getText('next') }}</a>\\n </li>\\n</ul>\\n\" }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PaginationConfig }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { align: [{\n type: Input\n }], maxSize: [{\n type: Input\n }], boundaryLinks: [{\n type: Input\n }], directionLinks: [{\n type: Input\n }], firstText: [{\n type: Input\n }], previousText: [{\n type: Input\n }], nextText: [{\n type: Input\n }], lastText: [{\n type: Input\n }], rotate: [{\n type: Input\n }], pageBtnClass: [{\n type: Input\n }], disabled: [{\n type: Input\n }], numPages: [{\n type: Output\n }], pageChanged: [{\n type: Output\n }], itemsPerPage: [{\n type: Input\n }], totalItems: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2luYXRpb24vcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3BhZ2luYXRpb24vcGFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFdkQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQWE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFPRixNQUFNLE9BQU8sY0FBYztJQXlDekIsWUFBb0IsVUFBc0IsRUFDOUIsZ0JBQWtDLEVBQzFCLGVBQWtDO1FBRmxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFFdEIsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBekN0RCx1REFBdUQ7UUFDOUMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUd2QixxREFBcUQ7UUFDNUMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDL0Isd0RBQXdEO1FBQy9DLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQy9CLFNBQVM7UUFDVCx3QkFBd0I7UUFDZixjQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzdCLDJCQUEyQjtRQUNsQixpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUNyQyx1QkFBdUI7UUFDZCxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzdCLHVCQUF1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QUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUHJvdmlkZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENvbmZpZ01vZGVsLCBQYWdlc01vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5pbXBvcnQgeyBQYWdlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29uZmlnIH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBQQUdFUl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhZ2VyQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BhZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbUEFHRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cbn0pXG5leHBvcnQgY2xhc3MgUGFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgY29uZmlnPzogUGFydGlhbDxDb25maWdNb2RlbD47XG4gIC8qKiBpZiBgdHJ1ZWAgYWxpZ25zIGVhY2ggbGluayB0byB0aGUgc2lkZXMgb2YgcGFnZXIgKi9cbiAgQElucHV0KCkgYWxpZ24gPSBmYWxzZTtcbiAgLyoqIGxpbWl0IG51bWJlciBmb3IgcGFnZSBsaW5rcyBpbiBwYWdlciAqL1xuICBASW5wdXQoKSBtYXhTaXplPzogbnVtYmVyO1xuICAvKiogaWYgZmFsc2UgZmlyc3QgYW5kIGxhc3QgYnV0dG9ucyB3aWxsIGJlIGhpZGRlbiAqL1xuICBASW5wdXQoKSBib3VuZGFyeUxpbmtzID0gZmFsc2U7XG4gIC8qKiBpZiBmYWxzZSBwcmV2aW91cyBhbmQgbmV4dCBidXR0b25zIHdpbGwgYmUgaGlkZGVuICovXG4gIEBJbnB1dCgpIGRpcmVjdGlvbkxpbmtzID0gdHJ1ZTtcbiAgLy8gbGFiZWxzXG4gIC8qKiBmaXJzdCBidXR0b24gdGV4dCAqL1xuICBASW5wdXQoKSBmaXJzdFRleHQgPSAnRmlyc3QnO1xuICAvKiogcHJldmlvdXMgYnV0dG9uIHRleHQgKi9cbiAgQElucHV0KCkgcHJldmlvdXNUZXh0ID0gJ8KrIFByZXZpb3VzJztcbiAgLyoqIG5leHQgYnV0dG9uIHRleHQgKi9cbiAgQElucHV0KCkgbmV4dFRleHQgPSAnTmV4dCDCuyc7XG4gIC8qKiBsYXN0IGJ1dHRvbiB0ZXh0ICovXG4gIEBJbnB1dCgpIGxhc3RUZXh0ID0gJ0xhc3QnO1xuICAvKiogaWYgdHJ1ZSBjdXJyZW50IHBhZ2Ugd2lsbCBpbiB0aGUgbWlkZGxlIG9mIHBhZ2VzIGxpc3QgKi9cbiAgQElucHV0KCkgcm90YXRlID0gdHJ1ZTtcbiAgLy8gY3NzXG4gIC8qKiBhZGQgY2xhc3MgdG8gPGNvZGU+PGxpXFw+PC9jb2RlPiAqL1xuICBASW5wdXQoKSBwYWdlQnRuQ2xhc3MgPSAnJztcblxuICAvKiogaWYgdHJ1ZSBwYWdpbmF0aW9uIGNvbXBvbmVudCB3aWxsIGJlIGRpc2FibGVkICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIGZpcmVkIHdoZW4gdG90YWwgcGFnZXMgY291bnQgY2hhbmdlcywgJGV2ZW50Om51bWJlciBlcXVhbHMgdG8gdG90YWwgcGFnZXMgY291bnQgKi9cbiAgQE91dHB1dCgpIG51bVBhZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIC8qKiBmaXJlZCB3aGVuIHBhZ2Ugd2FzIGNoYW5nZWQsICRldmVudDp7cGFnZSwgaXRlbXNQZXJQYWdlfSBlcXVhbHMgdG9cbiAgICogb2JqZWN0IHdpdGggY3VycmVudCBwYWdlIGluZGV4IGFuZCBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2VcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUNoYW5nZWRFdmVudD4oKTtcbiAgb25DaGFuZ2UgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIG9uVG91Y2hlZCA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbiAgY2xhc3NNYXAgPSAnJztcbiAgcGFnZXM/OiBQYWdlc01vZGVsW107XG4gIHByb3RlY3RlZCBpbml0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHBhZ2luYXRpb25Db25maWc6IFBhZ2luYXRpb25Db25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWd1cmVPcHRpb25zKFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBwYWdpbmF0aW9uQ29uZmlnLm1haW4sIHBhZ2luYXRpb25Db25maWcucGFnZXIpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaXRlbXNQZXJQYWdlID0gMTU7XG5cbiAgLyoqIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLiBJZiB2YWx1ZSBsZXNzIHRoYW4gMSB3aWxsIGRpc3BsYXkgYWxsIGl0ZW1zIG9uIG9uZSBwYWdlICovXG4gIEBJbnB1dCgpXG4gIGdldCBpdGVtc1BlclBhZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNQZXJQYWdlO1xuICB9XG5cbiAgc2V0IGl0ZW1zUGVyUGFnZSh2OiBudW1iZXIpIHtcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UgPSB2O1xuICAgIHRoaXMudG90YWxQYWdlcyA9IHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF90b3RhbEl0ZW1zID0gMDtcblxuICAvKiogdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGluIGFsbCBwYWdlcyAqL1xuICBASW5wdXQoKVxuICBnZXQgdG90YWxJdGVtcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90b3RhbEl0ZW1zO1xuICB9XG5cbiAgc2V0IHRvdGFsSXRlbXModjogbnVtYmVyKSB7XG4gICAgdGhpcy5fdG90YWxJdGVtcyA9IHY7XG4gICAgdGhpcy50b3RhbFBhZ2VzID0gdGhpcy5jYWxjdWxhdGVUb3RhbFBhZ2VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3RvdGFsUGFnZXMgPSAwO1xuXG4gIGdldCB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsUGFnZXM7XG4gIH1cblxuICBzZXQgdG90YWxQYWdlcyh2OiBudW1iZXIpIHtcbiAgICB0aGlzLl90b3RhbFBhZ2VzID0gdjtcbiAgICB0aGlzLm51bVBhZ2VzLmVtaXQodik7XG4gICAgaWYgKHRoaXMuaW5pdGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdFBhZ2UodGhpcy5wYWdlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX3BhZ2UgPSAxO1xuXG4gIGdldCBwYWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2U7XG4gIH1cblxuICBzZXQgcGFnZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgX3ByZXZpb3VzID0gdGhpcy5fcGFnZTtcbiAgICB0aGlzLl9wYWdlID0gdmFsdWUgPiB0aGlzLnRvdGFsUGFnZXMgPyB0aGlzLnRvdGFsUGFnZXMgOiB2YWx1ZSB8fCAxO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgaWYgKF9wcmV2aW91cyA9PT0gdGhpcy5fcGFnZSB8fCB0eXBlb2YgX3ByZXZpb3VzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdCh7XG4gICAgICBwYWdlOiB0aGlzLl9wYWdlLFxuICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLml0ZW1zUGVyUGFnZVxuICAgIH0pO1xuICB9XG5cbiAgY29uZmlndXJlT3B0aW9ucyhjb25maWc6IFBhcnRpYWw8Q29uZmlnTW9kZWw+KTogdm9pZCB7XG4gICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBjb25maWcpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmNsYXNzTWFwID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdjbGFzcycpIHx8ICcnO1xuICAgIH1cbiAgICAvLyB3YXRjaCBmb3IgbWF4U2l6ZVxuICAgIGlmICh0eXBlb2YgdGhpcy5tYXhTaXplID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5tYXhTaXplID0gdGhpcy5jb25maWc/Lm1heFNpemUgfHwgMDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMucm90YXRlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5yb3RhdGUgPSAhIXRoaXMuY29uZmlnPy5yb3RhdGU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmJvdW5kYXJ5TGlua3MgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmJvdW5kYXJ5TGlua3MgPSAhIXRoaXMuY29uZmlnPy5ib3VuZGFyeUxpbmtzO1xuICAgIH1cblxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRpcmVjdGlvbkxpbmtzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9ICEhdGhpcy5jb25maWc/LmRpcmVjdGlvbkxpbmtzO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5wYWdlQnRuQ2xhc3MgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnBhZ2VCdG5DbGFzcyA9IHRoaXMuY29uZmlnPy5wYWdlQnRuQ2xhc3MgfHwgJyc7XG4gICAgfVxuXG4gICAgLy8gYmFzZSBjbGFzc1xuICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtc1BlclBhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IHRoaXMuY29uZmlnPy5pdGVtc1BlclBhZ2UgfHwgMDtcbiAgICB9XG5cbiAgICB0aGlzLnRvdGFsUGFnZXMgPSB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcbiAgICAvLyB0aGlzIGNsYXNzXG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuZ2V0UGFnZXModGhpcy5wYWdlLCB0aGlzLnRvdGFsUGFnZXMpO1xuICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZSA9IHZhbHVlO1xuICAgIHRoaXMucGFnZXMgPSB0aGlzLmdldFBhZ2VzKHRoaXMucGFnZSwgdGhpcy50b3RhbFBhZ2VzKTtcbiAgfVxuXG4gIGdldFRleHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmV0dXJuICh0aGlzIGFzIGFueSlbYCR7a2V5fVRleHRgXSB8fCAodGhpcyBhcyBhbnkpLmNvbmZpZ1tgJHtrZXl9VGV4dGBdO1xuICB9XG5cbiAgbm9QcmV2aW91cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlID09PSAxO1xuICB9XG5cbiAgbm9OZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhZ2UgPT09IHRoaXMudG90YWxQYWdlcztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZWxlY3RQYWdlKHBhZ2U6IG51bWJlciwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmIChldmVudCAmJiBldmVudC50YXJnZXQpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIHRhcmdldC5ibHVyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLndyaXRlVmFsdWUocGFnZSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucGFnZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ3JlYXRlIHBhZ2Ugb2JqZWN0IHVzZWQgaW4gdGVtcGxhdGVcbiAgcHJvdGVjdGVkIG1ha2VQYWdlKG51bTogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBib29sZWFuKTogeyBudW1iZXI6IG51bWJlcjsgdGV4dDogc3RyaW5nOyBhY3RpdmU6IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIHsgdGV4dCwgbnVtYmVyOiBudW0sIGFjdGl2ZSB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VzKGN1cnJlbnRQYWdlOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcik6IFBhZ2VzTW9kZWxbXSB7XG4gICAgY29uc3QgcGFnZXM6IFBhZ2VzTW9kZWxbXSA9IFtdO1xuXG4gICAgLy8gRGVmYXVsdCBwYWdlIGxpbWl0c1xuICAgIGxldCBzdGFydFBhZ2UgPSAxO1xuICAgIGxldCBlbmRQYWdlID0gdG90YWxQYWdlcztcbiAgICBjb25zdCBpc01heFNpemVkID1cbiAgICAgIHR5cGVvZiB0aGlzLm1heFNpemUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubWF4U2l6ZSA8IHRvdGFsUGFnZXM7XG5cbiAgICAvLyByZWNvbXB1dGUgaWYgbWF4U2l6ZVxuICAgIGlmIChpc01heFNpemVkICYmIHRoaXMubWF4U2l6ZSkge1xuICAgICAgaWYgKHRoaXMucm90YXRlKSB7XG4gICAgICAgIC8vIEN1cnJlbnQgcGFnZSBpcyBkaXNwbGF5ZWQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgdmlzaWJsZSBvbmVzXG4gICAgICAgIHN0YXJ0UGFnZSA9IE1hdGgubWF4KGN1cnJlbnRQYWdlIC0gTWF0aC5mbG9vcih0aGlzLm1heFNpemUgLyAyKSwgMSk7XG4gICAgICAgIGVuZFBhZ2UgPSBzdGFydFBhZ2UgKyB0aGlzLm1heFNpemUgLSAxO1xuXG4gICAgICAgIC8vIEFkanVzdCBpZiBsaW1pdCBpcyBleGNlZWRlZFxuICAgICAgICBpZiAoZW5kUGFnZSA+IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBlbmRQYWdlID0gdG90YWxQYWdlcztcbiAgICAgICAgICBzdGFydFBhZ2UgPSBlbmRQYWdlIC0gdGhpcy5tYXhTaXplICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVmlzaWJsZSBwYWdlcyBhcmUgcGFnaW5hdGVkIHdpdGggbWF4U2l6ZVxuICAgICAgICBzdGFydFBhZ2UgPVxuICAgICAgICAgIChNYXRoLmNlaWwoY3VycmVudFBhZ2UgLyB0aGlzLm1heFNpemUpIC0gMSkgKiB0aGlzLm1heFNpemUgKyAxO1xuXG4gICAgICAgIC8vIEFkanVzdCBsYXN0IHBhZ2UgaWYgbGltaXQgaXMgZXhjZWVkZWRcbiAgICAgICAgZW5kUGFnZSA9IE1hdGgubWluKHN0YXJ0UGFnZSArIHRoaXMubWF4U2l6ZSAtIDEsIHRvdGFsUGFnZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBwYWdlIG51bWJlciBsaW5rc1xuICAgIGZvciAobGV0IG51bSA9IHN0YXJ0UGFnZTsgbnVtIDw9IGVuZFBhZ2U7IG51bSsrKSB7XG4gICAgICBjb25zdCBwYWdlID0gdGhpcy5tYWtlUGFnZShudW0sIG51bS50b1N0cmluZygpLCBudW0gPT09IGN1cnJlbnRQYWdlKTtcbiAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGxpbmtzIHRvIG1vdmUgYmV0d2VlbiBwYWdlIHNldHNcbiAgICBpZiAoaXNNYXhTaXplZCAmJiAhdGhpcy5yb3RhdGUpIHtcbiAgICAgIGlmIChzdGFydFBhZ2UgPiAxKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZVNldCA9IHRoaXMubWFrZVBhZ2Uoc3RhcnRQYWdlIC0gMSwgJy4uLicsIGZhbHNlKTtcbiAgICAgICAgcGFnZXMudW5zaGlmdChwcmV2aW91c1BhZ2VTZXQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5kUGFnZSA8IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgY29uc3QgbmV4dFBhZ2VTZXQgPSB0aGlzLm1ha2VQYWdlKGVuZFBhZ2UgKyAxLCAnLi4uJywgZmFsc2UpO1xuICAgICAgICBwYWdlcy5wdXNoKG5leHRQYWdlU2V0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFnZXM7XG4gIH1cblxuICAvLyBiYXNlIGNsYXNzXG4gIHByb3RlY3RlZCBjYWxjdWxhdGVUb3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWxQYWdlcyA9XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA8IDFcbiAgICAgICAgPyAxXG4gICAgICAgIDogTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMuaXRlbXNQZXJQYWdlKTtcblxuICAgIHJldHVybiBNYXRoLm1heCh0b3RhbFBhZ2VzIHx8IDAsIDEpO1xuICB9XG59XG4iLCI8dWwgY2xhc3M9XCJwYWdlclwiPlxuICA8bGkgW2NsYXNzLmRpc2FibGVkXT1cIm5vUHJldmlvdXMoKVwiIFtjbGFzcy5wcmV2aW91c109XCJhbGlnblwiXG4gICAgICBbbmdDbGFzc109XCJ7J3B1bGwtbGVmdCc6IGFsaWduLCAnZmxvYXQtbGVmdCc6IGFsaWdufVwiXG4gICAgICBjbGFzcz1cInt7IHBhZ2VCdG5DbGFzcyB9fVwiPlxuICAgIDxhIGhyZWYgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZSAtIDEsICRldmVudClcIj57eyBnZXRUZXh0KCdwcmV2aW91cycpIH19PC9hPlxuICA8L2xpPlxuICA8bGkgW2NsYXNzLmRpc2FibGVkXT1cIm5vTmV4dCgpXCIgW2NsYXNzLm5leHRdPVwiYWxpZ25cIlxuICAgICAgW25nQ2xhc3NdPVwieydwdWxsLXJpZ2h0JzogYWxpZ24sICdmbG9hdC1yaWdodCc6IGFsaWdufVwiXG4gICAgICBjbGFzcz1cInt7IHBhZ2VCdG5DbGFzcyB9fVwiPlxuICAgIDxhIGhyZWYgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZSArIDEsICRldmVudClcIj57eyBnZXRUZXh0KCduZXh0JykgfX08L2E+XG4gIDwvbGk+XG48L3VsPlxuIl19","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, TemplateRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PaginationConfig } from './pagination.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./pagination.config\";\nimport * as i2 from \"@angular/common\";\nexport const PAGINATION_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PaginationComponent),\n multi: true\n};\nexport class PaginationComponent {\n constructor(elementRef, paginationConfig, changeDetection) {\n this.elementRef = elementRef;\n this.changeDetection = changeDetection;\n /** if `true` aligns each link to the sides of pager */\n this.align = true;\n /** if false first and last buttons will be hidden */\n this.boundaryLinks = false;\n /** if false previous and next buttons will be hidden */\n this.directionLinks = true;\n /** if true current page will in the middle of pages list */\n this.rotate = true;\n // css\n /** add class to <code><li\\></code> */\n this.pageBtnClass = '';\n /** if true pagination component will be disabled */\n this.disabled = false;\n /** fired when total pages count changes, $event:number equals to total pages count */\n this.numPages = new EventEmitter();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to object\n * with current page index and number of items per page\n */\n this.pageChanged = new EventEmitter();\n this.onChange = Function.prototype;\n this.onTouched = Function.prototype;\n this.classMap = '';\n this.inited = false;\n this._itemsPerPage = 10;\n this._totalItems = 0;\n this._totalPages = 0;\n this._page = 1;\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(paginationConfig.main);\n }\n }\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n get itemsPerPage() {\n return this._itemsPerPage;\n }\n set itemsPerPage(v) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n /** total number of items in all pages */\n get totalItems() {\n return this._totalItems;\n }\n set totalItems(v) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n get totalPages() {\n return this._totalPages;\n }\n set totalPages(v) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n get page() {\n return this._page;\n }\n set page(value) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n configureOptions(config) {\n this.config = Object.assign({}, config);\n }\n ngOnInit() {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n // watch for maxSize\n if (typeof this.maxSize === 'undefined') {\n this.maxSize = this.config?.maxSize || 0;\n }\n if (typeof this.rotate === 'undefined') {\n this.rotate = !!this.config?.rotate;\n }\n if (typeof this.boundaryLinks === 'undefined') {\n this.boundaryLinks = !!this.config?.boundaryLinks;\n }\n if (typeof this.directionLinks === 'undefined') {\n this.directionLinks = !!this.config?.directionLinks;\n }\n if (typeof this.pageBtnClass === 'undefined') {\n this.pageBtnClass = this.config?.pageBtnClass || '';\n }\n // base class\n if (typeof this.itemsPerPage === 'undefined') {\n this.itemsPerPage = this.config?.itemsPerPage || 0;\n }\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n writeValue(value) {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n getText(key) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this[`${key}Text`] || this.config[`${key}Text`];\n }\n noPrevious() {\n return this.page === 1;\n }\n noNext() {\n return this.page === this.totalPages;\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n selectPage(page, event) {\n if (event) {\n event.preventDefault();\n }\n if (!this.disabled) {\n if (event && event.target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const target = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n // Create page object used in template\n makePage(num, text, active) {\n return { text, number: num, active };\n }\n getPages(currentPage, totalPages) {\n const pages = [];\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized = typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n // recompute if maxSize\n if (isMaxSized && this.maxSize) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n }\n else {\n // Visible pages are paginated with maxSize\n startPage =\n (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n return pages;\n }\n // base class\n calculateTotalPages() {\n const totalPages = this.itemsPerPage < 1\n ? 1\n : Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(totalPages || 0, 1);\n }\n}\nPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationComponent, deps: [{ token: i0.ElementRef }, { token: i1.PaginationConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: PaginationComponent, selector: \"pagination\", inputs: { align: \"align\", maxSize: \"maxSize\", boundaryLinks: \"boundaryLinks\", directionLinks: \"directionLinks\", firstText: \"firstText\", previousText: \"previousText\", nextText: \"nextText\", lastText: \"lastText\", rotate: \"rotate\", pageBtnClass: \"pageBtnClass\", disabled: \"disabled\", customPageTemplate: \"customPageTemplate\", customNextTemplate: \"customNextTemplate\", customPreviousTemplate: \"customPreviousTemplate\", customFirstTemplate: \"customFirstTemplate\", customLastTemplate: \"customLastTemplate\", itemsPerPage: \"itemsPerPage\", totalItems: \"totalItems\" }, outputs: { numPages: \"numPages\", pageChanged: \"pageChanged\" }, providers: [PAGINATION_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: \"<ul class=\\\"pagination\\\" [ngClass]=\\\"classMap\\\">\\n <li class=\\\"pagination-first page-item\\\"\\n *ngIf=\\\"boundaryLinks\\\"\\n [class.disabled]=\\\"noPrevious() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(1, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customFirstTemplate || defaultFirstTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noPrevious() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li class=\\\"pagination-prev page-item\\\"\\n *ngIf=\\\"directionLinks\\\"\\n [class.disabled]=\\\"noPrevious() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(page - 1, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customPreviousTemplate || defaultPreviousTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noPrevious() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li *ngFor=\\\"let pg of pages\\\"\\n [class.active]=\\\"pg.active\\\"\\n [class.disabled]=\\\"disabled && !pg.active\\\"\\n class=\\\"pagination-page page-item\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(pg.number, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customPageTemplate || defaultPageTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: disabled, $implicit: pg, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li class=\\\"pagination-next page-item\\\"\\n *ngIf=\\\"directionLinks\\\"\\n [class.disabled]=\\\"noNext() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(page + 1, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customNextTemplate || defaultNextTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noNext() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li class=\\\"pagination-last page-item\\\"\\n *ngIf=\\\"boundaryLinks\\\"\\n [class.disabled]=\\\"noNext() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(totalPages, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customLastTemplate || defaultLastTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noNext() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n</ul>\\n\\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\\n\\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\\n\\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\\n\\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\\n\\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { 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: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'pagination', providers: [PAGINATION_CONTROL_VALUE_ACCESSOR], template: \"<ul class=\\\"pagination\\\" [ngClass]=\\\"classMap\\\">\\n <li class=\\\"pagination-first page-item\\\"\\n *ngIf=\\\"boundaryLinks\\\"\\n [class.disabled]=\\\"noPrevious() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(1, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customFirstTemplate || defaultFirstTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noPrevious() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li class=\\\"pagination-prev page-item\\\"\\n *ngIf=\\\"directionLinks\\\"\\n [class.disabled]=\\\"noPrevious() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(page - 1, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customPreviousTemplate || defaultPreviousTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noPrevious() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li *ngFor=\\\"let pg of pages\\\"\\n [class.active]=\\\"pg.active\\\"\\n [class.disabled]=\\\"disabled && !pg.active\\\"\\n class=\\\"pagination-page page-item\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(pg.number, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customPageTemplate || defaultPageTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: disabled, $implicit: pg, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li class=\\\"pagination-next page-item\\\"\\n *ngIf=\\\"directionLinks\\\"\\n [class.disabled]=\\\"noNext() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(page + 1, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customNextTemplate || defaultNextTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noNext() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n\\n <li class=\\\"pagination-last page-item\\\"\\n *ngIf=\\\"boundaryLinks\\\"\\n [class.disabled]=\\\"noNext() || disabled\\\">\\n <a class=\\\"page-link\\\" href (click)=\\\"selectPage(totalPages, $event)\\\">\\n <ng-container [ngTemplateOutlet]=\\\"customLastTemplate || defaultLastTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{disabled: noNext() || disabled, currentPage: page}\\\">\\n </ng-container>\\n </a>\\n </li>\\n</ul>\\n\\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\\n\\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\\n\\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\\n\\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\\n\\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\\n\" }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PaginationConfig }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { align: [{\n type: Input\n }], maxSize: [{\n type: Input\n }], boundaryLinks: [{\n type: Input\n }], directionLinks: [{\n type: Input\n }], firstText: [{\n type: Input\n }], previousText: [{\n type: Input\n }], nextText: [{\n type: Input\n }], lastText: [{\n type: Input\n }], rotate: [{\n type: Input\n }], pageBtnClass: [{\n type: Input\n }], disabled: [{\n type: Input\n }], customPageTemplate: [{\n type: Input\n }], customNextTemplate: [{\n type: Input\n }], customPreviousTemplate: [{\n type: Input\n }], customFirstTemplate: [{\n type: Input\n }], customLastTemplate: [{\n type: Input\n }], numPages: [{\n type: Output\n }], pageChanged: [{\n type: Output\n }], itemsPerPage: [{\n type: Input\n }], totalItems: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFFTixXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBT3ZELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFhO0lBQ3pELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztJQUNsRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFPRixNQUFNLE9BQU8sbUJBQW1CO0lBaUQ5QixZQUNVLFVBQXNCLEVBQzlCLGdCQUFrQyxFQUMxQixlQUFrQztRQUZsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQWxENUMsdURBQXVEO1FBQzlDLFVBQUssR0FBRyxJQUFJLENBQUM7UUFHdEIscURBQXFEO1FBQzVDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQy9CLHdEQUF3RDtRQUMvQyxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVUvQiw0REFBNEQ7UUFDbkQsV0FBTSxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNO1FBQ04sc0NBQXNDO1FBQzdCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzNCLG9EQUFvRDtRQUMzQyxh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b21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBQcm92aWRlcixcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25maWdNb2RlbCwgUGFnZXNNb2RlbCwgUGFnaW5hdGlvbkxpbmtDb250ZXh0LCBQYWdpbmF0aW9uTnVtYmVyTGlua0NvbnRleHQgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IFBhZ2luYXRpb25Db25maWcgfSBmcm9tICcuL3BhZ2luYXRpb24uY29uZmlnJztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdlQ2hhbmdlZEV2ZW50IHtcbiAgaXRlbXNQZXJQYWdlOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYWdpbmF0aW9uQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1BBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBjb25maWc/OiBQYXJ0aWFsPENvbmZpZ01vZGVsPjtcbiAgLyoqIGlmIGB0cnVlYCBhbGlnbnMgZWFjaCBsaW5rIHRvIHRoZSBzaWRlcyBvZiBwYWdlciAqL1xuICBASW5wdXQoKSBhbGlnbiA9IHRydWU7XG4gIC8qKiBsaW1pdCBudW1iZXIgZm9yIHBhZ2UgbGlua3MgaW4gcGFnZXIgKi9cbiAgQElucHV0KCkgbWF4U2l6ZT86IG51bWJlcjtcbiAgLyoqIGlmIGZhbHNlIGZpcnN0IGFuZCBsYXN0IGJ1dHRvbnMgd2lsbCBiZSBoaWRkZW4gKi9cbiAgQElucHV0KCkgYm91bmRhcnlMaW5rcyA9IGZhbHNlO1xuICAvKiogaWYgZmFsc2UgcHJldmlvdXMgYW5kIG5leHQgYnV0dG9ucyB3aWxsIGJlIGhpZGRlbiAqL1xuICBASW5wdXQoKSBkaXJlY3Rpb25MaW5rcyA9IHRydWU7XG4gIC8vIGxhYmVsc1xuICAvKiogZmlyc3QgYnV0dG9uIHRleHQgKi9cbiAgQElucHV0KCkgZmlyc3RUZXh0Pzogc3RyaW5nO1xuICAvKiogcHJldmlvdXMgYnV0dG9uIHRleHQgKi9cbiAgQElucHV0KCkgcHJldmlvdXNUZXh0Pzogc3RyaW5nO1xuICAvKiogbmV4dCBidXR0b24gdGV4dCAqL1xuICBASW5wdXQoKSBuZXh0VGV4dD86IHN0cmluZztcbiAgLyoqIGxhc3QgYnV0dG9uIHRleHQgKi9cbiAgQElucHV0KCkgbGFzdFRleHQ/OiBzdHJpbmc7XG4gIC8qKiBpZiB0cnVlIGN1cnJlbnQgcGFnZSB3aWxsIGluIHRoZSBtaWRkbGUgb2YgcGFnZXMgbGlzdCAqL1xuICBASW5wdXQoKSByb3RhdGUgPSB0cnVlO1xuICAvLyBjc3NcbiAgLyoqIGFkZCBjbGFzcyB0byA8Y29kZT48bGlcXD48L2NvZGU+ICovXG4gIEBJbnB1dCgpIHBhZ2VCdG5DbGFzcyA9ICcnO1xuICAvKiogaWYgdHJ1ZSBwYWdpbmF0aW9uIGNvbXBvbmVudCB3aWxsIGJlIGRpc2FibGVkICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKiBjdXN0b20gdGVtcGxhdGUgZm9yIHBhZ2UgbGluayAqL1xuICBASW5wdXQoKSBjdXN0b21QYWdlVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxQYWdpbmF0aW9uTnVtYmVyTGlua0NvbnRleHQ+O1xuICAvKiogY3VzdG9tIHRlbXBsYXRlIGZvciBuZXh0IGxpbmsgKi9cbiAgQElucHV0KCkgY3VzdG9tTmV4dFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkxpbmtDb250ZXh0PjtcbiAgLyoqIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgcHJldmlvdXMgbGluayAqL1xuICBASW5wdXQoKSBjdXN0b21QcmV2aW91c1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkxpbmtDb250ZXh0PjtcbiAgLyoqIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgZmlyc3QgbGluayAqL1xuICBASW5wdXQoKSBjdXN0b21GaXJzdFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkxpbmtDb250ZXh0PjtcbiAgLyoqIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgbGFzdCBsaW5rICovXG4gIEBJbnB1dCgpIGN1c3RvbUxhc3RUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPFBhZ2luYXRpb25MaW5rQ29udGV4dD47XG5cbiAgLyoqIGZpcmVkIHdoZW4gdG90YWwgcGFnZXMgY291bnQgY2hhbmdlcywgJGV2ZW50Om51bWJlciBlcXVhbHMgdG8gdG90YWwgcGFnZXMgY291bnQgKi9cbiAgQE91dHB1dCgpIG51bVBhZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIC8qKiBmaXJlZCB3aGVuIHBhZ2Ugd2FzIGNoYW5nZWQsICRldmVudDp7cGFnZSwgaXRlbXNQZXJQYWdlfSBlcXVhbHMgdG8gb2JqZWN0XG4gICAqIHdpdGggY3VycmVudCBwYWdlIGluZGV4IGFuZCBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2VcbiAgICovXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUNoYW5nZWRFdmVudD4oKTtcbiAgb25DaGFuZ2UgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIG9uVG91Y2hlZCA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbiAgY2xhc3NNYXAgPSAnJztcbiAgcGFnZXM/OiBQYWdlc01vZGVsW107XG4gIHByb3RlY3RlZCBpbml0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbkNvbmZpZyxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLmNvbmZpZ3VyZU9wdGlvbnMocGFnaW5hdGlvbkNvbmZpZy5tYWluKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2l0ZW1zUGVyUGFnZSA9IDEwO1xuXG4gIC8qKiBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS4gSWYgdmFsdWUgbGVzcyB0aGFuIDEgd2lsbCBkaXNwbGF5IGFsbCBpdGVtcyBvbiBvbmUgcGFnZSAqL1xuICBASW5wdXQoKVxuICBnZXQgaXRlbXNQZXJQYWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZTtcbiAgfVxuXG4gIHNldCBpdGVtc1BlclBhZ2UodjogbnVtYmVyKSB7XG4gICAgdGhpcy5faXRlbXNQZXJQYWdlID0gdjtcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdG90YWxJdGVtcyA9IDA7XG5cbiAgLyoqIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpbiBhbGwgcGFnZXMgKi9cbiAgQElucHV0KClcbiAgZ2V0IHRvdGFsSXRlbXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWxJdGVtcztcbiAgfVxuXG4gIHNldCB0b3RhbEl0ZW1zKHY6IG51bWJlcikge1xuICAgIHRoaXMuX3RvdGFsSXRlbXMgPSB2O1xuICAgIHRoaXMudG90YWxQYWdlcyA9IHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF90b3RhbFBhZ2VzID0gMDtcblxuICBnZXQgdG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzO1xuICB9XG5cbiAgc2V0IHRvdGFsUGFnZXModjogbnVtYmVyKSB7XG4gICAgdGhpcy5fdG90YWxQYWdlcyA9IHY7XG4gICAgdGhpcy5udW1QYWdlcy5lbWl0KHYpO1xuICAgIGlmICh0aGlzLmluaXRlZCkge1xuICAgICAgdGhpcy5zZWxlY3RQYWdlKHRoaXMucGFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9wYWdlID0gMTtcblxuICBnZXQgcGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICB9XG5cbiAgc2V0IHBhZ2UodmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IF9wcmV2aW91cyA9IHRoaXMuX3BhZ2U7XG4gICAgdGhpcy5fcGFnZSA9IHZhbHVlID4gdGhpcy50b3RhbFBhZ2VzID8gdGhpcy50b3RhbFBhZ2VzIDogdmFsdWUgfHwgMTtcbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcblxuICAgIGlmIChfcHJldmlvdXMgPT09IHRoaXMuX3BhZ2UgfHwgdHlwZW9mIF9wcmV2aW91cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoe1xuICAgICAgcGFnZTogdGhpcy5fcGFnZSxcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5pdGVtc1BlclBhZ2VcbiAgICB9KTtcbiAgfVxuXG4gIGNvbmZpZ3VyZU9wdGlvbnMoY29uZmlnOiBQYXJ0aWFsPENvbmZpZ01vZGVsPik6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5jbGFzc01hcCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnY2xhc3MnKSB8fCAnJztcbiAgICB9XG5cbiAgICAvLyB3YXRjaCBmb3IgbWF4U2l6ZVxuICAgIGlmICh0eXBlb2YgdGhpcy5tYXhTaXplID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5tYXhTaXplID0gdGhpcy5jb25maWc/Lm1heFNpemUgfHwgMDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMucm90YXRlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5yb3RhdGUgPSAhIXRoaXMuY29uZmlnPy5yb3RhdGU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmJvdW5kYXJ5TGlua3MgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmJvdW5kYXJ5TGlua3MgPSAhIXRoaXMuY29uZmlnPy5ib3VuZGFyeUxpbmtzO1xuICAgIH1cblxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRpcmVjdGlvbkxpbmtzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9ICEhdGhpcy5jb25maWc/LmRpcmVjdGlvbkxpbmtzO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5wYWdlQnRuQ2xhc3MgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnBhZ2VCdG5DbGFzcyA9IHRoaXMuY29uZmlnPy5wYWdlQnRuQ2xhc3MgfHwgJyc7XG4gICAgfVxuXG4gICAgLy8gYmFzZSBjbGFzc1xuICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtc1BlclBhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IHRoaXMuY29uZmlnPy5pdGVtc1BlclBhZ2UgfHwgMDtcbiAgICB9XG5cbiAgICB0aGlzLnRvdGFsUGFnZXMgPSB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcbiAgICAvLyB0aGlzIGNsYXNzXG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuZ2V0UGFnZXModGhpcy5wYWdlLCB0aGlzLnRvdGFsUGFnZXMpO1xuICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZSA9IHZhbHVlO1xuICAgIHRoaXMucGFnZXMgPSB0aGlzLmdldFBhZ2VzKHRoaXMucGFnZSwgdGhpcy50b3RhbFBhZ2VzKTtcbiAgfVxuXG4gIGdldFRleHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmV0dXJuICh0aGlzIGFzIGFueSlbYCR7a2V5fVRleHRgXSB8fCAodGhpcyBhcyBhbnkpLmNvbmZpZ1tgJHtrZXl9VGV4dGBdO1xuICB9XG5cbiAgbm9QcmV2aW91cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlID09PSAxO1xuICB9XG5cbiAgbm9OZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhZ2UgPT09IHRoaXMudG90YWxQYWdlcztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZWxlY3RQYWdlKHBhZ2U6IG51bWJlciwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmIChldmVudCAmJiBldmVudC50YXJnZXQpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIHRhcmdldC5ibHVyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLndyaXRlVmFsdWUocGFnZSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucGFnZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ3JlYXRlIHBhZ2Ugb2JqZWN0IHVzZWQgaW4gdGVtcGxhdGVcbiAgcHJvdGVjdGVkIG1ha2VQYWdlKFxuICAgIG51bTogbnVtYmVyLFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBhY3RpdmU6IGJvb2xlYW5cbiAgKTogeyBudW1iZXI6IG51bWJlcjsgdGV4dDogc3RyaW5nOyBhY3RpdmU6IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIHsgdGV4dCwgbnVtYmVyOiBudW0sIGFjdGl2ZSB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VzKGN1cnJlbnRQYWdlOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcik6IFBhZ2VzTW9kZWxbXSB7XG4gICAgY29uc3QgcGFnZXM6IFBhZ2VzTW9kZWxbXSA9IFtdO1xuXG4gICAgLy8gRGVmYXVsdCBwYWdlIGxpbWl0c1xuICAgIGxldCBzdGFydFBhZ2UgPSAxO1xuICAgIGxldCBlbmRQYWdlID0gdG90YWxQYWdlcztcbiAgICBjb25zdCBpc01heFNpemVkID1cbiAgICAgIHR5cGVvZiB0aGlzLm1heFNpemUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubWF4U2l6ZSA8IHRvdGFsUGFnZXM7XG5cbiAgICAvLyByZWNvbXB1dGUgaWYgbWF4U2l6ZVxuICAgIGlmIChpc01heFNpemVkICYmIHRoaXMubWF4U2l6ZSkge1xuICAgICAgaWYgKHRoaXMucm90YXRlKSB7XG4gICAgICAgIC8vIEN1cnJlbnQgcGFnZSBpcyBkaXNwbGF5ZWQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgdmlzaWJsZSBvbmVzXG4gICAgICAgIHN0YXJ0UGFnZSA9IE1hdGgubWF4KGN1cnJlbnRQYWdlIC0gTWF0aC5mbG9vcih0aGlzLm1heFNpemUgLyAyKSwgMSk7XG4gICAgICAgIGVuZFBhZ2UgPSBzdGFydFBhZ2UgKyB0aGlzLm1heFNpemUgLSAxO1xuXG4gICAgICAgIC8vIEFkanVzdCBpZiBsaW1pdCBpcyBleGNlZWRlZFxuICAgICAgICBpZiAoZW5kUGFnZSA+IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBlbmRQYWdlID0gdG90YWxQYWdlcztcbiAgICAgICAgICBzdGFydFBhZ2UgPSBlbmRQYWdlIC0gdGhpcy5tYXhTaXplICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVmlzaWJsZSBwYWdlcyBhcmUgcGFnaW5hdGVkIHdpdGggbWF4U2l6ZVxuICAgICAgICBzdGFydFBhZ2UgPVxuICAgICAgICAgIChNYXRoLmNlaWwoY3VycmVudFBhZ2UgLyB0aGlzLm1heFNpemUpIC0gMSkgKiB0aGlzLm1heFNpemUgKyAxO1xuXG4gICAgICAgIC8vIEFkanVzdCBsYXN0IHBhZ2UgaWYgbGltaXQgaXMgZXhjZWVkZWRcbiAgICAgICAgZW5kUGFnZSA9IE1hdGgubWluKHN0YXJ0UGFnZSArIHRoaXMubWF4U2l6ZSAtIDEsIHRvdGFsUGFnZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBwYWdlIG51bWJlciBsaW5rc1xuICAgIGZvciAobGV0IG51bSA9IHN0YXJ0UGFnZTsgbnVtIDw9IGVuZFBhZ2U7IG51bSsrKSB7XG4gICAgICBjb25zdCBwYWdlID0gdGhpcy5tYWtlUGFnZShudW0sIG51bS50b1N0cmluZygpLCBudW0gPT09IGN1cnJlbnRQYWdlKTtcbiAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGxpbmtzIHRvIG1vdmUgYmV0d2VlbiBwYWdlIHNldHNcbiAgICBpZiAoaXNNYXhTaXplZCAmJiAhdGhpcy5yb3RhdGUpIHtcbiAgICAgIGlmIChzdGFydFBhZ2UgPiAxKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZVNldCA9IHRoaXMubWFrZVBhZ2Uoc3RhcnRQYWdlIC0gMSwgJy4uLicsIGZhbHNlKTtcbiAgICAgICAgcGFnZXMudW5zaGlmdChwcmV2aW91c1BhZ2VTZXQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5kUGFnZSA8IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgY29uc3QgbmV4dFBhZ2VTZXQgPSB0aGlzLm1ha2VQYWdlKGVuZFBhZ2UgKyAxLCAnLi4uJywgZmFsc2UpO1xuICAgICAgICBwYWdlcy5wdXNoKG5leHRQYWdlU2V0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFnZXM7XG4gIH1cblxuICAvLyBiYXNlIGNsYXNzXG4gIHByb3RlY3RlZCBjYWxjdWxhdGVUb3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWxQYWdlcyA9XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA8IDFcbiAgICAgICAgPyAxXG4gICAgICAgIDogTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMuaXRlbXNQZXJQYWdlKTtcblxuICAgIHJldHVybiBNYXRoLm1heCh0b3RhbFBhZ2VzIHx8IDAsIDEpO1xuICB9XG59XG4iLCI8dWwgY2xhc3M9XCJwYWdpbmF0aW9uXCIgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIj5cbiAgPGxpIGNsYXNzPVwicGFnaW5hdGlvbi1maXJzdCBwYWdlLWl0ZW1cIlxuICAgICAgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJub1ByZXZpb3VzKCkgfHwgZGlzYWJsZWRcIj5cbiAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWYgKGNsaWNrKT1cInNlbGVjdFBhZ2UoMSwgJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21GaXJzdFRlbXBsYXRlIHx8IGRlZmF1bHRGaXJzdFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2Rpc2FibGVkOiBub1ByZXZpb3VzKCkgfHwgZGlzYWJsZWQsIGN1cnJlbnRQYWdlOiBwYWdlfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuICA8L2xpPlxuXG4gIDxsaSBjbGFzcz1cInBhZ2luYXRpb24tcHJldiBwYWdlLWl0ZW1cIlxuICAgICAgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibm9QcmV2aW91cygpIHx8IGRpc2FibGVkXCI+XG4gICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmIChjbGljayk9XCJzZWxlY3RQYWdlKHBhZ2UgLSAxLCAkZXZlbnQpXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbVByZXZpb3VzVGVtcGxhdGUgfHwgZGVmYXVsdFByZXZpb3VzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ZGlzYWJsZWQ6IG5vUHJldmlvdXMoKSB8fCBkaXNhYmxlZCwgY3VycmVudFBhZ2U6IHBhZ2V9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIDwvbGk+XG5cbiAgPGxpICpuZ0Zvcj1cImxldCBwZyBvZiBwYWdlc1wiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cInBnLmFjdGl2ZVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgJiYgIXBnLmFjdGl2ZVwiXG4gICAgICBjbGFzcz1cInBhZ2luYXRpb24tcGFnZSBwYWdlLWl0ZW1cIj5cbiAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWYgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGcubnVtYmVyLCAkZXZlbnQpXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbVBhZ2VUZW1wbGF0ZSB8fCBkZWZhdWx0UGFnZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2Rpc2FibGVkOiBkaXNhYmxlZCwgJGltcGxpY2l0OiBwZywgY3VycmVudFBhZ2U6IHBhZ2V9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIDwvbGk+XG5cbiAgPGxpIGNsYXNzPVwicGFnaW5hdGlvbi1uZXh0IHBhZ2UtaXRlbVwiXG4gICAgICAqbmdJZj1cImRpcmVjdGlvbkxpbmtzXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJub05leHQoKSB8fCBkaXNhYmxlZFwiPlxuICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlICsgMSwgJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21OZXh0VGVtcGxhdGUgfHwgZGVmYXVsdE5leHRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntkaXNhYmxlZDogbm9OZXh0KCkgfHwgZGlzYWJsZWQsIGN1cnJlbnRQYWdlOiBwYWdlfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuICA8L2xpPlxuXG4gIDxsaSBjbGFzcz1cInBhZ2luYXRpb24tbGFzdCBwYWdlLWl0ZW1cIlxuICAgICAgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJub05leHQoKSB8fCBkaXNhYmxlZFwiPlxuICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZiAoY2xpY2spPVwic2VsZWN0UGFnZSh0b3RhbFBhZ2VzLCAkZXZlbnQpXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUxhc3RUZW1wbGF0ZSB8fCBkZWZhdWx0TGFzdFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2Rpc2FibGVkOiBub05leHQoKSB8fCBkaXNhYmxlZCwgY3VycmVudFBhZ2U6IHBhZ2V9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIDwvbGk+XG48L3VsPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRQYWdlVGVtcGxhdGUgbGV0LXBhZ2U+e3sgcGFnZS50ZXh0IH19PC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TmV4dFRlbXBsYXRlPnt7IGdldFRleHQoJ25leHQnKSB9fTwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFByZXZpb3VzVGVtcGxhdGU+e3sgZ2V0VGV4dCgncHJldmlvdXMnKSB9fTwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZpcnN0VGVtcGxhdGU+e3sgZ2V0VGV4dCgnZmlyc3QnKSB9fTwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdExhc3RUZW1wbGF0ZT57eyBnZXRUZXh0KCdsYXN0JykgfX08L25nLXRlbXBsYXRlPlxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PagerComponent } from './pager.component';\nimport { PaginationComponent } from './pagination.component';\nimport * as i0 from \"@angular/core\";\nexport class PaginationModule {\n static forRoot() {\n return { ngModule: PaginationModule, providers: [] };\n }\n}\nPaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationModule, declarations: [PagerComponent, PaginationComponent], imports: [CommonModule], exports: [PagerComponent, PaginationComponent] });\nPaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: PaginationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [PagerComponent, PaginationComponent],\n exports: [PagerComponent, PaginationComponent]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQU83RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDdkQsQ0FBQzs7NkdBSFUsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBSFosY0FBYyxFQUFFLG1CQUFtQixhQUR4QyxZQUFZLGFBRVosY0FBYyxFQUFFLG1CQUFtQjs4R0FFbEMsZ0JBQWdCLFlBSmpCLFlBQVk7MkZBSVgsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDO29CQUNuRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBhZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbUGFnZXJDb21wb25lbnQsIFBhZ2luYXRpb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbUGFnZXJDb21wb25lbnQsIFBhZ2luYXRpb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBhZ2luYXRpb25Nb2R1bGU+IHtcbiAgICByZXR1cm4geyBuZ01vZHVsZTogUGFnaW5hdGlvbk1vZHVsZSwgcHJvdmlkZXJzOiBbXSB9O1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC1wYWdpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2luYXRpb24vbmd4LWJvb3RzdHJhcC1wYWdpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.PaginationConfig"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/pagination",
3
- "version": "9.0.0",
3
+ "version": "10.1.0",
4
4
  "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
5
  "license": "MIT",
6
6
  "module": "fesm2015/ngx-bootstrap-pagination.mjs",
@@ -27,8 +27,8 @@
27
27
  "tslib": "^2.3.0"
28
28
  },
29
29
  "peerDependencies": {
30
- "@angular/core": "14.0.6",
31
- "@angular/forms": "14.0.6",
32
- "@angular/common": "14.0.6"
30
+ "@angular/core": "15.0.3",
31
+ "@angular/forms": "15.0.3",
32
+ "@angular/common": "15.0.3"
33
33
  }
34
34
  }
@@ -74,5 +74,5 @@ export declare class PagerComponent implements ControlValueAccessor, OnInit {
74
74
  protected getPages(currentPage: number, totalPages: number): PagesModel[];
75
75
  protected calculateTotalPages(): number;
76
76
  static ɵfac: i0.ɵɵFactoryDeclaration<PagerComponent, never>;
77
- static ɵcmp: i0.ɵɵComponentDeclaration<PagerComponent, "pager", never, { "align": "align"; "maxSize": "maxSize"; "boundaryLinks": "boundaryLinks"; "directionLinks": "directionLinks"; "firstText": "firstText"; "previousText": "previousText"; "nextText": "nextText"; "lastText": "lastText"; "rotate": "rotate"; "pageBtnClass": "pageBtnClass"; "disabled": "disabled"; "itemsPerPage": "itemsPerPage"; "totalItems": "totalItems"; }, { "numPages": "numPages"; "pageChanged": "pageChanged"; }, never, never, false>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<PagerComponent, "pager", never, { "align": "align"; "maxSize": "maxSize"; "boundaryLinks": "boundaryLinks"; "directionLinks": "directionLinks"; "firstText": "firstText"; "previousText": "previousText"; "nextText": "nextText"; "lastText": "lastText"; "rotate": "rotate"; "pageBtnClass": "pageBtnClass"; "disabled": "disabled"; "itemsPerPage": "itemsPerPage"; "totalItems": "totalItems"; }, { "numPages": "numPages"; "pageChanged": "pageChanged"; }, never, never, false, never>;
78
78
  }
@@ -87,5 +87,5 @@ export declare class PaginationComponent implements ControlValueAccessor, OnInit
87
87
  protected getPages(currentPage: number, totalPages: number): PagesModel[];
88
88
  protected calculateTotalPages(): number;
89
89
  static ɵfac: i0.ɵɵFactoryDeclaration<PaginationComponent, never>;
90
- static ɵcmp: i0.ɵɵComponentDeclaration<PaginationComponent, "pagination", never, { "align": "align"; "maxSize": "maxSize"; "boundaryLinks": "boundaryLinks"; "directionLinks": "directionLinks"; "firstText": "firstText"; "previousText": "previousText"; "nextText": "nextText"; "lastText": "lastText"; "rotate": "rotate"; "pageBtnClass": "pageBtnClass"; "disabled": "disabled"; "customPageTemplate": "customPageTemplate"; "customNextTemplate": "customNextTemplate"; "customPreviousTemplate": "customPreviousTemplate"; "customFirstTemplate": "customFirstTemplate"; "customLastTemplate": "customLastTemplate"; "itemsPerPage": "itemsPerPage"; "totalItems": "totalItems"; }, { "numPages": "numPages"; "pageChanged": "pageChanged"; }, never, never, false>;
90
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaginationComponent, "pagination", never, { "align": "align"; "maxSize": "maxSize"; "boundaryLinks": "boundaryLinks"; "directionLinks": "directionLinks"; "firstText": "firstText"; "previousText": "previousText"; "nextText": "nextText"; "lastText": "lastText"; "rotate": "rotate"; "pageBtnClass": "pageBtnClass"; "disabled": "disabled"; "customPageTemplate": "customPageTemplate"; "customNextTemplate": "customNextTemplate"; "customPreviousTemplate": "customPreviousTemplate"; "customFirstTemplate": "customFirstTemplate"; "customLastTemplate": "customLastTemplate"; "itemsPerPage": "itemsPerPage"; "totalItems": "totalItems"; }, { "numPages": "numPages"; "pageChanged": "pageChanged"; }, never, never, false, never>;
91
91
  }
@@ -26,9 +26,9 @@ export class PopoverContainerComponent {
26
26
  return checkMargins(this._placement);
27
27
  }
28
28
  }
29
- PopoverContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverContainerComponent, deps: [{ token: i1.PopoverConfig }], target: i0.ɵɵFactoryTarget.Component });
30
- PopoverContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PopoverContainerComponent, selector: "popover-container", inputs: { placement: "placement", title: "title" }, host: { attributes: { "role": "tooltip" }, properties: { "attr.id": "popoverId", "class": "\"popover in popover-\" + _placement + \" \" + \"bs-popover-\" + _placement + \" \" + _placement + \" \" + containerClass + \" \" + checkMarginNecessity()", "class.show": "!_bsVersions.isBs3", "class.bs3": "_bsVersions.isBs3" }, styleAttribute: "display:block;" }, ngImport: i0, template: "<div class=\"popover-arrow arrow\"></div>\n<h3 class=\"popover-title popover-header\" *ngIf=\"title\">{{ title }}</h3>\n<div class=\"popover-content popover-body\">\n <ng-content></ng-content>\n</div>\n", styles: [":host.bs3.popover-top{margin-bottom:10px}:host.bs3.popover.top>.arrow{margin-left:-2px}:host.bs3.popover.top{margin-bottom:10px}:host.popover.bottom>.arrow{margin-left:-4px}:host.bs3.bs-popover-left{margin-right:.5rem}:host.bs3.bs-popover-right .arrow,:host.bs3.bs-popover-left .arrow{margin:.3rem 0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverContainerComponent, decorators: [{
29
+ PopoverContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverContainerComponent, deps: [{ token: i1.PopoverConfig }], target: i0.ɵɵFactoryTarget.Component });
30
+ PopoverContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: PopoverContainerComponent, selector: "popover-container", inputs: { placement: "placement", title: "title" }, host: { attributes: { "role": "tooltip" }, properties: { "attr.id": "popoverId", "class": "\"popover in popover-\" + _placement + \" \" + \"bs-popover-\" + _placement + \" \" + _placement + \" \" + containerClass + \" \" + checkMarginNecessity()", "class.show": "!_bsVersions.isBs3", "class.bs3": "_bsVersions.isBs3" }, styleAttribute: "display:block;" }, ngImport: i0, template: "<div class=\"popover-arrow arrow\"></div>\n<h3 class=\"popover-title popover-header\" *ngIf=\"title\">{{ title }}</h3>\n<div class=\"popover-content popover-body\">\n <ng-content></ng-content>\n</div>\n", styles: [":host.bs3.popover-top{margin-bottom:10px}:host.bs3.popover.top>.arrow{margin-left:-2px}:host.bs3.popover.top{margin-bottom:10px}:host.popover.bottom>.arrow{margin-left:-4px}:host.bs3.bs-popover-left{margin-right:.5rem}:host.bs3.bs-popover-right .arrow,:host.bs3.bs-popover-left .arrow{margin:.3rem 0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverContainerComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ selector: 'popover-container', changeDetection: ChangeDetectionStrategy.OnPush, host: {
34
34
  '[attr.id]': 'popoverId',
@@ -24,9 +24,9 @@ export class PopoverConfig {
24
24
  this.delay = 0;
25
25
  }
26
26
  }
27
- PopoverConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
- PopoverConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverConfig, providedIn: 'root' });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverConfig, decorators: [{
27
+ PopoverConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
+ PopoverConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverConfig, providedIn: 'root' });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverConfig, decorators: [{
30
30
  type: Injectable,
31
31
  args: [{
32
32
  providedIn: 'root'
@@ -204,9 +204,9 @@ export class PopoverDirective {
204
204
  this._popover.dispose();
205
205
  }
206
206
  }
207
- PopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverDirective, deps: [{ token: i1.PopoverConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }, { token: i3.PositioningService }], target: i0.ɵɵFactoryTarget.Directive });
208
- PopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: PopoverDirective, selector: "[popover]", inputs: { adaptivePosition: "adaptivePosition", boundariesElement: "boundariesElement", popover: "popover", popoverContext: "popoverContext", popoverTitle: "popoverTitle", placement: "placement", outsideClick: "outsideClick", triggers: "triggers", container: "container", containerClass: "containerClass", isOpen: "isOpen", delay: "delay" }, outputs: { onShown: "onShown", onHidden: "onHidden" }, exportAs: ["bs-popover"], ngImport: i0 });
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverDirective, decorators: [{
207
+ PopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverDirective, deps: [{ token: i1.PopoverConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }, { token: i3.PositioningService }], target: i0.ɵɵFactoryTarget.Directive });
208
+ PopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: PopoverDirective, selector: "[popover]", inputs: { adaptivePosition: "adaptivePosition", boundariesElement: "boundariesElement", popover: "popover", popoverContext: "popoverContext", popoverTitle: "popoverTitle", placement: "placement", outsideClick: "outsideClick", triggers: "triggers", container: "container", containerClass: "containerClass", isOpen: "isOpen", delay: "delay" }, outputs: { onShown: "onShown", onHidden: "onHidden" }, exportAs: ["bs-popover"], ngImport: i0 });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverDirective, decorators: [{
210
210
  type: Directive,
211
211
  args: [{ selector: '[popover]', exportAs: 'bs-popover' }]
212
212
  }], ctorParameters: function () { return [{ type: i1.PopoverConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }, { type: i3.PositioningService }]; }, propDecorators: { adaptivePosition: [{
@@ -13,10 +13,10 @@ export class PopoverModule {
13
13
  };
14
14
  }
15
15
  }
16
- PopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- PopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: PopoverModule, declarations: [PopoverDirective, PopoverContainerComponent], imports: [CommonModule], exports: [PopoverDirective] });
18
- PopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverModule, imports: [CommonModule] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverModule, decorators: [{
16
+ PopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ PopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: PopoverModule, declarations: [PopoverDirective, PopoverContainerComponent], imports: [CommonModule], exports: [PopoverDirective] });
18
+ PopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverModule, imports: [CommonModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: PopoverModule, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  imports: [CommonModule],