primenglab 22.0.0-beta.1

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