@ops-prime/primeng 0.0.0-stage → 21.1.10

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 (792) hide show
  1. package/LICENSE.md +77 -0
  2. package/README.md +10 -2
  3. package/fesm2022/primeng-accordion.mjs +634 -0
  4. package/fesm2022/primeng-accordion.mjs.map +1 -0
  5. package/fesm2022/primeng-animateonscroll.mjs +175 -0
  6. package/fesm2022/primeng-animateonscroll.mjs.map +1 -0
  7. package/fesm2022/primeng-api.mjs +841 -0
  8. package/fesm2022/primeng-api.mjs.map +1 -0
  9. package/fesm2022/primeng-autocomplete.mjs +2310 -0
  10. package/fesm2022/primeng-autocomplete.mjs.map +1 -0
  11. package/fesm2022/primeng-autofocus.mjs +83 -0
  12. package/fesm2022/primeng-autofocus.mjs.map +1 -0
  13. package/fesm2022/primeng-avatar.mjs +214 -0
  14. package/fesm2022/primeng-avatar.mjs.map +1 -0
  15. package/fesm2022/primeng-avatargroup.mjs +106 -0
  16. package/fesm2022/primeng-avatargroup.mjs.map +1 -0
  17. package/fesm2022/primeng-badge.mjs +417 -0
  18. package/fesm2022/primeng-badge.mjs.map +1 -0
  19. package/fesm2022/primeng-base.mjs +124 -0
  20. package/fesm2022/primeng-base.mjs.map +1 -0
  21. package/fesm2022/primeng-basecomponent.mjs +435 -0
  22. package/fesm2022/primeng-basecomponent.mjs.map +1 -0
  23. package/fesm2022/primeng-baseeditableholder.mjs +67 -0
  24. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -0
  25. package/fesm2022/primeng-baseinput.mjs +85 -0
  26. package/fesm2022/primeng-baseinput.mjs.map +1 -0
  27. package/fesm2022/primeng-basemodelholder.mjs +25 -0
  28. package/fesm2022/primeng-basemodelholder.mjs.map +1 -0
  29. package/fesm2022/primeng-bind.mjs +94 -0
  30. package/fesm2022/primeng-bind.mjs.map +1 -0
  31. package/fesm2022/primeng-blockui.mjs +265 -0
  32. package/fesm2022/primeng-blockui.mjs.map +1 -0
  33. package/fesm2022/primeng-breadcrumb.mjs +526 -0
  34. package/fesm2022/primeng-breadcrumb.mjs.map +1 -0
  35. package/fesm2022/primeng-button.mjs +1028 -0
  36. package/fesm2022/primeng-button.mjs.map +1 -0
  37. package/fesm2022/primeng-buttongroup.mjs +110 -0
  38. package/fesm2022/primeng-buttongroup.mjs.map +1 -0
  39. package/fesm2022/primeng-card.mjs +312 -0
  40. package/fesm2022/primeng-card.mjs.map +1 -0
  41. package/fesm2022/primeng-carousel.mjs +1205 -0
  42. package/fesm2022/primeng-carousel.mjs.map +1 -0
  43. package/fesm2022/primeng-cascadeselect.mjs +1822 -0
  44. package/fesm2022/primeng-cascadeselect.mjs.map +1 -0
  45. package/fesm2022/primeng-chart.mjs +270 -0
  46. package/fesm2022/primeng-chart.mjs.map +1 -0
  47. package/fesm2022/primeng-checkbox.mjs +467 -0
  48. package/fesm2022/primeng-checkbox.mjs.map +1 -0
  49. package/fesm2022/primeng-chip.mjs +378 -0
  50. package/fesm2022/primeng-chip.mjs.map +1 -0
  51. package/fesm2022/primeng-classnames.mjs +48 -0
  52. package/fesm2022/primeng-classnames.mjs.map +1 -0
  53. package/fesm2022/primeng-colorpicker.mjs +805 -0
  54. package/fesm2022/primeng-colorpicker.mjs.map +1 -0
  55. package/fesm2022/primeng-config.mjs +299 -0
  56. package/fesm2022/primeng-config.mjs.map +1 -0
  57. package/fesm2022/primeng-confirmdialog.mjs +858 -0
  58. package/fesm2022/primeng-confirmdialog.mjs.map +1 -0
  59. package/fesm2022/primeng-confirmpopup.mjs +701 -0
  60. package/fesm2022/primeng-confirmpopup.mjs.map +1 -0
  61. package/fesm2022/primeng-contextmenu.mjs +1572 -0
  62. package/fesm2022/primeng-contextmenu.mjs.map +1 -0
  63. package/fesm2022/primeng-dataview.mjs +832 -0
  64. package/fesm2022/primeng-dataview.mjs.map +1 -0
  65. package/fesm2022/primeng-datepicker.mjs +4439 -0
  66. package/fesm2022/primeng-datepicker.mjs.map +1 -0
  67. package/fesm2022/primeng-dialog.mjs +1413 -0
  68. package/fesm2022/primeng-dialog.mjs.map +1 -0
  69. package/fesm2022/primeng-divider.mjs +162 -0
  70. package/fesm2022/primeng-divider.mjs.map +1 -0
  71. package/fesm2022/primeng-dock.mjs +590 -0
  72. package/fesm2022/primeng-dock.mjs.map +1 -0
  73. package/fesm2022/primeng-dom.mjs +778 -0
  74. package/fesm2022/primeng-dom.mjs.map +1 -0
  75. package/fesm2022/primeng-dragdrop.mjs +336 -0
  76. package/fesm2022/primeng-dragdrop.mjs.map +1 -0
  77. package/fesm2022/primeng-drawer.mjs +776 -0
  78. package/fesm2022/primeng-drawer.mjs.map +1 -0
  79. package/fesm2022/primeng-dynamicdialog.mjs +1075 -0
  80. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -0
  81. package/fesm2022/primeng-editor.mjs +524 -0
  82. package/fesm2022/primeng-editor.mjs.map +1 -0
  83. package/fesm2022/primeng-fieldset.mjs +456 -0
  84. package/fesm2022/primeng-fieldset.mjs.map +1 -0
  85. package/fesm2022/primeng-fileupload.mjs +1577 -0
  86. package/fesm2022/primeng-fileupload.mjs.map +1 -0
  87. package/fesm2022/primeng-floatlabel.mjs +113 -0
  88. package/fesm2022/primeng-floatlabel.mjs.map +1 -0
  89. package/fesm2022/primeng-fluid.mjs +89 -0
  90. package/fesm2022/primeng-fluid.mjs.map +1 -0
  91. package/fesm2022/primeng-focustrap.mjs +108 -0
  92. package/fesm2022/primeng-focustrap.mjs.map +1 -0
  93. package/fesm2022/primeng-galleria.mjs +2135 -0
  94. package/fesm2022/primeng-galleria.mjs.map +1 -0
  95. package/fesm2022/primeng-iconfield.mjs +114 -0
  96. package/fesm2022/primeng-iconfield.mjs.map +1 -0
  97. package/fesm2022/primeng-icons-angledoubledown.mjs +37 -0
  98. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -0
  99. package/fesm2022/primeng-icons-angledoubleleft.mjs +37 -0
  100. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -0
  101. package/fesm2022/primeng-icons-angledoubleright.mjs +37 -0
  102. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -0
  103. package/fesm2022/primeng-icons-angledoubleup.mjs +37 -0
  104. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -0
  105. package/fesm2022/primeng-icons-angledown.mjs +33 -0
  106. package/fesm2022/primeng-icons-angledown.mjs.map +1 -0
  107. package/fesm2022/primeng-icons-angleleft.mjs +33 -0
  108. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -0
  109. package/fesm2022/primeng-icons-angleright.mjs +33 -0
  110. package/fesm2022/primeng-icons-angleright.mjs.map +1 -0
  111. package/fesm2022/primeng-icons-angleup.mjs +33 -0
  112. package/fesm2022/primeng-icons-angleup.mjs.map +1 -0
  113. package/fesm2022/primeng-icons-arrowdown.mjs +56 -0
  114. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -0
  115. package/fesm2022/primeng-icons-arrowdownleft.mjs +33 -0
  116. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -0
  117. package/fesm2022/primeng-icons-arrowdownright.mjs +33 -0
  118. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -0
  119. package/fesm2022/primeng-icons-arrowleft.mjs +56 -0
  120. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -0
  121. package/fesm2022/primeng-icons-arrowright.mjs +37 -0
  122. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -0
  123. package/fesm2022/primeng-icons-arrowup.mjs +56 -0
  124. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -0
  125. package/fesm2022/primeng-icons-ban.mjs +52 -0
  126. package/fesm2022/primeng-icons-ban.mjs.map +1 -0
  127. package/fesm2022/primeng-icons-bars.mjs +37 -0
  128. package/fesm2022/primeng-icons-bars.mjs.map +1 -0
  129. package/fesm2022/primeng-icons-baseicon.mjs +103 -0
  130. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -0
  131. package/fesm2022/primeng-icons-blank.mjs +23 -0
  132. package/fesm2022/primeng-icons-blank.mjs.map +1 -0
  133. package/fesm2022/primeng-icons-calendar.mjs +33 -0
  134. package/fesm2022/primeng-icons-calendar.mjs.map +1 -0
  135. package/fesm2022/primeng-icons-caretleft.mjs +33 -0
  136. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -0
  137. package/fesm2022/primeng-icons-caretright.mjs +33 -0
  138. package/fesm2022/primeng-icons-caretright.mjs.map +1 -0
  139. package/fesm2022/primeng-icons-check.mjs +33 -0
  140. package/fesm2022/primeng-icons-check.mjs.map +1 -0
  141. package/fesm2022/primeng-icons-chevrondown.mjs +33 -0
  142. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -0
  143. package/fesm2022/primeng-icons-chevronleft.mjs +33 -0
  144. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -0
  145. package/fesm2022/primeng-icons-chevronright.mjs +33 -0
  146. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -0
  147. package/fesm2022/primeng-icons-chevronup.mjs +33 -0
  148. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -0
  149. package/fesm2022/primeng-icons-exclamationtriangle.mjs +68 -0
  150. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -0
  151. package/fesm2022/primeng-icons-eye.mjs +37 -0
  152. package/fesm2022/primeng-icons-eye.mjs.map +1 -0
  153. package/fesm2022/primeng-icons-eyeslash.mjs +56 -0
  154. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -0
  155. package/fesm2022/primeng-icons-filter.mjs +52 -0
  156. package/fesm2022/primeng-icons-filter.mjs.map +1 -0
  157. package/fesm2022/primeng-icons-filterfill.mjs +33 -0
  158. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -0
  159. package/fesm2022/primeng-icons-filterslash.mjs +56 -0
  160. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -0
  161. package/fesm2022/primeng-icons-home.mjs +56 -0
  162. package/fesm2022/primeng-icons-home.mjs.map +1 -0
  163. package/fesm2022/primeng-icons-infocircle.mjs +56 -0
  164. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -0
  165. package/fesm2022/primeng-icons-minus.mjs +33 -0
  166. package/fesm2022/primeng-icons-minus.mjs.map +1 -0
  167. package/fesm2022/primeng-icons-pencil.mjs +52 -0
  168. package/fesm2022/primeng-icons-pencil.mjs.map +1 -0
  169. package/fesm2022/primeng-icons-plus.mjs +52 -0
  170. package/fesm2022/primeng-icons-plus.mjs.map +1 -0
  171. package/fesm2022/primeng-icons-refresh.mjs +56 -0
  172. package/fesm2022/primeng-icons-refresh.mjs.map +1 -0
  173. package/fesm2022/primeng-icons-search.mjs +56 -0
  174. package/fesm2022/primeng-icons-search.mjs.map +1 -0
  175. package/fesm2022/primeng-icons-searchminus.mjs +56 -0
  176. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -0
  177. package/fesm2022/primeng-icons-searchplus.mjs +56 -0
  178. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -0
  179. package/fesm2022/primeng-icons-sortalt.mjs +64 -0
  180. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -0
  181. package/fesm2022/primeng-icons-sortamountdown.mjs +52 -0
  182. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -0
  183. package/fesm2022/primeng-icons-sortamountupalt.mjs +52 -0
  184. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -0
  185. package/fesm2022/primeng-icons-spinner.mjs +52 -0
  186. package/fesm2022/primeng-icons-spinner.mjs.map +1 -0
  187. package/fesm2022/primeng-icons-star.mjs +52 -0
  188. package/fesm2022/primeng-icons-star.mjs.map +1 -0
  189. package/fesm2022/primeng-icons-starfill.mjs +52 -0
  190. package/fesm2022/primeng-icons-starfill.mjs.map +1 -0
  191. package/fesm2022/primeng-icons-thlarge.mjs +56 -0
  192. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -0
  193. package/fesm2022/primeng-icons-times.mjs +33 -0
  194. package/fesm2022/primeng-icons-times.mjs.map +1 -0
  195. package/fesm2022/primeng-icons-timescircle.mjs +56 -0
  196. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -0
  197. package/fesm2022/primeng-icons-trash.mjs +56 -0
  198. package/fesm2022/primeng-icons-trash.mjs.map +1 -0
  199. package/fesm2022/primeng-icons-undo.mjs +56 -0
  200. package/fesm2022/primeng-icons-undo.mjs.map +1 -0
  201. package/fesm2022/primeng-icons-upload.mjs +56 -0
  202. package/fesm2022/primeng-icons-upload.mjs.map +1 -0
  203. package/fesm2022/primeng-icons-windowmaximize.mjs +56 -0
  204. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -0
  205. package/fesm2022/primeng-icons-windowminimize.mjs +56 -0
  206. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -0
  207. package/fesm2022/primeng-icons.mjs +63 -0
  208. package/fesm2022/primeng-icons.mjs.map +1 -0
  209. package/fesm2022/primeng-iftalabel.mjs +100 -0
  210. package/fesm2022/primeng-iftalabel.mjs.map +1 -0
  211. package/fesm2022/primeng-image.mjs +802 -0
  212. package/fesm2022/primeng-image.mjs.map +1 -0
  213. package/fesm2022/primeng-imagecompare.mjs +200 -0
  214. package/fesm2022/primeng-imagecompare.mjs.map +1 -0
  215. package/fesm2022/primeng-inplace.mjs +330 -0
  216. package/fesm2022/primeng-inplace.mjs.map +1 -0
  217. package/fesm2022/primeng-inputgroup.mjs +136 -0
  218. package/fesm2022/primeng-inputgroup.mjs.map +1 -0
  219. package/fesm2022/primeng-inputgroupaddon.mjs +90 -0
  220. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -0
  221. package/fesm2022/primeng-inputicon.mjs +84 -0
  222. package/fesm2022/primeng-inputicon.mjs.map +1 -0
  223. package/fesm2022/primeng-inputmask.mjs +1509 -0
  224. package/fesm2022/primeng-inputmask.mjs.map +1 -0
  225. package/fesm2022/primeng-inputnumber.mjs +1675 -0
  226. package/fesm2022/primeng-inputnumber.mjs.map +1 -0
  227. package/fesm2022/primeng-inputotp.mjs +464 -0
  228. package/fesm2022/primeng-inputotp.mjs.map +1 -0
  229. package/fesm2022/primeng-inputtext.mjs +196 -0
  230. package/fesm2022/primeng-inputtext.mjs.map +1 -0
  231. package/fesm2022/primeng-keyfilter.mjs +276 -0
  232. package/fesm2022/primeng-keyfilter.mjs.map +1 -0
  233. package/fesm2022/primeng-knob.mjs +500 -0
  234. package/fesm2022/primeng-knob.mjs.map +1 -0
  235. package/fesm2022/primeng-listbox.mjs +2125 -0
  236. package/fesm2022/primeng-listbox.mjs.map +1 -0
  237. package/fesm2022/primeng-megamenu.mjs +1598 -0
  238. package/fesm2022/primeng-megamenu.mjs.map +1 -0
  239. package/fesm2022/primeng-menu.mjs +1150 -0
  240. package/fesm2022/primeng-menu.mjs.map +1 -0
  241. package/fesm2022/primeng-menubar.mjs +1538 -0
  242. package/fesm2022/primeng-menubar.mjs.map +1 -0
  243. package/fesm2022/primeng-message.mjs +408 -0
  244. package/fesm2022/primeng-message.mjs.map +1 -0
  245. package/fesm2022/primeng-metergroup.mjs +496 -0
  246. package/fesm2022/primeng-metergroup.mjs.map +1 -0
  247. package/fesm2022/primeng-motion.mjs +700 -0
  248. package/fesm2022/primeng-motion.mjs.map +1 -0
  249. package/fesm2022/primeng-multiselect.mjs +2690 -0
  250. package/fesm2022/primeng-multiselect.mjs.map +1 -0
  251. package/fesm2022/primeng-orderlist.mjs +1086 -0
  252. package/fesm2022/primeng-orderlist.mjs.map +1 -0
  253. package/fesm2022/primeng-organizationchart.mjs +545 -0
  254. package/fesm2022/primeng-organizationchart.mjs.map +1 -0
  255. package/fesm2022/primeng-overlay.mjs +879 -0
  256. package/fesm2022/primeng-overlay.mjs.map +1 -0
  257. package/fesm2022/primeng-overlaybadge.mjs +161 -0
  258. package/fesm2022/primeng-overlaybadge.mjs.map +1 -0
  259. package/fesm2022/primeng-paginator.mjs +823 -0
  260. package/fesm2022/primeng-paginator.mjs.map +1 -0
  261. package/fesm2022/primeng-panel.mjs +568 -0
  262. package/fesm2022/primeng-panel.mjs.map +1 -0
  263. package/fesm2022/primeng-panelmenu.mjs +1619 -0
  264. package/fesm2022/primeng-panelmenu.mjs.map +1 -0
  265. package/fesm2022/primeng-passthrough.mjs +21 -0
  266. package/fesm2022/primeng-passthrough.mjs.map +1 -0
  267. package/fesm2022/primeng-password.mjs +1175 -0
  268. package/fesm2022/primeng-password.mjs.map +1 -0
  269. package/fesm2022/primeng-picklist.mjs +2235 -0
  270. package/fesm2022/primeng-picklist.mjs.map +1 -0
  271. package/fesm2022/primeng-popover.mjs +528 -0
  272. package/fesm2022/primeng-popover.mjs.map +1 -0
  273. package/fesm2022/primeng-progressbar.mjs +216 -0
  274. package/fesm2022/primeng-progressbar.mjs.map +1 -0
  275. package/fesm2022/primeng-progressspinner.mjs +148 -0
  276. package/fesm2022/primeng-progressspinner.mjs.map +1 -0
  277. package/fesm2022/primeng-radiobutton.mjs +380 -0
  278. package/fesm2022/primeng-radiobutton.mjs.map +1 -0
  279. package/fesm2022/primeng-rating.mjs +410 -0
  280. package/fesm2022/primeng-rating.mjs.map +1 -0
  281. package/fesm2022/primeng-ripple.mjs +196 -0
  282. package/fesm2022/primeng-ripple.mjs.map +1 -0
  283. package/fesm2022/primeng-scroller.mjs +1327 -0
  284. package/fesm2022/primeng-scroller.mjs.map +1 -0
  285. package/fesm2022/primeng-scrollpanel.mjs +572 -0
  286. package/fesm2022/primeng-scrollpanel.mjs.map +1 -0
  287. package/fesm2022/primeng-scrolltop.mjs +347 -0
  288. package/fesm2022/primeng-scrolltop.mjs.map +1 -0
  289. package/fesm2022/primeng-select.mjs +2399 -0
  290. package/fesm2022/primeng-select.mjs.map +1 -0
  291. package/fesm2022/primeng-selectbutton.mjs +435 -0
  292. package/fesm2022/primeng-selectbutton.mjs.map +1 -0
  293. package/fesm2022/primeng-skeleton.mjs +170 -0
  294. package/fesm2022/primeng-skeleton.mjs.map +1 -0
  295. package/fesm2022/primeng-slider.mjs +889 -0
  296. package/fesm2022/primeng-slider.mjs.map +1 -0
  297. package/fesm2022/primeng-speeddial.mjs +937 -0
  298. package/fesm2022/primeng-speeddial.mjs.map +1 -0
  299. package/fesm2022/primeng-splitbutton.mjs +640 -0
  300. package/fesm2022/primeng-splitbutton.mjs.map +1 -0
  301. package/fesm2022/primeng-splitter.mjs +601 -0
  302. package/fesm2022/primeng-splitter.mjs.map +1 -0
  303. package/fesm2022/primeng-stepper.mjs +745 -0
  304. package/fesm2022/primeng-stepper.mjs.map +1 -0
  305. package/fesm2022/primeng-steps.mjs +425 -0
  306. package/fesm2022/primeng-steps.mjs.map +1 -0
  307. package/fesm2022/primeng-styleclass.mjs +354 -0
  308. package/fesm2022/primeng-styleclass.mjs.map +1 -0
  309. package/fesm2022/primeng-table.mjs +7805 -0
  310. package/fesm2022/primeng-table.mjs.map +1 -0
  311. package/fesm2022/primeng-tabs.mjs +911 -0
  312. package/fesm2022/primeng-tabs.mjs.map +1 -0
  313. package/fesm2022/primeng-tag.mjs +198 -0
  314. package/fesm2022/primeng-tag.mjs.map +1 -0
  315. package/fesm2022/primeng-terminal.mjs +260 -0
  316. package/fesm2022/primeng-terminal.mjs.map +1 -0
  317. package/fesm2022/primeng-textarea.mjs +225 -0
  318. package/fesm2022/primeng-textarea.mjs.map +1 -0
  319. package/fesm2022/primeng-tieredmenu.mjs +1625 -0
  320. package/fesm2022/primeng-tieredmenu.mjs.map +1 -0
  321. package/fesm2022/primeng-timeline.mjs +250 -0
  322. package/fesm2022/primeng-timeline.mjs.map +1 -0
  323. package/fesm2022/primeng-toast.mjs +784 -0
  324. package/fesm2022/primeng-toast.mjs.map +1 -0
  325. package/fesm2022/primeng-togglebutton.mjs +393 -0
  326. package/fesm2022/primeng-togglebutton.mjs.map +1 -0
  327. package/fesm2022/primeng-toggleswitch.mjs +346 -0
  328. package/fesm2022/primeng-toggleswitch.mjs.map +1 -0
  329. package/fesm2022/primeng-toolbar.mjs +198 -0
  330. package/fesm2022/primeng-toolbar.mjs.map +1 -0
  331. package/fesm2022/primeng-tooltip.mjs +842 -0
  332. package/fesm2022/primeng-tooltip.mjs.map +1 -0
  333. package/fesm2022/primeng-tree.mjs +2282 -0
  334. package/fesm2022/primeng-tree.mjs.map +1 -0
  335. package/fesm2022/primeng-treeselect.mjs +1408 -0
  336. package/fesm2022/primeng-treeselect.mjs.map +1 -0
  337. package/fesm2022/primeng-treetable.mjs +5164 -0
  338. package/fesm2022/primeng-treetable.mjs.map +1 -0
  339. package/fesm2022/primeng-ts-helpers.mjs +4 -0
  340. package/fesm2022/primeng-ts-helpers.mjs.map +1 -0
  341. package/fesm2022/primeng-types-accordion.mjs +4 -0
  342. package/fesm2022/primeng-types-accordion.mjs.map +1 -0
  343. package/fesm2022/primeng-types-autocomplete.mjs +4 -0
  344. package/fesm2022/primeng-types-autocomplete.mjs.map +1 -0
  345. package/fesm2022/primeng-types-avatar.mjs +4 -0
  346. package/fesm2022/primeng-types-avatar.mjs.map +1 -0
  347. package/fesm2022/primeng-types-avatargroup.mjs +4 -0
  348. package/fesm2022/primeng-types-avatargroup.mjs.map +1 -0
  349. package/fesm2022/primeng-types-badge.mjs +4 -0
  350. package/fesm2022/primeng-types-badge.mjs.map +1 -0
  351. package/fesm2022/primeng-types-blockui.mjs +4 -0
  352. package/fesm2022/primeng-types-blockui.mjs.map +1 -0
  353. package/fesm2022/primeng-types-breadcrumb.mjs +4 -0
  354. package/fesm2022/primeng-types-breadcrumb.mjs.map +1 -0
  355. package/fesm2022/primeng-types-button.mjs +4 -0
  356. package/fesm2022/primeng-types-button.mjs.map +1 -0
  357. package/fesm2022/primeng-types-card.mjs +4 -0
  358. package/fesm2022/primeng-types-card.mjs.map +1 -0
  359. package/fesm2022/primeng-types-carousel.mjs +4 -0
  360. package/fesm2022/primeng-types-carousel.mjs.map +1 -0
  361. package/fesm2022/primeng-types-cascadeselect.mjs +4 -0
  362. package/fesm2022/primeng-types-cascadeselect.mjs.map +1 -0
  363. package/fesm2022/primeng-types-chart.mjs +4 -0
  364. package/fesm2022/primeng-types-chart.mjs.map +1 -0
  365. package/fesm2022/primeng-types-checkbox.mjs +4 -0
  366. package/fesm2022/primeng-types-checkbox.mjs.map +1 -0
  367. package/fesm2022/primeng-types-chip.mjs +4 -0
  368. package/fesm2022/primeng-types-chip.mjs.map +1 -0
  369. package/fesm2022/primeng-types-colorpicker.mjs +4 -0
  370. package/fesm2022/primeng-types-colorpicker.mjs.map +1 -0
  371. package/fesm2022/primeng-types-confirmdialog.mjs +4 -0
  372. package/fesm2022/primeng-types-confirmdialog.mjs.map +1 -0
  373. package/fesm2022/primeng-types-confirmpopup.mjs +4 -0
  374. package/fesm2022/primeng-types-confirmpopup.mjs.map +1 -0
  375. package/fesm2022/primeng-types-contextmenu.mjs +4 -0
  376. package/fesm2022/primeng-types-contextmenu.mjs.map +1 -0
  377. package/fesm2022/primeng-types-dataview.mjs +4 -0
  378. package/fesm2022/primeng-types-dataview.mjs.map +1 -0
  379. package/fesm2022/primeng-types-datepicker.mjs +4 -0
  380. package/fesm2022/primeng-types-datepicker.mjs.map +1 -0
  381. package/fesm2022/primeng-types-dialog.mjs +4 -0
  382. package/fesm2022/primeng-types-dialog.mjs.map +1 -0
  383. package/fesm2022/primeng-types-divider.mjs +4 -0
  384. package/fesm2022/primeng-types-divider.mjs.map +1 -0
  385. package/fesm2022/primeng-types-dock.mjs +4 -0
  386. package/fesm2022/primeng-types-dock.mjs.map +1 -0
  387. package/fesm2022/primeng-types-drawer.mjs +4 -0
  388. package/fesm2022/primeng-types-drawer.mjs.map +1 -0
  389. package/fesm2022/primeng-types-editor.mjs +4 -0
  390. package/fesm2022/primeng-types-editor.mjs.map +1 -0
  391. package/fesm2022/primeng-types-fieldset.mjs +4 -0
  392. package/fesm2022/primeng-types-fieldset.mjs.map +1 -0
  393. package/fesm2022/primeng-types-fileupload.mjs +4 -0
  394. package/fesm2022/primeng-types-fileupload.mjs.map +1 -0
  395. package/fesm2022/primeng-types-floatlabel.mjs +4 -0
  396. package/fesm2022/primeng-types-floatlabel.mjs.map +1 -0
  397. package/fesm2022/primeng-types-fluid.mjs +4 -0
  398. package/fesm2022/primeng-types-fluid.mjs.map +1 -0
  399. package/fesm2022/primeng-types-galleria.mjs +4 -0
  400. package/fesm2022/primeng-types-galleria.mjs.map +1 -0
  401. package/fesm2022/primeng-types-iconfield.mjs +4 -0
  402. package/fesm2022/primeng-types-iconfield.mjs.map +1 -0
  403. package/fesm2022/primeng-types-iftalabel.mjs +4 -0
  404. package/fesm2022/primeng-types-iftalabel.mjs.map +1 -0
  405. package/fesm2022/primeng-types-image.mjs +4 -0
  406. package/fesm2022/primeng-types-image.mjs.map +1 -0
  407. package/fesm2022/primeng-types-imagecompare.mjs +4 -0
  408. package/fesm2022/primeng-types-imagecompare.mjs.map +1 -0
  409. package/fesm2022/primeng-types-inplace.mjs +4 -0
  410. package/fesm2022/primeng-types-inplace.mjs.map +1 -0
  411. package/fesm2022/primeng-types-inputgroup.mjs +4 -0
  412. package/fesm2022/primeng-types-inputgroup.mjs.map +1 -0
  413. package/fesm2022/primeng-types-inputgroupaddon.mjs +4 -0
  414. package/fesm2022/primeng-types-inputgroupaddon.mjs.map +1 -0
  415. package/fesm2022/primeng-types-inputicon.mjs +4 -0
  416. package/fesm2022/primeng-types-inputicon.mjs.map +1 -0
  417. package/fesm2022/primeng-types-inputmask.mjs +4 -0
  418. package/fesm2022/primeng-types-inputmask.mjs.map +1 -0
  419. package/fesm2022/primeng-types-inputnumber.mjs +4 -0
  420. package/fesm2022/primeng-types-inputnumber.mjs.map +1 -0
  421. package/fesm2022/primeng-types-inputotp.mjs +4 -0
  422. package/fesm2022/primeng-types-inputotp.mjs.map +1 -0
  423. package/fesm2022/primeng-types-inputtext.mjs +4 -0
  424. package/fesm2022/primeng-types-inputtext.mjs.map +1 -0
  425. package/fesm2022/primeng-types-knob.mjs +4 -0
  426. package/fesm2022/primeng-types-knob.mjs.map +1 -0
  427. package/fesm2022/primeng-types-listbox.mjs +4 -0
  428. package/fesm2022/primeng-types-listbox.mjs.map +1 -0
  429. package/fesm2022/primeng-types-megamenu.mjs +4 -0
  430. package/fesm2022/primeng-types-megamenu.mjs.map +1 -0
  431. package/fesm2022/primeng-types-menu.mjs +4 -0
  432. package/fesm2022/primeng-types-menu.mjs.map +1 -0
  433. package/fesm2022/primeng-types-menubar.mjs +4 -0
  434. package/fesm2022/primeng-types-menubar.mjs.map +1 -0
  435. package/fesm2022/primeng-types-message.mjs +4 -0
  436. package/fesm2022/primeng-types-message.mjs.map +1 -0
  437. package/fesm2022/primeng-types-metergroup.mjs +4 -0
  438. package/fesm2022/primeng-types-metergroup.mjs.map +1 -0
  439. package/fesm2022/primeng-types-motion.mjs +4 -0
  440. package/fesm2022/primeng-types-motion.mjs.map +1 -0
  441. package/fesm2022/primeng-types-multiselect.mjs +4 -0
  442. package/fesm2022/primeng-types-multiselect.mjs.map +1 -0
  443. package/fesm2022/primeng-types-orderlist.mjs +4 -0
  444. package/fesm2022/primeng-types-orderlist.mjs.map +1 -0
  445. package/fesm2022/primeng-types-organizationchart.mjs +4 -0
  446. package/fesm2022/primeng-types-organizationchart.mjs.map +1 -0
  447. package/fesm2022/primeng-types-overlay.mjs +4 -0
  448. package/fesm2022/primeng-types-overlay.mjs.map +1 -0
  449. package/fesm2022/primeng-types-overlaybadge.mjs +4 -0
  450. package/fesm2022/primeng-types-overlaybadge.mjs.map +1 -0
  451. package/fesm2022/primeng-types-paginator.mjs +4 -0
  452. package/fesm2022/primeng-types-paginator.mjs.map +1 -0
  453. package/fesm2022/primeng-types-panel.mjs +4 -0
  454. package/fesm2022/primeng-types-panel.mjs.map +1 -0
  455. package/fesm2022/primeng-types-panelmenu.mjs +4 -0
  456. package/fesm2022/primeng-types-panelmenu.mjs.map +1 -0
  457. package/fesm2022/primeng-types-password.mjs +4 -0
  458. package/fesm2022/primeng-types-password.mjs.map +1 -0
  459. package/fesm2022/primeng-types-picklist.mjs +4 -0
  460. package/fesm2022/primeng-types-picklist.mjs.map +1 -0
  461. package/fesm2022/primeng-types-popover.mjs +4 -0
  462. package/fesm2022/primeng-types-popover.mjs.map +1 -0
  463. package/fesm2022/primeng-types-progressbar.mjs +4 -0
  464. package/fesm2022/primeng-types-progressbar.mjs.map +1 -0
  465. package/fesm2022/primeng-types-progressspinner.mjs +4 -0
  466. package/fesm2022/primeng-types-progressspinner.mjs.map +1 -0
  467. package/fesm2022/primeng-types-radiobutton.mjs +4 -0
  468. package/fesm2022/primeng-types-radiobutton.mjs.map +1 -0
  469. package/fesm2022/primeng-types-rating.mjs +4 -0
  470. package/fesm2022/primeng-types-rating.mjs.map +1 -0
  471. package/fesm2022/primeng-types-scroller.mjs +4 -0
  472. package/fesm2022/primeng-types-scroller.mjs.map +1 -0
  473. package/fesm2022/primeng-types-scrollpanel.mjs +4 -0
  474. package/fesm2022/primeng-types-scrollpanel.mjs.map +1 -0
  475. package/fesm2022/primeng-types-scrolltop.mjs +4 -0
  476. package/fesm2022/primeng-types-scrolltop.mjs.map +1 -0
  477. package/fesm2022/primeng-types-select.mjs +4 -0
  478. package/fesm2022/primeng-types-select.mjs.map +1 -0
  479. package/fesm2022/primeng-types-selectbutton.mjs +4 -0
  480. package/fesm2022/primeng-types-selectbutton.mjs.map +1 -0
  481. package/fesm2022/primeng-types-skeleton.mjs +4 -0
  482. package/fesm2022/primeng-types-skeleton.mjs.map +1 -0
  483. package/fesm2022/primeng-types-slider.mjs +4 -0
  484. package/fesm2022/primeng-types-slider.mjs.map +1 -0
  485. package/fesm2022/primeng-types-speeddial.mjs +4 -0
  486. package/fesm2022/primeng-types-speeddial.mjs.map +1 -0
  487. package/fesm2022/primeng-types-splitbutton.mjs +4 -0
  488. package/fesm2022/primeng-types-splitbutton.mjs.map +1 -0
  489. package/fesm2022/primeng-types-splitter.mjs +4 -0
  490. package/fesm2022/primeng-types-splitter.mjs.map +1 -0
  491. package/fesm2022/primeng-types-stepper.mjs +4 -0
  492. package/fesm2022/primeng-types-stepper.mjs.map +1 -0
  493. package/fesm2022/primeng-types-table.mjs +4 -0
  494. package/fesm2022/primeng-types-table.mjs.map +1 -0
  495. package/fesm2022/primeng-types-tabs.mjs +4 -0
  496. package/fesm2022/primeng-types-tabs.mjs.map +1 -0
  497. package/fesm2022/primeng-types-tag.mjs +4 -0
  498. package/fesm2022/primeng-types-tag.mjs.map +1 -0
  499. package/fesm2022/primeng-types-terminal.mjs +4 -0
  500. package/fesm2022/primeng-types-terminal.mjs.map +1 -0
  501. package/fesm2022/primeng-types-textarea.mjs +4 -0
  502. package/fesm2022/primeng-types-textarea.mjs.map +1 -0
  503. package/fesm2022/primeng-types-tieredmenu.mjs +4 -0
  504. package/fesm2022/primeng-types-tieredmenu.mjs.map +1 -0
  505. package/fesm2022/primeng-types-timeline.mjs +4 -0
  506. package/fesm2022/primeng-types-timeline.mjs.map +1 -0
  507. package/fesm2022/primeng-types-toast.mjs +4 -0
  508. package/fesm2022/primeng-types-toast.mjs.map +1 -0
  509. package/fesm2022/primeng-types-togglebutton.mjs +4 -0
  510. package/fesm2022/primeng-types-togglebutton.mjs.map +1 -0
  511. package/fesm2022/primeng-types-toggleswitch.mjs +4 -0
  512. package/fesm2022/primeng-types-toggleswitch.mjs.map +1 -0
  513. package/fesm2022/primeng-types-toolbar.mjs +4 -0
  514. package/fesm2022/primeng-types-toolbar.mjs.map +1 -0
  515. package/fesm2022/primeng-types-tooltip.mjs +4 -0
  516. package/fesm2022/primeng-types-tooltip.mjs.map +1 -0
  517. package/fesm2022/primeng-types-tree.mjs +4 -0
  518. package/fesm2022/primeng-types-tree.mjs.map +1 -0
  519. package/fesm2022/primeng-types-treeselect.mjs +4 -0
  520. package/fesm2022/primeng-types-treeselect.mjs.map +1 -0
  521. package/fesm2022/primeng-types-treetable.mjs +4 -0
  522. package/fesm2022/primeng-types-treetable.mjs.map +1 -0
  523. package/fesm2022/primeng-usestyle.mjs +54 -0
  524. package/fesm2022/primeng-usestyle.mjs.map +1 -0
  525. package/fesm2022/primeng-utils.mjs +332 -0
  526. package/fesm2022/primeng-utils.mjs.map +1 -0
  527. package/fesm2022/primeng.mjs +6 -0
  528. package/fesm2022/primeng.mjs.map +1 -0
  529. package/package.json +1103 -4
  530. package/types/primeng-accordion.d.ts +289 -0
  531. package/types/primeng-animateonscroll.d.ts +70 -0
  532. package/types/primeng-api.d.ts +1976 -0
  533. package/types/primeng-autocomplete.d.ts +793 -0
  534. package/types/primeng-autofocus.d.ts +31 -0
  535. package/types/primeng-avatar.d.ts +140 -0
  536. package/types/primeng-avatargroup.d.ts +66 -0
  537. package/types/primeng-badge.d.ts +184 -0
  538. package/types/primeng-base.d.ts +58 -0
  539. package/types/primeng-basecomponent.d.ts +175 -0
  540. package/types/primeng-baseeditableholder.d.ts +45 -0
  541. package/types/primeng-baseinput.d.ts +73 -0
  542. package/types/primeng-basemodelholder.d.ts +12 -0
  543. package/types/primeng-bind.d.ts +38 -0
  544. package/types/primeng-blockui.d.ts +111 -0
  545. package/types/primeng-breadcrumb.d.ts +149 -0
  546. package/types/primeng-button.d.ts +491 -0
  547. package/types/primeng-buttongroup.d.ts +44 -0
  548. package/types/primeng-card.d.ts +157 -0
  549. package/types/primeng-carousel.d.ts +388 -0
  550. package/types/primeng-cascadeselect.d.ts +628 -0
  551. package/types/primeng-chart.d.ts +135 -0
  552. package/types/primeng-checkbox.d.ts +231 -0
  553. package/types/primeng-chip.d.ts +167 -0
  554. package/types/primeng-classnames.d.ts +32 -0
  555. package/types/primeng-colorpicker.d.ts +317 -0
  556. package/types/primeng-config.d.ts +268 -0
  557. package/types/primeng-confirmdialog.d.ts +360 -0
  558. package/types/primeng-confirmpopup.d.ts +236 -0
  559. package/types/primeng-contextmenu.d.ts +381 -0
  560. package/types/primeng-dataview.d.ts +379 -0
  561. package/types/primeng-datepicker.d.ts +1017 -0
  562. package/types/primeng-dialog.d.ts +555 -0
  563. package/types/primeng-divider.d.ts +122 -0
  564. package/types/primeng-dock.d.ts +195 -0
  565. package/types/primeng-dom.d.ts +109 -0
  566. package/types/primeng-dragdrop.d.ts +121 -0
  567. package/types/primeng-drawer.d.ts +303 -0
  568. package/types/primeng-dynamicdialog.d.ts +554 -0
  569. package/types/primeng-editor.d.ts +191 -0
  570. package/types/primeng-fieldset.d.ts +199 -0
  571. package/types/primeng-fileupload.d.ts +562 -0
  572. package/types/primeng-floatlabel.d.ts +67 -0
  573. package/types/primeng-fluid.d.ts +54 -0
  574. package/types/primeng-focustrap.d.ts +36 -0
  575. package/types/primeng-galleria.d.ts +694 -0
  576. package/types/primeng-iconfield.d.ts +73 -0
  577. package/types/primeng-icons-angledoubledown.d.ts +9 -0
  578. package/types/primeng-icons-angledoubleleft.d.ts +9 -0
  579. package/types/primeng-icons-angledoubleright.d.ts +9 -0
  580. package/types/primeng-icons-angledoubleup.d.ts +9 -0
  581. package/types/primeng-icons-angledown.d.ts +9 -0
  582. package/types/primeng-icons-angleleft.d.ts +9 -0
  583. package/types/primeng-icons-angleright.d.ts +9 -0
  584. package/types/primeng-icons-angleup.d.ts +9 -0
  585. package/types/primeng-icons-arrowdown.d.ts +11 -0
  586. package/types/primeng-icons-arrowdownleft.d.ts +9 -0
  587. package/types/primeng-icons-arrowdownright.d.ts +9 -0
  588. package/types/primeng-icons-arrowleft.d.ts +11 -0
  589. package/types/primeng-icons-arrowright.d.ts +9 -0
  590. package/types/primeng-icons-arrowup.d.ts +11 -0
  591. package/types/primeng-icons-ban.d.ts +11 -0
  592. package/types/primeng-icons-bars.d.ts +9 -0
  593. package/types/primeng-icons-baseicon.d.ts +33 -0
  594. package/types/primeng-icons-blank.d.ts +9 -0
  595. package/types/primeng-icons-calendar.d.ts +9 -0
  596. package/types/primeng-icons-caretleft.d.ts +9 -0
  597. package/types/primeng-icons-caretright.d.ts +9 -0
  598. package/types/primeng-icons-check.d.ts +9 -0
  599. package/types/primeng-icons-chevrondown.d.ts +9 -0
  600. package/types/primeng-icons-chevronleft.d.ts +9 -0
  601. package/types/primeng-icons-chevronright.d.ts +9 -0
  602. package/types/primeng-icons-chevronup.d.ts +9 -0
  603. package/types/primeng-icons-exclamationtriangle.d.ts +11 -0
  604. package/types/primeng-icons-eye.d.ts +9 -0
  605. package/types/primeng-icons-eyeslash.d.ts +11 -0
  606. package/types/primeng-icons-filter.d.ts +11 -0
  607. package/types/primeng-icons-filterfill.d.ts +9 -0
  608. package/types/primeng-icons-filterslash.d.ts +11 -0
  609. package/types/primeng-icons-home.d.ts +11 -0
  610. package/types/primeng-icons-infocircle.d.ts +11 -0
  611. package/types/primeng-icons-minus.d.ts +9 -0
  612. package/types/primeng-icons-pencil.d.ts +11 -0
  613. package/types/primeng-icons-plus.d.ts +11 -0
  614. package/types/primeng-icons-refresh.d.ts +11 -0
  615. package/types/primeng-icons-search.d.ts +11 -0
  616. package/types/primeng-icons-searchminus.d.ts +11 -0
  617. package/types/primeng-icons-searchplus.d.ts +11 -0
  618. package/types/primeng-icons-sortalt.d.ts +11 -0
  619. package/types/primeng-icons-sortamountdown.d.ts +11 -0
  620. package/types/primeng-icons-sortamountupalt.d.ts +11 -0
  621. package/types/primeng-icons-spinner.d.ts +11 -0
  622. package/types/primeng-icons-star.d.ts +11 -0
  623. package/types/primeng-icons-starfill.d.ts +11 -0
  624. package/types/primeng-icons-thlarge.d.ts +11 -0
  625. package/types/primeng-icons-times.d.ts +9 -0
  626. package/types/primeng-icons-timescircle.d.ts +11 -0
  627. package/types/primeng-icons-trash.d.ts +11 -0
  628. package/types/primeng-icons-undo.d.ts +11 -0
  629. package/types/primeng-icons-upload.d.ts +11 -0
  630. package/types/primeng-icons-windowmaximize.d.ts +11 -0
  631. package/types/primeng-icons-windowminimize.d.ts +11 -0
  632. package/types/primeng-icons.d.ts +53 -0
  633. package/types/primeng-iftalabel.d.ts +58 -0
  634. package/types/primeng-image.d.ts +349 -0
  635. package/types/primeng-imagecompare.d.ts +100 -0
  636. package/types/primeng-inplace.d.ts +171 -0
  637. package/types/primeng-inputgroup.d.ts +65 -0
  638. package/types/primeng-inputgroupaddon.d.ts +52 -0
  639. package/types/primeng-inputicon.d.ts +44 -0
  640. package/types/primeng-inputmask.d.ts +381 -0
  641. package/types/primeng-inputnumber.d.ts +436 -0
  642. package/types/primeng-inputotp.d.ts +179 -0
  643. package/types/primeng-inputtext.d.ts +117 -0
  644. package/types/primeng-keyfilter.d.ts +61 -0
  645. package/types/primeng-knob.d.ts +213 -0
  646. package/types/primeng-listbox.d.ts +675 -0
  647. package/types/primeng-megamenu.d.ts +392 -0
  648. package/types/primeng-menu.d.ts +364 -0
  649. package/types/primeng-menubar.d.ts +392 -0
  650. package/types/primeng-message.d.ts +213 -0
  651. package/types/primeng-metergroup.d.ts +209 -0
  652. package/types/primeng-motion.d.ts +398 -0
  653. package/types/primeng-multiselect.d.ts +903 -0
  654. package/types/primeng-orderlist.d.ts +375 -0
  655. package/types/primeng-organizationchart.d.ts +236 -0
  656. package/types/primeng-overlay.d.ts +355 -0
  657. package/types/primeng-overlaybadge.d.ts +80 -0
  658. package/types/primeng-paginator.d.ts +363 -0
  659. package/types/primeng-panel.d.ts +257 -0
  660. package/types/primeng-panelmenu.d.ts +367 -0
  661. package/types/primeng-passthrough.d.ts +14 -0
  662. package/types/primeng-password.d.ts +494 -0
  663. package/types/primeng-picklist.d.ts +669 -0
  664. package/types/primeng-popover.d.ts +202 -0
  665. package/types/primeng-progressbar.d.ts +124 -0
  666. package/types/primeng-progressspinner.d.ts +92 -0
  667. package/types/primeng-radiobutton.d.ts +193 -0
  668. package/types/primeng-rating.d.ts +196 -0
  669. package/types/primeng-ripple.d.ts +63 -0
  670. package/types/primeng-scroller.d.ts +452 -0
  671. package/types/primeng-scrollpanel.d.ts +157 -0
  672. package/types/primeng-scrolltop.d.ts +159 -0
  673. package/types/primeng-select.d.ts +792 -0
  674. package/types/primeng-selectbutton.d.ts +186 -0
  675. package/types/primeng-skeleton.d.ts +104 -0
  676. package/types/primeng-slider.d.ts +224 -0
  677. package/types/primeng-speeddial.d.ts +420 -0
  678. package/types/primeng-splitbutton.d.ts +294 -0
  679. package/types/primeng-splitter.d.ts +212 -0
  680. package/types/primeng-stepper.d.ts +337 -0
  681. package/types/primeng-steps.d.ts +153 -0
  682. package/types/primeng-styleclass.d.ts +115 -0
  683. package/types/primeng-table.d.ts +2089 -0
  684. package/types/primeng-tabs.d.ts +360 -0
  685. package/types/primeng-tag.d.ts +115 -0
  686. package/types/primeng-terminal.d.ts +141 -0
  687. package/types/primeng-textarea.d.ts +127 -0
  688. package/types/primeng-tieredmenu.d.ts +432 -0
  689. package/types/primeng-timeline.d.ts +141 -0
  690. package/types/primeng-toast.d.ts +303 -0
  691. package/types/primeng-togglebutton.d.ts +205 -0
  692. package/types/primeng-toggleswitch.d.ts +168 -0
  693. package/types/primeng-toolbar.d.ts +106 -0
  694. package/types/primeng-tooltip.d.ts +286 -0
  695. package/types/primeng-tree.d.ts +668 -0
  696. package/types/primeng-treeselect.d.ts +575 -0
  697. package/types/primeng-treetable.d.ts +1278 -0
  698. package/types/primeng-ts-helpers.d.ts +6 -0
  699. package/types/primeng-types-accordion.d.ts +97 -0
  700. package/types/primeng-types-autocomplete.d.ts +312 -0
  701. package/types/primeng-types-avatar.d.ts +40 -0
  702. package/types/primeng-types-avatargroup.d.ts +28 -0
  703. package/types/primeng-types-badge.d.ts +26 -0
  704. package/types/primeng-types-blockui.d.ts +39 -0
  705. package/types/primeng-types-breadcrumb.d.ts +96 -0
  706. package/types/primeng-types-button.d.ts +124 -0
  707. package/types/primeng-types-card.d.ts +75 -0
  708. package/types/primeng-types-carousel.d.ts +143 -0
  709. package/types/primeng-types-cascadeselect.d.ts +215 -0
  710. package/types/primeng-types-chart.d.ts +32 -0
  711. package/types/primeng-types-checkbox.d.ts +81 -0
  712. package/types/primeng-types-chip.d.ts +71 -0
  713. package/types/primeng-types-colorpicker.d.ts +78 -0
  714. package/types/primeng-types-confirmdialog.d.ts +147 -0
  715. package/types/primeng-types-confirmpopup.d.ts +105 -0
  716. package/types/primeng-types-contextmenu.d.ts +102 -0
  717. package/types/primeng-types-dataview.d.ts +253 -0
  718. package/types/primeng-types-datepicker.d.ts +521 -0
  719. package/types/primeng-types-dialog.d.ts +107 -0
  720. package/types/primeng-types-divider.d.ts +28 -0
  721. package/types/primeng-types-dock.d.ts +70 -0
  722. package/types/primeng-types-drawer.d.ts +82 -0
  723. package/types/primeng-types-editor.d.ts +210 -0
  724. package/types/primeng-types-fieldset.d.ts +101 -0
  725. package/types/primeng-types-fileupload.d.ts +360 -0
  726. package/types/primeng-types-floatlabel.d.ts +26 -0
  727. package/types/primeng-types-fluid.d.ts +28 -0
  728. package/types/primeng-types-galleria.d.ts +250 -0
  729. package/types/primeng-types-iconfield.d.ts +26 -0
  730. package/types/primeng-types-iftalabel.d.ts +26 -0
  731. package/types/primeng-types-image.d.ts +144 -0
  732. package/types/primeng-types-imagecompare.d.ts +43 -0
  733. package/types/primeng-types-inplace.d.ts +72 -0
  734. package/types/primeng-types-inputgroup.d.ts +28 -0
  735. package/types/primeng-types-inputgroupaddon.d.ts +28 -0
  736. package/types/primeng-types-inputicon.d.ts +26 -0
  737. package/types/primeng-types-inputmask.d.ts +56 -0
  738. package/types/primeng-types-inputnumber.d.ts +95 -0
  739. package/types/primeng-types-inputotp.d.ts +101 -0
  740. package/types/primeng-types-inputtext.d.ts +24 -0
  741. package/types/primeng-types-knob.d.ts +40 -0
  742. package/types/primeng-types-listbox.d.ts +359 -0
  743. package/types/primeng-types-megamenu.d.ts +138 -0
  744. package/types/primeng-types-menu.d.ts +114 -0
  745. package/types/primeng-types-menubar.d.ts +124 -0
  746. package/types/primeng-types-message.d.ts +87 -0
  747. package/types/primeng-types-metergroup.d.ts +176 -0
  748. package/types/primeng-types-motion.d.ts +26 -0
  749. package/types/primeng-types-multiselect.d.ts +414 -0
  750. package/types/primeng-types-orderlist.d.ts +173 -0
  751. package/types/primeng-types-organizationchart.d.ts +138 -0
  752. package/types/primeng-types-overlay.d.ts +60 -0
  753. package/types/primeng-types-overlaybadge.d.ts +34 -0
  754. package/types/primeng-types-paginator.d.ts +167 -0
  755. package/types/primeng-types-panel.d.ts +129 -0
  756. package/types/primeng-types-panelmenu.d.ts +131 -0
  757. package/types/primeng-types-password.d.ts +120 -0
  758. package/types/primeng-types-picklist.d.ts +348 -0
  759. package/types/primeng-types-popover.d.ts +59 -0
  760. package/types/primeng-types-progressbar.d.ts +58 -0
  761. package/types/primeng-types-progressspinner.d.ts +36 -0
  762. package/types/primeng-types-radiobutton.d.ts +51 -0
  763. package/types/primeng-types-rating.d.ts +94 -0
  764. package/types/primeng-types-scroller.d.ts +231 -0
  765. package/types/primeng-types-scrollpanel.d.ts +51 -0
  766. package/types/primeng-types-scrolltop.d.ts +61 -0
  767. package/types/primeng-types-select.d.ts +319 -0
  768. package/types/primeng-types-selectbutton.d.ts +92 -0
  769. package/types/primeng-types-skeleton.d.ts +28 -0
  770. package/types/primeng-types-slider.d.ts +78 -0
  771. package/types/primeng-types-speeddial.d.ts +100 -0
  772. package/types/primeng-types-splitbutton.d.ts +70 -0
  773. package/types/primeng-types-splitter.d.ts +70 -0
  774. package/types/primeng-types-stepper.d.ts +162 -0
  775. package/types/primeng-types-table.d.ts +893 -0
  776. package/types/primeng-types-tabs.d.ts +119 -0
  777. package/types/primeng-types-tag.d.ts +47 -0
  778. package/types/primeng-types-terminal.d.ts +60 -0
  779. package/types/primeng-types-textarea.d.ts +28 -0
  780. package/types/primeng-types-tieredmenu.d.ts +95 -0
  781. package/types/primeng-types-timeline.d.ts +85 -0
  782. package/types/primeng-types-toast.d.ts +131 -0
  783. package/types/primeng-types-togglebutton.d.ts +86 -0
  784. package/types/primeng-types-toggleswitch.d.ts +73 -0
  785. package/types/primeng-types-toolbar.d.ts +55 -0
  786. package/types/primeng-types-tooltip.d.ts +32 -0
  787. package/types/primeng-types-tree.d.ts +342 -0
  788. package/types/primeng-types-treeselect.d.ts +251 -0
  789. package/types/primeng-types-treetable.d.ts +629 -0
  790. package/types/primeng-usestyle.d.ts +15 -0
  791. package/types/primeng-utils.d.ts +43 -0
  792. package/types/primeng.d.ts +2 -0
@@ -0,0 +1,2125 @@
1
+ export * from 'primeng/types/listbox';
2
+ import * as i5 from '@angular/cdk/drag-drop';
3
+ import { moveItemInArray, DragDropModule, CDK_DRAG_CONFIG } from '@angular/cdk/drag-drop';
4
+ import * as i3 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i0 from '@angular/core';
7
+ import { Injectable, InjectionToken, forwardRef, inject, computed, input, booleanAttribute, EventEmitter, signal, numberAttribute, HostListener, ContentChildren, ContentChild, ViewChild, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
8
+ import * as i4 from '@angular/forms';
9
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
10
+ import { isNotEmpty, uuid, equals, focus, getFirstFocusableElement, isEmpty, isPrintableCharacter, resolveFieldData, findSingle, findLastIndex, isFunction } from '@primeuix/utils';
11
+ import * as i1 from 'primeng/api';
12
+ import { SharedModule, Header, Footer, PrimeTemplate } from 'primeng/api';
13
+ import { PARENT_INSTANCE } from 'primeng/basecomponent';
14
+ import { BaseEditableHolder } from 'primeng/baseeditableholder';
15
+ import * as i2 from 'primeng/bind';
16
+ import { Bind, BindModule } from 'primeng/bind';
17
+ import { Checkbox } from 'primeng/checkbox';
18
+ import { IconField } from 'primeng/iconfield';
19
+ import { SearchIcon, CheckIcon, BlankIcon } from 'primeng/icons';
20
+ import { InputIcon } from 'primeng/inputicon';
21
+ import { InputText } from 'primeng/inputtext';
22
+ import { Ripple } from 'primeng/ripple';
23
+ import { Scroller } from 'primeng/scroller';
24
+ import { style as style$1 } from '@primeuix/styles/listbox';
25
+ import { BaseStyle } from 'primeng/base';
26
+
27
+ const style = /*css*/ `
28
+ ${style$1}
29
+
30
+ /* For PrimeNG */
31
+ .p-listbox.ng-invalid.ng-dirty {
32
+ border-color: dt('listbox.invalid.border.color');
33
+ }
34
+
35
+ .p-listbox-header {
36
+ display: flex;
37
+ align-items: center;
38
+ }
39
+
40
+ .p-listbox-header > .p-iconfield {
41
+ flex-grow: 1;
42
+ }
43
+
44
+ .p-listbox-list-container {
45
+ height: 100%;
46
+ }
47
+
48
+ /* CDK Drag & Drop styles */
49
+ .p-listbox-option.cdk-drag-preview {
50
+ background: dt('listbox.background');
51
+ }
52
+
53
+ .p-listbox-dragging .p-listbox-option:not(.cdk-drag-preview) {
54
+ pointer-events: none !important;
55
+ }
56
+
57
+ .p-listbox-dragging .p-listbox-option:not(.cdk-drag-preview):hover {
58
+ background: inherit !important;
59
+ color: inherit !important;
60
+ }
61
+
62
+ .cdk-drag-placeholder {
63
+ pointer-events: none;
64
+ }
65
+ `;
66
+ const classes = {
67
+ root: ({ instance }) => [
68
+ 'p-listbox p-component',
69
+ {
70
+ 'p-listbox-striped': instance.striped,
71
+ 'p-disabled': instance.$disabled(),
72
+ 'p-invalid': instance.invalid(),
73
+ 'p-listbox-fluid': instance.fluid(),
74
+ 'p-listbox-dragging': instance.isDragging()
75
+ }
76
+ ],
77
+ header: 'p-listbox-header',
78
+ pcFilter: 'p-listbox-filter',
79
+ listContainer: 'p-listbox-list-container',
80
+ list: 'p-listbox-list',
81
+ optionGroup: 'p-listbox-option-group',
82
+ option: ({ instance, option, i, scrollerOptions }) => [
83
+ 'p-listbox-option',
84
+ {
85
+ 'p-listbox-option-selected': instance.isSelected(option) && instance.highlightOnSelect,
86
+ 'p-focus': instance.focusedOptionIndex() === instance.getOptionIndex(i, scrollerOptions),
87
+ 'p-disabled': instance.isOptionDisabled(option)
88
+ }
89
+ ],
90
+ optionCheckIcon: 'p-listbox-option-check-icon',
91
+ optionBlankIcon: 'p-listbox-option-blank-icon',
92
+ emptyMessage: 'p-listbox-empty-message'
93
+ };
94
+ class ListBoxStyle extends BaseStyle {
95
+ name = 'listbox';
96
+ style = style;
97
+ classes = classes;
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ListBoxStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
99
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ListBoxStyle });
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ListBoxStyle, decorators: [{
102
+ type: Injectable
103
+ }] });
104
+ /**
105
+ *
106
+ * ListBox is used to select one or more values from a list of items.
107
+ *
108
+ * [Live Demo](https://www.primeng.org/listbox/)
109
+ *
110
+ * @module listboxstyle
111
+ *
112
+ */
113
+ var ListboxClasses;
114
+ (function (ListboxClasses) {
115
+ /**
116
+ * Class name of the root element
117
+ */
118
+ ListboxClasses["root"] = "p-listbox";
119
+ /**
120
+ * Class name of the header element
121
+ */
122
+ ListboxClasses["header"] = "p-listbox-header";
123
+ /**
124
+ * Class name of the filter element
125
+ */
126
+ ListboxClasses["pcFilter"] = "p-listbox-filter";
127
+ /**
128
+ * Class name of the list container element
129
+ */
130
+ ListboxClasses["listContainer"] = "p-listbox-list-container";
131
+ /**
132
+ * Class name of the list element
133
+ */
134
+ ListboxClasses["list"] = "p-listbox-list";
135
+ /**
136
+ * Class name of the option group element
137
+ */
138
+ ListboxClasses["optionGroup"] = "p-listbox-option-group";
139
+ /**
140
+ * Class name of the option element
141
+ */
142
+ ListboxClasses["option"] = "p-listbox-option";
143
+ /**
144
+ * Class name of the option check icon element
145
+ */
146
+ ListboxClasses["optionCheckIcon"] = "p-listbox-option-check-icon";
147
+ /**
148
+ * Class name of the option blank icon element
149
+ */
150
+ ListboxClasses["optionBlankIcon"] = "p-listbox-option-blank-icon";
151
+ /**
152
+ * Class name of the empty message element
153
+ */
154
+ ListboxClasses["emptyMessage"] = "p-listbox-empty-message";
155
+ })(ListboxClasses || (ListboxClasses = {}));
156
+
157
+ const LISTBOX_INSTANCE = new InjectionToken('LISTBOX_INSTANCE');
158
+ const LISTBOX_VALUE_ACCESSOR = {
159
+ provide: NG_VALUE_ACCESSOR,
160
+ useExisting: forwardRef(() => Listbox),
161
+ multi: true
162
+ };
163
+ /**
164
+ * ListBox is used to select one or more values from a list of items.
165
+ * @group Components
166
+ */
167
+ class Listbox extends BaseEditableHolder {
168
+ filterService;
169
+ componentName = 'Listbox';
170
+ hostName = '';
171
+ bindDirectiveInstance = inject(Bind, { self: true });
172
+ $pcListbox = inject(LISTBOX_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
173
+ onAfterViewChecked() {
174
+ this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
175
+ }
176
+ /**
177
+ * Unique identifier of the component.
178
+ * @group Props
179
+ */
180
+ id;
181
+ /**
182
+ * Text to display when the search is active. Defaults to global value in i18n translation configuration.
183
+ * @group Props
184
+ * @defaultValue '{0} results are available'
185
+ */
186
+ searchMessage;
187
+ /**
188
+ * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.
189
+ * @group Props
190
+ * @defaultValue 'No selected item'
191
+ */
192
+ emptySelectionMessage;
193
+ /**
194
+ * Text to be displayed in hidden accessible field when options are selected. Defaults to global value in i18n translation configuration.
195
+ * @group Props
196
+ * @defaultValue '{0} items selected'
197
+ */
198
+ selectionMessage;
199
+ /**
200
+ * Whether to focus on the first visible or selected element when the overlay panel is shown.
201
+ * @group Props
202
+ */
203
+ autoOptionFocus = true;
204
+ /**
205
+ * Defines a string that labels the input for accessibility.
206
+ * @group Props
207
+ */
208
+ ariaLabel;
209
+ /**
210
+ * When enabled, the focused option is selected.
211
+ * @group Props
212
+ */
213
+ selectOnFocus;
214
+ /**
215
+ * Locale to use in searching. The default locale is the host environment's current locale.
216
+ * @group Props
217
+ */
218
+ searchLocale;
219
+ /**
220
+ * When enabled, the hovered option will be focused.
221
+ * @group Props
222
+ */
223
+ focusOnHover = true;
224
+ /**
225
+ * Text to display when filtering.
226
+ * @group Props
227
+ */
228
+ filterMessage;
229
+ /**
230
+ * Fields used when filtering the options, defaults to optionLabel.
231
+ * @group Props
232
+ */
233
+ filterFields;
234
+ /**
235
+ * Defines if data is loaded and interacted with in lazy manner.
236
+ * @group Props
237
+ */
238
+ lazy = false;
239
+ /**
240
+ * Whether the data should be loaded on demand during scroll.
241
+ * @group Props
242
+ */
243
+ virtualScroll;
244
+ /**
245
+ * Height of an item in the list for VirtualScrolling.
246
+ * @group Props
247
+ */
248
+ virtualScrollItemSize;
249
+ /**
250
+ * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
251
+ * @group Props
252
+ */
253
+ virtualScrollOptions;
254
+ /**
255
+ * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.
256
+ * @group Props
257
+ */
258
+ scrollHeight = '14rem';
259
+ /**
260
+ * Index of the element in tabbing order.
261
+ * @group Props
262
+ */
263
+ tabindex = 0;
264
+ /**
265
+ * When specified, allows selecting multiple values.
266
+ * @group Props
267
+ */
268
+ multiple;
269
+ /**
270
+ * Style class of the container.
271
+ * @deprecated since v20.0.0, use `class` instead.
272
+ * @group Props
273
+ */
274
+ styleClass;
275
+ /**
276
+ * Inline style of the list element.
277
+ * @group Props
278
+ */
279
+ listStyle;
280
+ /**
281
+ * Style class of the list element.
282
+ * @group Props
283
+ */
284
+ listStyleClass;
285
+ /**
286
+ * When present, it specifies that the element value cannot be changed.
287
+ * @group Props
288
+ */
289
+ readonly;
290
+ /**
291
+ * When specified, allows selecting items with checkboxes.
292
+ * @group Props
293
+ */
294
+ checkbox = false;
295
+ /**
296
+ * When specified, displays a filter input at header.
297
+ * @group Props
298
+ */
299
+ filter = false;
300
+ /**
301
+ * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.
302
+ * @group Props
303
+ */
304
+ filterBy;
305
+ /**
306
+ * Defines how the items are filtered.
307
+ * @group Props
308
+ */
309
+ filterMatchMode = 'contains';
310
+ /**
311
+ * Locale to use in filtering. The default locale is the host environment's current locale.
312
+ * @group Props
313
+ */
314
+ filterLocale;
315
+ /**
316
+ * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.
317
+ * @group Props
318
+ */
319
+ metaKeySelection = false;
320
+ /**
321
+ * A property to uniquely identify a value in options.
322
+ * @group Props
323
+ */
324
+ dataKey;
325
+ /**
326
+ * Whether header checkbox is shown in multiple mode.
327
+ * @group Props
328
+ */
329
+ showToggleAll = true;
330
+ /**
331
+ * Name of the label field of an option.
332
+ * @group Props
333
+ */
334
+ optionLabel;
335
+ /**
336
+ * Name of the value field of an option.
337
+ * @group Props
338
+ */
339
+ optionValue;
340
+ /**
341
+ * Name of the options field of an option group.
342
+ * @group Props
343
+ */
344
+ optionGroupChildren = 'items';
345
+ /**
346
+ * Name of the label field of an option group.
347
+ * @group Props
348
+ */
349
+ optionGroupLabel = 'label';
350
+ /**
351
+ * Name of the disabled field of an option or function to determine disabled state.
352
+ * @group Props
353
+ */
354
+ optionDisabled;
355
+ /**
356
+ * Defines a string that labels the filter input.
357
+ * @group Props
358
+ */
359
+ ariaFilterLabel;
360
+ /**
361
+ * Defines placeholder of the filter input.
362
+ * @group Props
363
+ */
364
+ filterPlaceHolder;
365
+ /**
366
+ * Text to display when filtering does not return any results.
367
+ * @group Props
368
+ */
369
+ emptyFilterMessage;
370
+ /**
371
+ * Text to display when there is no data. Defaults to global value in i18n translation configuration.
372
+ * @group Props
373
+ */
374
+ emptyMessage;
375
+ /**
376
+ * Whether to display options as grouped when nested options are provided.
377
+ * @group Props
378
+ */
379
+ group;
380
+ /**
381
+ * An array of selectitems to display as the available options.
382
+ * @group Props
383
+ */
384
+ get options() {
385
+ return this._options();
386
+ }
387
+ set options(val) {
388
+ this._options.set(val);
389
+ }
390
+ /**
391
+ * When specified, filter displays with this value.
392
+ * @group Props
393
+ */
394
+ get filterValue() {
395
+ return this._filterValue() || '';
396
+ }
397
+ set filterValue(val) {
398
+ this._filterValue.set(val);
399
+ }
400
+ /**
401
+ * Whether all data is selected.
402
+ * @group Props
403
+ */
404
+ get selectAll() {
405
+ return this._selectAll;
406
+ }
407
+ set selectAll(value) {
408
+ this._selectAll = value;
409
+ }
410
+ /**
411
+ * Whether to displays rows with alternating colors.
412
+ * @group Props
413
+ * @defaultValue false
414
+ */
415
+ striped = false;
416
+ /**
417
+ * Whether the selected option will be add highlight class.
418
+ * @group Props
419
+ * @defaultValue true
420
+ */
421
+ highlightOnSelect = true;
422
+ /**
423
+ * Whether the selected option will be shown with a check mark.
424
+ * @group Props
425
+ * @defaultValue false
426
+ */
427
+ checkmark = false;
428
+ /**
429
+ * Whether to enable dragdrop based reordering.
430
+ * @group Props
431
+ */
432
+ dragdrop = false;
433
+ /**
434
+ * Array to use for CDK drop list data binding. When not provided, uses options array.
435
+ * @group Props
436
+ */
437
+ dropListData;
438
+ /**
439
+ * Computed property for stable CDK drop list data reference
440
+ */
441
+ cdkDropData = computed(() => {
442
+ return this.dropListData || this._options();
443
+ }, ...(ngDevMode ? [{ debugName: "cdkDropData" }] : /* istanbul ignore next */ []));
444
+ /**
445
+ * Spans 100% width of the container when enabled.
446
+ * @defaultValue undefined
447
+ * @group Props
448
+ */
449
+ fluid = input(undefined, { ...(ngDevMode ? { debugName: "fluid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
450
+ /**
451
+ * Callback to invoke on value change.
452
+ * @param {ListboxChangeEvent} event - Custom change event.
453
+ * @group Emits
454
+ */
455
+ onChange = new EventEmitter();
456
+ /**
457
+ * Callback to invoke when option is clicked.
458
+ * @param {ListboxClickEvent} event - Custom click event.
459
+ * @group Emits
460
+ */
461
+ onClick = new EventEmitter();
462
+ /**
463
+ * Callback to invoke when option is double clicked.
464
+ * @param {ListboxDoubleClickEvent} event - Custom double click event.
465
+ * @group Emits
466
+ */
467
+ onDblClick = new EventEmitter();
468
+ /**
469
+ * Callback to invoke when data is filtered.
470
+ * @param {ListboxFilterEvent} event - Custom filter event.
471
+ * @group Emits
472
+ */
473
+ onFilter = new EventEmitter();
474
+ /**
475
+ * Callback to invoke when component receives focus.
476
+ * @param {FocusEvent} event - Focus event.
477
+ * @group Emits
478
+ */
479
+ onFocus = new EventEmitter();
480
+ /**
481
+ * Callback to invoke when component loses focus.
482
+ * @param {FocusEvent} event - Blur event.
483
+ * @group Emits
484
+ */
485
+ onBlur = new EventEmitter();
486
+ /**
487
+ * Callback to invoke when all data is selected.
488
+ * @param {ListboxSelectAllChangeEvent} event - Custom select event.
489
+ * @group Emits
490
+ */
491
+ onSelectAllChange = new EventEmitter();
492
+ /**
493
+ * Emits on lazy load.
494
+ * @param {ScrollerLazyLoadEvent} event - Scroller lazy load event.
495
+ * @group Emits
496
+ */
497
+ onLazyLoad = new EventEmitter();
498
+ /**
499
+ * Emits on item is dropped.
500
+ * @param {CdkDragDrop<string[]>} event - Scroller lazy load event.
501
+ * @group Emits
502
+ */
503
+ onDrop = new EventEmitter();
504
+ headerCheckboxViewChild;
505
+ filterViewChild;
506
+ lastHiddenFocusableElement;
507
+ firstHiddenFocusableElement;
508
+ scroller;
509
+ listViewChild;
510
+ containerViewChild;
511
+ headerFacet;
512
+ footerFacet;
513
+ /**
514
+ * Custom item template.
515
+ * @param {ListboxItemTemplateContext} context - item context.
516
+ * @see {@link ListboxItemTemplateContext}
517
+ * @group Templates
518
+ */
519
+ itemTemplate;
520
+ /**
521
+ * Custom group template.
522
+ * @param {ListboxGroupTemplateContext} context - group context.
523
+ * @see {@link ListboxGroupTemplateContext}
524
+ * @group Templates
525
+ */
526
+ groupTemplate;
527
+ /**
528
+ * Custom header template.
529
+ * @param {ListboxHeaderTemplateContext} context - header context.
530
+ * @see {@link ListboxHeaderTemplateContext}
531
+ * @group Templates
532
+ */
533
+ headerTemplate;
534
+ /**
535
+ * Custom filter template.
536
+ * @param {ListboxFilterTemplateContext} context - filter context.
537
+ * @see {@link ListboxFilterTemplateContext}
538
+ * @group Templates
539
+ */
540
+ filterTemplate;
541
+ /**
542
+ * Custom footer template.
543
+ * @param {ListboxFooterTemplateContext} context - footer context.
544
+ * @see {@link ListboxFooterTemplateContext}
545
+ * @group Templates
546
+ */
547
+ footerTemplate;
548
+ /**
549
+ * Custom empty filter message template.
550
+ * @group Templates
551
+ */
552
+ emptyFilterTemplate;
553
+ /**
554
+ * Custom empty message template.
555
+ * @group Templates
556
+ */
557
+ emptyTemplate;
558
+ /**
559
+ * Custom filter icon template.
560
+ * @group Templates
561
+ */
562
+ filterIconTemplate;
563
+ /**
564
+ * Custom check icon template.
565
+ * @param {ListboxCheckIconTemplateContext} context - check icon context.
566
+ * @see {@link ListboxCheckIconTemplateContext}
567
+ * @group Templates
568
+ */
569
+ checkIconTemplate;
570
+ /**
571
+ * Custom checkmark icon template.
572
+ * @param {ListboxCheckmarkTemplateContext} context - checkmark context.
573
+ * @see {@link ListboxCheckmarkTemplateContext}
574
+ * @group Templates
575
+ */
576
+ checkmarkTemplate;
577
+ /**
578
+ * Custom loader template.
579
+ * @param {ListboxLoaderTemplateContext} context - loader context.
580
+ * @see {@link ListboxLoaderTemplateContext}
581
+ * @group Templates
582
+ */
583
+ loaderTemplate;
584
+ templates;
585
+ _itemTemplate;
586
+ _groupTemplate;
587
+ _headerTemplate;
588
+ _filterTemplate;
589
+ _footerTemplate;
590
+ _emptyFilterTemplate;
591
+ _emptyTemplate;
592
+ _filterIconTemplate;
593
+ _checkIconTemplate;
594
+ _checkmarkTemplate;
595
+ _loaderTemplate;
596
+ _filterValue = signal(null, ...(ngDevMode ? [{ debugName: "_filterValue" }] : /* istanbul ignore next */ []));
597
+ _filteredOptions;
598
+ filterOptions;
599
+ filtered;
600
+ value;
601
+ optionTouched;
602
+ focus;
603
+ headerCheckboxFocus;
604
+ translationSubscription;
605
+ focused;
606
+ scrollerTabIndex = '0';
607
+ _componentStyle = inject(ListBoxStyle);
608
+ get focusedOptionId() {
609
+ return this.focusedOptionIndex() !== -1 ? `${this.id}_${this.focusedOptionIndex()}` : null;
610
+ }
611
+ get filterResultMessageText() {
612
+ return isNotEmpty(this.visibleOptions()) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions().length) : this.emptyFilterMessageText;
613
+ }
614
+ get filterMessageText() {
615
+ return this.filterMessage || this.config.translation.searchMessage || '';
616
+ }
617
+ get searchMessageText() {
618
+ return this.searchMessage || this.config.translation.searchMessage || '';
619
+ }
620
+ get emptyFilterMessageText() {
621
+ return this.emptyFilterMessage || this.config.translation.emptySearchMessage || this.config.translation.emptyFilterMessage || '';
622
+ }
623
+ get selectionMessageText() {
624
+ return this.selectionMessage || this.config.translation.selectionMessage || '';
625
+ }
626
+ get emptySelectionMessageText() {
627
+ return this.emptySelectionMessage || this.config.translation.emptySelectionMessage || '';
628
+ }
629
+ get selectedMessageText() {
630
+ return this.hasSelectedOption() ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue().length : '1') : this.emptySelectionMessageText;
631
+ }
632
+ get ariaSetSize() {
633
+ return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;
634
+ }
635
+ get virtualScrollerDisabled() {
636
+ return !this.virtualScroll;
637
+ }
638
+ get searchFields() {
639
+ return this.filterBy?.split(',') || this.filterFields || [this.optionLabel];
640
+ }
641
+ get toggleAllAriaLabel() {
642
+ return this.config.translation.aria ? this.config.translation.aria[this.allSelected() ? 'selectAll' : 'unselectAll'] : undefined;
643
+ }
644
+ searchValue;
645
+ searchTimeout;
646
+ _selectAll = null;
647
+ _options = signal(null, ...(ngDevMode ? [{ debugName: "_options" }] : /* istanbul ignore next */ []));
648
+ startRangeIndex = signal(-1, ...(ngDevMode ? [{ debugName: "startRangeIndex" }] : /* istanbul ignore next */ []));
649
+ focusedOptionIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedOptionIndex" }] : /* istanbul ignore next */ []));
650
+ isDragging = signal(false, ...(ngDevMode ? [{ debugName: "isDragging" }] : /* istanbul ignore next */ []));
651
+ onHostFocusOut(event) {
652
+ this.onFocusout(event);
653
+ }
654
+ visibleOptions = computed(() => {
655
+ const options = this.group ? this.flatOptions(this._options()) : this._options() || [];
656
+ return this._filterValue() ? this.filterService.filter(options, this.searchFields, this._filterValue(), this.filterMatchMode, this.filterLocale) : options;
657
+ }, ...(ngDevMode ? [{ debugName: "visibleOptions" }] : /* istanbul ignore next */ []));
658
+ constructor(filterService) {
659
+ super();
660
+ this.filterService = filterService;
661
+ }
662
+ onInit() {
663
+ this.id = this.id || uuid('pn_id_');
664
+ this.translationSubscription = this.config.translationObserver.subscribe(() => {
665
+ this.cd.markForCheck();
666
+ });
667
+ this.autoUpdateModel();
668
+ if (this.filterBy) {
669
+ this.filterOptions = {
670
+ filter: (value) => this.onFilterChange(value),
671
+ reset: () => this.resetFilter()
672
+ };
673
+ }
674
+ }
675
+ onAfterContentInit() {
676
+ this.templates.forEach((item) => {
677
+ switch (item.getType()) {
678
+ case 'item':
679
+ this._itemTemplate = item.template;
680
+ break;
681
+ case 'group':
682
+ this._groupTemplate = item.template;
683
+ break;
684
+ case 'header':
685
+ this._headerTemplate = item.template;
686
+ break;
687
+ case 'filter':
688
+ this._filterTemplate = item.template;
689
+ break;
690
+ case 'footer':
691
+ this._footerTemplate = item.template;
692
+ break;
693
+ case 'empty':
694
+ this._emptyTemplate = item.template;
695
+ break;
696
+ case 'emptyfilter':
697
+ this._emptyFilterTemplate = item.template;
698
+ break;
699
+ case 'filtericon':
700
+ this._filterIconTemplate = item.template;
701
+ break;
702
+ case 'checkicon':
703
+ this._checkIconTemplate = item.template;
704
+ break;
705
+ case 'checkmark':
706
+ this._checkmarkTemplate = item.template;
707
+ break;
708
+ case 'loader':
709
+ this._loaderTemplate = item.template;
710
+ break;
711
+ default:
712
+ this._itemTemplate = item.template;
713
+ break;
714
+ }
715
+ });
716
+ }
717
+ flatOptions(options) {
718
+ return (options || []).reduce((result, option, index) => {
719
+ result.push({ optionGroup: option, group: true, index });
720
+ const optionGroupChildren = this.getOptionGroupChildren(option);
721
+ optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));
722
+ return result;
723
+ }, []);
724
+ }
725
+ autoUpdateModel() {
726
+ if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption() && !this.multiple) {
727
+ const focusedOptionIndex = this.findFirstFocusedOptionIndex();
728
+ this.focusedOptionIndex.set(focusedOptionIndex);
729
+ this.onOptionSelect(null, this.visibleOptions()[this.focusedOptionIndex()]);
730
+ }
731
+ }
732
+ /**
733
+ * Updates the model value.
734
+ * @group Method
735
+ */
736
+ updateModel(value, event) {
737
+ this.value = value;
738
+ this.writeModelValue(value);
739
+ this.onModelChange(value);
740
+ this.onChange.emit({ originalEvent: event, value: this.value });
741
+ }
742
+ removeOption(option) {
743
+ return this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey() || ''));
744
+ }
745
+ onOptionSelect(event, option, index = -1) {
746
+ if (this.$disabled() || this.isOptionDisabled(option) || this.readonly) {
747
+ return;
748
+ }
749
+ event && this.onClick.emit({ originalEvent: event, option, value: this.value });
750
+ this.multiple ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);
751
+ this.optionTouched = false;
752
+ index !== -1 && this.focusedOptionIndex.set(index);
753
+ }
754
+ onOptionSelectMultiple(event, option) {
755
+ let selected = this.isSelected(option);
756
+ let value = [];
757
+ let metaSelection = this.optionTouched ? false : this.metaKeySelection;
758
+ if (metaSelection) {
759
+ let metaKey = event.metaKey || event.ctrlKey;
760
+ if (selected) {
761
+ value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];
762
+ }
763
+ else {
764
+ value = metaKey ? this.modelValue() || [] : [];
765
+ value = [...(value || []), this.getOptionValue(option)];
766
+ }
767
+ }
768
+ else {
769
+ value = selected ? this.removeOption(option) : [...(this.modelValue() || []), this.getOptionValue(option)];
770
+ }
771
+ this.updateModel(value, event);
772
+ }
773
+ onOptionSelectSingle(event, option) {
774
+ let selected = this.isSelected(option);
775
+ let valueChanged = false;
776
+ let value = null;
777
+ let metaSelection = this.optionTouched ? false : this.metaKeySelection;
778
+ if (metaSelection) {
779
+ let metaKey = event.metaKey || event.ctrlKey;
780
+ if (selected) {
781
+ if (metaKey) {
782
+ value = null;
783
+ valueChanged = true;
784
+ }
785
+ }
786
+ else {
787
+ value = this.getOptionValue(option);
788
+ valueChanged = true;
789
+ }
790
+ }
791
+ else {
792
+ value = selected ? null : this.getOptionValue(option);
793
+ valueChanged = true;
794
+ }
795
+ if (valueChanged) {
796
+ this.updateModel(value, event);
797
+ }
798
+ }
799
+ onOptionSelectRange(event, start = -1, end = -1) {
800
+ start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));
801
+ end === -1 && (end = this.findNearestSelectedOptionIndex(start));
802
+ if (start !== -1 && end !== -1) {
803
+ const rangeStart = Math.min(start, end);
804
+ const rangeEnd = Math.max(start, end);
805
+ const value = this.visibleOptions()
806
+ .slice(rangeStart, rangeEnd + 1)
807
+ .filter((option) => this.isValidOption(option))
808
+ .map((option) => this.getOptionValue(option));
809
+ this.updateModel(value, event);
810
+ }
811
+ }
812
+ onToggleAll(event) {
813
+ if (this.$disabled() || this.readonly) {
814
+ return;
815
+ }
816
+ focus(this.headerCheckboxViewChild?.nativeElement);
817
+ if (this.selectAll !== null) {
818
+ this.onSelectAllChange.emit({
819
+ originalEvent: event,
820
+ checked: !this.allSelected()
821
+ });
822
+ }
823
+ else {
824
+ const value = this.allSelected()
825
+ ? []
826
+ : this.visibleOptions()
827
+ .filter((option) => this.isValidOption(option))
828
+ .map((option) => this.getOptionValue(option));
829
+ this.updateModel(value, event);
830
+ this.onChange.emit({ originalEvent: event, value: this.value });
831
+ }
832
+ }
833
+ allSelected() {
834
+ return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions()) && this.visibleOptions().every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));
835
+ }
836
+ onOptionTouchEnd() {
837
+ if (this.$disabled()) {
838
+ return;
839
+ }
840
+ this.optionTouched = true;
841
+ }
842
+ onOptionMouseDown(event, index) {
843
+ this.changeFocusedOptionIndex(event, index);
844
+ }
845
+ onOptionMouseEnter(event, index) {
846
+ if (this.focusOnHover && this.focused) {
847
+ this.changeFocusedOptionIndex(event, index);
848
+ }
849
+ }
850
+ onOptionDoubleClick(event, option) {
851
+ if (this.$disabled() || this.isOptionDisabled(option) || this.readonly) {
852
+ return;
853
+ }
854
+ this.onDblClick.emit({
855
+ originalEvent: event,
856
+ option: option,
857
+ value: this.value
858
+ });
859
+ }
860
+ onFirstHiddenFocus(event) {
861
+ focus(this.listViewChild?.nativeElement);
862
+ const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not([data-p-hidden-focusable="true"])');
863
+ this.lastHiddenFocusableElement?.nativeElement && (this.lastHiddenFocusableElement.nativeElement.tabIndex = isEmpty(firstFocusableEl) ? -1 : undefined);
864
+ this.firstHiddenFocusableElement?.nativeElement && (this.firstHiddenFocusableElement.nativeElement.tabIndex = -1);
865
+ }
866
+ onLastHiddenFocus(event) {
867
+ const relatedTarget = event.relatedTarget;
868
+ if (relatedTarget === this.listViewChild?.nativeElement) {
869
+ const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not([data-p-hidden-focusable="true"])');
870
+ focus(firstFocusableEl);
871
+ this.firstHiddenFocusableElement?.nativeElement && (this.firstHiddenFocusableElement.nativeElement.tabIndex = undefined);
872
+ }
873
+ else {
874
+ focus(this.firstHiddenFocusableElement?.nativeElement);
875
+ }
876
+ this.lastHiddenFocusableElement?.nativeElement && (this.lastHiddenFocusableElement.nativeElement.tabIndex = -1);
877
+ }
878
+ onFocusout(event) {
879
+ if (!this.el.nativeElement.contains(event.relatedTarget) && this.lastHiddenFocusableElement && this.firstHiddenFocusableElement) {
880
+ this.firstHiddenFocusableElement.nativeElement.tabIndex = this.lastHiddenFocusableElement.nativeElement.tabIndex = undefined;
881
+ this.scrollerTabIndex = '0';
882
+ }
883
+ }
884
+ onListFocus(event) {
885
+ this.focused = true;
886
+ const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();
887
+ this.focusedOptionIndex.set(focusedOptionIndex);
888
+ this.scrollInView(focusedOptionIndex);
889
+ this.onFocus.emit(event);
890
+ this.scrollerTabIndex = '-1';
891
+ }
892
+ onListBlur(event) {
893
+ this.focused = false;
894
+ this.focusedOptionIndex.set(-1);
895
+ this.startRangeIndex.set(-1);
896
+ this.searchValue = '';
897
+ this.onBlur.emit(event);
898
+ }
899
+ onHeaderCheckboxKeyDown(event) {
900
+ if (this.$disabled()) {
901
+ event.preventDefault();
902
+ return;
903
+ }
904
+ switch (event.code) {
905
+ case 'Space':
906
+ this.onToggleAll(event);
907
+ break;
908
+ case 'Enter':
909
+ this.onToggleAll(event);
910
+ break;
911
+ case 'Tab':
912
+ this.onHeaderCheckboxTabKeyDown(event);
913
+ break;
914
+ default:
915
+ break;
916
+ }
917
+ }
918
+ onHeaderCheckboxTabKeyDown(event) {
919
+ focus(this.listViewChild?.nativeElement);
920
+ event.preventDefault();
921
+ }
922
+ onFilterChange(event) {
923
+ let value = event.target.value?.trim();
924
+ this._filterValue.set(value);
925
+ this.focusedOptionIndex.set(-1);
926
+ this.startRangeIndex.set(-1);
927
+ this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });
928
+ !this.virtualScrollerDisabled && this.scroller?.scrollToIndex(0);
929
+ }
930
+ onFilterBlur(event) {
931
+ this.focusedOptionIndex.set(-1);
932
+ this.startRangeIndex.set(-1);
933
+ }
934
+ onListKeyDown(event) {
935
+ const metaKey = event.metaKey || event.ctrlKey;
936
+ switch (event.code) {
937
+ case 'ArrowDown':
938
+ this.onArrowDownKey(event);
939
+ break;
940
+ case 'ArrowUp':
941
+ this.onArrowUpKey(event);
942
+ break;
943
+ case 'Home':
944
+ this.onHomeKey(event);
945
+ break;
946
+ case 'End':
947
+ this.onEndKey(event);
948
+ break;
949
+ case 'PageDown':
950
+ this.onPageDownKey(event);
951
+ break;
952
+ case 'PageUp':
953
+ this.onPageUpKey(event);
954
+ break;
955
+ case 'Enter':
956
+ case 'Space':
957
+ case 'NumpadEnter':
958
+ this.onSpaceKey(event);
959
+ break;
960
+ case 'Tab':
961
+ //NOOP
962
+ break;
963
+ case 'ShiftLeft':
964
+ case 'ShiftRight':
965
+ this.onShiftKey();
966
+ break;
967
+ default:
968
+ if (this.multiple && event.code === 'KeyA' && metaKey) {
969
+ const value = this.visibleOptions()
970
+ .filter((option) => this.isValidOption(option))
971
+ .map((option) => this.getOptionValue(option));
972
+ this.updateModel(value, event);
973
+ event.preventDefault();
974
+ break;
975
+ }
976
+ if (!metaKey && isPrintableCharacter(event.key)) {
977
+ this.searchOptions(event, event.key);
978
+ event.preventDefault();
979
+ }
980
+ break;
981
+ }
982
+ }
983
+ onFilterKeyDown(event) {
984
+ switch (event.code) {
985
+ case 'ArrowDown':
986
+ this.onArrowDownKey(event);
987
+ break;
988
+ case 'ArrowUp':
989
+ this.onArrowUpKey(event);
990
+ break;
991
+ case 'ArrowLeft':
992
+ case 'ArrowRight':
993
+ this.onArrowLeftKey(event, true);
994
+ break;
995
+ case 'Home':
996
+ this.onHomeKey(event, true);
997
+ break;
998
+ case 'End':
999
+ this.onEndKey(event, true);
1000
+ break;
1001
+ case 'Enter':
1002
+ this.onEnterKey(event);
1003
+ break;
1004
+ case 'ShiftLeft':
1005
+ case 'ShiftRight':
1006
+ this.onShiftKey();
1007
+ break;
1008
+ default:
1009
+ break;
1010
+ }
1011
+ }
1012
+ onArrowDownKey(event) {
1013
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();
1014
+ if (this.multiple && event.shiftKey) {
1015
+ this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);
1016
+ }
1017
+ this.changeFocusedOptionIndex(event, optionIndex);
1018
+ event.preventDefault();
1019
+ }
1020
+ onArrowUpKey(event) {
1021
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.findLastFocusedOptionIndex();
1022
+ if (this.multiple && event.shiftKey) {
1023
+ this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());
1024
+ }
1025
+ this.changeFocusedOptionIndex(event, optionIndex);
1026
+ event.preventDefault();
1027
+ }
1028
+ onArrowLeftKey(event, pressedInInputText = false) {
1029
+ pressedInInputText && this.focusedOptionIndex.set(-1);
1030
+ }
1031
+ onHomeKey(event, pressedInInputText = false) {
1032
+ if (pressedInInputText) {
1033
+ event.currentTarget.setSelectionRange(0, 0);
1034
+ this.focusedOptionIndex.set(-1);
1035
+ }
1036
+ else {
1037
+ let metaKey = event.metaKey || event.ctrlKey;
1038
+ let optionIndex = this.findFirstOptionIndex();
1039
+ if (this.multiple && event.shiftKey && metaKey) {
1040
+ this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());
1041
+ }
1042
+ this.changeFocusedOptionIndex(event, optionIndex);
1043
+ }
1044
+ event.preventDefault();
1045
+ }
1046
+ onEndKey(event, pressedInInputText = false) {
1047
+ if (pressedInInputText) {
1048
+ const target = event.currentTarget;
1049
+ const len = target.value.length;
1050
+ target.setSelectionRange(len, len);
1051
+ this.focusedOptionIndex.set(-1);
1052
+ }
1053
+ else {
1054
+ let metaKey = event.metaKey || event.ctrlKey;
1055
+ let optionIndex = this.findLastOptionIndex();
1056
+ if (this.multiple && event.shiftKey && metaKey) {
1057
+ this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);
1058
+ }
1059
+ this.changeFocusedOptionIndex(event, optionIndex);
1060
+ }
1061
+ event.preventDefault();
1062
+ }
1063
+ onPageDownKey(event) {
1064
+ this.scrollInView(0);
1065
+ event.preventDefault();
1066
+ }
1067
+ onPageUpKey(event) {
1068
+ this.scrollInView(this.visibleOptions().length - 1);
1069
+ event.preventDefault();
1070
+ }
1071
+ onEnterKey(event) {
1072
+ if (this.focusedOptionIndex() !== -1) {
1073
+ if (this.multiple && event.shiftKey)
1074
+ this.onOptionSelectRange(event, this.focusedOptionIndex());
1075
+ else
1076
+ this.onOptionSelect(event, this.visibleOptions()[this.focusedOptionIndex()]);
1077
+ }
1078
+ event.preventDefault();
1079
+ }
1080
+ onSpaceKey(event) {
1081
+ this.onEnterKey(event);
1082
+ }
1083
+ onShiftKey() {
1084
+ const focusedOptionIndex = this.focusedOptionIndex();
1085
+ this.startRangeIndex.set(focusedOptionIndex);
1086
+ }
1087
+ getOptionGroupChildren(optionGroup) {
1088
+ return this.optionGroupChildren ? resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;
1089
+ }
1090
+ getOptionGroupLabel(optionGroup) {
1091
+ return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label !== undefined ? optionGroup.label : optionGroup;
1092
+ }
1093
+ getOptionLabel(option) {
1094
+ return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option.label != undefined ? option.label : option;
1095
+ }
1096
+ getOptionIndex(index, scrollerOptions) {
1097
+ return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];
1098
+ }
1099
+ getOptionValue(option) {
1100
+ return this.optionValue ? resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;
1101
+ }
1102
+ getAriaPosInset(index) {
1103
+ return ((this.optionGroupLabel
1104
+ ? index -
1105
+ this.visibleOptions()
1106
+ .slice(0, index)
1107
+ .filter((option) => this.isOptionGroup(option)).length
1108
+ : index) + 1);
1109
+ }
1110
+ getPTOptions(option, itemOptions, index, key) {
1111
+ return this.ptm(key, {
1112
+ context: {
1113
+ selected: this.isSelected(option),
1114
+ focused: this.focusedOptionIndex() === this.getOptionIndex(index, itemOptions),
1115
+ disabled: this.isOptionDisabled(option)
1116
+ }
1117
+ });
1118
+ }
1119
+ hasSelectedOption() {
1120
+ return isNotEmpty(this.modelValue());
1121
+ }
1122
+ isOptionGroup(option) {
1123
+ return this.optionGroupLabel && option.optionGroup && option.group;
1124
+ }
1125
+ changeFocusedOptionIndex(event, index) {
1126
+ if (this.focusedOptionIndex() !== index) {
1127
+ this.focusedOptionIndex.set(index);
1128
+ this.scrollInView();
1129
+ if (this.selectOnFocus && !this.multiple) {
1130
+ this.onOptionSelect(event, this.visibleOptions()[index]);
1131
+ }
1132
+ }
1133
+ }
1134
+ searchOptions(event, char) {
1135
+ this.searchValue = (this.searchValue || '') + char;
1136
+ let optionIndex = -1;
1137
+ let matched = false;
1138
+ if (this.focusedOptionIndex() !== -1) {
1139
+ optionIndex = this.visibleOptions()
1140
+ .slice(this.focusedOptionIndex())
1141
+ .findIndex((option) => this.isOptionMatched(option));
1142
+ optionIndex =
1143
+ optionIndex === -1
1144
+ ? this.visibleOptions()
1145
+ .slice(0, this.focusedOptionIndex())
1146
+ .findIndex((option) => this.isOptionMatched(option))
1147
+ : optionIndex + this.focusedOptionIndex();
1148
+ }
1149
+ else {
1150
+ optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));
1151
+ }
1152
+ if (optionIndex !== -1) {
1153
+ matched = true;
1154
+ }
1155
+ if (optionIndex === -1 && this.focusedOptionIndex() === -1) {
1156
+ optionIndex = this.findFirstFocusedOptionIndex();
1157
+ }
1158
+ if (optionIndex !== -1) {
1159
+ this.changeFocusedOptionIndex(event, optionIndex);
1160
+ }
1161
+ if (this.searchTimeout) {
1162
+ clearTimeout(this.searchTimeout);
1163
+ }
1164
+ this.searchTimeout = setTimeout(() => {
1165
+ this.searchValue = '';
1166
+ this.searchTimeout = null;
1167
+ }, 500);
1168
+ return matched;
1169
+ }
1170
+ isOptionMatched(option) {
1171
+ return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale));
1172
+ }
1173
+ scrollInView(index = -1) {
1174
+ const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
1175
+ const element = findSingle(this.listViewChild?.nativeElement, `li[id="${id}"]`);
1176
+ if (element) {
1177
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1178
+ }
1179
+ else if (!this.virtualScrollerDisabled) {
1180
+ this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());
1181
+ }
1182
+ }
1183
+ findFirstOptionIndex() {
1184
+ return this.visibleOptions().findIndex((option) => this.isValidOption(option));
1185
+ }
1186
+ findLastOptionIndex() {
1187
+ return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));
1188
+ }
1189
+ findFirstFocusedOptionIndex() {
1190
+ const selectedIndex = this.findFirstSelectedOptionIndex();
1191
+ return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;
1192
+ }
1193
+ findLastFocusedOptionIndex() {
1194
+ const selectedIndex = this.findLastSelectedOptionIndex();
1195
+ return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;
1196
+ }
1197
+ findLastSelectedOptionIndex() {
1198
+ return this.hasSelectedOption() ? findLastIndex(this.visibleOptions(), (option) => this.isValidSelectedOption(option)) : -1;
1199
+ }
1200
+ findNextOptionIndex(index) {
1201
+ const matchedOptionIndex = index < this.visibleOptions().length - 1
1202
+ ? this.visibleOptions()
1203
+ .slice(index + 1)
1204
+ .findIndex((option) => this.isValidOption(option))
1205
+ : -1;
1206
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
1207
+ }
1208
+ findNextSelectedOptionIndex(index) {
1209
+ const matchedOptionIndex = this.hasSelectedOption() && index < this.visibleOptions().length - 1
1210
+ ? this.visibleOptions()
1211
+ .slice(index + 1)
1212
+ .findIndex((option) => this.isValidSelectedOption(option))
1213
+ : -1;
1214
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;
1215
+ }
1216
+ findPrevSelectedOptionIndex(index) {
1217
+ const matchedOptionIndex = this.hasSelectedOption() && index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;
1218
+ return matchedOptionIndex > -1 ? matchedOptionIndex : -1;
1219
+ }
1220
+ findFirstSelectedOptionIndex() {
1221
+ return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;
1222
+ }
1223
+ findPrevOptionIndex(index) {
1224
+ const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;
1225
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1226
+ }
1227
+ findSelectedOptionIndex() {
1228
+ if (this.$filled()) {
1229
+ if (this.multiple) {
1230
+ for (let index = this.modelValue().length - 1; index >= 0; index--) {
1231
+ const value = this.modelValue()[index];
1232
+ const matchedOptionIndex = this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));
1233
+ if (matchedOptionIndex > -1)
1234
+ return matchedOptionIndex;
1235
+ }
1236
+ }
1237
+ else {
1238
+ return this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option));
1239
+ }
1240
+ }
1241
+ return -1;
1242
+ }
1243
+ findNearestSelectedOptionIndex(index, firstCheckUp = false) {
1244
+ let matchedOptionIndex = -1;
1245
+ if (this.hasSelectedOption()) {
1246
+ if (firstCheckUp) {
1247
+ matchedOptionIndex = this.findPrevSelectedOptionIndex(index);
1248
+ matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;
1249
+ }
1250
+ else {
1251
+ matchedOptionIndex = this.findNextSelectedOptionIndex(index);
1252
+ matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;
1253
+ }
1254
+ }
1255
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1256
+ }
1257
+ equalityKey() {
1258
+ return this.optionValue ? null : this.dataKey;
1259
+ }
1260
+ isValidSelectedOption(option) {
1261
+ return this.isValidOption(option) && this.isSelected(option);
1262
+ }
1263
+ isOptionDisabled(option) {
1264
+ if (isFunction(this.optionDisabled)) {
1265
+ return this.optionDisabled(option);
1266
+ }
1267
+ return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;
1268
+ }
1269
+ isEquals(value1, value2) {
1270
+ return equals(value1, value2, this.equalityKey() || '');
1271
+ }
1272
+ isSelected(option) {
1273
+ const optionValue = this.getOptionValue(option);
1274
+ if (this.multiple)
1275
+ return (this.modelValue() || []).some((value) => this.isEquals(value, optionValue));
1276
+ else
1277
+ return this.isEquals(this.modelValue(), optionValue);
1278
+ }
1279
+ isValidOption(option) {
1280
+ return option && !(this.isOptionDisabled(option) || this.isOptionGroup(option));
1281
+ }
1282
+ isEmpty() {
1283
+ return !this._options()?.length || !this.visibleOptions()?.length;
1284
+ }
1285
+ hasFilter() {
1286
+ return this._filterValue() && (this._filterValue()?.trim().length || 0) > 0;
1287
+ }
1288
+ resetFilter() {
1289
+ if (this.filterViewChild && this.filterViewChild.nativeElement) {
1290
+ this.filterViewChild.nativeElement.value = '';
1291
+ }
1292
+ this._filterValue.set(null);
1293
+ }
1294
+ onDragEntered() {
1295
+ this.isDragging.set(true);
1296
+ this.el.nativeElement.setAttribute('p-listbox-dragging', 'true');
1297
+ }
1298
+ onDragExited() {
1299
+ this.isDragging.set(false);
1300
+ this.el.nativeElement.setAttribute('p-listbox-dragging', 'false');
1301
+ }
1302
+ drop(event) {
1303
+ this.isDragging.set(false);
1304
+ if (event) {
1305
+ // If dragdrop is enabled and same container (reordering), automatically handle reordering
1306
+ if (this.dragdrop && event.previousContainer === event.container) {
1307
+ const currentOptions = [...this._options()];
1308
+ moveItemInArray(currentOptions, event.previousIndex, event.currentIndex);
1309
+ this._options.set(currentOptions);
1310
+ this.changeFocusedOptionIndex(event, event.currentIndex);
1311
+ // Update model value if needed for selection preservation
1312
+ if (this.modelValue()) {
1313
+ this.writeModelValue(this.modelValue());
1314
+ this.onModelChange(this.modelValue());
1315
+ }
1316
+ // Mark for change detection
1317
+ this.cd.markForCheck();
1318
+ }
1319
+ // Always emit the event for custom handling
1320
+ this.onDrop.emit(event);
1321
+ }
1322
+ }
1323
+ get containerDataP() {
1324
+ return this.cn({
1325
+ invalid: this.invalid(),
1326
+ disabled: this.$disabled()
1327
+ });
1328
+ }
1329
+ /**
1330
+ * @override
1331
+ *
1332
+ * @see {@link BaseEditableHolder.writeControlValue}
1333
+ * Writes the value to the control.
1334
+ */
1335
+ writeControlValue(value, setModelValue) {
1336
+ this.value = value;
1337
+ setModelValue(this.value);
1338
+ this.cd.markForCheck();
1339
+ }
1340
+ onDestroy() {
1341
+ if (this.translationSubscription) {
1342
+ this.translationSubscription.unsubscribe();
1343
+ }
1344
+ }
1345
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: Listbox, deps: [{ token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
1346
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: Listbox, isStandalone: true, selector: "p-listbox, p-listBox, p-list-box", inputs: { hostName: { classPropertyName: "hostName", publicName: "hostName", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, searchMessage: { classPropertyName: "searchMessage", publicName: "searchMessage", isSignal: false, isRequired: false, transformFunction: null }, emptySelectionMessage: { classPropertyName: "emptySelectionMessage", publicName: "emptySelectionMessage", isSignal: false, isRequired: false, transformFunction: null }, selectionMessage: { classPropertyName: "selectionMessage", publicName: "selectionMessage", isSignal: false, isRequired: false, transformFunction: null }, autoOptionFocus: { classPropertyName: "autoOptionFocus", publicName: "autoOptionFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, searchLocale: { classPropertyName: "searchLocale", publicName: "searchLocale", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, focusOnHover: { classPropertyName: "focusOnHover", publicName: "focusOnHover", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterMessage: { classPropertyName: "filterMessage", publicName: "filterMessage", isSignal: false, isRequired: false, transformFunction: null }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, listStyle: { classPropertyName: "listStyle", publicName: "listStyle", isSignal: false, isRequired: false, transformFunction: null }, listStyleClass: { classPropertyName: "listStyleClass", publicName: "listStyleClass", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, filterMatchMode: { classPropertyName: "filterMatchMode", publicName: "filterMatchMode", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: false, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: false, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: false, isRequired: false, transformFunction: null }, optionGroupChildren: { classPropertyName: "optionGroupChildren", publicName: "optionGroupChildren", isSignal: false, isRequired: false, transformFunction: null }, optionGroupLabel: { classPropertyName: "optionGroupLabel", publicName: "optionGroupLabel", isSignal: false, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: false, isRequired: false, transformFunction: null }, ariaFilterLabel: { classPropertyName: "ariaFilterLabel", publicName: "ariaFilterLabel", isSignal: false, isRequired: false, transformFunction: null }, filterPlaceHolder: { classPropertyName: "filterPlaceHolder", publicName: "filterPlaceHolder", isSignal: false, isRequired: false, transformFunction: null }, emptyFilterMessage: { classPropertyName: "emptyFilterMessage", publicName: "emptyFilterMessage", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: false, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: false, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkmark: { classPropertyName: "checkmark", publicName: "checkmark", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dragdrop: { classPropertyName: "dragdrop", publicName: "dragdrop", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dropListData: { classPropertyName: "dropListData", publicName: "dropListData", isSignal: false, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", onClick: "onClick", onDblClick: "onDblClick", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onSelectAllChange: "onSelectAllChange", onLazyLoad: "onLazyLoad", onDrop: "onDrop" }, host: { listeners: { "focusout": "onHostFocusOut($event)" }, properties: { "attr.id": "id", "class": "cn(cx('root'), styleClass)", "attr.data-p": "containerDataP" } }, providers: [
1347
+ LISTBOX_VALUE_ACCESSOR,
1348
+ ListBoxStyle,
1349
+ {
1350
+ provide: CDK_DRAG_CONFIG,
1351
+ useValue: {
1352
+ zIndex: 1200
1353
+ }
1354
+ },
1355
+ { provide: LISTBOX_INSTANCE, useExisting: Listbox },
1356
+ { provide: PARENT_INSTANCE, useExisting: Listbox }
1357
+ ], queries: [{ propertyName: "headerFacet", first: true, predicate: Header, descendants: true }, { propertyName: "footerFacet", first: true, predicate: Footer, descendants: true }, { propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "groupTemplate", first: true, predicate: ["group"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "filterTemplate", first: true, predicate: ["filter"] }, { propertyName: "footerTemplate", first: true, predicate: ["footer"] }, { propertyName: "emptyFilterTemplate", first: true, predicate: ["emptyfilter"] }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "checkIconTemplate", first: true, predicate: ["checkicon"] }, { propertyName: "checkmarkTemplate", first: true, predicate: ["checkmark"] }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "headerCheckboxViewChild", first: true, predicate: ["headerchkbox"], descendants: true }, { propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }, { propertyName: "lastHiddenFocusableElement", first: true, predicate: ["lastHiddenFocusableElement"], descendants: true }, { propertyName: "firstHiddenFocusableElement", first: true, predicate: ["firstHiddenFocusableElement"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "listViewChild", first: true, predicate: ["list"], descendants: true }, { propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i2.Bind }], ngImport: i0, template: `
1358
+ <span
1359
+ #firstHiddenFocusableElement
1360
+ role="presentation"
1361
+ class="p-hidden-accessible p-hidden-focusable"
1362
+ [tabindex]="!$disabled() ? tabindex : -1"
1363
+ (focus)="onFirstHiddenFocus($event)"
1364
+ [attr.data-p-hidden-focusable]="true"
1365
+ [pBind]="ptm('hiddenFirstFocusableElement')"
1366
+ >
1367
+ </span>
1368
+ <div [class]="cx('header')" *ngIf="headerFacet || headerTemplate || _headerTemplate" [pBind]="ptm('header')">
1369
+ <ng-content select="p-header"></ng-content>
1370
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }"></ng-container>
1371
+ </div>
1372
+ <div [class]="cx('header')" *ngIf="(checkbox && multiple && showToggleAll) || filter" [pBind]="ptm('header')">
1373
+ <p-checkbox
1374
+ #headerchkbox
1375
+ (onChange)="onToggleAll($event)"
1376
+ *ngIf="checkbox && multiple && showToggleAll"
1377
+ [class]="cx('optionCheckIcon')"
1378
+ [ngModel]="allSelected()"
1379
+ [disabled]="$disabled()"
1380
+ [tabindex]="-1"
1381
+ [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1382
+ [binary]="true"
1383
+ [attr.aria-label]="toggleAllAriaLabel"
1384
+ [pt]="ptm('pcCheckbox')"
1385
+ [unstyled]="unstyled()"
1386
+ >
1387
+ <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1388
+ <ng-template #icon>
1389
+ <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: allSelected() }"></ng-template>
1390
+ </ng-template>
1391
+ </ng-container>
1392
+ </p-checkbox>
1393
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
1394
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
1395
+ </ng-container>
1396
+ <ng-template #builtInFilterElement>
1397
+ @if (filter) {
1398
+ <p-iconfield [pt]="ptm('pcFilterContainer')" hostName="listbox" [unstyled]="unstyled()">
1399
+ <input
1400
+ #filterInput
1401
+ pInputText
1402
+ type="text"
1403
+ [class]="cx('pcFilter')"
1404
+ role="searchbox"
1405
+ [value]="_filterValue() || ''"
1406
+ [attr.disabled]="$disabled() ? '' : undefined"
1407
+ [attr.aria-owns]="id + '_list'"
1408
+ [attr.aria-activedescendant]="focusedOptionId"
1409
+ [attr.placeholder]="filterPlaceHolder"
1410
+ [attr.aria-label]="ariaFilterLabel"
1411
+ [attr.tabindex]="!$disabled() && !focused ? tabindex : -1"
1412
+ (input)="onFilterChange($event)"
1413
+ (keydown)="onFilterKeyDown($event)"
1414
+ (blur)="onFilterBlur($event)"
1415
+ [pt]="ptm('pcFilter')"
1416
+ [unstyled]="unstyled()"
1417
+ hostName="listbox"
1418
+ />
1419
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
1420
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [attr.aria-hidden]="true" [pBind]="ptm('filterIcon')" />
1421
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [attr.aria-hidden]="true">
1422
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
1423
+ </span>
1424
+ </p-inputicon>
1425
+ </p-iconfield>
1426
+ }
1427
+ <span role="status" [pBind]="ptm('hiddenFilterResult')" [attr.aria-live]="'polite'" class="p-hidden-accessible" [attr.data-p-hidden-accessible]="true">
1428
+ {{ filterResultMessageText }}
1429
+ </span>
1430
+ </ng-template>
1431
+ </div>
1432
+ <div
1433
+ #container
1434
+ [class]="cn(cx('listContainer'), listStyleClass)"
1435
+ [ngStyle]="listStyle"
1436
+ [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'"
1437
+ cdkDropList
1438
+ [cdkDropListData]="cdkDropData()"
1439
+ (cdkDropListDropped)="drop($event)"
1440
+ (cdkDropListEntered)="onDragEntered()"
1441
+ (cdkDropListExited)="onDragExited()"
1442
+ [pBind]="ptm('listContainer')"
1443
+ >
1444
+ @if (hasFilter() && isEmpty()) {
1445
+ <div [class]="cx('emptyMessage')" [pBind]="ptm('emptyMessage')">
1446
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1447
+ {{ emptyFilterMessageText }}
1448
+ } @else {
1449
+ <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || _emptyTemplate || emptyTemplate"></ng-container>
1450
+ }
1451
+ </div>
1452
+ } @else if (!hasFilter() && isEmpty()) {
1453
+ <div [class]="cx('emptyMessage')" [pBind]="ptm('emptyMessage')">
1454
+ @if (!emptyTemplate && !_emptyTemplate) {
1455
+ {{ emptyMessage }}
1456
+ } @else {
1457
+ <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1458
+ }
1459
+ </div>
1460
+ } @else {
1461
+ <p-scroller
1462
+ [pt]="ptm('virtualScroller')"
1463
+ hostName="listbox"
1464
+ #scroller
1465
+ *ngIf="virtualScroll"
1466
+ [items]="visibleOptions()"
1467
+ [style]="{ height: scrollHeight }"
1468
+ [itemSize]="virtualScrollItemSize"
1469
+ [autoSize]="true"
1470
+ [lazy]="lazy"
1471
+ [options]="virtualScrollOptions"
1472
+ (onLazyLoad)="onLazyLoad.emit($event)"
1473
+ [tabindex]="scrollerTabIndex"
1474
+ >
1475
+ <ng-template #content let-items let-scrollerOptions="options">
1476
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
1477
+ </ng-template>
1478
+ @if (loaderTemplate || _loaderTemplate) {
1479
+ <ng-template #loader let-scrollerOptions="options">
1480
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
1481
+ </ng-template>
1482
+ }
1483
+ </p-scroller>
1484
+ <ng-container *ngIf="!virtualScroll">
1485
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
1486
+ </ng-container>
1487
+
1488
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
1489
+ <ul
1490
+ #list
1491
+ [id]="id + '_list'"
1492
+ [class]="cx('list')"
1493
+ role="listbox"
1494
+ [tabindex]="-1"
1495
+ [attr.aria-multiselectable]="true"
1496
+ [ngClass]="scrollerOptions.contentStyleClass"
1497
+ [style]="scrollerOptions.contentStyle"
1498
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1499
+ [attr.aria-label]="ariaLabel"
1500
+ [attr.aria-disabled]="$disabled()"
1501
+ (focus)="onListFocus($event)"
1502
+ (blur)="onListBlur($event)"
1503
+ (keydown)="onListKeyDown($event)"
1504
+ [pBind]="ptm('list')"
1505
+ >
1506
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1507
+ <ng-container *ngIf="isOptionGroup(option)">
1508
+ <li
1509
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1510
+ [class]="cx('optionGroup')"
1511
+ [pBind]="getPTOptions(option.optionGroup, scrollerOptions, i, 'optionGroup')"
1512
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1513
+ role="option"
1514
+ cdkDrag
1515
+ [cdkDragData]="option"
1516
+ [cdkDragDisabled]="!dragdrop"
1517
+ (cdkDragStarted)="isDragging.set(true)"
1518
+ (cdkDragEnded)="isDragging.set(false)"
1519
+ >
1520
+ <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1521
+ <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
1522
+ </li>
1523
+ </ng-container>
1524
+ <ng-container *ngIf="!isOptionGroup(option)">
1525
+ <li
1526
+ pRipple
1527
+ [class]="cx('option', { option, i, scrollerOptions })"
1528
+ role="option"
1529
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1530
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1531
+ [attr.aria-label]="getOptionLabel(option)"
1532
+ [attr.aria-selected]="isSelected(option)"
1533
+ [attr.aria-disabled]="isOptionDisabled(option)"
1534
+ [attr.aria-setsize]="ariaSetSize"
1535
+ [attr.ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
1536
+ [attr.data-p-selected]="isSelected(option)"
1537
+ [attr.data-p-focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
1538
+ [attr.data-p-disabled]="isOptionDisabled(option)"
1539
+ [pBind]="getPTOptions(option, scrollerOptions, i, 'option')"
1540
+ (click)="onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))"
1541
+ (dblclick)="onOptionDoubleClick($event, option)"
1542
+ (mousedown)="onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))"
1543
+ (mouseenter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
1544
+ (touchend)="onOptionTouchEnd()"
1545
+ cdkDrag
1546
+ [cdkDragData]="option"
1547
+ [cdkDragDisabled]="!dragdrop"
1548
+ (cdkDragStarted)="isDragging.set(true)"
1549
+ (cdkDragEnded)="isDragging.set(false)"
1550
+ >
1551
+ <p-checkbox
1552
+ *ngIf="checkbox && multiple"
1553
+ [class]="cx('optionCheckIcon')"
1554
+ [ngModel]="isSelected(option)"
1555
+ [readonly]="true"
1556
+ [disabled]="$disabled() || isOptionDisabled(option)"
1557
+ [tabindex]="-1"
1558
+ [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1559
+ [binary]="true"
1560
+ [pt]="ptm('pcCheckbox')"
1561
+ hostName="listbox"
1562
+ [unstyled]="unstyled()"
1563
+ >
1564
+ <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1565
+ <ng-template #icon>
1566
+ <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: isSelected(option) }"></ng-template>
1567
+ </ng-template>
1568
+ </ng-container>
1569
+ </p-checkbox>
1570
+ <ng-container *ngIf="checkmark">
1571
+ <ng-container *ngIf="!checkmarkTemplate && !_checkmarkTemplate">
1572
+ <svg data-p-icon="blank" *ngIf="!isSelected(option)" [class]="cx('optionBlankIcon')" [pBind]="ptm('optionBlankIcon')" />
1573
+ <svg data-p-icon="check" *ngIf="isSelected(option)" [class]="cx('optionCheckIcon')" [pBind]="ptm('optionCheckIcon')" />
1574
+ </ng-container>
1575
+ <ng-container *ngTemplateOutlet="checkmarkTemplate || _checkmarkTemplate; context: { implicit: isSelected(option) }"></ng-container>
1576
+ </ng-container>
1577
+ <span *ngIf="!itemTemplate && !_itemTemplate">{{ getOptionLabel(option) }}</span>
1578
+ <ng-container
1579
+ *ngTemplateOutlet="
1580
+ itemTemplate || _itemTemplate;
1581
+ context: {
1582
+ $implicit: option,
1583
+ index: getOptionIndex(i, scrollerOptions),
1584
+ selected: isSelected(option),
1585
+ disabled: isOptionDisabled(option)
1586
+ }
1587
+ "
1588
+ ></ng-container>
1589
+ </li>
1590
+ </ng-container>
1591
+ </ng-template>
1592
+ </ul>
1593
+ </ng-template>
1594
+ }
1595
+ </div>
1596
+ <div *ngIf="footerFacet || footerTemplate || _footerTemplate">
1597
+ <ng-content select="p-footer"></ng-content>
1598
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }"></ng-container>
1599
+ </div>
1600
+ <span *ngIf="isEmpty()" role="status" aria-live="polite" class="p-hidden-accessible" [pBind]="ptm('hiddenEmptyMessage')">
1601
+ {{ emptyMessage }}
1602
+ </span>
1603
+ <span role="status" aria-live="polite" class="p-hidden-accessible" [pBind]="ptm('hiddenSelectedMessage')">
1604
+ {{ selectedMessageText }}
1605
+ </span>
1606
+ <span
1607
+ #lastHiddenFocusableElement
1608
+ role="presentation"
1609
+ class="p-hidden-accessible p-hidden-focusable"
1610
+ [tabindex]="!$disabled() ? tabindex : -1"
1611
+ (focus)="onLastHiddenFocus($event)"
1612
+ [attr.data-p-hidden-focusable]="true"
1613
+ [pBind]="ptm('hiddenLastFocusableEl')"
1614
+ >
1615
+ </span>
1616
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Scroller, selector: "p-scroller, p-virtualscroller, p-virtual-scroller, p-virtualScroller", inputs: ["hostName", "id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: CheckIcon, selector: "[data-p-icon=\"check\"]" }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: BlankIcon, selector: "[data-p-icon=\"blank\"]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i2.Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1617
+ }
1618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: Listbox, decorators: [{
1619
+ type: Component,
1620
+ args: [{
1621
+ selector: 'p-listbox, p-listBox, p-list-box',
1622
+ standalone: true,
1623
+ imports: [CommonModule, Ripple, Scroller, InputIcon, SearchIcon, Checkbox, CheckIcon, IconField, InputText, BlankIcon, FormsModule, SharedModule, DragDropModule, BindModule],
1624
+ template: `
1625
+ <span
1626
+ #firstHiddenFocusableElement
1627
+ role="presentation"
1628
+ class="p-hidden-accessible p-hidden-focusable"
1629
+ [tabindex]="!$disabled() ? tabindex : -1"
1630
+ (focus)="onFirstHiddenFocus($event)"
1631
+ [attr.data-p-hidden-focusable]="true"
1632
+ [pBind]="ptm('hiddenFirstFocusableElement')"
1633
+ >
1634
+ </span>
1635
+ <div [class]="cx('header')" *ngIf="headerFacet || headerTemplate || _headerTemplate" [pBind]="ptm('header')">
1636
+ <ng-content select="p-header"></ng-content>
1637
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }"></ng-container>
1638
+ </div>
1639
+ <div [class]="cx('header')" *ngIf="(checkbox && multiple && showToggleAll) || filter" [pBind]="ptm('header')">
1640
+ <p-checkbox
1641
+ #headerchkbox
1642
+ (onChange)="onToggleAll($event)"
1643
+ *ngIf="checkbox && multiple && showToggleAll"
1644
+ [class]="cx('optionCheckIcon')"
1645
+ [ngModel]="allSelected()"
1646
+ [disabled]="$disabled()"
1647
+ [tabindex]="-1"
1648
+ [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1649
+ [binary]="true"
1650
+ [attr.aria-label]="toggleAllAriaLabel"
1651
+ [pt]="ptm('pcCheckbox')"
1652
+ [unstyled]="unstyled()"
1653
+ >
1654
+ <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1655
+ <ng-template #icon>
1656
+ <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: allSelected() }"></ng-template>
1657
+ </ng-template>
1658
+ </ng-container>
1659
+ </p-checkbox>
1660
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
1661
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
1662
+ </ng-container>
1663
+ <ng-template #builtInFilterElement>
1664
+ @if (filter) {
1665
+ <p-iconfield [pt]="ptm('pcFilterContainer')" hostName="listbox" [unstyled]="unstyled()">
1666
+ <input
1667
+ #filterInput
1668
+ pInputText
1669
+ type="text"
1670
+ [class]="cx('pcFilter')"
1671
+ role="searchbox"
1672
+ [value]="_filterValue() || ''"
1673
+ [attr.disabled]="$disabled() ? '' : undefined"
1674
+ [attr.aria-owns]="id + '_list'"
1675
+ [attr.aria-activedescendant]="focusedOptionId"
1676
+ [attr.placeholder]="filterPlaceHolder"
1677
+ [attr.aria-label]="ariaFilterLabel"
1678
+ [attr.tabindex]="!$disabled() && !focused ? tabindex : -1"
1679
+ (input)="onFilterChange($event)"
1680
+ (keydown)="onFilterKeyDown($event)"
1681
+ (blur)="onFilterBlur($event)"
1682
+ [pt]="ptm('pcFilter')"
1683
+ [unstyled]="unstyled()"
1684
+ hostName="listbox"
1685
+ />
1686
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
1687
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [attr.aria-hidden]="true" [pBind]="ptm('filterIcon')" />
1688
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [attr.aria-hidden]="true">
1689
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
1690
+ </span>
1691
+ </p-inputicon>
1692
+ </p-iconfield>
1693
+ }
1694
+ <span role="status" [pBind]="ptm('hiddenFilterResult')" [attr.aria-live]="'polite'" class="p-hidden-accessible" [attr.data-p-hidden-accessible]="true">
1695
+ {{ filterResultMessageText }}
1696
+ </span>
1697
+ </ng-template>
1698
+ </div>
1699
+ <div
1700
+ #container
1701
+ [class]="cn(cx('listContainer'), listStyleClass)"
1702
+ [ngStyle]="listStyle"
1703
+ [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'"
1704
+ cdkDropList
1705
+ [cdkDropListData]="cdkDropData()"
1706
+ (cdkDropListDropped)="drop($event)"
1707
+ (cdkDropListEntered)="onDragEntered()"
1708
+ (cdkDropListExited)="onDragExited()"
1709
+ [pBind]="ptm('listContainer')"
1710
+ >
1711
+ @if (hasFilter() && isEmpty()) {
1712
+ <div [class]="cx('emptyMessage')" [pBind]="ptm('emptyMessage')">
1713
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1714
+ {{ emptyFilterMessageText }}
1715
+ } @else {
1716
+ <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || _emptyTemplate || emptyTemplate"></ng-container>
1717
+ }
1718
+ </div>
1719
+ } @else if (!hasFilter() && isEmpty()) {
1720
+ <div [class]="cx('emptyMessage')" [pBind]="ptm('emptyMessage')">
1721
+ @if (!emptyTemplate && !_emptyTemplate) {
1722
+ {{ emptyMessage }}
1723
+ } @else {
1724
+ <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1725
+ }
1726
+ </div>
1727
+ } @else {
1728
+ <p-scroller
1729
+ [pt]="ptm('virtualScroller')"
1730
+ hostName="listbox"
1731
+ #scroller
1732
+ *ngIf="virtualScroll"
1733
+ [items]="visibleOptions()"
1734
+ [style]="{ height: scrollHeight }"
1735
+ [itemSize]="virtualScrollItemSize"
1736
+ [autoSize]="true"
1737
+ [lazy]="lazy"
1738
+ [options]="virtualScrollOptions"
1739
+ (onLazyLoad)="onLazyLoad.emit($event)"
1740
+ [tabindex]="scrollerTabIndex"
1741
+ >
1742
+ <ng-template #content let-items let-scrollerOptions="options">
1743
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
1744
+ </ng-template>
1745
+ @if (loaderTemplate || _loaderTemplate) {
1746
+ <ng-template #loader let-scrollerOptions="options">
1747
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
1748
+ </ng-template>
1749
+ }
1750
+ </p-scroller>
1751
+ <ng-container *ngIf="!virtualScroll">
1752
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
1753
+ </ng-container>
1754
+
1755
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
1756
+ <ul
1757
+ #list
1758
+ [id]="id + '_list'"
1759
+ [class]="cx('list')"
1760
+ role="listbox"
1761
+ [tabindex]="-1"
1762
+ [attr.aria-multiselectable]="true"
1763
+ [ngClass]="scrollerOptions.contentStyleClass"
1764
+ [style]="scrollerOptions.contentStyle"
1765
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1766
+ [attr.aria-label]="ariaLabel"
1767
+ [attr.aria-disabled]="$disabled()"
1768
+ (focus)="onListFocus($event)"
1769
+ (blur)="onListBlur($event)"
1770
+ (keydown)="onListKeyDown($event)"
1771
+ [pBind]="ptm('list')"
1772
+ >
1773
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1774
+ <ng-container *ngIf="isOptionGroup(option)">
1775
+ <li
1776
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1777
+ [class]="cx('optionGroup')"
1778
+ [pBind]="getPTOptions(option.optionGroup, scrollerOptions, i, 'optionGroup')"
1779
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1780
+ role="option"
1781
+ cdkDrag
1782
+ [cdkDragData]="option"
1783
+ [cdkDragDisabled]="!dragdrop"
1784
+ (cdkDragStarted)="isDragging.set(true)"
1785
+ (cdkDragEnded)="isDragging.set(false)"
1786
+ >
1787
+ <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1788
+ <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
1789
+ </li>
1790
+ </ng-container>
1791
+ <ng-container *ngIf="!isOptionGroup(option)">
1792
+ <li
1793
+ pRipple
1794
+ [class]="cx('option', { option, i, scrollerOptions })"
1795
+ role="option"
1796
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1797
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1798
+ [attr.aria-label]="getOptionLabel(option)"
1799
+ [attr.aria-selected]="isSelected(option)"
1800
+ [attr.aria-disabled]="isOptionDisabled(option)"
1801
+ [attr.aria-setsize]="ariaSetSize"
1802
+ [attr.ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
1803
+ [attr.data-p-selected]="isSelected(option)"
1804
+ [attr.data-p-focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
1805
+ [attr.data-p-disabled]="isOptionDisabled(option)"
1806
+ [pBind]="getPTOptions(option, scrollerOptions, i, 'option')"
1807
+ (click)="onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))"
1808
+ (dblclick)="onOptionDoubleClick($event, option)"
1809
+ (mousedown)="onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))"
1810
+ (mouseenter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
1811
+ (touchend)="onOptionTouchEnd()"
1812
+ cdkDrag
1813
+ [cdkDragData]="option"
1814
+ [cdkDragDisabled]="!dragdrop"
1815
+ (cdkDragStarted)="isDragging.set(true)"
1816
+ (cdkDragEnded)="isDragging.set(false)"
1817
+ >
1818
+ <p-checkbox
1819
+ *ngIf="checkbox && multiple"
1820
+ [class]="cx('optionCheckIcon')"
1821
+ [ngModel]="isSelected(option)"
1822
+ [readonly]="true"
1823
+ [disabled]="$disabled() || isOptionDisabled(option)"
1824
+ [tabindex]="-1"
1825
+ [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1826
+ [binary]="true"
1827
+ [pt]="ptm('pcCheckbox')"
1828
+ hostName="listbox"
1829
+ [unstyled]="unstyled()"
1830
+ >
1831
+ <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1832
+ <ng-template #icon>
1833
+ <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: isSelected(option) }"></ng-template>
1834
+ </ng-template>
1835
+ </ng-container>
1836
+ </p-checkbox>
1837
+ <ng-container *ngIf="checkmark">
1838
+ <ng-container *ngIf="!checkmarkTemplate && !_checkmarkTemplate">
1839
+ <svg data-p-icon="blank" *ngIf="!isSelected(option)" [class]="cx('optionBlankIcon')" [pBind]="ptm('optionBlankIcon')" />
1840
+ <svg data-p-icon="check" *ngIf="isSelected(option)" [class]="cx('optionCheckIcon')" [pBind]="ptm('optionCheckIcon')" />
1841
+ </ng-container>
1842
+ <ng-container *ngTemplateOutlet="checkmarkTemplate || _checkmarkTemplate; context: { implicit: isSelected(option) }"></ng-container>
1843
+ </ng-container>
1844
+ <span *ngIf="!itemTemplate && !_itemTemplate">{{ getOptionLabel(option) }}</span>
1845
+ <ng-container
1846
+ *ngTemplateOutlet="
1847
+ itemTemplate || _itemTemplate;
1848
+ context: {
1849
+ $implicit: option,
1850
+ index: getOptionIndex(i, scrollerOptions),
1851
+ selected: isSelected(option),
1852
+ disabled: isOptionDisabled(option)
1853
+ }
1854
+ "
1855
+ ></ng-container>
1856
+ </li>
1857
+ </ng-container>
1858
+ </ng-template>
1859
+ </ul>
1860
+ </ng-template>
1861
+ }
1862
+ </div>
1863
+ <div *ngIf="footerFacet || footerTemplate || _footerTemplate">
1864
+ <ng-content select="p-footer"></ng-content>
1865
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }"></ng-container>
1866
+ </div>
1867
+ <span *ngIf="isEmpty()" role="status" aria-live="polite" class="p-hidden-accessible" [pBind]="ptm('hiddenEmptyMessage')">
1868
+ {{ emptyMessage }}
1869
+ </span>
1870
+ <span role="status" aria-live="polite" class="p-hidden-accessible" [pBind]="ptm('hiddenSelectedMessage')">
1871
+ {{ selectedMessageText }}
1872
+ </span>
1873
+ <span
1874
+ #lastHiddenFocusableElement
1875
+ role="presentation"
1876
+ class="p-hidden-accessible p-hidden-focusable"
1877
+ [tabindex]="!$disabled() ? tabindex : -1"
1878
+ (focus)="onLastHiddenFocus($event)"
1879
+ [attr.data-p-hidden-focusable]="true"
1880
+ [pBind]="ptm('hiddenLastFocusableEl')"
1881
+ >
1882
+ </span>
1883
+ `,
1884
+ providers: [
1885
+ LISTBOX_VALUE_ACCESSOR,
1886
+ ListBoxStyle,
1887
+ {
1888
+ provide: CDK_DRAG_CONFIG,
1889
+ useValue: {
1890
+ zIndex: 1200
1891
+ }
1892
+ },
1893
+ { provide: LISTBOX_INSTANCE, useExisting: Listbox },
1894
+ { provide: PARENT_INSTANCE, useExisting: Listbox }
1895
+ ],
1896
+ changeDetection: ChangeDetectionStrategy.OnPush,
1897
+ encapsulation: ViewEncapsulation.None,
1898
+ host: {
1899
+ '[attr.id]': 'id',
1900
+ '[class]': "cn(cx('root'), styleClass)",
1901
+ '[attr.data-p]': 'containerDataP'
1902
+ },
1903
+ hostDirectives: [Bind]
1904
+ }]
1905
+ }], ctorParameters: () => [{ type: i1.FilterService }], propDecorators: { hostName: [{
1906
+ type: Input
1907
+ }], id: [{
1908
+ type: Input
1909
+ }], searchMessage: [{
1910
+ type: Input
1911
+ }], emptySelectionMessage: [{
1912
+ type: Input
1913
+ }], selectionMessage: [{
1914
+ type: Input
1915
+ }], autoOptionFocus: [{
1916
+ type: Input,
1917
+ args: [{ transform: booleanAttribute }]
1918
+ }], ariaLabel: [{
1919
+ type: Input
1920
+ }], selectOnFocus: [{
1921
+ type: Input,
1922
+ args: [{ transform: booleanAttribute }]
1923
+ }], searchLocale: [{
1924
+ type: Input,
1925
+ args: [{ transform: booleanAttribute }]
1926
+ }], focusOnHover: [{
1927
+ type: Input,
1928
+ args: [{ transform: booleanAttribute }]
1929
+ }], filterMessage: [{
1930
+ type: Input
1931
+ }], filterFields: [{
1932
+ type: Input
1933
+ }], lazy: [{
1934
+ type: Input,
1935
+ args: [{ transform: booleanAttribute }]
1936
+ }], virtualScroll: [{
1937
+ type: Input,
1938
+ args: [{ transform: booleanAttribute }]
1939
+ }], virtualScrollItemSize: [{
1940
+ type: Input,
1941
+ args: [{ transform: numberAttribute }]
1942
+ }], virtualScrollOptions: [{
1943
+ type: Input
1944
+ }], scrollHeight: [{
1945
+ type: Input
1946
+ }], tabindex: [{
1947
+ type: Input,
1948
+ args: [{ transform: numberAttribute }]
1949
+ }], multiple: [{
1950
+ type: Input,
1951
+ args: [{ transform: booleanAttribute }]
1952
+ }], styleClass: [{
1953
+ type: Input
1954
+ }], listStyle: [{
1955
+ type: Input
1956
+ }], listStyleClass: [{
1957
+ type: Input
1958
+ }], readonly: [{
1959
+ type: Input,
1960
+ args: [{ transform: booleanAttribute }]
1961
+ }], checkbox: [{
1962
+ type: Input,
1963
+ args: [{ transform: booleanAttribute }]
1964
+ }], filter: [{
1965
+ type: Input,
1966
+ args: [{ transform: booleanAttribute }]
1967
+ }], filterBy: [{
1968
+ type: Input
1969
+ }], filterMatchMode: [{
1970
+ type: Input
1971
+ }], filterLocale: [{
1972
+ type: Input
1973
+ }], metaKeySelection: [{
1974
+ type: Input,
1975
+ args: [{ transform: booleanAttribute }]
1976
+ }], dataKey: [{
1977
+ type: Input
1978
+ }], showToggleAll: [{
1979
+ type: Input,
1980
+ args: [{ transform: booleanAttribute }]
1981
+ }], optionLabel: [{
1982
+ type: Input
1983
+ }], optionValue: [{
1984
+ type: Input
1985
+ }], optionGroupChildren: [{
1986
+ type: Input
1987
+ }], optionGroupLabel: [{
1988
+ type: Input
1989
+ }], optionDisabled: [{
1990
+ type: Input
1991
+ }], ariaFilterLabel: [{
1992
+ type: Input
1993
+ }], filterPlaceHolder: [{
1994
+ type: Input
1995
+ }], emptyFilterMessage: [{
1996
+ type: Input
1997
+ }], emptyMessage: [{
1998
+ type: Input
1999
+ }], group: [{
2000
+ type: Input,
2001
+ args: [{ transform: booleanAttribute }]
2002
+ }], options: [{
2003
+ type: Input
2004
+ }], filterValue: [{
2005
+ type: Input
2006
+ }], selectAll: [{
2007
+ type: Input
2008
+ }], striped: [{
2009
+ type: Input,
2010
+ args: [{ transform: booleanAttribute }]
2011
+ }], highlightOnSelect: [{
2012
+ type: Input,
2013
+ args: [{ transform: booleanAttribute }]
2014
+ }], checkmark: [{
2015
+ type: Input,
2016
+ args: [{ transform: booleanAttribute }]
2017
+ }], dragdrop: [{
2018
+ type: Input,
2019
+ args: [{ transform: booleanAttribute }]
2020
+ }], dropListData: [{
2021
+ type: Input
2022
+ }], fluid: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluid", required: false }] }], onChange: [{
2023
+ type: Output
2024
+ }], onClick: [{
2025
+ type: Output
2026
+ }], onDblClick: [{
2027
+ type: Output
2028
+ }], onFilter: [{
2029
+ type: Output
2030
+ }], onFocus: [{
2031
+ type: Output
2032
+ }], onBlur: [{
2033
+ type: Output
2034
+ }], onSelectAllChange: [{
2035
+ type: Output
2036
+ }], onLazyLoad: [{
2037
+ type: Output
2038
+ }], onDrop: [{
2039
+ type: Output
2040
+ }], headerCheckboxViewChild: [{
2041
+ type: ViewChild,
2042
+ args: ['headerchkbox']
2043
+ }], filterViewChild: [{
2044
+ type: ViewChild,
2045
+ args: ['filter']
2046
+ }], lastHiddenFocusableElement: [{
2047
+ type: ViewChild,
2048
+ args: ['lastHiddenFocusableElement']
2049
+ }], firstHiddenFocusableElement: [{
2050
+ type: ViewChild,
2051
+ args: ['firstHiddenFocusableElement']
2052
+ }], scroller: [{
2053
+ type: ViewChild,
2054
+ args: ['scroller']
2055
+ }], listViewChild: [{
2056
+ type: ViewChild,
2057
+ args: ['list']
2058
+ }], containerViewChild: [{
2059
+ type: ViewChild,
2060
+ args: ['container']
2061
+ }], headerFacet: [{
2062
+ type: ContentChild,
2063
+ args: [Header]
2064
+ }], footerFacet: [{
2065
+ type: ContentChild,
2066
+ args: [Footer]
2067
+ }], itemTemplate: [{
2068
+ type: ContentChild,
2069
+ args: ['item', { descendants: false }]
2070
+ }], groupTemplate: [{
2071
+ type: ContentChild,
2072
+ args: ['group', { descendants: false }]
2073
+ }], headerTemplate: [{
2074
+ type: ContentChild,
2075
+ args: ['header', { descendants: false }]
2076
+ }], filterTemplate: [{
2077
+ type: ContentChild,
2078
+ args: ['filter', { descendants: false }]
2079
+ }], footerTemplate: [{
2080
+ type: ContentChild,
2081
+ args: ['footer', { descendants: false }]
2082
+ }], emptyFilterTemplate: [{
2083
+ type: ContentChild,
2084
+ args: ['emptyfilter', { descendants: false }]
2085
+ }], emptyTemplate: [{
2086
+ type: ContentChild,
2087
+ args: ['empty', { descendants: false }]
2088
+ }], filterIconTemplate: [{
2089
+ type: ContentChild,
2090
+ args: ['filtericon', { descendants: false }]
2091
+ }], checkIconTemplate: [{
2092
+ type: ContentChild,
2093
+ args: ['checkicon', { descendants: false }]
2094
+ }], checkmarkTemplate: [{
2095
+ type: ContentChild,
2096
+ args: ['checkmark', { descendants: false }]
2097
+ }], loaderTemplate: [{
2098
+ type: ContentChild,
2099
+ args: ['loader', { descendants: false }]
2100
+ }], templates: [{
2101
+ type: ContentChildren,
2102
+ args: [PrimeTemplate]
2103
+ }], onHostFocusOut: [{
2104
+ type: HostListener,
2105
+ args: ['focusout', ['$event']]
2106
+ }] } });
2107
+ class ListboxModule {
2108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2109
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule], exports: [Listbox, SharedModule] });
2110
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule, SharedModule] });
2111
+ }
2112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ListboxModule, decorators: [{
2113
+ type: NgModule,
2114
+ args: [{
2115
+ imports: [Listbox, SharedModule],
2116
+ exports: [Listbox, SharedModule]
2117
+ }]
2118
+ }] });
2119
+
2120
+ /**
2121
+ * Generated bundle index. Do not edit.
2122
+ */
2123
+
2124
+ export { LISTBOX_VALUE_ACCESSOR, ListBoxStyle, Listbox, ListboxClasses, ListboxModule };
2125
+ //# sourceMappingURL=primeng-listbox.mjs.map