ngx-bootstrap 6.1.0 → 6.2.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 (154) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  4. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  5. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  6. package/accordion/package.json +1 -1
  7. package/alert/package.json +1 -1
  8. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  9. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  10. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  11. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  12. package/buttons/package.json +1 -1
  13. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  14. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  15. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  16. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  17. package/carousel/package.json +1 -1
  18. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  19. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  20. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  21. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  22. package/chronos/package.json +1 -1
  23. package/collapse/package.json +1 -1
  24. package/component-loader/package.json +1 -1
  25. package/datepicker/base/bs-datepicker-container.d.ts +4 -1
  26. package/datepicker/bs-datepicker.config.d.ts +16 -0
  27. package/datepicker/bs-datepicker.css +108 -0
  28. package/datepicker/bs-datepicker.css.map +3 -3
  29. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +59 -9
  30. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  31. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
  32. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  33. package/datepicker/esm2015/base/bs-datepicker-container.js +9 -3
  34. package/datepicker/esm2015/bs-datepicker.config.js +37 -1
  35. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +2 -2
  36. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
  37. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +7 -3
  38. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  39. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +3 -2
  40. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  41. package/datepicker/esm5/base/bs-datepicker-container.js +9 -3
  42. package/datepicker/esm5/bs-datepicker.config.js +37 -1
  43. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +2 -2
  44. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
  45. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +7 -3
  46. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  47. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +3 -2
  48. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  49. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +59 -9
  50. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  51. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +59 -9
  52. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  53. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  54. package/datepicker/package.json +1 -1
  55. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
  56. package/datepicker/utils/scss/mixins.css.map +2 -2
  57. package/datepicker/utils/scss/mixins.scss +98 -0
  58. package/datepicker/utils/scss/variables.css.map +1 -1
  59. package/datepicker/utils/scss/variables.scss +14 -0
  60. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  61. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  62. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  63. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  64. package/dropdown/package.json +1 -1
  65. package/locale/package.json +1 -1
  66. package/mini-ngrx/package.json +1 -1
  67. package/modal/bs-modal-ref.service.d.ts +2 -2
  68. package/modal/bs-modal.service.d.ts +3 -1
  69. package/modal/bundles/ngx-bootstrap-modal.umd.js +19 -8
  70. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  71. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
  72. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  73. package/modal/esm2015/bs-modal-ref.service.js +5 -1
  74. package/modal/esm2015/bs-modal.service.js +7 -2
  75. package/modal/esm2015/modal-container.component.js +2 -1
  76. package/modal/esm2015/modal-options.class.js +6 -3
  77. package/modal/esm2015/modal.directive.js +2 -2
  78. package/modal/esm2015/models/index.js +3 -1
  79. package/modal/esm2015/ngx-bootstrap-modal.js +3 -3
  80. package/modal/esm2015/public_api.js +2 -2
  81. package/modal/esm5/bs-modal-ref.service.js +4 -1
  82. package/modal/esm5/bs-modal.service.js +8 -4
  83. package/modal/esm5/modal-container.component.js +2 -1
  84. package/modal/esm5/modal-options.class.js +6 -3
  85. package/modal/esm5/modal.directive.js +2 -2
  86. package/modal/esm5/models/index.js +3 -1
  87. package/modal/esm5/ngx-bootstrap-modal.js +3 -3
  88. package/modal/esm5/public_api.js +2 -2
  89. package/modal/fesm2015/ngx-bootstrap-modal.js +18 -5
  90. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  91. package/modal/fesm5/ngx-bootstrap-modal.js +18 -7
  92. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  93. package/modal/modal-options.class.d.ts +2 -2
  94. package/modal/models/index.d.ts +1 -0
  95. package/modal/ngx-bootstrap-modal.d.ts +1 -1
  96. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  97. package/modal/package.json +1 -1
  98. package/modal/public_api.d.ts +1 -1
  99. package/package.json +2 -2
  100. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  101. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  102. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  103. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  104. package/pagination/package.json +1 -1
  105. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  106. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  107. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  108. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  109. package/popover/package.json +1 -1
  110. package/positioning/package.json +1 -1
  111. package/progressbar/bar.component.d.ts +4 -7
  112. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +40 -64
  113. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  114. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  115. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  116. package/progressbar/esm2015/bar.component.js +33 -48
  117. package/progressbar/esm2015/progressbar.component.js +5 -8
  118. package/progressbar/esm5/bar.component.js +37 -58
  119. package/progressbar/esm5/progressbar.component.js +5 -8
  120. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +36 -54
  121. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  122. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +40 -64
  123. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  124. package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
  125. package/progressbar/package.json +1 -1
  126. package/progressbar/progressbar.component.d.ts +1 -1
  127. package/rating/package.json +1 -1
  128. package/sortable/package.json +1 -1
  129. package/tabs/package.json +1 -1
  130. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +3 -3
  131. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  132. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  133. package/timepicker/esm2015/timepicker.component.js +2 -2
  134. package/timepicker/esm2015/timepicker.config.js +3 -3
  135. package/timepicker/esm5/timepicker.component.js +2 -2
  136. package/timepicker/esm5/timepicker.config.js +3 -3
  137. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +3 -3
  138. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  139. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +3 -3
  140. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  141. package/timepicker/package.json +1 -1
  142. package/timepicker/timepicker.component.d.ts +1 -1
  143. package/timepicker/timepicker.config.d.ts +1 -1
  144. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  145. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  146. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  147. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  148. package/tooltip/package.json +1 -1
  149. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  150. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  151. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  152. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  153. package/typeahead/package.json +1 -1
  154. package/utils/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-pagination.umd.js","sources":["ng://ngx-bootstrap/pagination/pagination.config.ts","ng://ngx-bootstrap/pagination/pager.component.ts","ng://ngx-bootstrap/pagination/pagination.component.ts","ng://ngx-bootstrap/pagination/pagination.module.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: ConfigModel = {\n maxSize: void 0,\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 { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nimport { ConfigModel, PagesModel } from './models';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = 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: EventEmitter<PageChangedEvent> = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider, TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PaginationConfig } from './pagination.config';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\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 /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\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: EventEmitter<number> = 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()\n pageChanged = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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// tslint:disable-next-line:max-file-line-count\n}\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"],"names":["Injectable","NG_VALUE_ACCESSOR","forwardRef","EventEmitter","Component","ElementRef","ChangeDetectorRef","Input","Output","NgModule","CommonModule"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-pagination.umd.js","sources":["ng://ngx-bootstrap/pagination/pagination.config.ts","ng://ngx-bootstrap/pagination/pager.component.ts","ng://ngx-bootstrap/pagination/pagination.component.ts","ng://ngx-bootstrap/pagination/pagination.module.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: ConfigModel = {\n maxSize: void 0,\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 { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nimport { ConfigModel, PagesModel } from './models';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = 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: EventEmitter<PageChangedEvent> = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider, TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PaginationConfig } from './pagination.config';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\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 /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\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: EventEmitter<number> = 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()\n pageChanged = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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// tslint:disable-next-line:max-file-line-count\n}\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"],"names":["Injectable","NG_VALUE_ACCESSOR","forwardRef","EventEmitter","Component","ElementRef","ChangeDetectorRef","Input","Output","NgModule","CommonModule"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://ngx-bootstrap/pagination/pagination.config.ts","ng://ngx-bootstrap/pagination/pager.component.ts","ng://ngx-bootstrap/pagination/pagination.component.ts","ng://ngx-bootstrap/pagination/pagination.module.ts"],"names":["PaginationConfig","this","main","maxSize","itemsPerPage","boundaryLinks","directionLinks","firstText","previousText","nextText","lastText","pageBtnClass","rotate","pager","align","Injectable","args","providedIn","PAGER_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","PagerComponent","multi","elementRef","paginationConfig","changeDetection","numPages","EventEmitter","pageChanged","onChange","Function","prototype","onTouched","inited","_page","config","configureOptions","Object","assign","defineProperty","_itemsPerPage","v","totalPages","calculateTotalPages","_totalItems","_totalPages","emit","selectPage","page","value","_previous","markForCheck","ngOnInit","window","classMap","nativeElement","getAttribute","pages","getPages","writeValue","getText","key","noPrevious","noNext","registerOnChange","fn","registerOnTouched","event","preventDefault","disabled","target","blur","makePage","num","text","active","number","currentPage","startPage","endPage","isMaxSized","Math","max","floor","ceil","min","toString","push","previousPageSet","unshift","nextPageSet","totalItems","Component","selector","template","providers","ElementRef","ChangeDetectorRef","Input","Output","PAGINATION_CONTROL_VALUE_ACCESSOR","PaginationComponent","PaginationModule","forRoot","ngModule","NgModule","imports","CommonModule","declarations","exports"],"mappings":"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","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: ConfigModel = {\n maxSize: void 0,\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 { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nimport { ConfigModel, PagesModel } from './models';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = 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: EventEmitter<PageChangedEvent> = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider, TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PaginationConfig } from './pagination.config';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\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 /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\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: EventEmitter<number> = 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()\n pageChanged = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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// tslint:disable-next-line:max-file-line-count\n}\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"]}
1
+ {"version":3,"sources":["ng://ngx-bootstrap/pagination/pagination.config.ts","ng://ngx-bootstrap/pagination/pager.component.ts","ng://ngx-bootstrap/pagination/pagination.component.ts","ng://ngx-bootstrap/pagination/pagination.module.ts"],"names":["PaginationConfig","this","main","maxSize","itemsPerPage","boundaryLinks","directionLinks","firstText","previousText","nextText","lastText","pageBtnClass","rotate","pager","align","Injectable","args","providedIn","PAGER_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","PagerComponent","multi","elementRef","paginationConfig","changeDetection","numPages","EventEmitter","pageChanged","onChange","Function","prototype","onTouched","inited","_page","config","configureOptions","Object","assign","defineProperty","_itemsPerPage","v","totalPages","calculateTotalPages","_totalItems","_totalPages","emit","selectPage","page","value","_previous","markForCheck","ngOnInit","window","classMap","nativeElement","getAttribute","pages","getPages","writeValue","getText","key","noPrevious","noNext","registerOnChange","fn","registerOnTouched","event","preventDefault","disabled","target","blur","makePage","num","text","active","number","currentPage","startPage","endPage","isMaxSized","Math","max","floor","ceil","min","toString","push","previousPageSet","unshift","nextPageSet","totalItems","Component","selector","template","providers","ElementRef","ChangeDetectorRef","Input","Output","PAGINATION_CONTROL_VALUE_ACCESSOR","PaginationComponent","PaginationModule","forRoot","ngModule","NgModule","imports","CommonModule","declarations","exports"],"mappings":"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","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: ConfigModel = {\n maxSize: void 0,\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 { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nimport { ConfigModel, PagesModel } from './models';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = 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: EventEmitter<PageChangedEvent> = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider, TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PaginationConfig } from './pagination.config';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\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 /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\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: EventEmitter<number> = 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()\n pageChanged = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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// tslint:disable-next-line:max-file-line-count\n}\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-pagination.js","sources":["ng://ngx-bootstrap/pagination/pagination.config.ts","ng://ngx-bootstrap/pagination/pager.component.ts","ng://ngx-bootstrap/pagination/pagination.component.ts","ng://ngx-bootstrap/pagination/pagination.module.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: ConfigModel = {\n maxSize: void 0,\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 { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nimport { ConfigModel, PagesModel } from './models';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = 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: EventEmitter<PageChangedEvent> = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider, TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PaginationConfig } from './pagination.config';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\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 /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\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: EventEmitter<number> = 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()\n pageChanged = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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// tslint:disable-next-line:max-file-line-count\n}\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"],"names":[],"mappings":";;;;;;;;;;;MASa,gBAAgB;IAH7B;QAIE,SAAI,GAAgB;YAClB,OAAO,EAAE,KAAK,CAAC;YACf,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,UAAU;YACxB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,UAAK,GAAe;YAClB,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC;KACH;;;YAvBA,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;IAEC,gCAWE;;IACF,iCAME;;;;;;;AC5BJ;AAkBA,MAAa,4BAA4B,GAAa;IACpD,OAAO,EAAE,iBAAiB;;IAE1B,WAAW,EAAE,UAAU;;;IAAC,MAAM,cAAc,EAAC;IAC7C,KAAK,EAAE,IAAI;CACZ;AAOD,MAAa,cAAc;;;;;;IAqGzB,YAAoB,UAAsB,EAC9B,gBAAkC,EAC1B,eAAkC;QAFlC,eAAU,GAAV,UAAU,CAAY;QAEtB,oBAAe,GAAf,eAAe,CAAmB;;;;QA1E5C,aAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;;;;;QAKtE,gBAAW,GAAmC,IAAI,YAAY,EAAoB,CAAC;QAuDnF,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAQrB,WAAM,GAAG,KAAK,CAAC;QACf,UAAK,GAAG,CAAC,CAAC;QAKlB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,gBAAgB,CACnB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,CACjE,CAAC;SACH;KACF;;;;;IAzED,IACI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;;;;;IAED,IAAI,YAAY,CAAC,CAAS;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;;IAGD,IACI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;KACF;;;;;IAED,IAAI,IAAI,CAAC,KAAa;;cACd,SAAS,GAAG,IAAI,CAAC,KAAK;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAEpC,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;YAChE,OAAO;SACR;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;KACJ;;;;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;;;;;IAyBD,gBAAgB,CAAC,MAAmB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;KACzC;;;;IAED,QAAQ;QACN,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC3E;;QAED,IAAI,CAAC,OAAO;YACV,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3E,IAAI,CAAC,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACxE,IAAI,CAAC,aAAa;YAChB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW;kBACrC,IAAI,CAAC,aAAa;kBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,cAAc;YACjB,OAAO,IAAI,CAAC,cAAc,KAAK,WAAW;kBACtC,IAAI,CAAC,cAAc;kBACnB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QACjC,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;;QAG/B,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;;QAE7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACpB;;;;;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACxD;;;;;IAED,OAAO,CAAC,GAAW;;QAEjB,OAAO,oBAAC,IAAI,IAAS,GAAG,GAAG,MAAM,CAAC,IAAI,oBAAC,IAAI,IAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;KAC1E;;;;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;KACxB;;;;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;KACtC;;;;;IAED,gBAAgB,CAAC,EAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;;;;IAED,iBAAiB,CAAC,EAAY;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;;;;IAED,UAAU,CAAC,IAAY,EAAE,KAAa;QACpC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;;;sBAEnB,MAAM,GAAQ,KAAK,CAAC,MAAM;gBAChC,MAAM,CAAC,IAAI,EAAE,CAAC;aACf;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;;;;;;;;;IAGS,QAAQ,CAAC,GAAW,EACX,IAAY,EACZ,MAAe;QAChC,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC;KACpC;;;;;;;IAES,QAAQ,CAAC,WAAmB,EAAE,UAAkB;;cAClD,KAAK,GAAiB,EAAE;;;YAG1B,SAAS,GAAG,CAAC;;YACb,OAAO,GAAG,UAAU;;cAClB,UAAU,GACd,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,GAAG,UAAU;;QAGlE,IAAI,UAAU,EAAE;YACd,IAAI,IAAI,CAAC,MAAM,EAAE;;gBAEf,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGvC,IAAI,OAAO,GAAG,UAAU,EAAE;oBACxB,OAAO,GAAG,UAAU,CAAC;oBACrB,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;iBACxC;aACF;iBAAM;;gBAEL,SAAS;oBACP,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGjE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;aAC9D;SACF;;QAGD,KAAK,IAAI,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;;kBACzC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;;QAGD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,SAAS,GAAG,CAAC,EAAE;;sBACX,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAClE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;aAChC;YAED,IAAI,OAAO,GAAG,UAAU,EAAE;;sBAClB,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACzB;SACF;QAED,OAAO,KAAK,CAAC;KACd;;;;;;IAGS,mBAAmB;;cACrB,UAAU,GACd,IAAI,CAAC,YAAY,GAAG,CAAC;cACjB,CAAC;cACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACrC;;;YAxQF,SAAS,SAAC;gBACT,QAAQ,EAAE,OAAO;gBACjB,yiBAAqC;gBACrC,SAAS,EAAE,CAAC,4BAA4B,CAAC;aAC1C;;;;YA1BC,UAAU;YAWH,gBAAgB;YAbvB,iBAAiB;;;oBAgChB,KAAK;sBAEL,KAAK;4BAEL,KAAK;6BAEL,KAAK;wBAGL,KAAK;2BAEL,KAAK;uBAEL,KAAK;uBAEL,KAAK;qBAEL,KAAK;2BAGL,KAAK;uBAGL,KAAK;uBAGL,MAAM;0BAIN,MAAM;2BAIN,KAAK;yBAWL,KAAK;;;;IA/CN,gCAAoB;;;;;IAEpB,+BAAwB;;;;;IAExB,iCAAyB;;;;;IAEzB,uCAAgC;;;;;IAEhC,wCAAiC;;;;;IAGjC,mCAA2B;;;;;IAE3B,sCAA8B;;;;;IAE9B,kCAA0B;;;;;IAE1B,kCAA0B;;;;;IAE1B,gCAAyB;;;;;IAGzB,sCAA8B;;;;;IAG9B,kCAA2B;;;;;IAG3B,kCAAsE;;;;;;IAItE,qCACmF;;IAuDnF,kCAA8B;;IAC9B,mCAA+B;;IAE/B,kCAAiB;;IACjB,+BAAoB;;;;;IAEpB,uCAAgC;;;;;IAChC,qCAA8B;;;;;IAC9B,qCAA8B;;;;;IAC9B,gCAAyB;;;;;IACzB,+BAAoB;;;;;IAER,oCAA8B;;;;;IAE9B,yCAA0C;;;;;;;ACrIxD;;;AAgBA,+BAGC;;;IAFC,wCAAqB;;IACrB,gCAAa;;;AAGf,MAAa,iCAAiC,GAAa;IACzD,OAAO,EAAE,iBAAiB;;IAE1B,WAAW,EAAE,UAAU;;;IAAC,MAAM,mBAAmB,EAAC;IAClD,KAAK,EAAE,IAAI;CACZ;AAOD,MAAa,mBAAmB;;;;;;IA8G9B,YACU,UAAsB,EAC9B,gBAAkC,EAC1B,eAAkC;QAFlC,eAAU,GAAV,UAAU,CAAY;QAEtB,oBAAe,GAAf,eAAe,CAAmB;;;;QA3ElC,aAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;;;;;QAKtE,gBAAW,GAAG,IAAI,YAAY,EAAoB,CAAC;QAuDnD,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAQrB,WAAM,GAAG,KAAK,CAAC;QACf,UAAK,GAAG,CAAC,CAAC;QAOlB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC9C;KACF;;;;;IAzED,IACI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;;;;;IAED,IAAI,YAAY,CAAC,CAAS;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;;IAGD,IACI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;KACF;;;;;IAED,IAAI,IAAI,CAAC,KAAa;;cACd,SAAS,GAAG,IAAI,CAAC,KAAK;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAEpC,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;YAChE,OAAO;SACR;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;KACJ;;;;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;;;;;IAyBD,gBAAgB,CAAC,MAAmB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;KACzC;;;;IAED,QAAQ;QACN,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC3E;;QAED,IAAI,CAAC,OAAO;YACV,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3E,IAAI,CAAC,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACxE,IAAI,CAAC,aAAa;YAChB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW;kBACrC,IAAI,CAAC,aAAa;kBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,cAAc;YACjB,OAAO,IAAI,CAAC,cAAc,KAAK,WAAW;kBACtC,IAAI,CAAC,cAAc;kBACnB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QACjC,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;;QAG/B,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;;QAE7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACpB;;;;;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACxD;;;;;IAED,OAAO,CAAC,GAAW;;QAEjB,OAAO,oBAAC,IAAI,IAAS,GAAG,GAAG,MAAM,CAAC,IAAI,oBAAC,IAAI,IAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;KAC1E;;;;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;KACxB;;;;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;KACtC;;;;;IAED,gBAAgB,CAAC,EAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;;;;IAED,iBAAiB,CAAC,EAAY;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;;;;IAED,UAAU,CAAC,IAAY,EAAE,KAAa;QACpC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;;;sBAEnB,MAAM,GAAQ,KAAK,CAAC,MAAM;gBAChC,MAAM,CAAC,IAAI,EAAE,CAAC;aACf;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;;;;;;;;;IAGS,QAAQ,CAChB,GAAW,EACX,IAAY,EACZ,MAAe;QAEf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;KACtC;;;;;;;IAES,QAAQ,CAAC,WAAmB,EAAE,UAAkB;;cAClD,KAAK,GAAiB,EAAE;;;YAG1B,SAAS,GAAG,CAAC;;YACb,OAAO,GAAG,UAAU;;cAClB,UAAU,GACd,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,GAAG,UAAU;;QAGlE,IAAI,UAAU,EAAE;YACd,IAAI,IAAI,CAAC,MAAM,EAAE;;gBAEf,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGvC,IAAI,OAAO,GAAG,UAAU,EAAE;oBACxB,OAAO,GAAG,UAAU,CAAC;oBACrB,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;iBACxC;aACF;iBAAM;;gBAEL,SAAS;oBACP,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGjE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;aAC9D;SACF;;QAGD,KAAK,IAAI,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;;kBACzC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;;QAGD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,SAAS,GAAG,CAAC,EAAE;;sBACX,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAClE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;aAChC;YAED,IAAI,OAAO,GAAG,UAAU,EAAE;;sBAClB,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACzB;SACF;QAED,OAAO,KAAK,CAAC;KACd;;;;;;IAGS,mBAAmB;;cACrB,UAAU,GACd,IAAI,CAAC,YAAY,GAAG,CAAC;cACjB,CAAC;cACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACrC;;;YAnRF,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,knFAA0C;gBAC1C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;;;;YA7BC,UAAU;YAUH,gBAAgB;YAZvB,iBAAiB;;;oBAmChB,KAAK;sBAEL,KAAK;4BAEL,KAAK;6BAEL,KAAK;wBAGL,KAAK;2BAEL,KAAK;uBAEL,KAAK;uBAEL,KAAK;qBAEL,KAAK;2BAGL,KAAK;uBAEL,KAAK;iCAEL,KAAK;iCAEL,KAAK;qCAEL,KAAK;kCAEL,KAAK;iCAEL,KAAK;uBAGL,MAAM;0BAIN,MAAM;2BAIN,KAAK;yBAWL,KAAK;;;;IAxDN,qCAAoB;;;;;IAEpB,oCAAwB;;;;;IAExB,sCAAyB;;;;;IAEzB,4CAAgC;;;;;IAEhC,6CAAiC;;;;;IAGjC,wCAA2B;;;;;IAE3B,2CAA8B;;;;;IAE9B,uCAA0B;;;;;IAE1B,uCAA0B;;;;;IAE1B,qCAAyB;;;;;IAGzB,2CAA8B;;;;;IAE9B,uCAA2B;;;;;IAE3B,iDAAsE;;;;;IAEtE,iDAAgE;;;;;IAEhE,qDAAoE;;;;;IAEpE,kDAAiE;;;;;IAEjE,iDAAgE;;;;;IAGhE,uCAAsE;;;;;;IAItE,0CACmD;;IAuDnD,uCAA8B;;IAC9B,wCAA+B;;IAE/B,uCAAiB;;IACjB,oCAAoB;;;;;IAEpB,4CAAgC;;;;;IAChC,0CAA8B;;;;;IAC9B,0CAA8B;;;;;IAC9B,qCAAyB;;;;;IACzB,oCAAoB;;;;;IAGlB,yCAA8B;;;;;IAE9B,8CAA0C;;;;;;;AClJ9C,MAWa,gBAAgB;;;;IAC3B,OAAO,OAAO;QACZ,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KACtD;;;YARF,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;gBACnD,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;aAC/C;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ngx-bootstrap-pagination.js","sources":["ng://ngx-bootstrap/pagination/pagination.config.ts","ng://ngx-bootstrap/pagination/pager.component.ts","ng://ngx-bootstrap/pagination/pagination.component.ts","ng://ngx-bootstrap/pagination/pagination.module.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: ConfigModel = {\n maxSize: void 0,\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 { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nimport { ConfigModel, PagesModel } from './models';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = 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: EventEmitter<PageChangedEvent> = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider, TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PaginationConfig } from './pagination.config';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\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 /* tslint:disable-next-line: no-use-before-declare */\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: ConfigModel;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\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: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\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: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\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: EventEmitter<number> = 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()\n pageChanged = new EventEmitter<PageChangedEvent>();\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 /** 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 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 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 get page(): number {\n return this._page;\n }\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n classMap: string;\n pages: PagesModel[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\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 configureOptions(config: 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 this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\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 // tslint:disable-next-line:no-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 {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): 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 // tslint:disable-next-line:no-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) {\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// tslint:disable-next-line:max-file-line-count\n}\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"],"names":[],"mappings":";;;;;;;;;;;MASa,gBAAgB;IAH7B;QAIE,SAAI,GAAgB;YAClB,OAAO,EAAE,KAAK,CAAC;YACf,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,UAAU;YACxB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,UAAK,GAAe;YAClB,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC;KACH;;;YAvBA,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;IAEC,gCAWE;;IACF,iCAME;;;;;;;AC5BJ;AAkBA,MAAa,4BAA4B,GAAa;IACpD,OAAO,EAAE,iBAAiB;;IAE1B,WAAW,EAAE,UAAU;;;IAAC,MAAM,cAAc,EAAC;IAC7C,KAAK,EAAE,IAAI;CACZ;AAOD,MAAa,cAAc;;;;;;IAqGzB,YAAoB,UAAsB,EAC9B,gBAAkC,EAC1B,eAAkC;QAFlC,eAAU,GAAV,UAAU,CAAY;QAEtB,oBAAe,GAAf,eAAe,CAAmB;;;;QA1E5C,aAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;;;;;QAKtE,gBAAW,GAAmC,IAAI,YAAY,EAAoB,CAAC;QAuDnF,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAQrB,WAAM,GAAG,KAAK,CAAC;QACf,UAAK,GAAG,CAAC,CAAC;QAKlB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,gBAAgB,CACnB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,CACjE,CAAC;SACH;KACF;;;;;IAzED,IACI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;;;;;IAED,IAAI,YAAY,CAAC,CAAS;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;;IAGD,IACI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;KACF;;;;;IAED,IAAI,IAAI,CAAC,KAAa;;cACd,SAAS,GAAG,IAAI,CAAC,KAAK;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAEpC,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;YAChE,OAAO;SACR;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;KACJ;;;;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;;;;;IAyBD,gBAAgB,CAAC,MAAmB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;KACzC;;;;IAED,QAAQ;QACN,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC3E;;QAED,IAAI,CAAC,OAAO;YACV,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3E,IAAI,CAAC,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACxE,IAAI,CAAC,aAAa;YAChB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW;kBACrC,IAAI,CAAC,aAAa;kBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,cAAc;YACjB,OAAO,IAAI,CAAC,cAAc,KAAK,WAAW;kBACtC,IAAI,CAAC,cAAc;kBACnB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QACjC,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;;QAG/B,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;;QAE7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACpB;;;;;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACxD;;;;;IAED,OAAO,CAAC,GAAW;;QAEjB,OAAO,oBAAC,IAAI,IAAS,GAAG,GAAG,MAAM,CAAC,IAAI,oBAAC,IAAI,IAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;KAC1E;;;;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;KACxB;;;;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;KACtC;;;;;IAED,gBAAgB,CAAC,EAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;;;;IAED,iBAAiB,CAAC,EAAY;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;;;;IAED,UAAU,CAAC,IAAY,EAAE,KAAa;QACpC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;;;sBAEnB,MAAM,GAAQ,KAAK,CAAC,MAAM;gBAChC,MAAM,CAAC,IAAI,EAAE,CAAC;aACf;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;;;;;;;;;IAGS,QAAQ,CAAC,GAAW,EACX,IAAY,EACZ,MAAe;QAChC,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC;KACpC;;;;;;;IAES,QAAQ,CAAC,WAAmB,EAAE,UAAkB;;cAClD,KAAK,GAAiB,EAAE;;;YAG1B,SAAS,GAAG,CAAC;;YACb,OAAO,GAAG,UAAU;;cAClB,UAAU,GACd,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,GAAG,UAAU;;QAGlE,IAAI,UAAU,EAAE;YACd,IAAI,IAAI,CAAC,MAAM,EAAE;;gBAEf,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGvC,IAAI,OAAO,GAAG,UAAU,EAAE;oBACxB,OAAO,GAAG,UAAU,CAAC;oBACrB,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;iBACxC;aACF;iBAAM;;gBAEL,SAAS;oBACP,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGjE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;aAC9D;SACF;;QAGD,KAAK,IAAI,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;;kBACzC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;;QAGD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,SAAS,GAAG,CAAC,EAAE;;sBACX,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAClE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;aAChC;YAED,IAAI,OAAO,GAAG,UAAU,EAAE;;sBAClB,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACzB;SACF;QAED,OAAO,KAAK,CAAC;KACd;;;;;;IAGS,mBAAmB;;cACrB,UAAU,GACd,IAAI,CAAC,YAAY,GAAG,CAAC;cACjB,CAAC;cACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACrC;;;YAxQF,SAAS,SAAC;gBACT,QAAQ,EAAE,OAAO;gBACjB,yiBAAqC;gBACrC,SAAS,EAAE,CAAC,4BAA4B,CAAC;aAC1C;;;;YA1BC,UAAU;YAWH,gBAAgB;YAbvB,iBAAiB;;;oBAgChB,KAAK;sBAEL,KAAK;4BAEL,KAAK;6BAEL,KAAK;wBAGL,KAAK;2BAEL,KAAK;uBAEL,KAAK;uBAEL,KAAK;qBAEL,KAAK;2BAGL,KAAK;uBAGL,KAAK;uBAGL,MAAM;0BAIN,MAAM;2BAIN,KAAK;yBAWL,KAAK;;;;IA/CN,gCAAoB;;;;;IAEpB,+BAAwB;;;;;IAExB,iCAAyB;;;;;IAEzB,uCAAgC;;;;;IAEhC,wCAAiC;;;;;IAGjC,mCAA2B;;;;;IAE3B,sCAA8B;;;;;IAE9B,kCAA0B;;;;;IAE1B,kCAA0B;;;;;IAE1B,gCAAyB;;;;;IAGzB,sCAA8B;;;;;IAG9B,kCAA2B;;;;;IAG3B,kCAAsE;;;;;;IAItE,qCACmF;;IAuDnF,kCAA8B;;IAC9B,mCAA+B;;IAE/B,kCAAiB;;IACjB,+BAAoB;;;;;IAEpB,uCAAgC;;;;;IAChC,qCAA8B;;;;;IAC9B,qCAA8B;;;;;IAC9B,gCAAyB;;;;;IACzB,+BAAoB;;;;;IAER,oCAA8B;;;;;IAE9B,yCAA0C;;;;;;;ACrIxD;;;AAgBA,+BAGC;;;IAFC,wCAAqB;;IACrB,gCAAa;;;AAGf,MAAa,iCAAiC,GAAa;IACzD,OAAO,EAAE,iBAAiB;;IAE1B,WAAW,EAAE,UAAU;;;IAAC,MAAM,mBAAmB,EAAC;IAClD,KAAK,EAAE,IAAI;CACZ;AAOD,MAAa,mBAAmB;;;;;;IA8G9B,YACU,UAAsB,EAC9B,gBAAkC,EAC1B,eAAkC;QAFlC,eAAU,GAAV,UAAU,CAAY;QAEtB,oBAAe,GAAf,eAAe,CAAmB;;;;QA3ElC,aAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;;;;;QAKtE,gBAAW,GAAG,IAAI,YAAY,EAAoB,CAAC;QAuDnD,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAQrB,WAAM,GAAG,KAAK,CAAC;QACf,UAAK,GAAG,CAAC,CAAC;QAOlB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC9C;KACF;;;;;IAzED,IACI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;;;;;IAED,IAAI,YAAY,CAAC,CAAS;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;;IAGD,IACI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9C;;;;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;;;IAED,IAAI,UAAU,CAAC,CAAS;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;KACF;;;;;IAED,IAAI,IAAI,CAAC,KAAa;;cACd,SAAS,GAAG,IAAI,CAAC,KAAK;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAEpC,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;YAChE,OAAO;SACR;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;KACJ;;;;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;;;;;IAyBD,gBAAgB,CAAC,MAAmB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;KACzC;;;;IAED,QAAQ;QACN,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC3E;;QAED,IAAI,CAAC,OAAO;YACV,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3E,IAAI,CAAC,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACxE,IAAI,CAAC,aAAa;YAChB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW;kBACrC,IAAI,CAAC,aAAa;kBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,cAAc;YACjB,OAAO,IAAI,CAAC,cAAc,KAAK,WAAW;kBACtC,IAAI,CAAC,cAAc;kBACnB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QACjC,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;;QAG/B,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;kBACpC,IAAI,CAAC,YAAY;kBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;;QAE7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACpB;;;;;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACxD;;;;;IAED,OAAO,CAAC,GAAW;;QAEjB,OAAO,oBAAC,IAAI,IAAS,GAAG,GAAG,MAAM,CAAC,IAAI,oBAAC,IAAI,IAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;KAC1E;;;;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;KACxB;;;;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;KACtC;;;;;IAED,gBAAgB,CAAC,EAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;;;;IAED,iBAAiB,CAAC,EAAY;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;;;;IAED,UAAU,CAAC,IAAY,EAAE,KAAa;QACpC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;;;sBAEnB,MAAM,GAAQ,KAAK,CAAC,MAAM;gBAChC,MAAM,CAAC,IAAI,EAAE,CAAC;aACf;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;;;;;;;;;IAGS,QAAQ,CAChB,GAAW,EACX,IAAY,EACZ,MAAe;QAEf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;KACtC;;;;;;;IAES,QAAQ,CAAC,WAAmB,EAAE,UAAkB;;cAClD,KAAK,GAAiB,EAAE;;;YAG1B,SAAS,GAAG,CAAC;;YACb,OAAO,GAAG,UAAU;;cAClB,UAAU,GACd,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,GAAG,UAAU;;QAGlE,IAAI,UAAU,EAAE;YACd,IAAI,IAAI,CAAC,MAAM,EAAE;;gBAEf,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGvC,IAAI,OAAO,GAAG,UAAU,EAAE;oBACxB,OAAO,GAAG,UAAU,CAAC;oBACrB,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;iBACxC;aACF;iBAAM;;gBAEL,SAAS;oBACP,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;gBAGjE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;aAC9D;SACF;;QAGD,KAAK,IAAI,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;;kBACzC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;;QAGD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,SAAS,GAAG,CAAC,EAAE;;sBACX,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAClE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;aAChC;YAED,IAAI,OAAO,GAAG,UAAU,EAAE;;sBAClB,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACzB;SACF;QAED,OAAO,KAAK,CAAC;KACd;;;;;;IAGS,mBAAmB;;cACrB,UAAU,GACd,IAAI,CAAC,YAAY,GAAG,CAAC;cACjB,CAAC;cACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACrC;;;YAnRF,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,knFAA0C;gBAC1C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;;;;YA7BC,UAAU;YAUH,gBAAgB;YAZvB,iBAAiB;;;oBAmChB,KAAK;sBAEL,KAAK;4BAEL,KAAK;6BAEL,KAAK;wBAGL,KAAK;2BAEL,KAAK;uBAEL,KAAK;uBAEL,KAAK;qBAEL,KAAK;2BAGL,KAAK;uBAEL,KAAK;iCAEL,KAAK;iCAEL,KAAK;qCAEL,KAAK;kCAEL,KAAK;iCAEL,KAAK;uBAGL,MAAM;0BAIN,MAAM;2BAIN,KAAK;yBAWL,KAAK;;;;IAxDN,qCAAoB;;;;;IAEpB,oCAAwB;;;;;IAExB,sCAAyB;;;;;IAEzB,4CAAgC;;;;;IAEhC,6CAAiC;;;;;IAGjC,wCAA2B;;;;;IAE3B,2CAA8B;;;;;IAE9B,uCAA0B;;;;;IAE1B,uCAA0B;;;;;IAE1B,qCAAyB;;;;;IAGzB,2CAA8B;;;;;IAE9B,uCAA2B;;;;;IAE3B,iDAAsE;;;;;IAEtE,iDAAgE;;;;;IAEhE,qDAAoE;;;;;IAEpE,kDAAiE;;;;;IAEjE,iDAAgE;;;;;IAGhE,uCAAsE;;;;;;IAItE,0CACmD;;IAuDnD,uCAA8B;;IAC9B,wCAA+B;;IAE/B,uCAAiB;;IACjB,oCAAoB;;;;;IAEpB,4CAAgC;;;;;IAChC,0CAA8B;;;;;IAC9B,0CAA8B;;;;;IAC9B,qCAAyB;;;;;IACzB,oCAAoB;;;;;IAGlB,yCAA8B;;;;;IAE9B,8CAA0C;;;;;;;AClJ9C,MAWa,gBAAgB;;;;IAC3B,OAAO,OAAO;QACZ,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KACtD;;;YARF,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;gBACnD,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;aAC/C;;;;;;;;;;;;;;;"}