@egose/shadcn-theme-ng 0.0.27 → 0.0.28

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 (334) hide show
  1. package/accordion/README.md +64 -0
  2. package/accordion/fesm2022/accordion.mjs +160 -0
  3. package/accordion/fesm2022/accordion.mjs.map +1 -0
  4. package/accordion/package.json +25 -0
  5. package/accordion/types/accordion.d.ts +49 -0
  6. package/alert/fesm2022/alert.mjs +29 -24
  7. package/alert/fesm2022/alert.mjs.map +1 -1
  8. package/alert/package.json +25 -0
  9. package/alert-dialog/README.md +11 -0
  10. package/alert-dialog/fesm2022/alert-dialog.mjs +287 -0
  11. package/alert-dialog/fesm2022/alert-dialog.mjs.map +1 -0
  12. package/alert-dialog/package.json +25 -0
  13. package/alert-dialog/types/alert-dialog.d.ts +90 -0
  14. package/aspect-ratio/README.md +11 -0
  15. package/aspect-ratio/fesm2022/aspect-ratio.mjs +62 -0
  16. package/aspect-ratio/fesm2022/aspect-ratio.mjs.map +1 -0
  17. package/aspect-ratio/package.json +25 -0
  18. package/aspect-ratio/types/aspect-ratio.d.ts +21 -0
  19. package/autocomplete/README.md +64 -0
  20. package/autocomplete/fesm2022/autocomplete.mjs +409 -0
  21. package/autocomplete/fesm2022/autocomplete.mjs.map +1 -0
  22. package/autocomplete/package.json +24 -0
  23. package/autocomplete/types/autocomplete.d.ts +96 -0
  24. package/avatar/README.md +11 -0
  25. package/avatar/fesm2022/avatar.mjs +178 -0
  26. package/avatar/fesm2022/avatar.mjs.map +1 -0
  27. package/avatar/package.json +25 -0
  28. package/avatar/types/avatar.d.ts +50 -0
  29. package/badge/fesm2022/badge.mjs +15 -9
  30. package/badge/fesm2022/badge.mjs.map +1 -1
  31. package/badge/package.json +25 -0
  32. package/basic-alert/fesm2022/basic-alert.mjs +11 -7
  33. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -1
  34. package/basic-alert/package.json +24 -0
  35. package/breadcrumb/README.md +11 -0
  36. package/breadcrumb/fesm2022/breadcrumb.mjs +224 -0
  37. package/breadcrumb/fesm2022/breadcrumb.mjs.map +1 -0
  38. package/breadcrumb/package.json +25 -0
  39. package/breadcrumb/types/breadcrumb.d.ts +57 -0
  40. package/button/fesm2022/button.mjs +99 -25
  41. package/button/fesm2022/button.mjs.map +1 -1
  42. package/button/package.json +25 -0
  43. package/button/{index.d.ts → types/button.d.ts} +30 -9
  44. package/button-group/README.md +11 -0
  45. package/button-group/fesm2022/button-group.mjs +102 -0
  46. package/button-group/fesm2022/button-group.mjs.map +1 -0
  47. package/button-group/package.json +25 -0
  48. package/button-group/types/button-group.d.ts +30 -0
  49. package/calendar/fesm2022/calendar.mjs +868 -546
  50. package/calendar/fesm2022/calendar.mjs.map +1 -1
  51. package/calendar/package.json +24 -0
  52. package/calendar/types/calendar.d.ts +94 -0
  53. package/card/README.md +11 -0
  54. package/card/fesm2022/card.mjs +169 -0
  55. package/card/fesm2022/card.mjs.map +1 -0
  56. package/card/package.json +25 -0
  57. package/card/types/card.d.ts +54 -0
  58. package/carousel/README.md +11 -0
  59. package/carousel/fesm2022/carousel.mjs +309 -0
  60. package/carousel/fesm2022/carousel.mjs.map +1 -0
  61. package/carousel/package.json +25 -0
  62. package/carousel/types/carousel.d.ts +84 -0
  63. package/checkbox/README.md +64 -0
  64. package/checkbox/fesm2022/checkbox.mjs +151 -0
  65. package/checkbox/fesm2022/checkbox.mjs.map +1 -0
  66. package/checkbox/package.json +24 -0
  67. package/checkbox/types/checkbox.d.ts +55 -0
  68. package/collapsible/README.md +11 -0
  69. package/collapsible/fesm2022/collapsible.mjs +77 -0
  70. package/collapsible/fesm2022/collapsible.mjs.map +1 -0
  71. package/collapsible/package.json +25 -0
  72. package/collapsible/types/collapsible.d.ts +27 -0
  73. package/combobox/README.md +11 -0
  74. package/combobox/fesm2022/combobox.mjs +683 -0
  75. package/combobox/fesm2022/combobox.mjs.map +1 -0
  76. package/combobox/package.json +25 -0
  77. package/combobox/types/combobox.d.ts +151 -0
  78. package/command/README.md +11 -0
  79. package/command/fesm2022/command.mjs +361 -0
  80. package/command/fesm2022/command.mjs.map +1 -0
  81. package/command/package.json +25 -0
  82. package/command/types/command.d.ts +89 -0
  83. package/confirmation-dialog/README.md +64 -0
  84. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +104 -0
  85. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +1 -0
  86. package/confirmation-dialog/package.json +24 -0
  87. package/confirmation-dialog/types/confirmation-dialog.d.ts +24 -0
  88. package/context-menu/README.md +11 -0
  89. package/context-menu/fesm2022/context-menu.mjs +89 -0
  90. package/context-menu/fesm2022/context-menu.mjs.map +1 -0
  91. package/context-menu/package.json +25 -0
  92. package/context-menu/types/context-menu.d.ts +34 -0
  93. package/date-picker/fesm2022/date-picker.mjs +1262 -307
  94. package/date-picker/fesm2022/date-picker.mjs.map +1 -1
  95. package/date-picker/package.json +24 -0
  96. package/date-picker/types/date-picker.d.ts +551 -0
  97. package/dialog/README.md +64 -0
  98. package/dialog/fesm2022/dialog.mjs +307 -0
  99. package/dialog/fesm2022/dialog.mjs.map +1 -0
  100. package/dialog/package.json +24 -0
  101. package/dialog/types/dialog.d.ts +95 -0
  102. package/drawer/README.md +11 -0
  103. package/drawer/fesm2022/drawer.mjs +271 -0
  104. package/drawer/fesm2022/drawer.mjs.map +1 -0
  105. package/drawer/package.json +25 -0
  106. package/drawer/types/drawer.d.ts +76 -0
  107. package/dropdown-menu/README.md +11 -0
  108. package/dropdown-menu/fesm2022/dropdown-menu.mjs +542 -0
  109. package/dropdown-menu/fesm2022/dropdown-menu.mjs.map +1 -0
  110. package/dropdown-menu/package.json +25 -0
  111. package/dropdown-menu/types/dropdown-menu.d.ts +176 -0
  112. package/empty/README.md +11 -0
  113. package/empty/fesm2022/empty.mjs +151 -0
  114. package/empty/fesm2022/empty.mjs.map +1 -0
  115. package/empty/package.json +25 -0
  116. package/empty/types/empty.d.ts +54 -0
  117. package/field/README.md +11 -0
  118. package/field/fesm2022/field.mjs +367 -0
  119. package/field/fesm2022/field.mjs.map +1 -0
  120. package/field/package.json +25 -0
  121. package/field/types/field.d.ts +107 -0
  122. package/form-checkbox/README.md +64 -0
  123. package/form-checkbox/fesm2022/form-checkbox.mjs +154 -0
  124. package/form-checkbox/fesm2022/form-checkbox.mjs.map +1 -0
  125. package/form-checkbox/package.json +24 -0
  126. package/form-checkbox/types/form-checkbox.d.ts +27 -0
  127. package/form-date-picker/fesm2022/form-date-picker.mjs +57 -50
  128. package/form-date-picker/fesm2022/form-date-picker.mjs.map +1 -1
  129. package/form-date-picker/package.json +24 -0
  130. package/form-field/fesm2022/form-field.mjs +37 -25
  131. package/form-field/fesm2022/form-field.mjs.map +1 -1
  132. package/form-field/package.json +25 -0
  133. package/form-field/{index.d.ts → types/form-field.d.ts} +4 -3
  134. package/form-field-simple/fesm2022/form-field-simple.mjs +14 -9
  135. package/form-field-simple/fesm2022/form-field-simple.mjs.map +1 -1
  136. package/form-field-simple/package.json +24 -0
  137. package/form-searchable-multiselect/README.md +64 -0
  138. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +158 -0
  139. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +1 -0
  140. package/form-searchable-multiselect/package.json +24 -0
  141. package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +30 -0
  142. package/form-select/fesm2022/form-select.mjs +131 -70
  143. package/form-select/fesm2022/form-select.mjs.map +1 -1
  144. package/form-select/package.json +24 -0
  145. package/form-text-input/fesm2022/form-text-input.mjs +66 -37
  146. package/form-text-input/fesm2022/form-text-input.mjs.map +1 -1
  147. package/form-text-input/package.json +24 -0
  148. package/form-textarea/fesm2022/form-textarea.mjs +53 -29
  149. package/form-textarea/fesm2022/form-textarea.mjs.map +1 -1
  150. package/form-textarea/package.json +24 -0
  151. package/hover-card/README.md +11 -0
  152. package/hover-card/fesm2022/hover-card.mjs +123 -0
  153. package/hover-card/fesm2022/hover-card.mjs.map +1 -0
  154. package/hover-card/package.json +25 -0
  155. package/hover-card/types/hover-card.d.ts +36 -0
  156. package/icon/fesm2022/icon.mjs +11 -9
  157. package/icon/fesm2022/icon.mjs.map +1 -1
  158. package/icon/package.json +25 -0
  159. package/input/fesm2022/input.mjs +21 -71
  160. package/input/fesm2022/input.mjs.map +1 -1
  161. package/input/package.json +25 -0
  162. package/input/types/input.d.ts +18 -0
  163. package/input-group/README.md +11 -0
  164. package/input-group/fesm2022/input-group.mjs +199 -0
  165. package/input-group/fesm2022/input-group.mjs.map +1 -0
  166. package/input-group/package.json +25 -0
  167. package/input-group/types/input-group.d.ts +52 -0
  168. package/input-otp/README.md +11 -0
  169. package/input-otp/fesm2022/input-otp.mjs +141 -0
  170. package/input-otp/fesm2022/input-otp.mjs.map +1 -0
  171. package/input-otp/package.json +25 -0
  172. package/input-otp/types/input-otp.d.ts +43 -0
  173. package/item/README.md +11 -0
  174. package/item/fesm2022/item.mjs +278 -0
  175. package/item/fesm2022/item.mjs.map +1 -0
  176. package/item/package.json +25 -0
  177. package/item/types/item.d.ts +101 -0
  178. package/kbd/README.md +11 -0
  179. package/kbd/fesm2022/kbd.mjs +61 -0
  180. package/kbd/fesm2022/kbd.mjs.map +1 -0
  181. package/kbd/package.json +25 -0
  182. package/kbd/types/kbd.d.ts +22 -0
  183. package/label/fesm2022/label.mjs +10 -9
  184. package/label/fesm2022/label.mjs.map +1 -1
  185. package/label/package.json +25 -0
  186. package/layout-simple/README.md +64 -0
  187. package/layout-simple/fesm2022/layout-simple.mjs +719 -0
  188. package/layout-simple/fesm2022/layout-simple.mjs.map +1 -0
  189. package/layout-simple/package.json +24 -0
  190. package/layout-simple/types/layout-simple.d.ts +153 -0
  191. package/menubar/README.md +11 -0
  192. package/menubar/fesm2022/menubar.mjs +108 -0
  193. package/menubar/fesm2022/menubar.mjs.map +1 -0
  194. package/menubar/package.json +25 -0
  195. package/menubar/types/menubar.d.ts +40 -0
  196. package/native-select/README.md +11 -0
  197. package/native-select/fesm2022/native-select.mjs +207 -0
  198. package/native-select/fesm2022/native-select.mjs.map +1 -0
  199. package/native-select/package.json +25 -0
  200. package/native-select/types/native-select.d.ts +70 -0
  201. package/navigation-menu/README.md +11 -0
  202. package/navigation-menu/fesm2022/navigation-menu.mjs +206 -0
  203. package/navigation-menu/fesm2022/navigation-menu.mjs.map +1 -0
  204. package/navigation-menu/package.json +25 -0
  205. package/navigation-menu/types/navigation-menu.d.ts +54 -0
  206. package/package.json +239 -47
  207. package/pagination/README.md +11 -0
  208. package/pagination/fesm2022/pagination.mjs +808 -0
  209. package/pagination/fesm2022/pagination.mjs.map +1 -0
  210. package/pagination/package.json +25 -0
  211. package/pagination/types/pagination.d.ts +192 -0
  212. package/popover/fesm2022/popover.mjs +123 -29
  213. package/popover/fesm2022/popover.mjs.map +1 -1
  214. package/popover/package.json +24 -0
  215. package/popover/types/popover.d.ts +54 -0
  216. package/progress/README.md +11 -0
  217. package/progress/fesm2022/progress.mjs +77 -0
  218. package/progress/fesm2022/progress.mjs.map +1 -0
  219. package/progress/package.json +25 -0
  220. package/progress/types/progress.d.ts +27 -0
  221. package/radio-group/README.md +64 -0
  222. package/radio-group/fesm2022/radio-group.mjs +204 -0
  223. package/radio-group/fesm2022/radio-group.mjs.map +1 -0
  224. package/radio-group/package.json +25 -0
  225. package/radio-group/types/radio-group.d.ts +71 -0
  226. package/resizable/README.md +11 -0
  227. package/resizable/fesm2022/resizable.mjs +111 -0
  228. package/resizable/fesm2022/resizable.mjs.map +1 -0
  229. package/resizable/package.json +25 -0
  230. package/resizable/types/resizable.d.ts +32 -0
  231. package/scroll-area/README.md +11 -0
  232. package/scroll-area/fesm2022/scroll-area.mjs +51 -0
  233. package/scroll-area/fesm2022/scroll-area.mjs.map +1 -0
  234. package/scroll-area/package.json +25 -0
  235. package/scroll-area/types/scroll-area.d.ts +16 -0
  236. package/searchable-multiselect/README.md +64 -0
  237. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +225 -0
  238. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +1 -0
  239. package/searchable-multiselect/package.json +24 -0
  240. package/searchable-multiselect/types/searchable-multiselect.d.ts +39 -0
  241. package/select/fesm2022/select.mjs +373 -191
  242. package/select/fesm2022/select.mjs.map +1 -1
  243. package/select/package.json +25 -0
  244. package/select/types/select.d.ts +119 -0
  245. package/separator/fesm2022/separator.mjs +16 -14
  246. package/separator/fesm2022/separator.mjs.map +1 -1
  247. package/separator/package.json +24 -0
  248. package/separator/{index.d.ts → types/separator.d.ts} +4 -5
  249. package/sheet/fesm2022/sheet.mjs +49 -42
  250. package/sheet/fesm2022/sheet.mjs.map +1 -1
  251. package/sheet/package.json +24 -0
  252. package/sidebar/README.md +11 -0
  253. package/sidebar/fesm2022/sidebar.mjs +948 -0
  254. package/sidebar/fesm2022/sidebar.mjs.map +1 -0
  255. package/sidebar/package.json +25 -0
  256. package/sidebar/types/sidebar.d.ts +237 -0
  257. package/skeleton/README.md +11 -0
  258. package/skeleton/fesm2022/skeleton.mjs +44 -0
  259. package/skeleton/fesm2022/skeleton.mjs.map +1 -0
  260. package/skeleton/package.json +25 -0
  261. package/skeleton/types/skeleton.d.ts +16 -0
  262. package/slider/README.md +11 -0
  263. package/slider/fesm2022/slider.mjs +144 -0
  264. package/slider/fesm2022/slider.mjs.map +1 -0
  265. package/slider/package.json +25 -0
  266. package/slider/types/slider.d.ts +19 -0
  267. package/sonner/fesm2022/sonner.mjs +29 -34
  268. package/sonner/fesm2022/sonner.mjs.map +1 -1
  269. package/sonner/package.json +25 -0
  270. package/spinner/fesm2022/spinner.mjs +17 -13
  271. package/spinner/fesm2022/spinner.mjs.map +1 -1
  272. package/spinner/package.json +25 -0
  273. package/switch/fesm2022/switch.mjs +27 -24
  274. package/switch/fesm2022/switch.mjs.map +1 -1
  275. package/switch/package.json +25 -0
  276. package/table/README.md +11 -0
  277. package/table/fesm2022/table.mjs +211 -0
  278. package/table/fesm2022/table.mjs.map +1 -0
  279. package/table/package.json +25 -0
  280. package/table/types/table.d.ts +87 -0
  281. package/tabs/README.md +64 -0
  282. package/tabs/fesm2022/tabs.mjs +286 -0
  283. package/tabs/fesm2022/tabs.mjs.map +1 -0
  284. package/tabs/package.json +25 -0
  285. package/tabs/types/tabs.d.ts +71 -0
  286. package/textarea/README.md +11 -0
  287. package/textarea/fesm2022/textarea.mjs +47 -0
  288. package/textarea/fesm2022/textarea.mjs.map +1 -0
  289. package/textarea/package.json +25 -0
  290. package/textarea/types/textarea.d.ts +18 -0
  291. package/toggle/README.md +11 -0
  292. package/toggle/fesm2022/toggle.mjs +78 -0
  293. package/toggle/fesm2022/toggle.mjs.map +1 -0
  294. package/toggle/package.json +25 -0
  295. package/toggle/types/toggle.d.ts +27 -0
  296. package/toggle-group/README.md +11 -0
  297. package/toggle-group/fesm2022/toggle-group.mjs +117 -0
  298. package/toggle-group/fesm2022/toggle-group.mjs.map +1 -0
  299. package/toggle-group/package.json +25 -0
  300. package/toggle-group/types/toggle-group.d.ts +39 -0
  301. package/tooltip/README.md +64 -0
  302. package/tooltip/fesm2022/tooltip.mjs +72 -0
  303. package/tooltip/fesm2022/tooltip.mjs.map +1 -0
  304. package/tooltip/package.json +25 -0
  305. package/tooltip/types/tooltip.d.ts +22 -0
  306. package/typography/README.md +11 -0
  307. package/typography/fesm2022/typography.mjs +242 -0
  308. package/typography/fesm2022/typography.mjs.map +1 -0
  309. package/typography/package.json +25 -0
  310. package/typography/types/typography.d.ts +94 -0
  311. package/utils/fesm2022/utils.mjs +184 -1
  312. package/utils/fesm2022/utils.mjs.map +1 -1
  313. package/utils/package.json +25 -0
  314. package/utils/types/utils.d.ts +13 -0
  315. package/calendar/index.d.ts +0 -111
  316. package/date-picker/index.d.ts +0 -227
  317. package/input/index.d.ts +0 -41
  318. package/popover/index.d.ts +0 -30
  319. package/select/index.d.ts +0 -92
  320. package/utils/index.d.ts +0 -5
  321. /package/alert/{index.d.ts → types/alert.d.ts} +0 -0
  322. /package/badge/{index.d.ts → types/badge.d.ts} +0 -0
  323. /package/basic-alert/{index.d.ts → types/basic-alert.d.ts} +0 -0
  324. /package/form-date-picker/{index.d.ts → types/form-date-picker.d.ts} +0 -0
  325. /package/form-field-simple/{index.d.ts → types/form-field-simple.d.ts} +0 -0
  326. /package/form-select/{index.d.ts → types/form-select.d.ts} +0 -0
  327. /package/form-text-input/{index.d.ts → types/form-text-input.d.ts} +0 -0
  328. /package/form-textarea/{index.d.ts → types/form-textarea.d.ts} +0 -0
  329. /package/icon/{index.d.ts → types/icon.d.ts} +0 -0
  330. /package/label/{index.d.ts → types/label.d.ts} +0 -0
  331. /package/sheet/{index.d.ts → types/sheet.d.ts} +0 -0
  332. /package/sonner/{index.d.ts → types/sonner.d.ts} +0 -0
  333. /package/spinner/{index.d.ts → types/spinner.d.ts} +0 -0
  334. /package/switch/{index.d.ts → types/switch.d.ts} +0 -0
@@ -0,0 +1,808 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive, ChangeDetectionStrategy, Component, booleanAttribute, computed, model, numberAttribute, untracked, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@egose/shadcn-theme-ng/select';
4
+ import { HlmSelectImports } from '@egose/shadcn-theme-ng/select';
5
+ import { classes, hlm } from '@egose/shadcn-theme-ng/utils';
6
+ import { NgIcon, provideIcons } from '@ng-icons/core';
7
+ import { lucideEllipsis, lucideChevronRight, lucideChevronLeft } from '@ng-icons/lucide';
8
+ import * as i1 from '@angular/router';
9
+ import { RouterLink } from '@angular/router';
10
+ import { buttonVariants } from '@egose/shadcn-theme-ng/button';
11
+
12
+ class HlmPagination {
13
+ /** The aria-label for the pagination component. */
14
+ ariaLabel = input('pagination', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
15
+ constructor() {
16
+ classes(() => 'mx-auto flex w-full justify-center');
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPagination, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmPagination, isStandalone: true, selector: "[hlmPagination],hlm-pagination", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "pagination", "role": "navigation" }, properties: { "attr.aria-label": "ariaLabel()" } }, ngImport: i0 });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPagination, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: '[hlmPagination],hlm-pagination',
25
+ host: {
26
+ 'data-slot': 'pagination',
27
+ role: 'navigation',
28
+ '[attr.aria-label]': 'ariaLabel()',
29
+ },
30
+ }]
31
+ }], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
32
+
33
+ class HlmPaginationContent {
34
+ constructor() {
35
+ classes(() => 'gap-1 flex items-center');
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
38
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPaginationContent, isStandalone: true, selector: "ul[hlmPaginationContent]", host: { attributes: { "data-slot": "pagination-content" } }, ngImport: i0 });
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationContent, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: 'ul[hlmPaginationContent]',
44
+ host: { 'data-slot': 'pagination-content' },
45
+ }]
46
+ }], ctorParameters: () => [] });
47
+
48
+ class HlmPaginationEllipsis {
49
+ /** Screen reader only text for the ellipsis */
50
+ srOnlyText = input('More pages', /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "srOnlyText" }] : /* istanbul ignore next */ []));
52
+ constructor() {
53
+ classes(() => "size-9 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center justify-center");
54
+ }
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: HlmPaginationEllipsis, isStandalone: true, selector: "hlm-pagination-ellipsis", inputs: { srOnlyText: { classPropertyName: "srOnlyText", publicName: "srOnlyText", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "pagination-ellipsis" } }, providers: [provideIcons({ lucideEllipsis })], ngImport: i0, template: `
57
+ <ng-icon name="lucideEllipsis" />
58
+ <span class="sr-only">{{ srOnlyText() }}</span>
59
+ `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationEllipsis, decorators: [{
62
+ type: Component,
63
+ args: [{
64
+ selector: 'hlm-pagination-ellipsis',
65
+ imports: [NgIcon],
66
+ providers: [provideIcons({ lucideEllipsis })],
67
+ changeDetection: ChangeDetectionStrategy.OnPush,
68
+ host: { 'data-slot': 'pagination-ellipsis' },
69
+ template: `
70
+ <ng-icon name="lucideEllipsis" />
71
+ <span class="sr-only">{{ srOnlyText() }}</span>
72
+ `,
73
+ }]
74
+ }], ctorParameters: () => [], propDecorators: { srOnlyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "srOnlyText", required: false }] }] } });
75
+
76
+ class HlmPaginationItem {
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
78
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPaginationItem, isStandalone: true, selector: "li[hlmPaginationItem]", host: { attributes: { "data-slot": "pagination-item" } }, ngImport: i0 });
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationItem, decorators: [{
81
+ type: Directive,
82
+ args: [{
83
+ selector: 'li[hlmPaginationItem]',
84
+ host: { 'data-slot': 'pagination-item' },
85
+ }]
86
+ }] });
87
+
88
+ class HlmPaginationLink {
89
+ /** Whether the link is active (i.e., the current page). */
90
+ isActive = input(false, { ...(ngDevMode ? { debugName: "isActive" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
91
+ /** The size of the button. */
92
+ size = input('icon', /* @ts-ignore */
93
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
94
+ /** The link to navigate to the page. */
95
+ link = input(/* @ts-ignore */
96
+ ...(ngDevMode ? [undefined, { debugName: "link" }] : /* istanbul ignore next */ []));
97
+ constructor() {
98
+ classes(() => [
99
+ 'relative',
100
+ buttonVariants({
101
+ variant: this.isActive() ? 'outline' : 'ghost',
102
+ size: this.size(),
103
+ }),
104
+ this.link() === undefined && 'cursor-pointer',
105
+ ]);
106
+ }
107
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
108
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmPaginationLink, isStandalone: true, selector: "[hlmPaginationLink]", inputs: { isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "pagination-link" }, properties: { "attr.data-active": "isActive() ? \"true\" : null", "attr.aria-current": "isActive() ? \"page\" : null" } }, hostDirectives: [{ directive: i1.RouterLink, inputs: ["target", "target", "queryParams", "queryParams", "fragment", "fragment", "queryParamsHandling", "queryParamsHandling", "state", "state", "info", "info", "relativeTo", "relativeTo", "preserveFragment", "preserveFragment", "skipLocationChange", "skipLocationChange", "replaceUrl", "replaceUrl", "routerLink", "link"] }], ngImport: i0 });
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationLink, decorators: [{
111
+ type: Directive,
112
+ args: [{
113
+ selector: '[hlmPaginationLink]',
114
+ hostDirectives: [
115
+ {
116
+ directive: RouterLink,
117
+ inputs: [
118
+ 'target',
119
+ 'queryParams',
120
+ 'fragment',
121
+ 'queryParamsHandling',
122
+ 'state',
123
+ 'info',
124
+ 'relativeTo',
125
+ 'preserveFragment',
126
+ 'skipLocationChange',
127
+ 'replaceUrl',
128
+ 'routerLink: link',
129
+ ],
130
+ },
131
+ ],
132
+ host: {
133
+ 'data-slot': 'pagination-link',
134
+ '[attr.data-active]': 'isActive() ? "true" : null',
135
+ '[attr.aria-current]': 'isActive() ? "page" : null',
136
+ },
137
+ }]
138
+ }], ctorParameters: () => [], propDecorators: { isActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "isActive", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }] } });
139
+
140
+ class HlmPaginationNext {
141
+ userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
142
+ /** The link to navigate to the next page. */
143
+ link = input(/* @ts-ignore */
144
+ ...(ngDevMode ? [undefined, { debugName: "link" }] : /* istanbul ignore next */ []));
145
+ /** The query parameters to pass to the next page. */
146
+ queryParams = input(/* @ts-ignore */
147
+ ...(ngDevMode ? [undefined, { debugName: "queryParams" }] : /* istanbul ignore next */ []));
148
+ /** How to handle query parameters when navigating to the next page. */
149
+ queryParamsHandling = input(/* @ts-ignore */
150
+ ...(ngDevMode ? [undefined, { debugName: "queryParamsHandling" }] : /* istanbul ignore next */ []));
151
+ /** The aria-label for the next page link. */
152
+ ariaLabel = input('Go to next page', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
153
+ /** The text to display for the next page link. */
154
+ text = input('Next', /* @ts-ignore */
155
+ ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
156
+ /** Whether the button should only display the icon. */
157
+ iconOnly = input(false, { ...(ngDevMode ? { debugName: "iconOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
158
+ _labelClass = computed(() => (this.iconOnly() ? 'sr-only' : 'hidden sm:block'), /* @ts-ignore */
159
+ ...(ngDevMode ? [{ debugName: "_labelClass" }] : /* istanbul ignore next */ []));
160
+ _size = computed(() => (this.iconOnly() ? 'icon' : 'default'), /* @ts-ignore */
161
+ ...(ngDevMode ? [{ debugName: "_size" }] : /* istanbul ignore next */ []));
162
+ _computedClass = computed(() => hlm(!this.iconOnly() && 'pe-2!', this.userClass()), /* @ts-ignore */
163
+ ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationNext, deps: [], target: i0.ɵɵFactoryTarget.Component });
165
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: HlmPaginationNext, isStandalone: true, selector: "hlm-pagination-next", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideIcons({ lucideChevronRight })], ngImport: i0, template: `
166
+ <a
167
+ hlmPaginationLink
168
+ [class]="_computedClass()"
169
+ [link]="link()"
170
+ [queryParams]="queryParams()"
171
+ [queryParamsHandling]="queryParamsHandling()"
172
+ [size]="_size()"
173
+ [attr.aria-label]="ariaLabel()"
174
+ >
175
+ <span [class]="_labelClass()">{{ text() }}</span>
176
+ <ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
177
+ </a>
178
+ `, isInline: true, dependencies: [{ kind: "directive", type: HlmPaginationLink, selector: "[hlmPaginationLink]", inputs: ["isActive", "size", "link"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
179
+ }
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationNext, decorators: [{
181
+ type: Component,
182
+ args: [{
183
+ selector: 'hlm-pagination-next',
184
+ imports: [HlmPaginationLink, NgIcon],
185
+ providers: [provideIcons({ lucideChevronRight })],
186
+ changeDetection: ChangeDetectionStrategy.OnPush,
187
+ template: `
188
+ <a
189
+ hlmPaginationLink
190
+ [class]="_computedClass()"
191
+ [link]="link()"
192
+ [queryParams]="queryParams()"
193
+ [queryParamsHandling]="queryParamsHandling()"
194
+ [size]="_size()"
195
+ [attr.aria-label]="ariaLabel()"
196
+ >
197
+ <span [class]="_labelClass()">{{ text() }}</span>
198
+ <ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
199
+ </a>
200
+ `,
201
+ }]
202
+ }], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], queryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParams", required: false }] }], queryParamsHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParamsHandling", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }] } });
203
+
204
+ class HlmPaginationPrevious {
205
+ userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
206
+ /** The link to navigate to the previous page. */
207
+ link = input(/* @ts-ignore */
208
+ ...(ngDevMode ? [undefined, { debugName: "link" }] : /* istanbul ignore next */ []));
209
+ /** The query parameters to pass to the previous page. */
210
+ queryParams = input(/* @ts-ignore */
211
+ ...(ngDevMode ? [undefined, { debugName: "queryParams" }] : /* istanbul ignore next */ []));
212
+ /** How to handle query parameters when navigating to the previous page. */
213
+ queryParamsHandling = input(/* @ts-ignore */
214
+ ...(ngDevMode ? [undefined, { debugName: "queryParamsHandling" }] : /* istanbul ignore next */ []));
215
+ /** The aria-label for the previous page link. */
216
+ ariaLabel = input('Go to previous page', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
217
+ /** The text to display for the previous page link. */
218
+ text = input('Previous', /* @ts-ignore */
219
+ ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
220
+ /** Whether the button should only display the icon. */
221
+ iconOnly = input(false, { ...(ngDevMode ? { debugName: "iconOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
222
+ _labelClass = computed(() => hlm(this.iconOnly() ? 'sr-only' : 'hidden sm:block'), /* @ts-ignore */
223
+ ...(ngDevMode ? [{ debugName: "_labelClass" }] : /* istanbul ignore next */ []));
224
+ _size = computed(() => (this.iconOnly() ? 'icon' : 'default'), /* @ts-ignore */
225
+ ...(ngDevMode ? [{ debugName: "_size" }] : /* istanbul ignore next */ []));
226
+ _computedClass = computed(() => hlm(!this.iconOnly() && 'ps-2!', this.userClass()), /* @ts-ignore */
227
+ ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
228
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationPrevious, deps: [], target: i0.ɵɵFactoryTarget.Component });
229
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: HlmPaginationPrevious, isStandalone: true, selector: "hlm-pagination-previous", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideIcons({ lucideChevronLeft })], ngImport: i0, template: `
230
+ <a
231
+ hlmPaginationLink
232
+ [class]="_computedClass()"
233
+ [link]="link()"
234
+ [queryParams]="queryParams()"
235
+ [queryParamsHandling]="queryParamsHandling()"
236
+ [size]="_size()"
237
+ [attr.aria-label]="ariaLabel()"
238
+ >
239
+ <ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
240
+ <span [class]="_labelClass()">{{ text() }}</span>
241
+ </a>
242
+ `, isInline: true, dependencies: [{ kind: "directive", type: HlmPaginationLink, selector: "[hlmPaginationLink]", inputs: ["isActive", "size", "link"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
243
+ }
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationPrevious, decorators: [{
245
+ type: Component,
246
+ args: [{
247
+ selector: 'hlm-pagination-previous',
248
+ imports: [HlmPaginationLink, NgIcon],
249
+ providers: [provideIcons({ lucideChevronLeft })],
250
+ changeDetection: ChangeDetectionStrategy.OnPush,
251
+ template: `
252
+ <a
253
+ hlmPaginationLink
254
+ [class]="_computedClass()"
255
+ [link]="link()"
256
+ [queryParams]="queryParams()"
257
+ [queryParamsHandling]="queryParamsHandling()"
258
+ [size]="_size()"
259
+ [attr.aria-label]="ariaLabel()"
260
+ >
261
+ <ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
262
+ <span [class]="_labelClass()">{{ text() }}</span>
263
+ </a>
264
+ `,
265
+ }]
266
+ }], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], queryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParams", required: false }] }], queryParamsHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParamsHandling", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }] } });
267
+
268
+ class HlmNumberedPagination {
269
+ /**
270
+ * The current (active) page.
271
+ */
272
+ currentPage = model.required(/* @ts-ignore */
273
+ ...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
274
+ /**
275
+ * The number of items per paginated page.
276
+ */
277
+ itemsPerPage = model.required(/* @ts-ignore */
278
+ ...(ngDevMode ? [{ debugName: "itemsPerPage" }] : /* istanbul ignore next */ []));
279
+ /**
280
+ * The total number of items in the collection. Only useful when
281
+ * doing server-side paging, where the collection size is limited
282
+ * to a single page returned by the server API.
283
+ */
284
+ totalItems = input.required({ ...(ngDevMode ? { debugName: "totalItems" } : /* istanbul ignore next */ {}), transform: numberAttribute });
285
+ /**
286
+ * The number of page links to show.
287
+ */
288
+ maxSize = input(7, { ...(ngDevMode ? { debugName: "maxSize" } : /* istanbul ignore next */ {}), transform: numberAttribute });
289
+ /**
290
+ * Show the first and last page buttons.
291
+ */
292
+ showEdges = input(true, { ...(ngDevMode ? { debugName: "showEdges" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
293
+ /**
294
+ * The page sizes to show.
295
+ * Defaults to [10, 20, 50, 100]
296
+ */
297
+ pageSizes = input([10, 20, 50, 100], /* @ts-ignore */
298
+ ...(ngDevMode ? [{ debugName: "pageSizes" }] : /* istanbul ignore next */ []));
299
+ _pageSizesWithCurrent = computed(() => {
300
+ const pageSizes = this.pageSizes();
301
+ return pageSizes.includes(this.itemsPerPage())
302
+ ? pageSizes // if current page size is included, return the same array
303
+ : [...pageSizes, this.itemsPerPage()].sort((a, b) => a - b); // otherwise, add current page size and sort the array
304
+ }, /* @ts-ignore */
305
+ ...(ngDevMode ? [{ debugName: "_pageSizesWithCurrent" }] : /* istanbul ignore next */ []));
306
+ _isFirstPageActive = computed(() => this.currentPage() === 1, /* @ts-ignore */
307
+ ...(ngDevMode ? [{ debugName: "_isFirstPageActive" }] : /* istanbul ignore next */ []));
308
+ _isLastPageActive = computed(() => this.currentPage() === this._lastPageNumber(), /* @ts-ignore */
309
+ ...(ngDevMode ? [{ debugName: "_isLastPageActive" }] : /* istanbul ignore next */ []));
310
+ _lastPageNumber = computed(() => {
311
+ if (this.totalItems() < 1) {
312
+ // when there are 0 or fewer (an error case) items, there are no "pages" as such,
313
+ // but it makes sense to consider a single, empty page as the last page.
314
+ return 1;
315
+ }
316
+ return Math.ceil(this.totalItems() / this.itemsPerPage());
317
+ }, /* @ts-ignore */
318
+ ...(ngDevMode ? [{ debugName: "_lastPageNumber" }] : /* istanbul ignore next */ []));
319
+ _pages = computed(() => {
320
+ const correctedCurrentPage = outOfBoundCorrection(this.totalItems(), this.itemsPerPage(), this.currentPage());
321
+ if (correctedCurrentPage !== this.currentPage()) {
322
+ // update the current page
323
+ untracked(() => this.currentPage.set(correctedCurrentPage));
324
+ }
325
+ return createPageArray(correctedCurrentPage, this.itemsPerPage(), this.totalItems(), this.maxSize());
326
+ }, /* @ts-ignore */
327
+ ...(ngDevMode ? [{ debugName: "_pages" }] : /* istanbul ignore next */ []));
328
+ goToPrevious() {
329
+ this.currentPage.set(this.currentPage() - 1);
330
+ }
331
+ goToNext() {
332
+ this.currentPage.set(this.currentPage() + 1);
333
+ }
334
+ goToFirst() {
335
+ this.currentPage.set(1);
336
+ }
337
+ goToLast() {
338
+ this.currentPage.set(this._lastPageNumber());
339
+ }
340
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNumberedPagination, deps: [], target: i0.ɵɵFactoryTarget.Component });
341
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: HlmNumberedPagination, isStandalone: true, selector: "hlm-numbered-pagination", inputs: { currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: true, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: true, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, showEdges: { classPropertyName: "showEdges", publicName: "showEdges", isSignal: true, isRequired: false, transformFunction: null }, pageSizes: { classPropertyName: "pageSizes", publicName: "pageSizes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentPage: "currentPageChange", itemsPerPage: "itemsPerPageChange" }, ngImport: i0, template: `
342
+ <div class="flex items-center justify-between gap-2 px-4 py-2">
343
+ <div class="flex items-center gap-1 text-sm text-nowrap text-gray-600">
344
+ <b>{{ totalItems() }}</b>
345
+ total items |
346
+ <b>{{ _lastPageNumber() }}</b>
347
+ pages
348
+ </div>
349
+
350
+ <nav hlmPagination>
351
+ <ul hlmPaginationContent>
352
+ @if (showEdges() && !_isFirstPageActive()) {
353
+ <li hlmPaginationItem (click)="goToPrevious()">
354
+ <hlm-pagination-previous />
355
+ </li>
356
+ }
357
+
358
+ @for (page of _pages(); track page) {
359
+ <li hlmPaginationItem>
360
+ @if (page === '...') {
361
+ <hlm-pagination-ellipsis />
362
+ } @else {
363
+ <a hlmPaginationLink [isActive]="currentPage() === page" (click)="currentPage.set(page)">
364
+ {{ page }}
365
+ </a>
366
+ }
367
+ </li>
368
+ }
369
+
370
+ @if (showEdges() && !_isLastPageActive()) {
371
+ <li hlmPaginationItem (click)="goToNext()">
372
+ <hlm-pagination-next />
373
+ </li>
374
+ }
375
+ </ul>
376
+ </nav>
377
+
378
+ <!-- Show Page Size selector -->
379
+ <hlm-select [(value)]="itemsPerPage" class="ml-auto">
380
+ <hlm-select-trigger class="w-fit">
381
+ <hlm-select-value />
382
+ </hlm-select-trigger>
383
+ <hlm-select-content *hlmSelectPortal>
384
+ <hlm-select-group>
385
+ @for (pageSize of _pageSizesWithCurrent(); track pageSize) {
386
+ <hlm-select-item [value]="pageSize">{{ pageSize }}</hlm-select-item>
387
+ }
388
+ </hlm-select-group>
389
+ </hlm-select-content>
390
+ </hlm-select>
391
+ </div>
392
+ `, isInline: true, dependencies: [{ kind: "directive", type: HlmPagination, selector: "[hlmPagination],hlm-pagination", inputs: ["aria-label"] }, { kind: "directive", type: HlmPaginationContent, selector: "ul[hlmPaginationContent]" }, { kind: "directive", type: HlmPaginationItem, selector: "li[hlmPaginationItem]" }, { kind: "component", type: HlmPaginationPrevious, selector: "hlm-pagination-previous", inputs: ["class", "link", "queryParams", "queryParamsHandling", "aria-label", "text", "iconOnly"] }, { kind: "component", type: HlmPaginationNext, selector: "hlm-pagination-next", inputs: ["class", "link", "queryParams", "queryParamsHandling", "aria-label", "text", "iconOnly"] }, { kind: "directive", type: HlmPaginationLink, selector: "[hlmPaginationLink]", inputs: ["isActive", "size", "link"] }, { kind: "component", type: HlmPaginationEllipsis, selector: "hlm-pagination-ellipsis", inputs: ["srOnlyText"] }, { kind: "directive", type: i1$1.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i1$1.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i1$1.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i1$1.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i1$1.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i1$1.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "size", "forceInvalid"] }, { kind: "directive", type: i1$1.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
393
+ }
394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNumberedPagination, decorators: [{
395
+ type: Component,
396
+ args: [{
397
+ selector: 'hlm-numbered-pagination',
398
+ imports: [
399
+ HlmPagination,
400
+ HlmPaginationContent,
401
+ HlmPaginationItem,
402
+ HlmPaginationPrevious,
403
+ HlmPaginationNext,
404
+ HlmPaginationLink,
405
+ HlmPaginationEllipsis,
406
+ HlmSelectImports,
407
+ ],
408
+ changeDetection: ChangeDetectionStrategy.OnPush,
409
+ template: `
410
+ <div class="flex items-center justify-between gap-2 px-4 py-2">
411
+ <div class="flex items-center gap-1 text-sm text-nowrap text-gray-600">
412
+ <b>{{ totalItems() }}</b>
413
+ total items |
414
+ <b>{{ _lastPageNumber() }}</b>
415
+ pages
416
+ </div>
417
+
418
+ <nav hlmPagination>
419
+ <ul hlmPaginationContent>
420
+ @if (showEdges() && !_isFirstPageActive()) {
421
+ <li hlmPaginationItem (click)="goToPrevious()">
422
+ <hlm-pagination-previous />
423
+ </li>
424
+ }
425
+
426
+ @for (page of _pages(); track page) {
427
+ <li hlmPaginationItem>
428
+ @if (page === '...') {
429
+ <hlm-pagination-ellipsis />
430
+ } @else {
431
+ <a hlmPaginationLink [isActive]="currentPage() === page" (click)="currentPage.set(page)">
432
+ {{ page }}
433
+ </a>
434
+ }
435
+ </li>
436
+ }
437
+
438
+ @if (showEdges() && !_isLastPageActive()) {
439
+ <li hlmPaginationItem (click)="goToNext()">
440
+ <hlm-pagination-next />
441
+ </li>
442
+ }
443
+ </ul>
444
+ </nav>
445
+
446
+ <!-- Show Page Size selector -->
447
+ <hlm-select [(value)]="itemsPerPage" class="ml-auto">
448
+ <hlm-select-trigger class="w-fit">
449
+ <hlm-select-value />
450
+ </hlm-select-trigger>
451
+ <hlm-select-content *hlmSelectPortal>
452
+ <hlm-select-group>
453
+ @for (pageSize of _pageSizesWithCurrent(); track pageSize) {
454
+ <hlm-select-item [value]="pageSize">{{ pageSize }}</hlm-select-item>
455
+ }
456
+ </hlm-select-group>
457
+ </hlm-select-content>
458
+ </hlm-select>
459
+ </div>
460
+ `,
461
+ }]
462
+ }], propDecorators: { currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: true }] }, { type: i0.Output, args: ["currentPageChange"] }], itemsPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsPerPage", required: true }] }, { type: i0.Output, args: ["itemsPerPageChange"] }], totalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalItems", required: true }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], showEdges: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEdges", required: false }] }], pageSizes: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizes", required: false }] }] } });
463
+ /**
464
+ * Checks that the instance.currentPage property is within bounds for the current page range.
465
+ * If not, return a correct value for currentPage, or the current value if OK.
466
+ *
467
+ * Copied from 'ngx-pagination' package
468
+ */
469
+ function outOfBoundCorrection(totalItems, itemsPerPage, currentPage) {
470
+ const totalPages = Math.ceil(totalItems / itemsPerPage);
471
+ if (totalPages < currentPage && 0 < totalPages) {
472
+ return totalPages;
473
+ }
474
+ if (currentPage < 1) {
475
+ return 1;
476
+ }
477
+ return currentPage;
478
+ }
479
+ /**
480
+ * Returns an array of Page objects to use in the pagination controls.
481
+ *
482
+ * Copied from 'ngx-pagination' package
483
+ */
484
+ function createPageArray(currentPage, itemsPerPage, totalItems, paginationRange) {
485
+ // paginationRange could be a string if passed from attribute, so cast to number.
486
+ paginationRange = +paginationRange;
487
+ const pages = [];
488
+ // Return 1 as default page number
489
+ // Make sense to show 1 instead of empty when there are no items
490
+ const totalPages = Math.max(Math.ceil(totalItems / itemsPerPage), 1);
491
+ const halfWay = Math.ceil(paginationRange / 2);
492
+ const isStart = currentPage <= halfWay;
493
+ const isEnd = totalPages - halfWay < currentPage;
494
+ const isMiddle = !isStart && !isEnd;
495
+ const ellipsesNeeded = paginationRange < totalPages;
496
+ let i = 1;
497
+ while (i <= totalPages && i <= paginationRange) {
498
+ let label;
499
+ const pageNumber = calculatePageNumber(i, currentPage, paginationRange, totalPages);
500
+ const openingEllipsesNeeded = i === 2 && (isMiddle || isEnd);
501
+ const closingEllipsesNeeded = i === paginationRange - 1 && (isMiddle || isStart);
502
+ if (ellipsesNeeded && (openingEllipsesNeeded || closingEllipsesNeeded)) {
503
+ label = '...';
504
+ }
505
+ else {
506
+ label = pageNumber;
507
+ }
508
+ pages.push(label);
509
+ i++;
510
+ }
511
+ return pages;
512
+ }
513
+ /**
514
+ * Given the position in the sequence of pagination links [i],
515
+ * figure out what page number corresponds to that position.
516
+ *
517
+ * Copied from 'ngx-pagination' package
518
+ */
519
+ function calculatePageNumber(i, currentPage, paginationRange, totalPages) {
520
+ const halfWay = Math.ceil(paginationRange / 2);
521
+ if (i === paginationRange) {
522
+ return totalPages;
523
+ }
524
+ if (i === 1) {
525
+ return i;
526
+ }
527
+ if (paginationRange < totalPages) {
528
+ if (totalPages - halfWay < currentPage) {
529
+ return totalPages - paginationRange + i;
530
+ }
531
+ if (halfWay < currentPage) {
532
+ return currentPage - halfWay + i;
533
+ }
534
+ return i;
535
+ }
536
+ return i;
537
+ }
538
+
539
+ class HlmNumberedPaginationQueryParams {
540
+ /**
541
+ * The current (active) page.
542
+ */
543
+ currentPage = model.required(/* @ts-ignore */
544
+ ...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
545
+ /**
546
+ * The number of items per paginated page.
547
+ */
548
+ itemsPerPage = model.required(/* @ts-ignore */
549
+ ...(ngDevMode ? [{ debugName: "itemsPerPage" }] : /* istanbul ignore next */ []));
550
+ /**
551
+ * The total number of items in the collection. Only useful when
552
+ * doing server-side paging, where the collection size is limited
553
+ * to a single page returned by the server API.
554
+ */
555
+ totalItems = input.required({ ...(ngDevMode ? { debugName: "totalItems" } : /* istanbul ignore next */ {}), transform: numberAttribute });
556
+ /**
557
+ * The URL path to use for the pagination links.
558
+ * Defaults to '.' (current path).
559
+ */
560
+ link = input('.', /* @ts-ignore */
561
+ ...(ngDevMode ? [{ debugName: "link" }] : /* istanbul ignore next */ []));
562
+ /**
563
+ * The number of page links to show.
564
+ */
565
+ maxSize = input(7, { ...(ngDevMode ? { debugName: "maxSize" } : /* istanbul ignore next */ {}), transform: numberAttribute });
566
+ /**
567
+ * Show the first and last page buttons.
568
+ */
569
+ showEdges = input(true, { ...(ngDevMode ? { debugName: "showEdges" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
570
+ /**
571
+ * The page sizes to show.
572
+ * Defaults to [10, 20, 50, 100]
573
+ */
574
+ pageSizes = input([10, 20, 50, 100], /* @ts-ignore */
575
+ ...(ngDevMode ? [{ debugName: "pageSizes" }] : /* istanbul ignore next */ []));
576
+ _pageSizesWithCurrent = computed(() => {
577
+ const pageSizes = this.pageSizes();
578
+ return pageSizes.includes(this.itemsPerPage())
579
+ ? pageSizes // if current page size is included, return the same array
580
+ : [...pageSizes, this.itemsPerPage()].sort((a, b) => a - b); // otherwise, add current page size and sort the array
581
+ }, /* @ts-ignore */
582
+ ...(ngDevMode ? [{ debugName: "_pageSizesWithCurrent" }] : /* istanbul ignore next */ []));
583
+ _isFirstPageActive = computed(() => this.currentPage() === 1, /* @ts-ignore */
584
+ ...(ngDevMode ? [{ debugName: "_isFirstPageActive" }] : /* istanbul ignore next */ []));
585
+ _isLastPageActive = computed(() => this.currentPage() === this._lastPageNumber(), /* @ts-ignore */
586
+ ...(ngDevMode ? [{ debugName: "_isLastPageActive" }] : /* istanbul ignore next */ []));
587
+ _lastPageNumber = computed(() => {
588
+ if (this.totalItems() < 1) {
589
+ // when there are 0 or fewer (an error case) items, there are no "pages" as such,
590
+ // but it makes sense to consider a single, empty page as the last page.
591
+ return 1;
592
+ }
593
+ return Math.ceil(this.totalItems() / this.itemsPerPage());
594
+ }, /* @ts-ignore */
595
+ ...(ngDevMode ? [{ debugName: "_lastPageNumber" }] : /* istanbul ignore next */ []));
596
+ _pages = computed(() => {
597
+ const correctedCurrentPage = outOfBoundCorrection(this.totalItems(), this.itemsPerPage(), this.currentPage());
598
+ if (correctedCurrentPage !== this.currentPage()) {
599
+ // update the current page
600
+ untracked(() => this.currentPage.set(correctedCurrentPage));
601
+ }
602
+ return createPageArray(correctedCurrentPage, this.itemsPerPage(), this.totalItems(), this.maxSize());
603
+ }, /* @ts-ignore */
604
+ ...(ngDevMode ? [{ debugName: "_pages" }] : /* istanbul ignore next */ []));
605
+ constructor() {
606
+ classes(() => 'flex items-center justify-between gap-2 px-4 py-2');
607
+ }
608
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNumberedPaginationQueryParams, deps: [], target: i0.ɵɵFactoryTarget.Component });
609
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: HlmNumberedPaginationQueryParams, isStandalone: true, selector: "hlm-numbered-pagination-query-params", inputs: { currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: true, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: true, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, showEdges: { classPropertyName: "showEdges", publicName: "showEdges", isSignal: true, isRequired: false, transformFunction: null }, pageSizes: { classPropertyName: "pageSizes", publicName: "pageSizes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentPage: "currentPageChange", itemsPerPage: "itemsPerPageChange" }, ngImport: i0, template: `
610
+ <div class="flex items-center gap-1 text-sm text-nowrap text-gray-600">
611
+ <b>{{ totalItems() }}</b>
612
+ total items |
613
+ <b>{{ _lastPageNumber() }}</b>
614
+ pages
615
+ </div>
616
+
617
+ <nav hlmPagination>
618
+ <ul hlmPaginationContent>
619
+ @if (showEdges() && !_isFirstPageActive()) {
620
+ <li hlmPaginationItem>
621
+ <hlm-pagination-previous
622
+ [link]="link()"
623
+ [queryParams]="{ page: currentPage() - 1 }"
624
+ queryParamsHandling="merge"
625
+ />
626
+ </li>
627
+ }
628
+
629
+ @for (page of _pages(); track page) {
630
+ <li hlmPaginationItem>
631
+ @if (page === '...') {
632
+ <hlm-pagination-ellipsis />
633
+ } @else {
634
+ <a
635
+ hlmPaginationLink
636
+ [link]="currentPage() !== page ? link() : undefined"
637
+ [queryParams]="{ page }"
638
+ queryParamsHandling="merge"
639
+ [isActive]="currentPage() === page"
640
+ >
641
+ {{ page }}
642
+ </a>
643
+ }
644
+ </li>
645
+ }
646
+
647
+ @if (showEdges() && !_isLastPageActive()) {
648
+ <li hlmPaginationItem>
649
+ <hlm-pagination-next
650
+ [link]="link()"
651
+ [queryParams]="{ page: currentPage() + 1 }"
652
+ queryParamsHandling="merge"
653
+ />
654
+ </li>
655
+ }
656
+ </ul>
657
+ </nav>
658
+
659
+ <!-- Show Page Size selector -->
660
+ <hlm-select [(value)]="itemsPerPage" class="ml-auto">
661
+ <hlm-select-trigger class="w-fit">
662
+ <hlm-select-value />
663
+ </hlm-select-trigger>
664
+ <hlm-select-content *hlmSelectPortal>
665
+ <hlm-select-group>
666
+ @for (pageSize of _pageSizesWithCurrent(); track pageSize) {
667
+ <hlm-select-item [value]="pageSize">{{ pageSize }}</hlm-select-item>
668
+ }
669
+ </hlm-select-group>
670
+ </hlm-select-content>
671
+ </hlm-select>
672
+ `, isInline: true, dependencies: [{ kind: "directive", type: HlmPagination, selector: "[hlmPagination],hlm-pagination", inputs: ["aria-label"] }, { kind: "directive", type: HlmPaginationContent, selector: "ul[hlmPaginationContent]" }, { kind: "directive", type: HlmPaginationItem, selector: "li[hlmPaginationItem]" }, { kind: "component", type: HlmPaginationPrevious, selector: "hlm-pagination-previous", inputs: ["class", "link", "queryParams", "queryParamsHandling", "aria-label", "text", "iconOnly"] }, { kind: "component", type: HlmPaginationNext, selector: "hlm-pagination-next", inputs: ["class", "link", "queryParams", "queryParamsHandling", "aria-label", "text", "iconOnly"] }, { kind: "directive", type: HlmPaginationLink, selector: "[hlmPaginationLink]", inputs: ["isActive", "size", "link"] }, { kind: "component", type: HlmPaginationEllipsis, selector: "hlm-pagination-ellipsis", inputs: ["srOnlyText"] }, { kind: "directive", type: i1$1.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i1$1.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i1$1.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i1$1.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i1$1.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i1$1.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "size", "forceInvalid"] }, { kind: "directive", type: i1$1.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
673
+ }
674
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNumberedPaginationQueryParams, decorators: [{
675
+ type: Component,
676
+ args: [{
677
+ selector: 'hlm-numbered-pagination-query-params',
678
+ imports: [
679
+ HlmPagination,
680
+ HlmPaginationContent,
681
+ HlmPaginationItem,
682
+ HlmPaginationPrevious,
683
+ HlmPaginationNext,
684
+ HlmPaginationLink,
685
+ HlmPaginationEllipsis,
686
+ HlmSelectImports,
687
+ ],
688
+ changeDetection: ChangeDetectionStrategy.OnPush,
689
+ template: `
690
+ <div class="flex items-center gap-1 text-sm text-nowrap text-gray-600">
691
+ <b>{{ totalItems() }}</b>
692
+ total items |
693
+ <b>{{ _lastPageNumber() }}</b>
694
+ pages
695
+ </div>
696
+
697
+ <nav hlmPagination>
698
+ <ul hlmPaginationContent>
699
+ @if (showEdges() && !_isFirstPageActive()) {
700
+ <li hlmPaginationItem>
701
+ <hlm-pagination-previous
702
+ [link]="link()"
703
+ [queryParams]="{ page: currentPage() - 1 }"
704
+ queryParamsHandling="merge"
705
+ />
706
+ </li>
707
+ }
708
+
709
+ @for (page of _pages(); track page) {
710
+ <li hlmPaginationItem>
711
+ @if (page === '...') {
712
+ <hlm-pagination-ellipsis />
713
+ } @else {
714
+ <a
715
+ hlmPaginationLink
716
+ [link]="currentPage() !== page ? link() : undefined"
717
+ [queryParams]="{ page }"
718
+ queryParamsHandling="merge"
719
+ [isActive]="currentPage() === page"
720
+ >
721
+ {{ page }}
722
+ </a>
723
+ }
724
+ </li>
725
+ }
726
+
727
+ @if (showEdges() && !_isLastPageActive()) {
728
+ <li hlmPaginationItem>
729
+ <hlm-pagination-next
730
+ [link]="link()"
731
+ [queryParams]="{ page: currentPage() + 1 }"
732
+ queryParamsHandling="merge"
733
+ />
734
+ </li>
735
+ }
736
+ </ul>
737
+ </nav>
738
+
739
+ <!-- Show Page Size selector -->
740
+ <hlm-select [(value)]="itemsPerPage" class="ml-auto">
741
+ <hlm-select-trigger class="w-fit">
742
+ <hlm-select-value />
743
+ </hlm-select-trigger>
744
+ <hlm-select-content *hlmSelectPortal>
745
+ <hlm-select-group>
746
+ @for (pageSize of _pageSizesWithCurrent(); track pageSize) {
747
+ <hlm-select-item [value]="pageSize">{{ pageSize }}</hlm-select-item>
748
+ }
749
+ </hlm-select-group>
750
+ </hlm-select-content>
751
+ </hlm-select>
752
+ `,
753
+ }]
754
+ }], ctorParameters: () => [], propDecorators: { currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: true }] }, { type: i0.Output, args: ["currentPageChange"] }], itemsPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsPerPage", required: true }] }, { type: i0.Output, args: ["itemsPerPageChange"] }], totalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalItems", required: true }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], showEdges: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEdges", required: false }] }], pageSizes: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizes", required: false }] }] } });
755
+
756
+ /*
757
+ * Public API Surface of pagination
758
+ */
759
+ const HlmPaginationImports = [
760
+ HlmPagination,
761
+ HlmPaginationContent,
762
+ HlmPaginationItem,
763
+ HlmPaginationLink,
764
+ HlmPaginationPrevious,
765
+ HlmPaginationNext,
766
+ HlmPaginationEllipsis,
767
+ HlmNumberedPagination,
768
+ HlmNumberedPaginationQueryParams,
769
+ ];
770
+ class HlmPaginationModule {
771
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
772
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationModule, imports: [HlmPagination,
773
+ HlmPaginationContent,
774
+ HlmPaginationItem,
775
+ HlmPaginationLink,
776
+ HlmPaginationPrevious,
777
+ HlmPaginationNext,
778
+ HlmPaginationEllipsis,
779
+ HlmNumberedPagination,
780
+ HlmNumberedPaginationQueryParams], exports: [HlmPagination,
781
+ HlmPaginationContent,
782
+ HlmPaginationItem,
783
+ HlmPaginationLink,
784
+ HlmPaginationPrevious,
785
+ HlmPaginationNext,
786
+ HlmPaginationEllipsis,
787
+ HlmNumberedPagination,
788
+ HlmNumberedPaginationQueryParams] });
789
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationModule, imports: [HlmPaginationPrevious,
790
+ HlmPaginationNext,
791
+ HlmPaginationEllipsis,
792
+ HlmNumberedPagination,
793
+ HlmNumberedPaginationQueryParams] });
794
+ }
795
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPaginationModule, decorators: [{
796
+ type: NgModule,
797
+ args: [{
798
+ imports: [...HlmPaginationImports],
799
+ exports: [...HlmPaginationImports],
800
+ }]
801
+ }] });
802
+
803
+ /**
804
+ * Generated bundle index. Do not edit.
805
+ */
806
+
807
+ export { HlmNumberedPagination, HlmNumberedPaginationQueryParams, HlmPagination, HlmPaginationContent, HlmPaginationEllipsis, HlmPaginationImports, HlmPaginationItem, HlmPaginationLink, HlmPaginationModule, HlmPaginationNext, HlmPaginationPrevious, createPageArray, outOfBoundCorrection };
808
+ //# sourceMappingURL=pagination.mjs.map