@ojiepermana/angular 22.1.13 → 22.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 (252) hide show
  1. package/README.md +8 -6
  2. package/SUPPORT.md +3 -3
  3. package/chart/README.md +1 -1
  4. package/component/README.md +2 -2
  5. package/component/calendar/README.md +3 -15
  6. package/component/drawer/README.md +1 -2
  7. package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
  8. package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
  9. package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
  10. package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
  11. package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
  12. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
  13. package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
  14. package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
  15. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
  16. package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
  17. package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
  18. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
  19. package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
  20. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
  21. package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
  22. package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
  23. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
  24. package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
  25. package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
  26. package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
  27. package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
  28. package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
  29. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
  30. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
  31. package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
  32. package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
  33. package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
  34. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
  35. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
  36. package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
  37. package/fesm2022/ojiepermana-angular-component-drawer.mjs +2 -5
  38. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
  39. package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
  40. package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
  41. package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
  42. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
  43. package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
  44. package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
  45. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
  46. package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
  47. package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
  48. package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
  49. package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
  50. package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
  51. package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
  52. package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
  53. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
  54. package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
  55. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
  56. package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
  57. package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
  58. package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
  59. package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
  60. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
  61. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
  62. package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
  63. package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
  64. package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
  65. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
  66. package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
  67. package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
  68. package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
  69. package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
  70. package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
  71. package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
  72. package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
  73. package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
  74. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
  75. package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
  76. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
  77. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
  78. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
  79. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
  80. package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
  81. package/fesm2022/ojiepermana-angular-component.mjs +0 -10
  82. package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
  83. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
  84. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-BKCeWzml.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs +811 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs} +387 -183
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs +1228 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs +311 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +542 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +27 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3052 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1115 -737
  96. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
  97. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
  98. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1719 -552
  99. package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -491
  100. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
  101. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
  102. package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
  103. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
  104. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
  105. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
  106. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
  107. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
  108. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
  109. package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
  110. package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
  111. package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
  112. package/fesm2022/ojiepermana-angular.mjs +5 -24
  113. package/navigation/README.md +1 -1
  114. package/package.json +16 -12
  115. package/sdk/README.md +1 -1
  116. package/sdk/src/writer/index.js +2 -2
  117. package/theme/README.md +1 -1
  118. package/theme/layout/README.md +2 -4
  119. package/theme/page/README.md +50 -0
  120. package/theme/styles/README.md +10 -10
  121. package/theme/styles/css/base/prefers-dark.css +1 -1
  122. package/theme/styles/css/base/status.css +1 -1
  123. package/theme/styles/css/color/amber.css +1 -1
  124. package/theme/styles/css/color/blue.css +1 -1
  125. package/theme/styles/css/color/cyan.css +1 -1
  126. package/theme/styles/css/color/emerald.css +1 -1
  127. package/theme/styles/css/color/fuchsia.css +1 -1
  128. package/theme/styles/css/color/green.css +1 -1
  129. package/theme/styles/css/color/indigo.css +1 -1
  130. package/theme/styles/css/color/lime.css +1 -1
  131. package/theme/styles/css/color/orange.css +1 -1
  132. package/theme/styles/css/color/pink.css +1 -1
  133. package/theme/styles/css/color/purple.css +1 -1
  134. package/theme/styles/css/color/red.css +1 -1
  135. package/theme/styles/css/color/rose.css +1 -1
  136. package/theme/styles/css/color/sky.css +1 -1
  137. package/theme/styles/css/color/teal.css +1 -1
  138. package/theme/styles/css/color/violet.css +1 -1
  139. package/theme/styles/css/color/yellow.css +1 -1
  140. package/theme/styles/css/neutral/gray.css +1 -1
  141. package/theme/styles/css/neutral/mauve.css +1 -1
  142. package/theme/styles/css/neutral/mist.css +1 -1
  143. package/theme/styles/css/neutral/neutral.css +1 -1
  144. package/theme/styles/css/neutral/olive.css +1 -1
  145. package/theme/styles/css/neutral/slate.css +1 -1
  146. package/theme/styles/css/neutral/stone.css +1 -1
  147. package/theme/styles/css/neutral/taupe.css +1 -1
  148. package/theme/styles/css/neutral/zinc.css +1 -1
  149. package/types/ojiepermana-angular-chart-area.d.ts +126 -63
  150. package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
  151. package/types/ojiepermana-angular-chart-core.d.ts +409 -398
  152. package/types/ojiepermana-angular-chart-line.d.ts +141 -68
  153. package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
  154. package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
  155. package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
  156. package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
  157. package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
  158. package/types/ojiepermana-angular-chart.d.ts +3 -2
  159. package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
  160. package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
  161. package/types/ojiepermana-angular-component-alert.d.ts +69 -39
  162. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
  163. package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
  164. package/types/ojiepermana-angular-component-badge.d.ts +36 -24
  165. package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
  166. package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
  167. package/types/ojiepermana-angular-component-button.d.ts +44 -27
  168. package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
  169. package/types/ojiepermana-angular-component-card.d.ts +112 -63
  170. package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
  171. package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
  172. package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
  173. package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
  174. package/types/ojiepermana-angular-component-command.d.ts +206 -121
  175. package/types/ojiepermana-angular-component-composer.d.ts +184 -84
  176. package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
  177. package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
  178. package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
  179. package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
  180. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
  181. package/types/ojiepermana-angular-component-editor.d.ts +215 -117
  182. package/types/ojiepermana-angular-component-empty.d.ts +80 -45
  183. package/types/ojiepermana-angular-component-form.d.ts +185 -121
  184. package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
  185. package/types/ojiepermana-angular-component-icon.d.ts +87 -57
  186. package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
  187. package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
  188. package/types/ojiepermana-angular-component-input.d.ts +27 -17
  189. package/types/ojiepermana-angular-component-item.d.ts +160 -84
  190. package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
  191. package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
  192. package/types/ojiepermana-angular-component-label.d.ts +19 -11
  193. package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
  194. package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
  195. package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
  196. package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
  197. package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
  198. package/types/ojiepermana-angular-component-popover.d.ts +94 -64
  199. package/types/ojiepermana-angular-component-progress.d.ts +45 -17
  200. package/types/ojiepermana-angular-component-radio.d.ts +129 -53
  201. package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
  202. package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
  203. package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
  204. package/types/ojiepermana-angular-component-select.d.ts +94 -77
  205. package/types/ojiepermana-angular-component-separator.d.ts +26 -14
  206. package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
  207. package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
  208. package/types/ojiepermana-angular-component-slider.d.ts +140 -75
  209. package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
  210. package/types/ojiepermana-angular-component-switch.d.ts +97 -40
  211. package/types/ojiepermana-angular-component-table.d.ts +102 -50
  212. package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
  213. package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
  214. package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
  215. package/types/ojiepermana-angular-component-toast.d.ts +51 -55
  216. package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
  217. package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
  218. package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
  219. package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
  220. package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
  221. package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
  222. package/types/ojiepermana-angular-component-utils.d.ts +2 -2
  223. package/types/ojiepermana-angular-component.d.ts +1 -2
  224. package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
  225. package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
  226. package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
  227. package/types/ojiepermana-angular-navigation-types.d.ts +121 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +663 -374
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +115 -83
  231. package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
  232. package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
  233. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +399 -187
  234. package/types/ojiepermana-angular-theme-layout.d.ts +201 -112
  235. package/types/ojiepermana-angular-theme-page-core.d.ts +136 -142
  236. package/types/ojiepermana-angular-theme-page-filter.d.ts +112 -62
  237. package/types/ojiepermana-angular-theme-page-overview.d.ts +28 -0
  238. package/types/ojiepermana-angular-theme-page-root.d.ts +172 -88
  239. package/types/ojiepermana-angular-theme-page-side.d.ts +89 -49
  240. package/types/ojiepermana-angular-theme-page-slots.d.ts +58 -37
  241. package/types/ojiepermana-angular-theme-page.d.ts +7 -5
  242. package/types/ojiepermana-angular-theme-shell-services.d.ts +119 -125
  243. package/types/ojiepermana-angular-theme-shell-types.d.ts +38 -41
  244. package/types/ojiepermana-angular-theme-shell.d.ts +139 -61
  245. package/types/ojiepermana-angular-theme-styles.d.ts +184 -196
  246. package/types/ojiepermana-angular-theme.d.ts +1 -2
  247. package/types/ojiepermana-angular.d.ts +5 -5
  248. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +0 -91
  249. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +0 -512
  250. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +0 -404
  251. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +0 -466
  252. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +0 -2642
@@ -1,76 +1,171 @@
1
- import { buttonVariants } from '@ojiepermana/angular/component/button';
2
- import * as i0 from '@angular/core';
3
- import { model, input, computed, Component } from '@angular/core';
4
- import { cn } from '@ojiepermana/angular/component/utils/core';
5
-
6
- /**
7
- * Simple pagination. Emits the desired page via `(pageChange)` and reflects
8
- * the current page through the `page` model input while allowing lightweight
9
- * label and visibility tweaks for localized and icon-only demos.
10
- */
11
- class PaginationComponent {
12
- page = model(1, /* @ts-ignore */
13
- ...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
14
- total = input(1, /* @ts-ignore */
15
- ...(ngDevMode ? [{ debugName: "total" }] : /* istanbul ignore next */ []));
16
- /** Number of sibling pages on each side of current. */
17
- siblingCount = input(1, /* @ts-ignore */
18
- ...(ngDevMode ? [{ debugName: "siblingCount" }] : /* istanbul ignore next */ []));
19
- showPageNumbers = input(true, /* @ts-ignore */
20
- ...(ngDevMode ? [{ debugName: "showPageNumbers" }] : /* istanbul ignore next */ []));
21
- previousText = input('Previous', /* @ts-ignore */
22
- ...(ngDevMode ? [{ debugName: "previousText" }] : /* istanbul ignore next */ []));
23
- nextText = input('Next', /* @ts-ignore */
24
- ...(ngDevMode ? [{ debugName: "nextText" }] : /* istanbul ignore next */ []));
25
- previousAriaLabel = input('Go to previous page', /* @ts-ignore */
26
- ...(ngDevMode ? [{ debugName: "previousAriaLabel" }] : /* istanbul ignore next */ []));
27
- nextAriaLabel = input('Go to next page', /* @ts-ignore */
28
- ...(ngDevMode ? [{ debugName: "nextAriaLabel" }] : /* istanbul ignore next */ []));
29
- formatPageLabel = input((page) => page.toString(), /* @ts-ignore */
30
- ...(ngDevMode ? [{ debugName: "formatPageLabel" }] : /* istanbul ignore next */ []));
31
- class = input('', /* @ts-ignore */
32
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
33
- classes = computed(() => cn('mx-auto flex w-full justify-center', this.class()), /* @ts-ignore */
34
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
35
- pages = computed(() => {
36
- if (!this.showPageNumbers()) {
37
- return [];
38
- }
39
- const total = Math.max(1, this.total());
40
- const current = Math.min(Math.max(1, this.page()), total);
41
- const siblings = Math.max(0, this.siblingCount());
42
- const range = [];
43
- const start = Math.max(2, current - siblings);
44
- const end = Math.min(total - 1, current + siblings);
45
- range.push({ key: 'p-1', kind: 'page', value: 1 });
46
- if (start > 2)
47
- range.push({ key: 'e-start', kind: 'ellipsis', value: -1 });
48
- for (let i = start; i <= end; i++)
49
- range.push({ key: `p-${i}`, kind: 'page', value: i });
50
- if (end < total - 1)
51
- range.push({ key: 'e-end', kind: 'ellipsis', value: -1 });
52
- if (total > 1)
53
- range.push({ key: `p-${total}`, kind: 'page', value: total });
54
- return range;
55
- }, /* @ts-ignore */
56
- ...(ngDevMode ? [{ debugName: "pages" }] : /* istanbul ignore next */ []));
57
- navClasses(hasText) {
58
- return hasText
59
- ? cn(buttonVariants({ variant: 'ghost', size: 'default' }), 'gap-1 pl-2.5 pr-2.5')
60
- : cn(buttonVariants({ variant: 'ghost', size: 'icon' }), 'h-control-md w-control-md');
61
- }
62
- pageClasses(active) {
63
- return cn(buttonVariants({ variant: active ? 'outline' : 'ghost', size: 'icon' }), 'h-control-md w-control-md');
64
- }
65
- go(target) {
66
- const total = Math.max(1, this.total());
67
- const next = Math.min(Math.max(1, target), total);
68
- if (next === this.page())
69
- return;
70
- this.page.set(next);
71
- }
72
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: PaginationComponent, isStandalone: true, selector: "Pagination, nav[Pagination]", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, siblingCount: { classPropertyName: "siblingCount", publicName: "siblingCount", isSignal: true, isRequired: false, transformFunction: null }, showPageNumbers: { classPropertyName: "showPageNumbers", publicName: "showPageNumbers", isSignal: true, isRequired: false, transformFunction: null }, previousText: { classPropertyName: "previousText", publicName: "previousText", isSignal: true, isRequired: false, transformFunction: null }, nextText: { classPropertyName: "nextText", publicName: "nextText", isSignal: true, isRequired: false, transformFunction: null }, previousAriaLabel: { classPropertyName: "previousAriaLabel", publicName: "previousAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, nextAriaLabel: { classPropertyName: "nextAriaLabel", publicName: "nextAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, formatPageLabel: { classPropertyName: "formatPageLabel", publicName: "formatPageLabel", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange" }, host: { attributes: { "role": "navigation", "aria-label": "pagination" }, properties: { "class": "classes()" } }, ngImport: i0, template: `
1
+ import { buttonVariants } from "@ojiepermana/angular/component/button";
2
+ import * as i0 from "@angular/core";
3
+ import { Component, computed, input, model } from "@angular/core";
4
+ import { cn } from "@ojiepermana/angular/component/utils/core";
5
+ var PaginationComponent = class PaginationComponent {
6
+ page = model(1, ...ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []);
7
+ total = input(1, ...ngDevMode ? [{ debugName: "total" }] : /* istanbul ignore next */ []);
8
+ siblingCount = input(1, ...ngDevMode ? [{ debugName: "siblingCount" }] : /* istanbul ignore next */ []);
9
+ showPageNumbers = input(true, ...ngDevMode ? [{ debugName: "showPageNumbers" }] : /* istanbul ignore next */ []);
10
+ previousText = input("Previous", ...ngDevMode ? [{ debugName: "previousText" }] : /* istanbul ignore next */ []);
11
+ nextText = input("Next", ...ngDevMode ? [{ debugName: "nextText" }] : /* istanbul ignore next */ []);
12
+ previousAriaLabel = input("Go to previous page", ...ngDevMode ? [{ debugName: "previousAriaLabel" }] : /* istanbul ignore next */ []);
13
+ nextAriaLabel = input("Go to next page", ...ngDevMode ? [{ debugName: "nextAriaLabel" }] : /* istanbul ignore next */ []);
14
+ formatPageLabel = input((page) => page.toString(), ...ngDevMode ? [{ debugName: "formatPageLabel" }] : /* istanbul ignore next */ []);
15
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
16
+ classes = computed(() => cn("mx-auto flex w-full justify-center", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
17
+ pages = computed(() => {
18
+ if (!this.showPageNumbers()) return [];
19
+ const total = Math.max(1, this.total());
20
+ const current = Math.min(Math.max(1, this.page()), total);
21
+ const siblings = Math.max(0, this.siblingCount());
22
+ const range = [];
23
+ const start = Math.max(2, current - siblings);
24
+ const end = Math.min(total - 1, current + siblings);
25
+ range.push({
26
+ key: "p-1",
27
+ kind: "page",
28
+ value: 1
29
+ });
30
+ if (start > 2) range.push({
31
+ key: "e-start",
32
+ kind: "ellipsis",
33
+ value: -1
34
+ });
35
+ for (let i = start; i <= end; i++) range.push({
36
+ key: `p-${i}`,
37
+ kind: "page",
38
+ value: i
39
+ });
40
+ if (end < total - 1) range.push({
41
+ key: "e-end",
42
+ kind: "ellipsis",
43
+ value: -1
44
+ });
45
+ if (total > 1) range.push({
46
+ key: `p-${total}`,
47
+ kind: "page",
48
+ value: total
49
+ });
50
+ return range;
51
+ }, ...ngDevMode ? [{ debugName: "pages" }] : /* istanbul ignore next */ []);
52
+ navClasses(hasText) {
53
+ return hasText ? cn(buttonVariants({
54
+ variant: "ghost",
55
+ size: "default"
56
+ }), "gap-1 pl-2.5 pr-2.5") : cn(buttonVariants({
57
+ variant: "ghost",
58
+ size: "icon"
59
+ }), "h-control-md w-control-md");
60
+ }
61
+ pageClasses(active) {
62
+ return cn(buttonVariants({
63
+ variant: active ? "outline" : "ghost",
64
+ size: "icon"
65
+ }), "h-control-md w-control-md");
66
+ }
67
+ go(target) {
68
+ const total = Math.max(1, this.total());
69
+ const next = Math.min(Math.max(1, target), total);
70
+ if (next === this.page()) return;
71
+ this.page.set(next);
72
+ }
73
+ static ɵfac = i0.ɵɵngDeclareFactory({
74
+ minVersion: "12.0.0",
75
+ version: "22.2.0",
76
+ ngImport: i0,
77
+ type: PaginationComponent,
78
+ deps: [],
79
+ target: i0.ɵɵFactoryTarget.Component
80
+ });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({
82
+ minVersion: "17.0.0",
83
+ version: "22.2.0",
84
+ type: PaginationComponent,
85
+ isStandalone: true,
86
+ selector: "Pagination, nav[Pagination]",
87
+ inputs: {
88
+ page: {
89
+ classPropertyName: "page",
90
+ publicName: "page",
91
+ isSignal: true,
92
+ isRequired: false,
93
+ transformFunction: null
94
+ },
95
+ total: {
96
+ classPropertyName: "total",
97
+ publicName: "total",
98
+ isSignal: true,
99
+ isRequired: false,
100
+ transformFunction: null
101
+ },
102
+ siblingCount: {
103
+ classPropertyName: "siblingCount",
104
+ publicName: "siblingCount",
105
+ isSignal: true,
106
+ isRequired: false,
107
+ transformFunction: null
108
+ },
109
+ showPageNumbers: {
110
+ classPropertyName: "showPageNumbers",
111
+ publicName: "showPageNumbers",
112
+ isSignal: true,
113
+ isRequired: false,
114
+ transformFunction: null
115
+ },
116
+ previousText: {
117
+ classPropertyName: "previousText",
118
+ publicName: "previousText",
119
+ isSignal: true,
120
+ isRequired: false,
121
+ transformFunction: null
122
+ },
123
+ nextText: {
124
+ classPropertyName: "nextText",
125
+ publicName: "nextText",
126
+ isSignal: true,
127
+ isRequired: false,
128
+ transformFunction: null
129
+ },
130
+ previousAriaLabel: {
131
+ classPropertyName: "previousAriaLabel",
132
+ publicName: "previousAriaLabel",
133
+ isSignal: true,
134
+ isRequired: false,
135
+ transformFunction: null
136
+ },
137
+ nextAriaLabel: {
138
+ classPropertyName: "nextAriaLabel",
139
+ publicName: "nextAriaLabel",
140
+ isSignal: true,
141
+ isRequired: false,
142
+ transformFunction: null
143
+ },
144
+ formatPageLabel: {
145
+ classPropertyName: "formatPageLabel",
146
+ publicName: "formatPageLabel",
147
+ isSignal: true,
148
+ isRequired: false,
149
+ transformFunction: null
150
+ },
151
+ class: {
152
+ classPropertyName: "class",
153
+ publicName: "class",
154
+ isSignal: true,
155
+ isRequired: false,
156
+ transformFunction: null
157
+ }
158
+ },
159
+ outputs: { page: "pageChange" },
160
+ host: {
161
+ attributes: {
162
+ "role": "navigation",
163
+ "aria-label": "pagination"
164
+ },
165
+ properties: { "class": "classes()" }
166
+ },
167
+ ngImport: i0,
168
+ template: `
74
169
  <ul class="flex flex-row items-center gap-1">
75
170
  <li>
76
171
  <button
@@ -145,18 +240,25 @@ class PaginationComponent {
145
240
  </button>
146
241
  </li>
147
242
  </ul>
148
- `, isInline: true });
149
- }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PaginationComponent, decorators: [{
151
- type: Component,
152
- args: [{
153
- selector: 'Pagination, nav[Pagination]',
154
- host: {
155
- role: 'navigation',
156
- 'aria-label': 'pagination',
157
- '[class]': 'classes()',
158
- },
159
- template: `
243
+ `,
244
+ isInline: true
245
+ });
246
+ };
247
+ i0.ɵɵngDeclareClassMetadata({
248
+ minVersion: "12.0.0",
249
+ version: "22.2.0",
250
+ ngImport: i0,
251
+ type: PaginationComponent,
252
+ decorators: [{
253
+ type: Component,
254
+ args: [{
255
+ selector: "Pagination, nav[Pagination]",
256
+ host: {
257
+ role: "navigation",
258
+ "aria-label": "pagination",
259
+ "[class]": "classes()"
260
+ },
261
+ template: `
160
262
  <ul class="flex flex-row items-center gap-1">
161
263
  <li>
162
264
  <button
@@ -231,12 +333,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
231
333
  </button>
232
334
  </li>
233
335
  </ul>
234
- `,
235
- }]
236
- }], propDecorators: { page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }], total: [{ type: i0.Input, args: [{ isSignal: true, alias: "total", required: false }] }], siblingCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "siblingCount", required: false }] }], showPageNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPageNumbers", required: false }] }], previousText: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousText", required: false }] }], nextText: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextText", required: false }] }], previousAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousAriaLabel", required: false }] }], nextAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextAriaLabel", required: false }] }], formatPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatPageLabel", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
237
-
238
- /**
239
- * Generated bundle index. Do not edit.
240
- */
241
-
242
- export { PaginationComponent };
336
+ `
337
+ }]
338
+ }],
339
+ propDecorators: {
340
+ page: [{
341
+ type: i0.Input,
342
+ args: [{
343
+ isSignal: true,
344
+ alias: "page",
345
+ required: false
346
+ }]
347
+ }, {
348
+ type: i0.Output,
349
+ args: ["pageChange"]
350
+ }],
351
+ total: [{
352
+ type: i0.Input,
353
+ args: [{
354
+ isSignal: true,
355
+ alias: "total",
356
+ required: false
357
+ }]
358
+ }],
359
+ siblingCount: [{
360
+ type: i0.Input,
361
+ args: [{
362
+ isSignal: true,
363
+ alias: "siblingCount",
364
+ required: false
365
+ }]
366
+ }],
367
+ showPageNumbers: [{
368
+ type: i0.Input,
369
+ args: [{
370
+ isSignal: true,
371
+ alias: "showPageNumbers",
372
+ required: false
373
+ }]
374
+ }],
375
+ previousText: [{
376
+ type: i0.Input,
377
+ args: [{
378
+ isSignal: true,
379
+ alias: "previousText",
380
+ required: false
381
+ }]
382
+ }],
383
+ nextText: [{
384
+ type: i0.Input,
385
+ args: [{
386
+ isSignal: true,
387
+ alias: "nextText",
388
+ required: false
389
+ }]
390
+ }],
391
+ previousAriaLabel: [{
392
+ type: i0.Input,
393
+ args: [{
394
+ isSignal: true,
395
+ alias: "previousAriaLabel",
396
+ required: false
397
+ }]
398
+ }],
399
+ nextAriaLabel: [{
400
+ type: i0.Input,
401
+ args: [{
402
+ isSignal: true,
403
+ alias: "nextAriaLabel",
404
+ required: false
405
+ }]
406
+ }],
407
+ formatPageLabel: [{
408
+ type: i0.Input,
409
+ args: [{
410
+ isSignal: true,
411
+ alias: "formatPageLabel",
412
+ required: false
413
+ }]
414
+ }],
415
+ class: [{
416
+ type: i0.Input,
417
+ args: [{
418
+ isSignal: true,
419
+ alias: "class",
420
+ required: false
421
+ }]
422
+ }]
423
+ }
424
+ });
425
+ export { PaginationComponent };