primeng 20.1.2 → 20.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 (320) hide show
  1. package/accordion/index.d.ts +2 -2
  2. package/animateonscroll/index.d.ts +2 -2
  3. package/api/index.d.ts +4 -3
  4. package/autocomplete/index.d.ts +59 -13
  5. package/avatargroup/index.d.ts +2 -2
  6. package/badge/index.d.ts +5 -5
  7. package/base/index.d.ts +6 -6
  8. package/basecomponent/index.d.ts +1 -1
  9. package/baseeditableholder/index.d.ts +4 -4
  10. package/baseinput/index.d.ts +12 -12
  11. package/breadcrumb/index.d.ts +1 -2
  12. package/button/index.d.ts +10 -10
  13. package/card/index.d.ts +1 -1
  14. package/carousel/index.d.ts +6 -6
  15. package/cascadeselect/index.d.ts +9 -9
  16. package/checkbox/index.d.ts +3 -3
  17. package/chip/index.d.ts +14 -4
  18. package/classnames/index.d.ts +38 -0
  19. package/config/index.d.ts +2 -2
  20. package/confirmdialog/index.d.ts +3 -3
  21. package/contextmenu/index.d.ts +4 -4
  22. package/dataview/index.d.ts +1 -1
  23. package/datepicker/index.d.ts +1 -1
  24. package/dialog/index.d.ts +4 -3
  25. package/divider/index.d.ts +2 -2
  26. package/dock/index.d.ts +2 -2
  27. package/dom/index.d.ts +4 -4
  28. package/dynamicdialog/index.d.ts +14 -14
  29. package/fesm2022/primeng-accordion.mjs +33 -21
  30. package/fesm2022/primeng-accordion.mjs.map +1 -1
  31. package/fesm2022/primeng-animateonscroll.mjs +8 -8
  32. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  33. package/fesm2022/primeng-api.mjs +31 -31
  34. package/fesm2022/primeng-autocomplete.mjs +180 -50
  35. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  36. package/fesm2022/primeng-autofocus.mjs +7 -7
  37. package/fesm2022/primeng-avatar.mjs +10 -10
  38. package/fesm2022/primeng-avatargroup.mjs +10 -10
  39. package/fesm2022/primeng-badge.mjs +15 -15
  40. package/fesm2022/primeng-badge.mjs.map +1 -1
  41. package/fesm2022/primeng-base.mjs +3 -3
  42. package/fesm2022/primeng-base.mjs.map +1 -1
  43. package/fesm2022/primeng-basecomponent.mjs +6 -6
  44. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  45. package/fesm2022/primeng-baseeditableholder.mjs +3 -3
  46. package/fesm2022/primeng-baseinput.mjs +3 -3
  47. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  48. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  49. package/fesm2022/primeng-blockui.mjs +10 -10
  50. package/fesm2022/primeng-breadcrumb.mjs +21 -21
  51. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  52. package/fesm2022/primeng-button.mjs +24 -23
  53. package/fesm2022/primeng-button.mjs.map +1 -1
  54. package/fesm2022/primeng-buttongroup.mjs +10 -10
  55. package/fesm2022/primeng-card.mjs +10 -10
  56. package/fesm2022/primeng-carousel.mjs +23 -23
  57. package/fesm2022/primeng-carousel.mjs.map +1 -1
  58. package/fesm2022/primeng-cascadeselect.mjs +31 -25
  59. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  60. package/fesm2022/primeng-chart.mjs +10 -10
  61. package/fesm2022/primeng-checkbox.mjs +15 -14
  62. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  63. package/fesm2022/primeng-chip.mjs +48 -17
  64. package/fesm2022/primeng-chip.mjs.map +1 -1
  65. package/fesm2022/primeng-classnames.mjs +73 -0
  66. package/fesm2022/primeng-classnames.mjs.map +1 -0
  67. package/fesm2022/primeng-colorpicker.mjs +11 -11
  68. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  69. package/fesm2022/primeng-config.mjs +8 -7
  70. package/fesm2022/primeng-config.mjs.map +1 -1
  71. package/fesm2022/primeng-confirmdialog.mjs +16 -10
  72. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  73. package/fesm2022/primeng-confirmpopup.mjs +24 -22
  74. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  75. package/fesm2022/primeng-contextmenu.mjs +24 -22
  76. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  77. package/fesm2022/primeng-dataview.mjs +11 -11
  78. package/fesm2022/primeng-dataview.mjs.map +1 -1
  79. package/fesm2022/primeng-datepicker.mjs +23 -23
  80. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  81. package/fesm2022/primeng-dialog.mjs +34 -15
  82. package/fesm2022/primeng-dialog.mjs.map +1 -1
  83. package/fesm2022/primeng-divider.mjs +10 -10
  84. package/fesm2022/primeng-dock.mjs +27 -25
  85. package/fesm2022/primeng-dock.mjs.map +1 -1
  86. package/fesm2022/primeng-dom.mjs +13 -10
  87. package/fesm2022/primeng-dom.mjs.map +1 -1
  88. package/fesm2022/primeng-dragdrop.mjs +10 -10
  89. package/fesm2022/primeng-drawer.mjs +28 -19
  90. package/fesm2022/primeng-drawer.mjs.map +1 -1
  91. package/fesm2022/primeng-dynamicdialog.mjs +48 -39
  92. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  93. package/fesm2022/primeng-editor.mjs +11 -11
  94. package/fesm2022/primeng-editor.mjs.map +1 -1
  95. package/fesm2022/primeng-fieldset.mjs +12 -11
  96. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  97. package/fesm2022/primeng-fileupload.mjs +15 -15
  98. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  99. package/fesm2022/primeng-floatlabel.mjs +10 -10
  100. package/fesm2022/primeng-fluid.mjs +10 -12
  101. package/fesm2022/primeng-fluid.mjs.map +1 -1
  102. package/fesm2022/primeng-focustrap.mjs +7 -7
  103. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  104. package/fesm2022/primeng-galleria.mjs +42 -38
  105. package/fesm2022/primeng-galleria.mjs.map +1 -1
  106. package/fesm2022/primeng-iconfield.mjs +10 -10
  107. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  108. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  109. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  110. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  111. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  112. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  113. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  114. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  115. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  116. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  117. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  118. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  119. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  120. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  121. package/fesm2022/primeng-icons-ban.mjs +3 -3
  122. package/fesm2022/primeng-icons-bars.mjs +3 -3
  123. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  124. package/fesm2022/primeng-icons-blank.mjs +3 -3
  125. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  126. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  127. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  128. package/fesm2022/primeng-icons-check.mjs +3 -3
  129. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  130. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  131. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  132. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  133. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  134. package/fesm2022/primeng-icons-eye.mjs +3 -3
  135. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  136. package/fesm2022/primeng-icons-filter.mjs +3 -3
  137. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  138. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  139. package/fesm2022/primeng-icons-home.mjs +3 -3
  140. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  141. package/fesm2022/primeng-icons-minus.mjs +3 -3
  142. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  143. package/fesm2022/primeng-icons-plus.mjs +3 -3
  144. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  145. package/fesm2022/primeng-icons-search.mjs +3 -3
  146. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  147. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  148. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  149. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  150. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  151. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  152. package/fesm2022/primeng-icons-star.mjs +3 -3
  153. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  154. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  155. package/fesm2022/primeng-icons-times.mjs +3 -3
  156. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  157. package/fesm2022/primeng-icons-trash.mjs +3 -3
  158. package/fesm2022/primeng-icons-undo.mjs +3 -3
  159. package/fesm2022/primeng-icons-upload.mjs +3 -3
  160. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  161. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  162. package/fesm2022/primeng-iftalabel.mjs +10 -10
  163. package/fesm2022/primeng-image.mjs +19 -16
  164. package/fesm2022/primeng-image.mjs.map +1 -1
  165. package/fesm2022/primeng-imagecompare.mjs +10 -10
  166. package/fesm2022/primeng-inplace.mjs +16 -16
  167. package/fesm2022/primeng-inputgroup.mjs +10 -10
  168. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  169. package/fesm2022/primeng-inputicon.mjs +10 -10
  170. package/fesm2022/primeng-inputmask.mjs +22 -13
  171. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  172. package/fesm2022/primeng-inputnumber.mjs +52 -31
  173. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  174. package/fesm2022/primeng-inputotp.mjs +11 -11
  175. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  176. package/fesm2022/primeng-inputtext.mjs +10 -10
  177. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  178. package/fesm2022/primeng-keyfilter.mjs +19 -10
  179. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  180. package/fesm2022/primeng-knob.mjs +10 -10
  181. package/fesm2022/primeng-listbox.mjs +124 -43
  182. package/fesm2022/primeng-listbox.mjs.map +1 -1
  183. package/fesm2022/primeng-megamenu.mjs +22 -20
  184. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  185. package/fesm2022/primeng-menu.mjs +35 -44
  186. package/fesm2022/primeng-menu.mjs.map +1 -1
  187. package/fesm2022/primeng-menubar.mjs +28 -27
  188. package/fesm2022/primeng-menubar.mjs.map +1 -1
  189. package/fesm2022/primeng-message.mjs +33 -30
  190. package/fesm2022/primeng-message.mjs.map +1 -1
  191. package/fesm2022/primeng-metergroup.mjs +27 -18
  192. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  193. package/fesm2022/primeng-multiselect.mjs +58 -48
  194. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  195. package/fesm2022/primeng-orderlist.mjs +149 -43
  196. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  197. package/fesm2022/primeng-organizationchart.mjs +13 -13
  198. package/fesm2022/primeng-overlay.mjs +15 -11
  199. package/fesm2022/primeng-overlay.mjs.map +1 -1
  200. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  201. package/fesm2022/primeng-paginator.mjs +11 -11
  202. package/fesm2022/primeng-paginator.mjs.map +1 -1
  203. package/fesm2022/primeng-panel.mjs +11 -11
  204. package/fesm2022/primeng-panel.mjs.map +1 -1
  205. package/fesm2022/primeng-panelmenu.mjs +27 -26
  206. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  207. package/fesm2022/primeng-password.mjs +25 -21
  208. package/fesm2022/primeng-password.mjs.map +1 -1
  209. package/fesm2022/primeng-picklist.mjs +129 -48
  210. package/fesm2022/primeng-picklist.mjs.map +1 -1
  211. package/fesm2022/primeng-popover.mjs +11 -11
  212. package/fesm2022/primeng-popover.mjs.map +1 -1
  213. package/fesm2022/primeng-progressbar.mjs +10 -10
  214. package/fesm2022/primeng-progressspinner.mjs +10 -10
  215. package/fesm2022/primeng-radiobutton.mjs +15 -15
  216. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  217. package/fesm2022/primeng-rating.mjs +11 -11
  218. package/fesm2022/primeng-rating.mjs.map +1 -1
  219. package/fesm2022/primeng-ripple.mjs +10 -10
  220. package/fesm2022/primeng-scroller.mjs +10 -10
  221. package/fesm2022/primeng-scrollpanel.mjs +19 -19
  222. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  223. package/fesm2022/primeng-scrolltop.mjs +10 -10
  224. package/fesm2022/primeng-select.mjs +56 -38
  225. package/fesm2022/primeng-select.mjs.map +1 -1
  226. package/fesm2022/primeng-selectbutton.mjs +12 -12
  227. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  228. package/fesm2022/primeng-skeleton.mjs +10 -10
  229. package/fesm2022/primeng-slider.mjs +14 -14
  230. package/fesm2022/primeng-slider.mjs.map +1 -1
  231. package/fesm2022/primeng-speeddial.mjs +32 -24
  232. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  233. package/fesm2022/primeng-splitbutton.mjs +15 -15
  234. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  235. package/fesm2022/primeng-splitter.mjs +21 -21
  236. package/fesm2022/primeng-splitter.mjs.map +1 -1
  237. package/fesm2022/primeng-stepper.mjs +43 -43
  238. package/fesm2022/primeng-stepper.mjs.map +1 -1
  239. package/fesm2022/primeng-steps.mjs +15 -15
  240. package/fesm2022/primeng-steps.mjs.map +1 -1
  241. package/fesm2022/primeng-styleclass.mjs +8 -8
  242. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  243. package/fesm2022/primeng-table.mjs +178 -158
  244. package/fesm2022/primeng-table.mjs.map +1 -1
  245. package/fesm2022/primeng-tabs.mjs +99 -55
  246. package/fesm2022/primeng-tabs.mjs.map +1 -1
  247. package/fesm2022/primeng-tag.mjs +10 -10
  248. package/fesm2022/primeng-tag.mjs.map +1 -1
  249. package/fesm2022/primeng-terminal.mjs +13 -13
  250. package/fesm2022/primeng-textarea.mjs +11 -11
  251. package/fesm2022/primeng-textarea.mjs.map +1 -1
  252. package/fesm2022/primeng-tieredmenu.mjs +26 -25
  253. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  254. package/fesm2022/primeng-timeline.mjs +10 -10
  255. package/fesm2022/primeng-toast.mjs +14 -13
  256. package/fesm2022/primeng-toast.mjs.map +1 -1
  257. package/fesm2022/primeng-togglebutton.mjs +20 -13
  258. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  259. package/fesm2022/primeng-toggleswitch.mjs +10 -10
  260. package/fesm2022/primeng-toolbar.mjs +10 -10
  261. package/fesm2022/primeng-tooltip.mjs +16 -15
  262. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  263. package/fesm2022/primeng-tree.mjs +170 -221
  264. package/fesm2022/primeng-tree.mjs.map +1 -1
  265. package/fesm2022/primeng-treeselect.mjs +17 -17
  266. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  267. package/fesm2022/primeng-treetable.mjs +84 -77
  268. package/fesm2022/primeng-treetable.mjs.map +1 -1
  269. package/fesm2022/primeng-usestyle.mjs +20 -18
  270. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  271. package/fesm2022/primeng-utils.mjs.map +1 -1
  272. package/fieldset/index.d.ts +3 -2
  273. package/fileupload/index.d.ts +6 -6
  274. package/fluid/index.d.ts +0 -2
  275. package/galleria/index.d.ts +10 -10
  276. package/icons/baseicon/index.d.ts +1 -1
  277. package/image/index.d.ts +7 -7
  278. package/inputnumber/index.d.ts +7 -7
  279. package/inputotp/index.d.ts +3 -3
  280. package/inputtext/index.d.ts +6 -6
  281. package/keyfilter/index.d.ts +2 -2
  282. package/listbox/index.d.ts +31 -19
  283. package/megamenu/index.d.ts +1 -1
  284. package/menu/index.d.ts +1 -2
  285. package/message/index.d.ts +3 -2
  286. package/metergroup/index.d.ts +6 -6
  287. package/multiselect/index.d.ts +18 -17
  288. package/orderlist/index.d.ts +13 -7
  289. package/organizationchart/index.d.ts +2 -2
  290. package/overlay/index.d.ts +5 -5
  291. package/package.json +198 -194
  292. package/paginator/index.d.ts +1 -1
  293. package/panel/index.d.ts +2 -2
  294. package/panelmenu/index.d.ts +8 -8
  295. package/password/index.d.ts +6 -6
  296. package/picklist/index.d.ts +17 -12
  297. package/radiobutton/index.d.ts +3 -3
  298. package/rating/index.d.ts +1 -1
  299. package/scroller/index.d.ts +3 -3
  300. package/select/index.d.ts +11 -11
  301. package/selectbutton/index.d.ts +3 -3
  302. package/slider/index.d.ts +2 -2
  303. package/speeddial/index.d.ts +9 -9
  304. package/splitter/index.d.ts +3 -3
  305. package/stepper/index.d.ts +4 -4
  306. package/steps/index.d.ts +3 -3
  307. package/table/index.d.ts +39 -31
  308. package/tabs/index.d.ts +23 -8
  309. package/tag/index.d.ts +1 -1
  310. package/textarea/index.d.ts +6 -6
  311. package/tieredmenu/index.d.ts +1 -1
  312. package/toast/index.d.ts +5 -5
  313. package/togglebutton/index.d.ts +4 -3
  314. package/toggleswitch/index.d.ts +1 -1
  315. package/tooltip/index.d.ts +11 -11
  316. package/tree/index.d.ts +31 -46
  317. package/treeselect/index.d.ts +6 -6
  318. package/treetable/index.d.ts +10 -10
  319. package/usestyle/index.d.ts +2 -2
  320. package/utils/index.d.ts +2 -2
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
- import { isPlatformBrowser, CommonModule } from '@angular/common';
2
+ import { isPlatformBrowser, CommonModule, NgTemplateOutlet } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, inject, forwardRef, signal, computed, effect, ViewChild, ContentChildren, ContentChild, ViewEncapsulation, ChangeDetectionStrategy, Component, model, input, booleanAttribute, ElementRef, HostListener, numberAttribute, NgModule } from '@angular/core';
4
+ import { Injectable, inject, forwardRef, signal, computed, effect, ViewChild, ContentChildren, ContentChild, ViewEncapsulation, ChangeDetectionStrategy, Component, model, input, booleanAttribute, ElementRef, HostListener, contentChild, numberAttribute, NgModule } from '@angular/core';
5
5
  import { getWidth, isRTL, findSingle, getOuterWidth, getOffset, equals, getAttribute, focus, uuid } from '@primeuix/utils';
6
6
  import { BaseComponent } from 'primeng/basecomponent';
7
7
  import { style } from '@primeuix/styles/tabs';
@@ -23,10 +23,10 @@ class TabsStyle extends BaseStyle {
23
23
  name = 'tabs';
24
24
  theme = style;
25
25
  classes = classes$4;
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabsStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
27
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabsStyle });
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabsStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
27
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabsStyle });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabsStyle, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabsStyle, decorators: [{
30
30
  type: Injectable
31
31
  }] });
32
32
  /**
@@ -89,10 +89,10 @@ const classes$3 = {
89
89
  class TabListStyle extends BaseStyle {
90
90
  name = 'tablist';
91
91
  classes = classes$3;
92
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabListStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
93
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabListStyle });
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabListStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
93
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabListStyle });
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabListStyle, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabListStyle, decorators: [{
96
96
  type: Injectable
97
97
  }] });
98
98
  /**
@@ -175,10 +175,10 @@ class TabList extends BaseComponent {
175
175
  });
176
176
  }
177
177
  get prevButtonAriaLabel() {
178
- return this.config.translation.aria.previous;
178
+ return this.config?.translation?.aria?.previous;
179
179
  }
180
180
  get nextButtonAriaLabel() {
181
- return this.config.translation.aria.next;
181
+ return this.config?.translation?.aria?.next;
182
182
  }
183
183
  ngAfterViewInit() {
184
184
  super.ngAfterViewInit();
@@ -190,7 +190,7 @@ class TabList extends BaseComponent {
190
190
  _prevIconTemplate;
191
191
  _nextIconTemplate;
192
192
  ngAfterContentInit() {
193
- this.templates.forEach((t) => {
193
+ this.templates?.forEach((t) => {
194
194
  switch (t.getType()) {
195
195
  case 'previcon':
196
196
  this._prevIconTemplate = t.template;
@@ -231,7 +231,7 @@ class TabList extends BaseComponent {
231
231
  const scrollLeft = Math.abs(_content.scrollLeft);
232
232
  const width = getWidth(_content);
233
233
  this.isPrevButtonEnabled.set(scrollLeft !== 0);
234
- this.isNextButtonEnabled.set(_list.offsetWidth >= offsetWidth && scrollLeft !== scrollWidth - width);
234
+ this.isNextButtonEnabled.set(_list.offsetWidth >= offsetWidth && Math.abs(scrollLeft - scrollWidth + width) > 1);
235
235
  }
236
236
  updateInkBar() {
237
237
  const _content = this.content?.nativeElement;
@@ -258,8 +258,8 @@ class TabList extends BaseComponent {
258
258
  this.resizeObserver = null;
259
259
  }
260
260
  }
261
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabList, deps: [], target: i0.ɵɵFactoryTarget.Component });
262
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: TabList, isStandalone: true, selector: "p-tablist", host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tablist\"" } }, providers: [TabListStyle], queries: [{ propertyName: "prevIconTemplate", first: true, predicate: ["previcon"] }, { propertyName: "nextIconTemplate", first: true, predicate: ["nexticon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "nextButton", first: true, predicate: ["nextButton"], descendants: true }, { propertyName: "inkbar", first: true, predicate: ["inkbar"], descendants: true }, { propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
261
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabList, deps: [], target: i0.ɵɵFactoryTarget.Component });
262
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: TabList, isStandalone: true, selector: "p-tablist", host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tablist\"" } }, providers: [TabListStyle], queries: [{ propertyName: "prevIconTemplate", first: true, predicate: ["previcon"] }, { propertyName: "nextIconTemplate", first: true, predicate: ["nexticon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "nextButton", first: true, predicate: ["nextButton"], descendants: true }, { propertyName: "inkbar", first: true, predicate: ["inkbar"], descendants: true }, { propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
263
263
  @if (showNavigators() && isPrevButtonEnabled()) {
264
264
  <button type="button" #prevButton pRipple [class]="cx('prevButton')" [attr.aria-label]="prevButtonAriaLabel" [attr.tabindex]="tabindex()" [attr.data-pc-group-section]="'navigator'" (click)="onPrevButtonClick()">
265
265
  @if (prevIconTemplate || _prevIconTemplate) {
@@ -286,7 +286,7 @@ class TabList extends BaseComponent {
286
286
  }
287
287
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChevronLeftIcon, selector: "[data-p-icon=\"chevron-left\"]" }, { kind: "component", type: ChevronRightIcon, selector: "[data-p-icon=\"chevron-right\"]" }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2.Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
288
288
  }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabList, decorators: [{
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabList, decorators: [{
290
290
  type: Component,
291
291
  args: [{
292
292
  selector: 'p-tablist',
@@ -364,10 +364,10 @@ const classes$2 = {
364
364
  class TabStyle extends BaseStyle {
365
365
  name = 'tab';
366
366
  classes = classes$2;
367
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
368
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabStyle });
367
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
368
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabStyle });
369
369
  }
370
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabStyle, decorators: [{
370
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabStyle, decorators: [{
371
371
  type: Injectable
372
372
  }] });
373
373
  /**
@@ -412,13 +412,17 @@ class Tab extends BaseComponent {
412
412
  id = computed(() => `${this.pcTabs.id()}_tab_${this.value()}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
413
413
  ariaControls = computed(() => `${this.pcTabs.id()}_tabpanel_${this.value()}`, ...(ngDevMode ? [{ debugName: "ariaControls" }] : []));
414
414
  active = computed(() => equals(this.pcTabs.value(), this.value()), ...(ngDevMode ? [{ debugName: "active" }] : []));
415
- tabindex = computed(() => (this.active() ? this.pcTabs.tabindex() : -1), ...(ngDevMode ? [{ debugName: "tabindex" }] : []));
415
+ tabindex = computed(() => (this.disabled() ? -1 : this.active() ? this.pcTabs.tabindex() : -1), ...(ngDevMode ? [{ debugName: "tabindex" }] : []));
416
416
  mutationObserver;
417
417
  onFocus(event) {
418
- this.pcTabs.selectOnFocus() && this.changeActiveValue();
418
+ if (!this.disabled()) {
419
+ this.pcTabs.selectOnFocus() && this.changeActiveValue();
420
+ }
419
421
  }
420
422
  onClick(event) {
421
- this.changeActiveValue();
423
+ if (!this.disabled()) {
424
+ this.changeActiveValue();
425
+ }
422
426
  }
423
427
  onKeyDown(event) {
424
428
  switch (event.code) {
@@ -483,7 +487,9 @@ class Tab extends BaseComponent {
483
487
  event.preventDefault();
484
488
  }
485
489
  onEnterKey(event) {
486
- this.changeActiveValue();
490
+ if (!this.disabled()) {
491
+ this.changeActiveValue();
492
+ }
487
493
  event.preventDefault();
488
494
  }
489
495
  findNextTab(tabElement, selfCheck = false) {
@@ -523,7 +529,7 @@ class Tab extends BaseComponent {
523
529
  }
524
530
  }
525
531
  unbindMutationObserver() {
526
- this.mutationObserver.disconnect();
532
+ this.mutationObserver?.disconnect();
527
533
  }
528
534
  ngOnDestroy() {
529
535
  if (this.mutationObserver) {
@@ -531,10 +537,10 @@ class Tab extends BaseComponent {
531
537
  }
532
538
  super.ngOnDestroy();
533
539
  }
534
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: Tab, deps: null, target: i0.ɵɵFactoryTarget.Component });
535
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.0", type: Tab, isStandalone: true, selector: "p-tab", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "focus": "onFocus($event)", "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tab\"", "attr.id": "id()", "attr.aria-controls": "ariaControls()", "attr.role": "\"tab\"", "attr.aria-selected": "active()", "attr.data-p-disabled": "disabled()", "attr.data-p-active": "active()", "attr.tabindex": "tabindex()" } }, providers: [TabStyle], usesInheritance: true, hostDirectives: [{ directive: i2.Ripple }], ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
540
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Tab, deps: null, target: i0.ɵɵFactoryTarget.Component });
541
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.2", type: Tab, isStandalone: true, selector: "p-tab", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "focus": "onFocus($event)", "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tab\"", "attr.id": "id()", "attr.aria-controls": "ariaControls()", "attr.role": "\"tab\"", "attr.aria-selected": "active()", "attr.aria-disabled": "disabled()", "attr.data-p-disabled": "disabled()", "attr.data-p-active": "active()", "attr.tabindex": "tabindex()" } }, providers: [TabStyle], usesInheritance: true, hostDirectives: [{ directive: i2.Ripple }], ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
536
542
  }
537
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: Tab, decorators: [{
543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Tab, decorators: [{
538
544
  type: Component,
539
545
  args: [{
540
546
  selector: 'p-tab',
@@ -550,6 +556,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
550
556
  '[attr.aria-controls]': 'ariaControls()',
551
557
  '[attr.role]': '"tab"',
552
558
  '[attr.aria-selected]': 'active()',
559
+ '[attr.aria-disabled]': 'disabled()',
553
560
  '[attr.data-p-disabled]': 'disabled()',
554
561
  '[attr.data-p-active]': 'active()',
555
562
  '[attr.tabindex]': 'tabindex()'
@@ -579,10 +586,10 @@ const classes$1 = {
579
586
  class TabPanelStyle extends BaseStyle {
580
587
  name = 'tabpanel';
581
588
  classes = classes$1;
582
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanelStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
583
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanelStyle });
589
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanelStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
590
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanelStyle });
584
591
  }
585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanelStyle, decorators: [{
592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanelStyle, decorators: [{
586
593
  type: Injectable
587
594
  }] });
588
595
  /**
@@ -608,41 +615,78 @@ var TabPanelClasses;
608
615
  */
609
616
  class TabPanel extends BaseComponent {
610
617
  pcTabs = inject(forwardRef(() => Tabs));
618
+ /**
619
+ * When enabled, tab is not rendered until activation.
620
+ * @type boolean
621
+ * @defaultValue false
622
+ * @group Props
623
+ */
624
+ lazy = input(false, ...(ngDevMode ? [{ debugName: "lazy", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
611
625
  /**
612
626
  * Value of the active tab.
613
627
  * @defaultValue undefined
614
628
  * @group Props
615
629
  */
616
630
  value = model(undefined, ...(ngDevMode ? [{ debugName: "value" }] : []));
631
+ /**
632
+ * Template for initializing complex content when lazy is enabled.
633
+ * @group Templates
634
+ */
635
+ content = contentChild('content', ...(ngDevMode ? [{ debugName: "content" }] : []));
617
636
  id = computed(() => `${this.pcTabs.id()}_tabpanel_${this.value()}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
618
637
  ariaLabelledby = computed(() => `${this.pcTabs.id()}_tab_${this.value()}`, ...(ngDevMode ? [{ debugName: "ariaLabelledby" }] : []));
619
638
  active = computed(() => equals(this.pcTabs.value(), this.value()), ...(ngDevMode ? [{ debugName: "active" }] : []));
639
+ isLazyEnabled = computed(() => this.pcTabs.lazy() || this.lazy(), ...(ngDevMode ? [{ debugName: "isLazyEnabled" }] : []));
640
+ hasBeenRendered = false;
641
+ shouldRender = computed(() => {
642
+ if (!this.isLazyEnabled() || this.hasBeenRendered) {
643
+ return true;
644
+ }
645
+ if (this.active()) {
646
+ this.hasBeenRendered = true;
647
+ return true;
648
+ }
649
+ return false;
650
+ }, ...(ngDevMode ? [{ debugName: "shouldRender" }] : []));
620
651
  _componentStyle = inject(TabPanelStyle);
621
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanel, deps: null, target: i0.ɵɵFactoryTarget.Component });
622
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: TabPanel, isStandalone: true, selector: "p-tabpanel", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tabpanel\"", "attr.id": "id()", "attr.role": "\"tabpanel\"", "attr.aria-labelledby": "ariaLabelledby()", "attr.data-p-active": "active()" } }, providers: [TabPanelStyle], usesInheritance: true, ngImport: i0, template: `@if (active()) {
623
- <ng-content></ng-content>
624
- }`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
652
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanel, deps: null, target: i0.ɵɵFactoryTarget.Component });
653
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: TabPanel, isStandalone: true, selector: "p-tabpanel", inputs: { lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tabpanel\"", "attr.id": "id()", "attr.role": "\"tabpanel\"", "attr.aria-labelledby": "ariaLabelledby()", "attr.data-p-active": "active()", "hidden": "!active()" } }, providers: [TabPanelStyle], queries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
654
+ <ng-template #defaultContent>
655
+ <ng-content />
656
+ </ng-template>
657
+
658
+ @if (shouldRender()) {
659
+ <ng-container *ngTemplateOutlet="content() ? content() : defaultContent" />
660
+ }
661
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
625
662
  }
626
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanel, decorators: [{
663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanel, decorators: [{
627
664
  type: Component,
628
665
  args: [{
629
666
  selector: 'p-tabpanel',
630
667
  standalone: true,
631
- imports: [CommonModule],
632
- template: `@if (active()) {
633
- <ng-content></ng-content>
634
- }`,
668
+ imports: [NgTemplateOutlet],
669
+ template: `
670
+ <ng-template #defaultContent>
671
+ <ng-content />
672
+ </ng-template>
673
+
674
+ @if (shouldRender()) {
675
+ <ng-container *ngTemplateOutlet="content() ? content() : defaultContent" />
676
+ }
677
+ `,
635
678
  changeDetection: ChangeDetectionStrategy.OnPush,
636
679
  encapsulation: ViewEncapsulation.None,
680
+ providers: [TabPanelStyle],
637
681
  host: {
638
682
  '[class]': 'cx("root")',
639
683
  '[attr.data-pc-name]': '"tabpanel"',
640
684
  '[attr.id]': 'id()',
641
685
  '[attr.role]': '"tabpanel"',
642
686
  '[attr.aria-labelledby]': 'ariaLabelledby()',
643
- '[attr.data-p-active]': 'active()'
644
- },
645
- providers: [TabPanelStyle]
687
+ '[attr.data-p-active]': 'active()',
688
+ '[hidden]': '!active()'
689
+ }
646
690
  }]
647
691
  }] });
648
692
 
@@ -652,10 +696,10 @@ const classes = {
652
696
  class TabPanelsStyle extends BaseStyle {
653
697
  name = 'tabpanels';
654
698
  classes = classes;
655
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanelsStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
656
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanelsStyle });
699
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanelsStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
700
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanelsStyle });
657
701
  }
658
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanelsStyle, decorators: [{
702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanelsStyle, decorators: [{
659
703
  type: Injectable
660
704
  }] });
661
705
  /**
@@ -681,10 +725,10 @@ var TabPanelsClasses;
681
725
  */
682
726
  class TabPanels extends BaseComponent {
683
727
  _componentStyle = inject(TabPanelsStyle);
684
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanels, deps: null, target: i0.ɵɵFactoryTarget.Component });
685
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: TabPanels, isStandalone: true, selector: "p-tabpanels", host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tabpanels\"", "attr.role": "\"presentation\"" } }, providers: [TabPanelsStyle], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
728
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanels, deps: null, target: i0.ɵɵFactoryTarget.Component });
729
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: TabPanels, isStandalone: true, selector: "p-tabpanels", host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tabpanels\"", "attr.role": "\"presentation\"" } }, providers: [TabPanelsStyle], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
686
730
  }
687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabPanels, decorators: [{
731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabPanels, decorators: [{
688
732
  type: Component,
689
733
  args: [{
690
734
  selector: 'p-tabpanels',
@@ -721,7 +765,7 @@ class Tabs extends BaseComponent {
721
765
  */
722
766
  scrollable = input(false, ...(ngDevMode ? [{ debugName: "scrollable", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
723
767
  /**
724
- * When enabled, hidden tabs are not rendered at all. Defaults to false that hides tabs with css.
768
+ * When enabled, tabs are not rendered until activation.
725
769
  * @type boolean
726
770
  * @defaultValue false
727
771
  * @group Props
@@ -753,10 +797,10 @@ class Tabs extends BaseComponent {
753
797
  updateValue(newValue) {
754
798
  this.value.update(() => newValue);
755
799
  }
756
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: Tabs, deps: null, target: i0.ɵɵFactoryTarget.Component });
757
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.0", type: Tabs, isStandalone: true, selector: "p-tabs", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: true, isRequired: false, transformFunction: null }, showNavigators: { classPropertyName: "showNavigators", publicName: "showNavigators", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tabs\"", "attr.id": "id()" } }, providers: [TabsStyle], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
800
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Tabs, deps: null, target: i0.ɵɵFactoryTarget.Component });
801
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.2", type: Tabs, isStandalone: true, selector: "p-tabs", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: true, isRequired: false, transformFunction: null }, showNavigators: { classPropertyName: "showNavigators", publicName: "showNavigators", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "cx(\"root\")", "attr.data-pc-name": "\"tabs\"", "attr.id": "id()" } }, providers: [TabsStyle], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
758
802
  }
759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: Tabs, decorators: [{
803
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Tabs, decorators: [{
760
804
  type: Component,
761
805
  args: [{
762
806
  selector: 'p-tabs',
@@ -774,11 +818,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
774
818
  }]
775
819
  }] });
776
820
  class TabsModule {
777
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
778
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: TabsModule, imports: [Tabs, TabPanels, TabPanel, TabList, Tab], exports: [Tabs, TabPanels, TabPanel, TabList, Tab] });
779
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabsModule, imports: [Tabs, TabPanels, TabPanel, TabList, Tab] });
821
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
822
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.2", ngImport: i0, type: TabsModule, imports: [Tabs, TabPanels, TabPanel, TabList, Tab], exports: [Tabs, TabPanels, TabPanel, TabList, Tab] });
823
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabsModule, imports: [Tabs, TabPanels, TabList, Tab] });
780
824
  }
781
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TabsModule, decorators: [{
825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: TabsModule, decorators: [{
782
826
  type: NgModule,
783
827
  args: [{
784
828
  imports: [Tabs, TabPanels, TabPanel, TabList, Tab],
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-tabs.mjs","sources":["../../src/tabs/style/tabsstyle.ts","../../src/tabs/style/tabliststyle.ts","../../src/tabs/tablist.ts","../../src/tabs/style/tabstyle.ts","../../src/tabs/tab.ts","../../src/tabs/style/tabpanelstyle.ts","../../src/tabs/tabpanel.ts","../../src/tabs/style/tabpanelsstyle.ts","../../src/tabs/tabpanels.ts","../../src/tabs/tabs.ts","../../src/tabs/primeng-tabs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/tabs';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-tabs p-component',\n {\n 'p-tabs-scrollable': instance.scrollable()\n }\n ]\n};\n\n@Injectable()\nexport class TabsStyle extends BaseStyle {\n name = 'tabs';\n\n theme = style;\n\n classes = classes;\n}\n\n/**\n *\n * Tabs facilitates seamless switching between different views.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabsstyle\n *\n */\n\nexport enum TabsClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tabs',\n /**\n * Class name of the wrapper element\n */\n list = 'p-tablist',\n /**\n * Class name of the content element\n */\n content = 'p-tablist-content',\n /**\n * Class name of the tab list element\n */\n tablist = 'p-tablist-tab-list',\n /**\n * Class name of the tab list element\n */\n tab = 'p-tab',\n /**\n * Class name of the inkbar element\n */\n inkbar = 'p-tablist-active-bar',\n /**\n * Class name of the navigation buttons\n */\n button = 'p-tablist-nav-button',\n /**\n * Class name of the tab panels wrapper\n */\n tabpanels = 'p-tabpanels',\n /**\n * Class name of the tab panel element\n */\n tabpanel = 'p-tabs-panel'\n}\n\nexport interface TabsStyle extends BaseStyle {}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-tablist',\n content: 'p-tablist-content p-tablist-viewport',\n tabList: 'p-tablist-tab-list',\n activeBar: 'p-tablist-active-bar',\n prevButton: 'p-tablist-prev-button p-tablist-nav-button',\n nextButton: 'p-tablist-next-button p-tablist-nav-button'\n};\n\n@Injectable()\nexport class TabListStyle extends BaseStyle {\n name = 'tablist';\n\n classes = classes;\n}\n\n/**\n *\n * Tabs facilitates seamless switching between different views.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabliststyle\n *\n */\n\nexport enum TabListClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tablist',\n /**\n * Class name of the content element\n */\n content = 'p-tablist-content',\n /**\n * Class name of the tabs element\n */\n tabList = 'p-tablist-tab-list',\n /**\n * Class name of the activebar element\n */\n activeBar = 'p-tablist-active-bar',\n /**\n * Class name of the previous button element\n */\n prevButton = 'p-tablist-prev-button',\n /**\n * Class name of the next button element\n */\n nextButton = 'p-tablist-next-button'\n}\n\nexport interface TabListStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, Component, computed, ContentChild, ContentChildren, effect, ElementRef, forwardRef, inject, QueryList, signal, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { findSingle, getOffset, getOuterWidth, getWidth, isRTL } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronLeftIcon, ChevronRightIcon } from 'primeng/icons';\nimport { RippleModule } from 'primeng/ripple';\nimport { TabListStyle } from './style/tabliststyle';\nimport { Tabs } from './tabs';\n\n/**\n * TabList is a helper component for Tabs component.\n * @group Components\n */\n@Component({\n selector: 'p-tablist',\n standalone: true,\n imports: [CommonModule, ChevronLeftIcon, ChevronRightIcon, RippleModule, SharedModule],\n template: `\n @if (showNavigators() && isPrevButtonEnabled()) {\n <button type=\"button\" #prevButton pRipple [class]=\"cx('prevButton')\" [attr.aria-label]=\"prevButtonAriaLabel\" [attr.tabindex]=\"tabindex()\" [attr.data-pc-group-section]=\"'navigator'\" (click)=\"onPrevButtonClick()\">\n @if (prevIconTemplate || _prevIconTemplate) {\n <ng-container *ngTemplateOutlet=\"prevIconTemplate || _prevIconTemplate\" />\n } @else {\n <svg data-p-icon=\"chevron-left\" />\n }\n </button>\n }\n <div #content [class]=\"cx('content')\" (scroll)=\"onScroll($event)\">\n <div #tabs [class]=\"cx('tabList')\" role=\"tablist\">\n <ng-content />\n <span #inkbar role=\"presentation\" [class]=\"cx('activeBar')\" [attr.data-pc-section]=\"'inkbar'\"></span>\n </div>\n </div>\n @if (showNavigators() && isNextButtonEnabled()) {\n <button type=\"button\" #nextButton pRipple [class]=\"cx('nextButton')\" [attr.aria-label]=\"nextButtonAriaLabel\" [attr.tabindex]=\"tabindex()\" [attr.data-pc-group-section]=\"'navigator'\" (click)=\"onNextButtonClick()\">\n @if (nextIconTemplate || _nextIconTemplate) {\n <ng-container *ngTemplateOutlet=\"nextIconTemplate || _nextIconTemplate\" />\n } @else {\n <svg data-p-icon=\"chevron-right\" />\n }\n </button>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tablist\"'\n },\n providers: [TabListStyle]\n})\nexport class TabList extends BaseComponent implements AfterViewInit, AfterContentInit {\n /**\n * A template reference variable that represents the previous icon in a UI component.\n * @type {TemplateRef<any> | undefined}\n * @group Templates\n */\n @ContentChild('previcon', { descendants: false }) prevIconTemplate: TemplateRef<any> | undefined;\n /**\n * A template reference variable that represents the next icon in a UI component.\n * @type {TemplateRef<any> | undefined}\n * @group Templates\n */\n @ContentChild('nexticon', { descendants: false }) nextIconTemplate: TemplateRef<any> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n @ViewChild('content') content: ElementRef<HTMLDivElement>;\n\n @ViewChild('prevButton') prevButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild('nextButton') nextButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild('inkbar') inkbar: ElementRef<HTMLSpanElement>;\n\n @ViewChild('tabs') tabs: ElementRef<HTMLDivElement>;\n\n pcTabs = inject(forwardRef(() => Tabs));\n\n isPrevButtonEnabled = signal<boolean>(false);\n\n isNextButtonEnabled = signal<boolean>(false);\n\n resizeObserver!: ResizeObserver;\n\n showNavigators = computed(() => this.pcTabs.showNavigators());\n\n tabindex = computed(() => this.pcTabs.tabindex());\n\n scrollable = computed(() => this.pcTabs.scrollable());\n\n _componentStyle = inject(TabListStyle);\n\n constructor() {\n super();\n effect(() => {\n this.pcTabs.value();\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.updateInkBar();\n });\n }\n });\n }\n\n get prevButtonAriaLabel() {\n return this.config.translation.aria.previous;\n }\n\n get nextButtonAriaLabel() {\n return this.config.translation.aria.next;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.showNavigators() && isPlatformBrowser(this.platformId)) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n }\n\n _prevIconTemplate: TemplateRef<any> | undefined;\n\n _nextIconTemplate: TemplateRef<any> | undefined;\n\n ngAfterContentInit() {\n this.templates.forEach((t) => {\n switch (t.getType()) {\n case 'previcon':\n this._prevIconTemplate = t.template;\n break;\n case 'nexticon':\n this._nextIconTemplate = t.template;\n break;\n }\n });\n }\n\n ngOnDestroy() {\n this.unbindResizeObserver();\n super.ngOnDestroy();\n }\n\n onScroll(event: Event) {\n this.showNavigators() && this.updateButtonState();\n\n event.preventDefault();\n }\n\n onPrevButtonClick() {\n const _content = this.content.nativeElement;\n const width = getWidth(_content);\n const pos = Math.abs(_content.scrollLeft) - width;\n const scrollLeft = pos <= 0 ? 0 : pos;\n\n _content.scrollLeft = isRTL(_content) ? -1 * scrollLeft : scrollLeft;\n }\n\n onNextButtonClick() {\n const _content = this.content.nativeElement;\n const width = getWidth(_content) - this.getVisibleButtonWidths();\n const pos = _content.scrollLeft + width;\n const lastPos = _content.scrollWidth - width;\n const scrollLeft = pos >= lastPos ? lastPos : pos;\n\n _content.scrollLeft = isRTL(_content) ? -1 * scrollLeft : scrollLeft;\n }\n\n updateButtonState() {\n const _content = this.content?.nativeElement;\n const _list = this.el?.nativeElement;\n\n const { scrollWidth, offsetWidth } = _content;\n const scrollLeft = Math.abs(_content.scrollLeft);\n const width = getWidth(_content);\n\n this.isPrevButtonEnabled.set(scrollLeft !== 0);\n this.isNextButtonEnabled.set(_list.offsetWidth >= offsetWidth && scrollLeft !== scrollWidth - width);\n }\n\n updateInkBar() {\n const _content = this.content?.nativeElement;\n const _inkbar = this.inkbar?.nativeElement;\n const _tabs = this.tabs?.nativeElement;\n\n const activeTab = findSingle(_content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n if (_inkbar) {\n _inkbar.style.width = getOuterWidth(activeTab) + 'px';\n _inkbar.style.left = <any>getOffset(activeTab).left - <any>getOffset(_tabs).left + 'px';\n }\n }\n\n getVisibleButtonWidths() {\n const _prevBtn = this.prevButton?.nativeElement;\n const _nextBtn = this.nextButton?.nativeElement;\n\n return [_prevBtn, _nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n }\n\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.el.nativeElement);\n }\n\n unbindResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.unobserve(this.el.nativeElement);\n this.resizeObserver = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-tab',\n {\n 'p-tab-active': instance.active(),\n 'p-disabled': instance.disabled()\n }\n ]\n};\n\n@Injectable()\nexport class TabStyle extends BaseStyle {\n name = 'tab';\n\n classes = classes;\n}\n\n/**\n *\n * Tabs facilitates seamless switching between different views.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabsstyle\n *\n */\n\nexport enum TabClasses {\n /**\n * Class name of the tab list element\n */\n tab = 'p-tab'\n}\n\nexport interface TabStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, HostListener, inject, input, model, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { equals, focus, getAttribute } from '@primeuix/utils';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Ripple } from 'primeng/ripple';\nimport { TabList } from './tablist';\nimport { Tabs } from './tabs';\nimport { TabStyle } from './style/tabstyle';\n\n/**\n * Defines valid properties in Tab component.\n * @group Components\n */\n@Component({\n selector: 'p-tab',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: ` <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tab\"',\n '[attr.id]': 'id()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.role]': '\"tab\"',\n '[attr.aria-selected]': 'active()',\n '[attr.data-p-disabled]': 'disabled()',\n '[attr.data-p-active]': 'active()',\n '[attr.tabindex]': 'tabindex()'\n },\n hostDirectives: [Ripple],\n providers: [TabStyle]\n})\nexport class Tab extends BaseComponent implements AfterViewInit, OnDestroy {\n /**\n * Value of tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<number | string | undefined>();\n /**\n * Whether the tab is disabled.\n * @defaultValue false\n * @group Props\n */\n disabled = input(false, { transform: booleanAttribute });\n\n pcTabs = inject(forwardRef(() => Tabs));\n\n pcTabList = inject(forwardRef(() => TabList));\n\n el = inject(ElementRef);\n\n _componentStyle = inject(TabStyle);\n\n ripple = computed(() => this.config.ripple());\n\n id = computed(() => `${this.pcTabs.id()}_tab_${this.value()}`);\n\n ariaControls = computed(() => `${this.pcTabs.id()}_tabpanel_${this.value()}`);\n\n active = computed(() => equals(this.pcTabs.value(), this.value()));\n\n tabindex = computed(() => (this.active() ? this.pcTabs.tabindex() : -1));\n\n mutationObserver: MutationObserver | undefined;\n\n @HostListener('focus', ['$event']) onFocus(event: FocusEvent) {\n this.pcTabs.selectOnFocus() && this.changeActiveValue();\n }\n\n @HostListener('click', ['$event']) onClick(event: MouseEvent) {\n this.changeActiveValue();\n }\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n\n event.stopPropagation();\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this.bindMutationObserver();\n }\n\n onArrowRightKey(event) {\n const nextTab = this.findNextTab(event.currentTarget);\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n }\n\n onArrowLeftKey(event) {\n const prevTab = this.findPrevTab(event.currentTarget);\n\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n }\n\n onHomeKey(event) {\n const firstTab = this.findFirstTab();\n\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n }\n\n onEndKey(event) {\n const lastTab = this.findLastTab();\n\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n }\n\n onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n }\n\n onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n }\n\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n }\n\n findNextTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : element) : null;\n }\n\n findPrevTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : element) : null;\n }\n\n findFirstTab() {\n return this.findNextTab(this.pcTabList?.tabs?.nativeElement?.firstElementChild, true);\n }\n\n findLastTab() {\n return this.findPrevTab(this.pcTabList?.tabs?.nativeElement?.lastElementChild, true);\n }\n\n changeActiveValue() {\n this.pcTabs.updateValue(this.value());\n }\n\n changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n }\n\n scrollInView(element) {\n element?.scrollIntoView?.({ block: 'nearest' });\n }\n\n bindMutationObserver() {\n if (isPlatformBrowser(this.platformId)) {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach(() => {\n if (this.active()) {\n this.pcTabList?.updateInkBar();\n }\n });\n });\n this.mutationObserver.observe(this.el.nativeElement, { childList: true, characterData: true, subtree: true });\n }\n }\n\n unbindMutationObserver() {\n this.mutationObserver.disconnect();\n }\n\n ngOnDestroy() {\n if (this.mutationObserver) {\n this.unbindMutationObserver();\n }\n super.ngOnDestroy();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-tabpanel',\n {\n 'p-tabpanel-active': instance.active()\n }\n ]\n};\n\n@Injectable()\nexport class TabPanelStyle extends BaseStyle {\n name = 'tabpanel';\n\n classes = classes;\n}\n\n/**\n *\n * Tab is a helper component for Tabs component.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabstyle\n *\n */\n\nexport enum TabPanelClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tabpanel'\n}\n\nexport interface TabPanelStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, inject, model, ViewEncapsulation } from '@angular/core';\nimport { equals } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Tabs } from './tabs';\nimport { TabPanelStyle } from './style/tabpanelstyle';\n\n/**\n * TabPanel is a helper component for Tabs component.\n * @group Components\n */\n@Component({\n selector: 'p-tabpanel',\n standalone: true,\n imports: [CommonModule],\n template: `@if (active()) {\n <ng-content></ng-content>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tabpanel\"',\n '[attr.id]': 'id()',\n '[attr.role]': '\"tabpanel\"',\n '[attr.aria-labelledby]': 'ariaLabelledby()',\n '[attr.data-p-active]': 'active()'\n },\n providers: [TabPanelStyle]\n})\nexport class TabPanel extends BaseComponent {\n pcTabs = inject(forwardRef(() => Tabs));\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<string | number | undefined>(undefined);\n\n id = computed(() => `${this.pcTabs.id()}_tabpanel_${this.value()}`);\n\n ariaLabelledby = computed(() => `${this.pcTabs.id()}_tab_${this.value()}`);\n\n active = computed(() => equals(this.pcTabs.value(), this.value()));\n\n _componentStyle = inject(TabPanelStyle);\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-tabpanels'\n};\n\n@Injectable()\nexport class TabPanelsStyle extends BaseStyle {\n name = 'tabpanels';\n\n classes = classes;\n}\n\n/**\n *\n * Tab is a helper component for Tabs component.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabpanelstyle\n *\n */\n\nexport enum TabPanelsClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tabpanels'\n}\n\nexport interface TabPanelsStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TabPanelsStyle } from './style/tabpanelsstyle';\n\n/**\n * TabPanels is a helper component for Tabs component.\n * @group Components\n */\n@Component({\n selector: 'p-tabpanels',\n standalone: true,\n imports: [CommonModule],\n template: ` <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tabpanels\"',\n '[attr.role]': '\"presentation\"'\n },\n providers: [TabPanelsStyle]\n})\nexport class TabPanels extends BaseComponent {\n _componentStyle = inject(TabPanelsStyle);\n}\n","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, input, model, NgModule, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\n\nimport { uuid } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TabsStyle } from './style/tabsstyle';\nimport { Tab } from './tab';\nimport { TabList } from './tablist';\nimport { TabPanel } from './tabpanel';\nimport { TabPanels } from './tabpanels';\n\n/**\n * Tabs facilitates seamless switching between different views.\n * @group Components\n */\n@Component({\n selector: 'p-tabs',\n standalone: true,\n imports: [CommonModule],\n template: ` <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TabsStyle],\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tabs\"',\n '[attr.id]': 'id()'\n }\n})\nexport class Tabs extends BaseComponent {\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<string | number | undefined>(undefined);\n /**\n * When specified, enables horizontal and/or vertical scrolling.\n * @type boolean\n * @defaultValue false\n * @group Props\n */\n scrollable = input(false, { transform: booleanAttribute });\n /**\n * When enabled, hidden tabs are not rendered at all. Defaults to false that hides tabs with css.\n * @type boolean\n * @defaultValue false\n * @group Props\n */\n lazy = input(false, { transform: booleanAttribute });\n /**\n * When enabled, the focused tab is activated.\n * @type boolean\n * @defaultValue false\n * @group Props\n */\n selectOnFocus = input(false, { transform: booleanAttribute });\n /**\n * Whether to display navigation buttons in container when scrollable is enabled.\n * @type boolean\n * @defaultValue true\n * @group Props\n */\n showNavigators = input(true, { transform: booleanAttribute });\n /**\n * Tabindex of the tab buttons.\n * @type number\n * @defaultValue 0\n * @group Props\n */\n tabindex = input(0, { transform: numberAttribute });\n\n id = signal<string>(uuid('pn_id_'));\n\n _componentStyle = inject(TabsStyle);\n\n updateValue(newValue) {\n this.value.update(() => newValue);\n }\n}\n\n@NgModule({\n imports: [Tabs, TabPanels, TabPanel, TabList, Tab],\n exports: [Tabs, TabPanels, TabPanel, TabList, Tab]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["classes"],"mappings":";;;;;;;;;;;;;AAIA,MAAMA,SAAO,GAAG;AACZ,IAAA,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACpB,oBAAoB;AACpB,QAAA;AACI,YAAA,mBAAmB,EAAE,QAAQ,CAAC,UAAU;AAC3C;AACJ;CACJ;AAGK,MAAO,SAAU,SAAQ,SAAS,CAAA;IACpC,IAAI,GAAG,MAAM;IAEb,KAAK,GAAG,KAAK;IAEb,OAAO,GAAGA,SAAO;uGALR,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAT,SAAS,EAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBADrB;;AASD;;;;;;;;AAQG;IAES;AAAZ,CAAA,UAAY,WAAW,EAAA;AACnB;;AAEG;AACH,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,QAAe;AACf;;AAEG;AACH,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,WAAkB;AAClB;;AAEG;AACH,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,mBAA6B;AAC7B;;AAEG;AACH,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,oBAA8B;AAC9B;;AAEG;AACH,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,OAAa;AACb;;AAEG;AACH,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,sBAA+B;AAC/B;;AAEG;AACH,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,sBAA+B;AAC/B;;AAEG;AACH,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,aAAyB;AACzB;;AAEG;AACH,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,cAAyB;AAC7B,CAAC,EArCW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;;AC7BvB,MAAMA,SAAO,GAAG;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,OAAO,EAAE,sCAAsC;AAC/C,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,SAAS,EAAE,sBAAsB;AACjC,IAAA,UAAU,EAAE,4CAA4C;AACxD,IAAA,UAAU,EAAE;CACf;AAGK,MAAO,YAAa,SAAQ,SAAS,CAAA;IACvC,IAAI,GAAG,SAAS;IAEhB,OAAO,GAAGA,SAAO;uGAHR,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAZ,YAAY,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;AAOD;;;;;;;;AAQG;AAEH,IAAY,cAyBX;AAzBD,CAAA,UAAY,cAAc,EAAA;AACtB;;AAEG;AACH,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,WAAkB;AAClB;;AAEG;AACH,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,mBAA6B;AAC7B;;AAEG;AACH,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,oBAA8B;AAC9B;;AAEG;AACH,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,sBAAkC;AAClC;;AAEG;AACH,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,uBAAoC;AACpC;;AAEG;AACH,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,uBAAoC;AACxC,CAAC,EAzBW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;ACnB1B;;;AAGG;AAuCG,MAAO,OAAQ,SAAQ,aAAa,CAAA;AACtC;;;;AAIG;AAC+C,IAAA,gBAAgB;AAClE;;;;AAIG;AAC+C,IAAA,gBAAgB;AAElC,IAAA,SAAS;AAEnB,IAAA,OAAO;AAEJ,IAAA,UAAU;AAEV,IAAA,UAAU;AAEd,IAAA,MAAM;AAER,IAAA,IAAI;IAEvB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;AAEvC,IAAA,mBAAmB,GAAG,MAAM,CAAU,KAAK,+DAAC;AAE5C,IAAA,mBAAmB,GAAG,MAAM,CAAU,KAAK,+DAAC;AAE5C,IAAA,cAAc;AAEd,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,0DAAC;AAE7D,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,oDAAC;AAEjD,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,sDAAC;AAErD,IAAA,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC;AAEtC,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACpC,UAAU,CAAC,MAAK;oBACZ,IAAI,CAAC,YAAY,EAAE;AACvB,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,IAAI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ;IAChD;AAEA,IAAA,IAAI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI;IAC5C;IAEA,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC7D,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,kBAAkB,EAAE;QAC7B;IACJ;AAEA,IAAA,iBAAiB;AAEjB,IAAA,iBAAiB;IAEjB,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACzB,YAAA,QAAQ,CAAC,CAAC,OAAO,EAAE;AACf,gBAAA,KAAK,UAAU;AACX,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,QAAQ;oBACnC;AACJ,gBAAA,KAAK,UAAU;AACX,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,QAAQ;oBACnC;;AAEZ,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,oBAAoB,EAAE;QAC3B,KAAK,CAAC,WAAW,EAAE;IACvB;AAEA,IAAA,QAAQ,CAAC,KAAY,EAAA;QACjB,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAEjD,KAAK,CAAC,cAAc,EAAE;IAC1B;IAEA,iBAAiB,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;AAC3C,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK;AACjD,QAAA,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;AAErC,QAAA,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,UAAU;IACxE;IAEA,iBAAiB,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAChE,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,GAAG,KAAK;AACvC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,GAAG,KAAK;AAC5C,QAAA,MAAM,UAAU,GAAG,GAAG,IAAI,OAAO,GAAG,OAAO,GAAG,GAAG;AAEjD,QAAA,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,UAAU;IACxE;IAEA,iBAAiB,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,aAAa;AAEpC,QAAA,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,QAAQ;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AAChD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEhC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,IAAI,UAAU,KAAK,WAAW,GAAG,KAAK,CAAC;IACxG;IAEA,YAAY,GAAA;AACR,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa;QAEtC,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,4CAA4C,CAAC;QACpF,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI;YACrD,OAAO,CAAC,KAAK,CAAC,IAAI,GAAQ,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,GAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI;QAC3F;IACJ;IAEA,sBAAsB,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa;AAC/C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa;AAE/C,QAAA,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACvF;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;IACtD;IAEA,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AACpD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC9B;IACJ;uGA9JS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,+IAFL,CAAC,YAAY,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAgBR,aAAa,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhDpB;;;;;;;;;;;;;;;;;;;;;;;;;KAyBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA1BS,YAAY,sMAAE,eAAe,EAAA,QAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,iCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,6FAAE,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAmC5E,OAAO,EAAA,UAAA,EAAA,CAAA;kBAtCnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC;AACtF,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,qBAAqB,EAAE;AAC1B,qBAAA;oBACD,SAAS,EAAE,CAAC,YAAY;AAC3B,iBAAA;wDAOqD,gBAAgB,EAAA,CAAA;sBAAjE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAME,gBAAgB,EAAA,CAAA;sBAAjE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAEhB,SAAS,EAAA,CAAA;sBAAxC,eAAe;uBAAC,aAAa;gBAER,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS;gBAEK,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY;gBAEE,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY;gBAEF,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ;gBAEA,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM;;;ACzErB,MAAMA,SAAO,GAAG;AACZ,IAAA,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACpB,OAAO;AACP,QAAA;AACI,YAAA,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE;AACjC,YAAA,YAAY,EAAE,QAAQ,CAAC,QAAQ;AAClC;AACJ;CACJ;AAGK,MAAO,QAAS,SAAQ,SAAS,CAAA;IACnC,IAAI,GAAG,KAAK;IAEZ,OAAO,GAAGA,SAAO;uGAHR,QAAQ,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAR,QAAQ,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBADpB;;AAOD;;;;;;;;AAQG;AAEH,IAAY,UAKX;AALD,CAAA,UAAY,UAAU,EAAA;AAClB;;AAEG;AACH,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,OAAa;AACjB,CAAC,EALW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;ACpBtB;;;AAGG;AAsBG,MAAO,GAAI,SAAQ,aAAa,CAAA;AAClC;;;;AAIG;IACH,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA+B;AAC5C;;;;AAIG;AACH,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,4CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;IAExD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;IAEvC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC;AAE7C,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvB,IAAA,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,kDAAC;IAE7C,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,8CAAC;IAE9D,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,wDAAC;IAE7E,MAAM,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IAElE,QAAQ,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAExE,IAAA,gBAAgB;AAEmB,IAAA,OAAO,CAAC,KAAiB,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;IAC3D;AAEmC,IAAA,OAAO,CAAC,KAAiB,EAAA;QACxD,IAAI,CAAC,iBAAiB,EAAE;IAC5B;AAEqC,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC/D,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC3B;AAEJ,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC1B;AAEJ,YAAA,KAAK,MAAM;AACP,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBACrB;AAEJ,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB;AAEJ,YAAA,KAAK,UAAU;AACX,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACzB;AAEJ,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvB;AAEJ,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,aAAa;AAClB,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB;AAEJ,YAAA;gBACI;;QAGR,KAAK,CAAC,eAAe,EAAE;IAC3B;IAEA,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,oBAAoB,EAAE;IAC/B;AAEA,IAAA,eAAe,CAAC,KAAK,EAAA;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;QACrD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACvE,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,cAAc,CAAC,KAAK,EAAA;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;QAErD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtE,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,SAAS,CAAC,KAAK,EAAA;AACX,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;AAEpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACtC,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,QAAQ,CAAC,KAAK,EAAA;AACV,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAElC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;QACrC,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,aAAa,CAAC,KAAK,EAAA;QACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,WAAW,CAAC,KAAK,EAAA;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,UAAU,CAAC,KAAK,EAAA;QACZ,IAAI,CAAC,iBAAiB,EAAE;QACxB,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,WAAW,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,EAAA;AACrC,QAAA,MAAM,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC,kBAAkB;AAEtE,QAAA,OAAO,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,IAAI,IAAI;IACrK;AAEA,IAAA,WAAW,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,EAAA;AACrC,QAAA,MAAM,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC,sBAAsB;AAE1E,QAAA,OAAO,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,IAAI,IAAI;IACrK;IAEA,YAAY,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC;IACzF;IAEA,WAAW,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,CAAC;IACxF;IAEA,iBAAiB,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACzC;IAEA,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAA;QAC3B,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IAC9B;AAEA,IAAA,YAAY,CAAC,OAAO,EAAA;QAChB,OAAO,EAAE,cAAc,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACnD;IAEA,oBAAoB,GAAA;AAChB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AACvD,gBAAA,SAAS,CAAC,OAAO,CAAC,MAAK;AACnB,oBAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACf,wBAAA,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE;oBAClC;AACJ,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjH;IACJ;IAEA,sBAAsB,GAAA;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;IACtC;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,sBAAsB,EAAE;QACjC;QACA,KAAK,CAAC,WAAW,EAAE;IACvB;uGAvLS,GAAG,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAH,GAAG,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAFD,CAAC,QAAQ,CAAC,6FAfX,CAAA,0BAAA,CAA4B,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAD5B,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAkB3B,GAAG,EAAA,UAAA,EAAA,CAAA;kBArBf,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AACrC,oBAAA,QAAQ,EAAE,CAAA,0BAAA,CAA4B;oBACtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,qBAAqB,EAAE,OAAO;AAC9B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,sBAAsB,EAAE,gBAAgB;AACxC,wBAAA,aAAa,EAAE,OAAO;AACtB,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,wBAAwB,EAAE,YAAY;AACtC,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,iBAAiB,EAAE;AACtB,qBAAA;oBACD,cAAc,EAAE,CAAC,MAAM,CAAC;oBACxB,SAAS,EAAE,CAAC,QAAQ;AACvB,iBAAA;8BAmCsC,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAIE,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAII,SAAS,EAAA,CAAA;sBAA7C,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;AC1EvC,MAAMA,SAAO,GAAG;AACZ,IAAA,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACpB,YAAY;AACZ,QAAA;AACI,YAAA,mBAAmB,EAAE,QAAQ,CAAC,MAAM;AACvC;AACJ;CACJ;AAGK,MAAO,aAAc,SAAQ,SAAS,CAAA;IACxC,IAAI,GAAG,UAAU;IAEjB,OAAO,GAAGA,SAAO;uGAHR,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAb,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;AAOD;;;;;;;;AAQG;AAEH,IAAY,eAKX;AALD,CAAA,UAAY,eAAe,EAAA;AACvB;;AAEG;AACH,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,YAAmB;AACvB,CAAC,EALW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACtB3B;;;AAGG;AAoBG,MAAO,QAAS,SAAQ,aAAa,CAAA;IACvC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;AACvC;;;;AAIG;AACH,IAAA,KAAK,GAAG,KAAK,CAA8B,SAAS,iDAAC;IAErD,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,8CAAC;IAEnE,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,0DAAC;IAE1E,MAAM,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAElE,IAAA,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC;uGAf9B,QAAQ,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAFN,CAAC,aAAa,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAbhB,CAAA;;AAER,KAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAHQ,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAgBb,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAnBpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,QAAQ,EAAE,CAAA;;AAER,KAAA,CAAA;oBACF,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,qBAAqB,EAAE,YAAY;AACnC,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,aAAa,EAAE,YAAY;AAC3B,wBAAA,wBAAwB,EAAE,kBAAkB;AAC5C,wBAAA,sBAAsB,EAAE;AAC3B,qBAAA;oBACD,SAAS,EAAE,CAAC,aAAa;AAC5B,iBAAA;;;AC1BD,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE;CACT;AAGK,MAAO,cAAe,SAAQ,SAAS,CAAA;IACzC,IAAI,GAAG,WAAW;IAElB,OAAO,GAAG,OAAO;uGAHR,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAd,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;AAOD;;;;;;;;AAQG;AAEH,IAAY,gBAKX;AALD,CAAA,UAAY,gBAAgB,EAAA;AACxB;;AAEG;AACH,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,aAAoB;AACxB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;ACnB5B;;;AAGG;AAeG,MAAO,SAAU,SAAQ,aAAa,CAAA;AACxC,IAAA,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;uGAD/B,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,oLAFP,CAAC,cAAc,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARjB,CAAA,0BAAA,CAA4B,2DAD5B,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAWb,SAAS,EAAA,UAAA,EAAA,CAAA;kBAdrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,QAAQ,EAAE,CAAA,0BAAA,CAA4B;oBACtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,qBAAqB,EAAE,aAAa;AACpC,wBAAA,aAAa,EAAE;AAClB,qBAAA;oBACD,SAAS,EAAE,CAAC,cAAc;AAC7B,iBAAA;;;ACXD;;;AAGG;AAeG,MAAO,IAAK,SAAQ,aAAa,CAAA;AACnC;;;;AAIG;AACH,IAAA,KAAK,GAAG,KAAK,CAA8B,SAAS,iDAAC;AACrD;;;;;AAKG;AACH,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,8CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AAC1D;;;;;AAKG;AACH,IAAA,IAAI,GAAG,KAAK,CAAC,KAAK,wCAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AACpD;;;;;AAKG;AACH,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,iDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AAC7D;;;;;AAKG;AACH,IAAA,cAAc,GAAG,KAAK,CAAC,IAAI,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AAC7D;;;;;AAKG;AACH,IAAA,QAAQ,GAAG,KAAK,CAAC,CAAC,4CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;IAEnD,EAAE,GAAG,MAAM,CAAS,IAAI,CAAC,QAAQ,CAAC,8CAAC;AAEnC,IAAA,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;AAEnC,IAAA,WAAW,CAAC,QAAQ,EAAA;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC;IACrC;uGAjDS,IAAI,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAI,m+BAPF,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHZ,CAAA,0BAAA,CAA4B,2DAD5B,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAWb,IAAI,EAAA,UAAA,EAAA,CAAA;kBAdhB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,QAAQ,EAAE,CAAA,0BAAA,CAA4B;oBACtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,SAAS,EAAE,CAAC,SAAS,CAAC;AACtB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,qBAAqB,EAAE,QAAQ;AAC/B,wBAAA,WAAW,EAAE;AAChB;AACJ,iBAAA;;MAyDY,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAxDV,IAAI,EAqDG,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAA,EAAA,OAAA,EAAA,CArDxC,IAAI,EAsDG,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAA,EAAA,CAAA;wGAExC,UAAU,EAAA,OAAA,EAAA,CAHT,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAA,EAAA,CAAA;;2FAGxC,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC;oBAClD,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG;AACpD,iBAAA;;;ACpFD;;AAEG;;;;"}
1
+ {"version":3,"file":"primeng-tabs.mjs","sources":["../../src/tabs/style/tabsstyle.ts","../../src/tabs/style/tabliststyle.ts","../../src/tabs/tablist.ts","../../src/tabs/style/tabstyle.ts","../../src/tabs/tab.ts","../../src/tabs/style/tabpanelstyle.ts","../../src/tabs/tabpanel.ts","../../src/tabs/style/tabpanelsstyle.ts","../../src/tabs/tabpanels.ts","../../src/tabs/tabs.ts","../../src/tabs/primeng-tabs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/tabs';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-tabs p-component',\n {\n 'p-tabs-scrollable': instance.scrollable()\n }\n ]\n};\n\n@Injectable()\nexport class TabsStyle extends BaseStyle {\n name = 'tabs';\n\n theme = style;\n\n classes = classes;\n}\n\n/**\n *\n * Tabs facilitates seamless switching between different views.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabsstyle\n *\n */\n\nexport enum TabsClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tabs',\n /**\n * Class name of the wrapper element\n */\n list = 'p-tablist',\n /**\n * Class name of the content element\n */\n content = 'p-tablist-content',\n /**\n * Class name of the tab list element\n */\n tablist = 'p-tablist-tab-list',\n /**\n * Class name of the tab list element\n */\n tab = 'p-tab',\n /**\n * Class name of the inkbar element\n */\n inkbar = 'p-tablist-active-bar',\n /**\n * Class name of the navigation buttons\n */\n button = 'p-tablist-nav-button',\n /**\n * Class name of the tab panels wrapper\n */\n tabpanels = 'p-tabpanels',\n /**\n * Class name of the tab panel element\n */\n tabpanel = 'p-tabs-panel'\n}\n\nexport interface TabsStyle extends BaseStyle {}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-tablist',\n content: 'p-tablist-content p-tablist-viewport',\n tabList: 'p-tablist-tab-list',\n activeBar: 'p-tablist-active-bar',\n prevButton: 'p-tablist-prev-button p-tablist-nav-button',\n nextButton: 'p-tablist-next-button p-tablist-nav-button'\n};\n\n@Injectable()\nexport class TabListStyle extends BaseStyle {\n name = 'tablist';\n\n classes = classes;\n}\n\n/**\n *\n * Tabs facilitates seamless switching between different views.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabliststyle\n *\n */\n\nexport enum TabListClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tablist',\n /**\n * Class name of the content element\n */\n content = 'p-tablist-content',\n /**\n * Class name of the tabs element\n */\n tabList = 'p-tablist-tab-list',\n /**\n * Class name of the activebar element\n */\n activeBar = 'p-tablist-active-bar',\n /**\n * Class name of the previous button element\n */\n prevButton = 'p-tablist-prev-button',\n /**\n * Class name of the next button element\n */\n nextButton = 'p-tablist-next-button'\n}\n\nexport interface TabListStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, Component, computed, ContentChild, ContentChildren, effect, ElementRef, forwardRef, inject, QueryList, signal, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { findSingle, getOffset, getOuterWidth, getWidth, isRTL } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronLeftIcon, ChevronRightIcon } from 'primeng/icons';\nimport { RippleModule } from 'primeng/ripple';\nimport { TabListStyle } from './style/tabliststyle';\nimport { Tabs } from './tabs';\n\n/**\n * TabList is a helper component for Tabs component.\n * @group Components\n */\n@Component({\n selector: 'p-tablist',\n standalone: true,\n imports: [CommonModule, ChevronLeftIcon, ChevronRightIcon, RippleModule, SharedModule],\n template: `\n @if (showNavigators() && isPrevButtonEnabled()) {\n <button type=\"button\" #prevButton pRipple [class]=\"cx('prevButton')\" [attr.aria-label]=\"prevButtonAriaLabel\" [attr.tabindex]=\"tabindex()\" [attr.data-pc-group-section]=\"'navigator'\" (click)=\"onPrevButtonClick()\">\n @if (prevIconTemplate || _prevIconTemplate) {\n <ng-container *ngTemplateOutlet=\"prevIconTemplate || _prevIconTemplate\" />\n } @else {\n <svg data-p-icon=\"chevron-left\" />\n }\n </button>\n }\n <div #content [class]=\"cx('content')\" (scroll)=\"onScroll($event)\">\n <div #tabs [class]=\"cx('tabList')\" role=\"tablist\">\n <ng-content />\n <span #inkbar role=\"presentation\" [class]=\"cx('activeBar')\" [attr.data-pc-section]=\"'inkbar'\"></span>\n </div>\n </div>\n @if (showNavigators() && isNextButtonEnabled()) {\n <button type=\"button\" #nextButton pRipple [class]=\"cx('nextButton')\" [attr.aria-label]=\"nextButtonAriaLabel\" [attr.tabindex]=\"tabindex()\" [attr.data-pc-group-section]=\"'navigator'\" (click)=\"onNextButtonClick()\">\n @if (nextIconTemplate || _nextIconTemplate) {\n <ng-container *ngTemplateOutlet=\"nextIconTemplate || _nextIconTemplate\" />\n } @else {\n <svg data-p-icon=\"chevron-right\" />\n }\n </button>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tablist\"'\n },\n providers: [TabListStyle]\n})\nexport class TabList extends BaseComponent implements AfterViewInit, AfterContentInit {\n /**\n * A template reference variable that represents the previous icon in a UI component.\n * @type {TemplateRef<any> | undefined}\n * @group Templates\n */\n @ContentChild('previcon', { descendants: false }) prevIconTemplate: TemplateRef<any> | undefined;\n /**\n * A template reference variable that represents the next icon in a UI component.\n * @type {TemplateRef<any> | undefined}\n * @group Templates\n */\n @ContentChild('nexticon', { descendants: false }) nextIconTemplate: TemplateRef<any> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n @ViewChild('content') content: ElementRef<HTMLDivElement>;\n\n @ViewChild('prevButton') prevButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild('nextButton') nextButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild('inkbar') inkbar: ElementRef<HTMLSpanElement>;\n\n @ViewChild('tabs') tabs: ElementRef<HTMLDivElement>;\n\n pcTabs = inject(forwardRef(() => Tabs));\n\n isPrevButtonEnabled = signal<boolean>(false);\n\n isNextButtonEnabled = signal<boolean>(false);\n\n resizeObserver!: ResizeObserver;\n\n showNavigators = computed(() => this.pcTabs.showNavigators());\n\n tabindex = computed(() => this.pcTabs.tabindex());\n\n scrollable = computed(() => this.pcTabs.scrollable());\n\n _componentStyle = inject(TabListStyle);\n\n constructor() {\n super();\n effect(() => {\n this.pcTabs.value();\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.updateInkBar();\n });\n }\n });\n }\n\n get prevButtonAriaLabel() {\n return this.config?.translation?.aria?.previous;\n }\n\n get nextButtonAriaLabel() {\n return this.config?.translation?.aria?.next;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.showNavigators() && isPlatformBrowser(this.platformId)) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n }\n\n _prevIconTemplate: TemplateRef<any> | undefined;\n\n _nextIconTemplate: TemplateRef<any> | undefined;\n\n ngAfterContentInit() {\n this.templates?.forEach((t) => {\n switch (t.getType()) {\n case 'previcon':\n this._prevIconTemplate = t.template;\n break;\n case 'nexticon':\n this._nextIconTemplate = t.template;\n break;\n }\n });\n }\n\n ngOnDestroy() {\n this.unbindResizeObserver();\n super.ngOnDestroy();\n }\n\n onScroll(event: Event) {\n this.showNavigators() && this.updateButtonState();\n\n event.preventDefault();\n }\n\n onPrevButtonClick() {\n const _content = this.content.nativeElement;\n const width = getWidth(_content);\n const pos = Math.abs(_content.scrollLeft) - width;\n const scrollLeft = pos <= 0 ? 0 : pos;\n\n _content.scrollLeft = isRTL(_content) ? -1 * scrollLeft : scrollLeft;\n }\n\n onNextButtonClick() {\n const _content = this.content.nativeElement;\n const width = getWidth(_content) - this.getVisibleButtonWidths();\n const pos = _content.scrollLeft + width;\n const lastPos = _content.scrollWidth - width;\n const scrollLeft = pos >= lastPos ? lastPos : pos;\n\n _content.scrollLeft = isRTL(_content) ? -1 * scrollLeft : scrollLeft;\n }\n\n updateButtonState() {\n const _content = this.content?.nativeElement;\n const _list = this.el?.nativeElement;\n\n const { scrollWidth, offsetWidth } = _content;\n const scrollLeft = Math.abs(_content.scrollLeft);\n const width = getWidth(_content);\n\n this.isPrevButtonEnabled.set(scrollLeft !== 0);\n this.isNextButtonEnabled.set(_list.offsetWidth >= offsetWidth && Math.abs(scrollLeft - scrollWidth + width) > 1);\n }\n\n updateInkBar() {\n const _content = this.content?.nativeElement;\n const _inkbar = this.inkbar?.nativeElement;\n const _tabs = this.tabs?.nativeElement;\n\n const activeTab = findSingle(_content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n if (_inkbar) {\n _inkbar.style.width = getOuterWidth(activeTab) + 'px';\n _inkbar.style.left = <any>getOffset(activeTab).left - <any>getOffset(_tabs).left + 'px';\n }\n }\n\n getVisibleButtonWidths() {\n const _prevBtn = this.prevButton?.nativeElement;\n const _nextBtn = this.nextButton?.nativeElement;\n\n return [_prevBtn, _nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n }\n\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.el.nativeElement);\n }\n\n unbindResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.unobserve(this.el.nativeElement);\n this.resizeObserver = null!;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-tab',\n {\n 'p-tab-active': instance.active(),\n 'p-disabled': instance.disabled()\n }\n ]\n};\n\n@Injectable()\nexport class TabStyle extends BaseStyle {\n name = 'tab';\n\n classes = classes;\n}\n\n/**\n *\n * Tabs facilitates seamless switching between different views.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabsstyle\n *\n */\n\nexport enum TabClasses {\n /**\n * Class name of the tab list element\n */\n tab = 'p-tab'\n}\n\nexport interface TabStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, HostListener, inject, input, model, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { equals, focus, getAttribute } from '@primeuix/utils';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Ripple } from 'primeng/ripple';\nimport { TabList } from './tablist';\nimport { Tabs } from './tabs';\nimport { TabStyle } from './style/tabstyle';\n\n/**\n * Defines valid properties in Tab component.\n * @group Components\n */\n@Component({\n selector: 'p-tab',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: ` <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tab\"',\n '[attr.id]': 'id()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.role]': '\"tab\"',\n '[attr.aria-selected]': 'active()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-p-disabled]': 'disabled()',\n '[attr.data-p-active]': 'active()',\n '[attr.tabindex]': 'tabindex()'\n },\n hostDirectives: [Ripple],\n providers: [TabStyle]\n})\nexport class Tab extends BaseComponent implements AfterViewInit, OnDestroy {\n /**\n * Value of tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<number | string | undefined>();\n /**\n * Whether the tab is disabled.\n * @defaultValue false\n * @group Props\n */\n disabled = input(false, { transform: booleanAttribute });\n\n pcTabs = inject(forwardRef(() => Tabs));\n\n pcTabList = inject(forwardRef(() => TabList));\n\n el = inject(ElementRef);\n\n _componentStyle = inject(TabStyle);\n\n ripple = computed(() => this.config.ripple());\n\n id = computed(() => `${this.pcTabs.id()}_tab_${this.value()}`);\n\n ariaControls = computed(() => `${this.pcTabs.id()}_tabpanel_${this.value()}`);\n\n active = computed(() => equals(this.pcTabs.value(), this.value()));\n\n tabindex = computed(() => (this.disabled() ? -1 : this.active() ? this.pcTabs.tabindex() : -1));\n\n mutationObserver: MutationObserver | undefined;\n\n @HostListener('focus', ['$event']) onFocus(event: FocusEvent) {\n if (!this.disabled()) {\n this.pcTabs.selectOnFocus() && this.changeActiveValue();\n }\n }\n\n @HostListener('click', ['$event']) onClick(event: MouseEvent) {\n if (!this.disabled()) {\n this.changeActiveValue();\n }\n }\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n\n event.stopPropagation();\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this.bindMutationObserver();\n }\n\n onArrowRightKey(event) {\n const nextTab = this.findNextTab(event.currentTarget);\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n }\n\n onArrowLeftKey(event) {\n const prevTab = this.findPrevTab(event.currentTarget);\n\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n }\n\n onHomeKey(event) {\n const firstTab = this.findFirstTab();\n\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n }\n\n onEndKey(event) {\n const lastTab = this.findLastTab();\n\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n }\n\n onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n }\n\n onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n }\n\n onEnterKey(event) {\n if (!this.disabled()) {\n this.changeActiveValue();\n }\n event.preventDefault();\n }\n\n findNextTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : element) : null;\n }\n\n findPrevTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : element) : null;\n }\n\n findFirstTab() {\n return this.findNextTab(this.pcTabList?.tabs?.nativeElement?.firstElementChild, true);\n }\n\n findLastTab() {\n return this.findPrevTab(this.pcTabList?.tabs?.nativeElement?.lastElementChild, true);\n }\n\n changeActiveValue() {\n this.pcTabs.updateValue(this.value());\n }\n\n changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n }\n\n scrollInView(element) {\n element?.scrollIntoView?.({ block: 'nearest' });\n }\n\n bindMutationObserver() {\n if (isPlatformBrowser(this.platformId)) {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach(() => {\n if (this.active()) {\n this.pcTabList?.updateInkBar();\n }\n });\n });\n this.mutationObserver.observe(this.el.nativeElement, { childList: true, characterData: true, subtree: true });\n }\n }\n\n unbindMutationObserver() {\n this.mutationObserver?.disconnect();\n }\n\n ngOnDestroy() {\n if (this.mutationObserver) {\n this.unbindMutationObserver();\n }\n super.ngOnDestroy();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-tabpanel',\n {\n 'p-tabpanel-active': instance.active()\n }\n ]\n};\n\n@Injectable()\nexport class TabPanelStyle extends BaseStyle {\n name = 'tabpanel';\n\n classes = classes;\n}\n\n/**\n *\n * Tab is a helper component for Tabs component.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabstyle\n *\n */\n\nexport enum TabPanelClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tabpanel'\n}\n\nexport interface TabPanelStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, forwardRef, inject, input, model, ViewEncapsulation } from '@angular/core';\nimport { equals } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TabPanelStyle } from './style/tabpanelstyle';\nimport { Tabs } from './tabs';\n\n/**\n * TabPanel is a helper component for Tabs component.\n * @group Components\n */\n@Component({\n selector: 'p-tabpanel',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n <ng-template #defaultContent>\n <ng-content />\n </ng-template>\n\n @if (shouldRender()) {\n <ng-container *ngTemplateOutlet=\"content() ? content() : defaultContent\" />\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TabPanelStyle],\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tabpanel\"',\n '[attr.id]': 'id()',\n '[attr.role]': '\"tabpanel\"',\n '[attr.aria-labelledby]': 'ariaLabelledby()',\n '[attr.data-p-active]': 'active()',\n '[hidden]': '!active()'\n }\n})\nexport class TabPanel extends BaseComponent {\n pcTabs = inject<Tabs>(forwardRef(() => Tabs));\n\n /**\n * When enabled, tab is not rendered until activation.\n * @type boolean\n * @defaultValue false\n * @group Props\n */\n lazy = input(false, { transform: booleanAttribute });\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<string | number | undefined>(undefined);\n /**\n * Template for initializing complex content when lazy is enabled.\n * @group Templates\n */\n content = contentChild('content');\n\n id = computed(() => `${this.pcTabs.id()}_tabpanel_${this.value()}`);\n\n ariaLabelledby = computed(() => `${this.pcTabs.id()}_tab_${this.value()}`);\n\n active = computed(() => equals(this.pcTabs.value(), this.value()));\n\n isLazyEnabled = computed(() => this.pcTabs.lazy() || this.lazy());\n\n private hasBeenRendered = false;\n\n shouldRender = computed(() => {\n if (!this.isLazyEnabled() || this.hasBeenRendered) {\n return true;\n }\n\n if (this.active()) {\n this.hasBeenRendered = true;\n return true;\n }\n\n return false;\n });\n\n _componentStyle = inject(TabPanelStyle);\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-tabpanels'\n};\n\n@Injectable()\nexport class TabPanelsStyle extends BaseStyle {\n name = 'tabpanels';\n\n classes = classes;\n}\n\n/**\n *\n * Tab is a helper component for Tabs component.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabpanelstyle\n *\n */\n\nexport enum TabPanelsClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tabpanels'\n}\n\nexport interface TabPanelsStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TabPanelsStyle } from './style/tabpanelsstyle';\n\n/**\n * TabPanels is a helper component for Tabs component.\n * @group Components\n */\n@Component({\n selector: 'p-tabpanels',\n standalone: true,\n imports: [CommonModule],\n template: ` <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tabpanels\"',\n '[attr.role]': '\"presentation\"'\n },\n providers: [TabPanelsStyle]\n})\nexport class TabPanels extends BaseComponent {\n _componentStyle = inject(TabPanelsStyle);\n}\n","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, input, model, NgModule, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\n\nimport { uuid } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TabsStyle } from './style/tabsstyle';\nimport { Tab } from './tab';\nimport { TabList } from './tablist';\nimport { TabPanel } from './tabpanel';\nimport { TabPanels } from './tabpanels';\n\n/**\n * Tabs facilitates seamless switching between different views.\n * @group Components\n */\n@Component({\n selector: 'p-tabs',\n standalone: true,\n imports: [CommonModule],\n template: ` <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TabsStyle],\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-pc-name]': '\"tabs\"',\n '[attr.id]': 'id()'\n }\n})\nexport class Tabs extends BaseComponent {\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<string | number | undefined>(undefined);\n /**\n * When specified, enables horizontal and/or vertical scrolling.\n * @type boolean\n * @defaultValue false\n * @group Props\n */\n scrollable = input(false, { transform: booleanAttribute });\n /**\n * When enabled, tabs are not rendered until activation.\n * @type boolean\n * @defaultValue false\n * @group Props\n */\n lazy = input(false, { transform: booleanAttribute });\n /**\n * When enabled, the focused tab is activated.\n * @type boolean\n * @defaultValue false\n * @group Props\n */\n selectOnFocus = input(false, { transform: booleanAttribute });\n /**\n * Whether to display navigation buttons in container when scrollable is enabled.\n * @type boolean\n * @defaultValue true\n * @group Props\n */\n showNavigators = input(true, { transform: booleanAttribute });\n /**\n * Tabindex of the tab buttons.\n * @type number\n * @defaultValue 0\n * @group Props\n */\n tabindex = input(0, { transform: numberAttribute });\n\n id = signal<string>(uuid('pn_id_'));\n\n _componentStyle = inject(TabsStyle);\n\n updateValue(newValue) {\n this.value.update(() => newValue);\n }\n}\n\n@NgModule({\n imports: [Tabs, TabPanels, TabPanel, TabList, Tab],\n exports: [Tabs, TabPanels, TabPanel, TabList, Tab]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["classes"],"mappings":"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"}