@ops-prime/primeng 0.0.0-stage → 21.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (792) hide show
  1. package/LICENSE.md +77 -0
  2. package/README.md +10 -2
  3. package/fesm2022/primeng-accordion.mjs +634 -0
  4. package/fesm2022/primeng-accordion.mjs.map +1 -0
  5. package/fesm2022/primeng-animateonscroll.mjs +175 -0
  6. package/fesm2022/primeng-animateonscroll.mjs.map +1 -0
  7. package/fesm2022/primeng-api.mjs +841 -0
  8. package/fesm2022/primeng-api.mjs.map +1 -0
  9. package/fesm2022/primeng-autocomplete.mjs +2310 -0
  10. package/fesm2022/primeng-autocomplete.mjs.map +1 -0
  11. package/fesm2022/primeng-autofocus.mjs +83 -0
  12. package/fesm2022/primeng-autofocus.mjs.map +1 -0
  13. package/fesm2022/primeng-avatar.mjs +214 -0
  14. package/fesm2022/primeng-avatar.mjs.map +1 -0
  15. package/fesm2022/primeng-avatargroup.mjs +106 -0
  16. package/fesm2022/primeng-avatargroup.mjs.map +1 -0
  17. package/fesm2022/primeng-badge.mjs +417 -0
  18. package/fesm2022/primeng-badge.mjs.map +1 -0
  19. package/fesm2022/primeng-base.mjs +124 -0
  20. package/fesm2022/primeng-base.mjs.map +1 -0
  21. package/fesm2022/primeng-basecomponent.mjs +435 -0
  22. package/fesm2022/primeng-basecomponent.mjs.map +1 -0
  23. package/fesm2022/primeng-baseeditableholder.mjs +67 -0
  24. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -0
  25. package/fesm2022/primeng-baseinput.mjs +85 -0
  26. package/fesm2022/primeng-baseinput.mjs.map +1 -0
  27. package/fesm2022/primeng-basemodelholder.mjs +25 -0
  28. package/fesm2022/primeng-basemodelholder.mjs.map +1 -0
  29. package/fesm2022/primeng-bind.mjs +94 -0
  30. package/fesm2022/primeng-bind.mjs.map +1 -0
  31. package/fesm2022/primeng-blockui.mjs +265 -0
  32. package/fesm2022/primeng-blockui.mjs.map +1 -0
  33. package/fesm2022/primeng-breadcrumb.mjs +526 -0
  34. package/fesm2022/primeng-breadcrumb.mjs.map +1 -0
  35. package/fesm2022/primeng-button.mjs +1028 -0
  36. package/fesm2022/primeng-button.mjs.map +1 -0
  37. package/fesm2022/primeng-buttongroup.mjs +110 -0
  38. package/fesm2022/primeng-buttongroup.mjs.map +1 -0
  39. package/fesm2022/primeng-card.mjs +312 -0
  40. package/fesm2022/primeng-card.mjs.map +1 -0
  41. package/fesm2022/primeng-carousel.mjs +1205 -0
  42. package/fesm2022/primeng-carousel.mjs.map +1 -0
  43. package/fesm2022/primeng-cascadeselect.mjs +1822 -0
  44. package/fesm2022/primeng-cascadeselect.mjs.map +1 -0
  45. package/fesm2022/primeng-chart.mjs +270 -0
  46. package/fesm2022/primeng-chart.mjs.map +1 -0
  47. package/fesm2022/primeng-checkbox.mjs +467 -0
  48. package/fesm2022/primeng-checkbox.mjs.map +1 -0
  49. package/fesm2022/primeng-chip.mjs +378 -0
  50. package/fesm2022/primeng-chip.mjs.map +1 -0
  51. package/fesm2022/primeng-classnames.mjs +48 -0
  52. package/fesm2022/primeng-classnames.mjs.map +1 -0
  53. package/fesm2022/primeng-colorpicker.mjs +805 -0
  54. package/fesm2022/primeng-colorpicker.mjs.map +1 -0
  55. package/fesm2022/primeng-config.mjs +299 -0
  56. package/fesm2022/primeng-config.mjs.map +1 -0
  57. package/fesm2022/primeng-confirmdialog.mjs +858 -0
  58. package/fesm2022/primeng-confirmdialog.mjs.map +1 -0
  59. package/fesm2022/primeng-confirmpopup.mjs +701 -0
  60. package/fesm2022/primeng-confirmpopup.mjs.map +1 -0
  61. package/fesm2022/primeng-contextmenu.mjs +1572 -0
  62. package/fesm2022/primeng-contextmenu.mjs.map +1 -0
  63. package/fesm2022/primeng-dataview.mjs +832 -0
  64. package/fesm2022/primeng-dataview.mjs.map +1 -0
  65. package/fesm2022/primeng-datepicker.mjs +4439 -0
  66. package/fesm2022/primeng-datepicker.mjs.map +1 -0
  67. package/fesm2022/primeng-dialog.mjs +1413 -0
  68. package/fesm2022/primeng-dialog.mjs.map +1 -0
  69. package/fesm2022/primeng-divider.mjs +162 -0
  70. package/fesm2022/primeng-divider.mjs.map +1 -0
  71. package/fesm2022/primeng-dock.mjs +590 -0
  72. package/fesm2022/primeng-dock.mjs.map +1 -0
  73. package/fesm2022/primeng-dom.mjs +778 -0
  74. package/fesm2022/primeng-dom.mjs.map +1 -0
  75. package/fesm2022/primeng-dragdrop.mjs +336 -0
  76. package/fesm2022/primeng-dragdrop.mjs.map +1 -0
  77. package/fesm2022/primeng-drawer.mjs +776 -0
  78. package/fesm2022/primeng-drawer.mjs.map +1 -0
  79. package/fesm2022/primeng-dynamicdialog.mjs +1075 -0
  80. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -0
  81. package/fesm2022/primeng-editor.mjs +524 -0
  82. package/fesm2022/primeng-editor.mjs.map +1 -0
  83. package/fesm2022/primeng-fieldset.mjs +456 -0
  84. package/fesm2022/primeng-fieldset.mjs.map +1 -0
  85. package/fesm2022/primeng-fileupload.mjs +1577 -0
  86. package/fesm2022/primeng-fileupload.mjs.map +1 -0
  87. package/fesm2022/primeng-floatlabel.mjs +113 -0
  88. package/fesm2022/primeng-floatlabel.mjs.map +1 -0
  89. package/fesm2022/primeng-fluid.mjs +89 -0
  90. package/fesm2022/primeng-fluid.mjs.map +1 -0
  91. package/fesm2022/primeng-focustrap.mjs +108 -0
  92. package/fesm2022/primeng-focustrap.mjs.map +1 -0
  93. package/fesm2022/primeng-galleria.mjs +2135 -0
  94. package/fesm2022/primeng-galleria.mjs.map +1 -0
  95. package/fesm2022/primeng-iconfield.mjs +114 -0
  96. package/fesm2022/primeng-iconfield.mjs.map +1 -0
  97. package/fesm2022/primeng-icons-angledoubledown.mjs +37 -0
  98. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -0
  99. package/fesm2022/primeng-icons-angledoubleleft.mjs +37 -0
  100. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -0
  101. package/fesm2022/primeng-icons-angledoubleright.mjs +37 -0
  102. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -0
  103. package/fesm2022/primeng-icons-angledoubleup.mjs +37 -0
  104. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -0
  105. package/fesm2022/primeng-icons-angledown.mjs +33 -0
  106. package/fesm2022/primeng-icons-angledown.mjs.map +1 -0
  107. package/fesm2022/primeng-icons-angleleft.mjs +33 -0
  108. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -0
  109. package/fesm2022/primeng-icons-angleright.mjs +33 -0
  110. package/fesm2022/primeng-icons-angleright.mjs.map +1 -0
  111. package/fesm2022/primeng-icons-angleup.mjs +33 -0
  112. package/fesm2022/primeng-icons-angleup.mjs.map +1 -0
  113. package/fesm2022/primeng-icons-arrowdown.mjs +56 -0
  114. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -0
  115. package/fesm2022/primeng-icons-arrowdownleft.mjs +33 -0
  116. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -0
  117. package/fesm2022/primeng-icons-arrowdownright.mjs +33 -0
  118. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -0
  119. package/fesm2022/primeng-icons-arrowleft.mjs +56 -0
  120. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -0
  121. package/fesm2022/primeng-icons-arrowright.mjs +37 -0
  122. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -0
  123. package/fesm2022/primeng-icons-arrowup.mjs +56 -0
  124. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -0
  125. package/fesm2022/primeng-icons-ban.mjs +52 -0
  126. package/fesm2022/primeng-icons-ban.mjs.map +1 -0
  127. package/fesm2022/primeng-icons-bars.mjs +37 -0
  128. package/fesm2022/primeng-icons-bars.mjs.map +1 -0
  129. package/fesm2022/primeng-icons-baseicon.mjs +103 -0
  130. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -0
  131. package/fesm2022/primeng-icons-blank.mjs +23 -0
  132. package/fesm2022/primeng-icons-blank.mjs.map +1 -0
  133. package/fesm2022/primeng-icons-calendar.mjs +33 -0
  134. package/fesm2022/primeng-icons-calendar.mjs.map +1 -0
  135. package/fesm2022/primeng-icons-caretleft.mjs +33 -0
  136. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -0
  137. package/fesm2022/primeng-icons-caretright.mjs +33 -0
  138. package/fesm2022/primeng-icons-caretright.mjs.map +1 -0
  139. package/fesm2022/primeng-icons-check.mjs +33 -0
  140. package/fesm2022/primeng-icons-check.mjs.map +1 -0
  141. package/fesm2022/primeng-icons-chevrondown.mjs +33 -0
  142. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -0
  143. package/fesm2022/primeng-icons-chevronleft.mjs +33 -0
  144. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -0
  145. package/fesm2022/primeng-icons-chevronright.mjs +33 -0
  146. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -0
  147. package/fesm2022/primeng-icons-chevronup.mjs +33 -0
  148. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -0
  149. package/fesm2022/primeng-icons-exclamationtriangle.mjs +68 -0
  150. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -0
  151. package/fesm2022/primeng-icons-eye.mjs +37 -0
  152. package/fesm2022/primeng-icons-eye.mjs.map +1 -0
  153. package/fesm2022/primeng-icons-eyeslash.mjs +56 -0
  154. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -0
  155. package/fesm2022/primeng-icons-filter.mjs +52 -0
  156. package/fesm2022/primeng-icons-filter.mjs.map +1 -0
  157. package/fesm2022/primeng-icons-filterfill.mjs +33 -0
  158. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -0
  159. package/fesm2022/primeng-icons-filterslash.mjs +56 -0
  160. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -0
  161. package/fesm2022/primeng-icons-home.mjs +56 -0
  162. package/fesm2022/primeng-icons-home.mjs.map +1 -0
  163. package/fesm2022/primeng-icons-infocircle.mjs +56 -0
  164. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -0
  165. package/fesm2022/primeng-icons-minus.mjs +33 -0
  166. package/fesm2022/primeng-icons-minus.mjs.map +1 -0
  167. package/fesm2022/primeng-icons-pencil.mjs +52 -0
  168. package/fesm2022/primeng-icons-pencil.mjs.map +1 -0
  169. package/fesm2022/primeng-icons-plus.mjs +52 -0
  170. package/fesm2022/primeng-icons-plus.mjs.map +1 -0
  171. package/fesm2022/primeng-icons-refresh.mjs +56 -0
  172. package/fesm2022/primeng-icons-refresh.mjs.map +1 -0
  173. package/fesm2022/primeng-icons-search.mjs +56 -0
  174. package/fesm2022/primeng-icons-search.mjs.map +1 -0
  175. package/fesm2022/primeng-icons-searchminus.mjs +56 -0
  176. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -0
  177. package/fesm2022/primeng-icons-searchplus.mjs +56 -0
  178. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -0
  179. package/fesm2022/primeng-icons-sortalt.mjs +64 -0
  180. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -0
  181. package/fesm2022/primeng-icons-sortamountdown.mjs +52 -0
  182. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -0
  183. package/fesm2022/primeng-icons-sortamountupalt.mjs +52 -0
  184. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -0
  185. package/fesm2022/primeng-icons-spinner.mjs +52 -0
  186. package/fesm2022/primeng-icons-spinner.mjs.map +1 -0
  187. package/fesm2022/primeng-icons-star.mjs +52 -0
  188. package/fesm2022/primeng-icons-star.mjs.map +1 -0
  189. package/fesm2022/primeng-icons-starfill.mjs +52 -0
  190. package/fesm2022/primeng-icons-starfill.mjs.map +1 -0
  191. package/fesm2022/primeng-icons-thlarge.mjs +56 -0
  192. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -0
  193. package/fesm2022/primeng-icons-times.mjs +33 -0
  194. package/fesm2022/primeng-icons-times.mjs.map +1 -0
  195. package/fesm2022/primeng-icons-timescircle.mjs +56 -0
  196. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -0
  197. package/fesm2022/primeng-icons-trash.mjs +56 -0
  198. package/fesm2022/primeng-icons-trash.mjs.map +1 -0
  199. package/fesm2022/primeng-icons-undo.mjs +56 -0
  200. package/fesm2022/primeng-icons-undo.mjs.map +1 -0
  201. package/fesm2022/primeng-icons-upload.mjs +56 -0
  202. package/fesm2022/primeng-icons-upload.mjs.map +1 -0
  203. package/fesm2022/primeng-icons-windowmaximize.mjs +56 -0
  204. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -0
  205. package/fesm2022/primeng-icons-windowminimize.mjs +56 -0
  206. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -0
  207. package/fesm2022/primeng-icons.mjs +63 -0
  208. package/fesm2022/primeng-icons.mjs.map +1 -0
  209. package/fesm2022/primeng-iftalabel.mjs +100 -0
  210. package/fesm2022/primeng-iftalabel.mjs.map +1 -0
  211. package/fesm2022/primeng-image.mjs +802 -0
  212. package/fesm2022/primeng-image.mjs.map +1 -0
  213. package/fesm2022/primeng-imagecompare.mjs +200 -0
  214. package/fesm2022/primeng-imagecompare.mjs.map +1 -0
  215. package/fesm2022/primeng-inplace.mjs +330 -0
  216. package/fesm2022/primeng-inplace.mjs.map +1 -0
  217. package/fesm2022/primeng-inputgroup.mjs +136 -0
  218. package/fesm2022/primeng-inputgroup.mjs.map +1 -0
  219. package/fesm2022/primeng-inputgroupaddon.mjs +90 -0
  220. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -0
  221. package/fesm2022/primeng-inputicon.mjs +84 -0
  222. package/fesm2022/primeng-inputicon.mjs.map +1 -0
  223. package/fesm2022/primeng-inputmask.mjs +1509 -0
  224. package/fesm2022/primeng-inputmask.mjs.map +1 -0
  225. package/fesm2022/primeng-inputnumber.mjs +1675 -0
  226. package/fesm2022/primeng-inputnumber.mjs.map +1 -0
  227. package/fesm2022/primeng-inputotp.mjs +464 -0
  228. package/fesm2022/primeng-inputotp.mjs.map +1 -0
  229. package/fesm2022/primeng-inputtext.mjs +196 -0
  230. package/fesm2022/primeng-inputtext.mjs.map +1 -0
  231. package/fesm2022/primeng-keyfilter.mjs +276 -0
  232. package/fesm2022/primeng-keyfilter.mjs.map +1 -0
  233. package/fesm2022/primeng-knob.mjs +500 -0
  234. package/fesm2022/primeng-knob.mjs.map +1 -0
  235. package/fesm2022/primeng-listbox.mjs +2125 -0
  236. package/fesm2022/primeng-listbox.mjs.map +1 -0
  237. package/fesm2022/primeng-megamenu.mjs +1598 -0
  238. package/fesm2022/primeng-megamenu.mjs.map +1 -0
  239. package/fesm2022/primeng-menu.mjs +1150 -0
  240. package/fesm2022/primeng-menu.mjs.map +1 -0
  241. package/fesm2022/primeng-menubar.mjs +1538 -0
  242. package/fesm2022/primeng-menubar.mjs.map +1 -0
  243. package/fesm2022/primeng-message.mjs +408 -0
  244. package/fesm2022/primeng-message.mjs.map +1 -0
  245. package/fesm2022/primeng-metergroup.mjs +496 -0
  246. package/fesm2022/primeng-metergroup.mjs.map +1 -0
  247. package/fesm2022/primeng-motion.mjs +700 -0
  248. package/fesm2022/primeng-motion.mjs.map +1 -0
  249. package/fesm2022/primeng-multiselect.mjs +2690 -0
  250. package/fesm2022/primeng-multiselect.mjs.map +1 -0
  251. package/fesm2022/primeng-orderlist.mjs +1086 -0
  252. package/fesm2022/primeng-orderlist.mjs.map +1 -0
  253. package/fesm2022/primeng-organizationchart.mjs +545 -0
  254. package/fesm2022/primeng-organizationchart.mjs.map +1 -0
  255. package/fesm2022/primeng-overlay.mjs +879 -0
  256. package/fesm2022/primeng-overlay.mjs.map +1 -0
  257. package/fesm2022/primeng-overlaybadge.mjs +161 -0
  258. package/fesm2022/primeng-overlaybadge.mjs.map +1 -0
  259. package/fesm2022/primeng-paginator.mjs +823 -0
  260. package/fesm2022/primeng-paginator.mjs.map +1 -0
  261. package/fesm2022/primeng-panel.mjs +568 -0
  262. package/fesm2022/primeng-panel.mjs.map +1 -0
  263. package/fesm2022/primeng-panelmenu.mjs +1619 -0
  264. package/fesm2022/primeng-panelmenu.mjs.map +1 -0
  265. package/fesm2022/primeng-passthrough.mjs +21 -0
  266. package/fesm2022/primeng-passthrough.mjs.map +1 -0
  267. package/fesm2022/primeng-password.mjs +1175 -0
  268. package/fesm2022/primeng-password.mjs.map +1 -0
  269. package/fesm2022/primeng-picklist.mjs +2235 -0
  270. package/fesm2022/primeng-picklist.mjs.map +1 -0
  271. package/fesm2022/primeng-popover.mjs +528 -0
  272. package/fesm2022/primeng-popover.mjs.map +1 -0
  273. package/fesm2022/primeng-progressbar.mjs +216 -0
  274. package/fesm2022/primeng-progressbar.mjs.map +1 -0
  275. package/fesm2022/primeng-progressspinner.mjs +148 -0
  276. package/fesm2022/primeng-progressspinner.mjs.map +1 -0
  277. package/fesm2022/primeng-radiobutton.mjs +380 -0
  278. package/fesm2022/primeng-radiobutton.mjs.map +1 -0
  279. package/fesm2022/primeng-rating.mjs +410 -0
  280. package/fesm2022/primeng-rating.mjs.map +1 -0
  281. package/fesm2022/primeng-ripple.mjs +196 -0
  282. package/fesm2022/primeng-ripple.mjs.map +1 -0
  283. package/fesm2022/primeng-scroller.mjs +1327 -0
  284. package/fesm2022/primeng-scroller.mjs.map +1 -0
  285. package/fesm2022/primeng-scrollpanel.mjs +572 -0
  286. package/fesm2022/primeng-scrollpanel.mjs.map +1 -0
  287. package/fesm2022/primeng-scrolltop.mjs +347 -0
  288. package/fesm2022/primeng-scrolltop.mjs.map +1 -0
  289. package/fesm2022/primeng-select.mjs +2399 -0
  290. package/fesm2022/primeng-select.mjs.map +1 -0
  291. package/fesm2022/primeng-selectbutton.mjs +435 -0
  292. package/fesm2022/primeng-selectbutton.mjs.map +1 -0
  293. package/fesm2022/primeng-skeleton.mjs +170 -0
  294. package/fesm2022/primeng-skeleton.mjs.map +1 -0
  295. package/fesm2022/primeng-slider.mjs +889 -0
  296. package/fesm2022/primeng-slider.mjs.map +1 -0
  297. package/fesm2022/primeng-speeddial.mjs +937 -0
  298. package/fesm2022/primeng-speeddial.mjs.map +1 -0
  299. package/fesm2022/primeng-splitbutton.mjs +640 -0
  300. package/fesm2022/primeng-splitbutton.mjs.map +1 -0
  301. package/fesm2022/primeng-splitter.mjs +601 -0
  302. package/fesm2022/primeng-splitter.mjs.map +1 -0
  303. package/fesm2022/primeng-stepper.mjs +745 -0
  304. package/fesm2022/primeng-stepper.mjs.map +1 -0
  305. package/fesm2022/primeng-steps.mjs +425 -0
  306. package/fesm2022/primeng-steps.mjs.map +1 -0
  307. package/fesm2022/primeng-styleclass.mjs +354 -0
  308. package/fesm2022/primeng-styleclass.mjs.map +1 -0
  309. package/fesm2022/primeng-table.mjs +7805 -0
  310. package/fesm2022/primeng-table.mjs.map +1 -0
  311. package/fesm2022/primeng-tabs.mjs +911 -0
  312. package/fesm2022/primeng-tabs.mjs.map +1 -0
  313. package/fesm2022/primeng-tag.mjs +198 -0
  314. package/fesm2022/primeng-tag.mjs.map +1 -0
  315. package/fesm2022/primeng-terminal.mjs +260 -0
  316. package/fesm2022/primeng-terminal.mjs.map +1 -0
  317. package/fesm2022/primeng-textarea.mjs +225 -0
  318. package/fesm2022/primeng-textarea.mjs.map +1 -0
  319. package/fesm2022/primeng-tieredmenu.mjs +1625 -0
  320. package/fesm2022/primeng-tieredmenu.mjs.map +1 -0
  321. package/fesm2022/primeng-timeline.mjs +250 -0
  322. package/fesm2022/primeng-timeline.mjs.map +1 -0
  323. package/fesm2022/primeng-toast.mjs +784 -0
  324. package/fesm2022/primeng-toast.mjs.map +1 -0
  325. package/fesm2022/primeng-togglebutton.mjs +393 -0
  326. package/fesm2022/primeng-togglebutton.mjs.map +1 -0
  327. package/fesm2022/primeng-toggleswitch.mjs +346 -0
  328. package/fesm2022/primeng-toggleswitch.mjs.map +1 -0
  329. package/fesm2022/primeng-toolbar.mjs +198 -0
  330. package/fesm2022/primeng-toolbar.mjs.map +1 -0
  331. package/fesm2022/primeng-tooltip.mjs +842 -0
  332. package/fesm2022/primeng-tooltip.mjs.map +1 -0
  333. package/fesm2022/primeng-tree.mjs +2282 -0
  334. package/fesm2022/primeng-tree.mjs.map +1 -0
  335. package/fesm2022/primeng-treeselect.mjs +1408 -0
  336. package/fesm2022/primeng-treeselect.mjs.map +1 -0
  337. package/fesm2022/primeng-treetable.mjs +5164 -0
  338. package/fesm2022/primeng-treetable.mjs.map +1 -0
  339. package/fesm2022/primeng-ts-helpers.mjs +4 -0
  340. package/fesm2022/primeng-ts-helpers.mjs.map +1 -0
  341. package/fesm2022/primeng-types-accordion.mjs +4 -0
  342. package/fesm2022/primeng-types-accordion.mjs.map +1 -0
  343. package/fesm2022/primeng-types-autocomplete.mjs +4 -0
  344. package/fesm2022/primeng-types-autocomplete.mjs.map +1 -0
  345. package/fesm2022/primeng-types-avatar.mjs +4 -0
  346. package/fesm2022/primeng-types-avatar.mjs.map +1 -0
  347. package/fesm2022/primeng-types-avatargroup.mjs +4 -0
  348. package/fesm2022/primeng-types-avatargroup.mjs.map +1 -0
  349. package/fesm2022/primeng-types-badge.mjs +4 -0
  350. package/fesm2022/primeng-types-badge.mjs.map +1 -0
  351. package/fesm2022/primeng-types-blockui.mjs +4 -0
  352. package/fesm2022/primeng-types-blockui.mjs.map +1 -0
  353. package/fesm2022/primeng-types-breadcrumb.mjs +4 -0
  354. package/fesm2022/primeng-types-breadcrumb.mjs.map +1 -0
  355. package/fesm2022/primeng-types-button.mjs +4 -0
  356. package/fesm2022/primeng-types-button.mjs.map +1 -0
  357. package/fesm2022/primeng-types-card.mjs +4 -0
  358. package/fesm2022/primeng-types-card.mjs.map +1 -0
  359. package/fesm2022/primeng-types-carousel.mjs +4 -0
  360. package/fesm2022/primeng-types-carousel.mjs.map +1 -0
  361. package/fesm2022/primeng-types-cascadeselect.mjs +4 -0
  362. package/fesm2022/primeng-types-cascadeselect.mjs.map +1 -0
  363. package/fesm2022/primeng-types-chart.mjs +4 -0
  364. package/fesm2022/primeng-types-chart.mjs.map +1 -0
  365. package/fesm2022/primeng-types-checkbox.mjs +4 -0
  366. package/fesm2022/primeng-types-checkbox.mjs.map +1 -0
  367. package/fesm2022/primeng-types-chip.mjs +4 -0
  368. package/fesm2022/primeng-types-chip.mjs.map +1 -0
  369. package/fesm2022/primeng-types-colorpicker.mjs +4 -0
  370. package/fesm2022/primeng-types-colorpicker.mjs.map +1 -0
  371. package/fesm2022/primeng-types-confirmdialog.mjs +4 -0
  372. package/fesm2022/primeng-types-confirmdialog.mjs.map +1 -0
  373. package/fesm2022/primeng-types-confirmpopup.mjs +4 -0
  374. package/fesm2022/primeng-types-confirmpopup.mjs.map +1 -0
  375. package/fesm2022/primeng-types-contextmenu.mjs +4 -0
  376. package/fesm2022/primeng-types-contextmenu.mjs.map +1 -0
  377. package/fesm2022/primeng-types-dataview.mjs +4 -0
  378. package/fesm2022/primeng-types-dataview.mjs.map +1 -0
  379. package/fesm2022/primeng-types-datepicker.mjs +4 -0
  380. package/fesm2022/primeng-types-datepicker.mjs.map +1 -0
  381. package/fesm2022/primeng-types-dialog.mjs +4 -0
  382. package/fesm2022/primeng-types-dialog.mjs.map +1 -0
  383. package/fesm2022/primeng-types-divider.mjs +4 -0
  384. package/fesm2022/primeng-types-divider.mjs.map +1 -0
  385. package/fesm2022/primeng-types-dock.mjs +4 -0
  386. package/fesm2022/primeng-types-dock.mjs.map +1 -0
  387. package/fesm2022/primeng-types-drawer.mjs +4 -0
  388. package/fesm2022/primeng-types-drawer.mjs.map +1 -0
  389. package/fesm2022/primeng-types-editor.mjs +4 -0
  390. package/fesm2022/primeng-types-editor.mjs.map +1 -0
  391. package/fesm2022/primeng-types-fieldset.mjs +4 -0
  392. package/fesm2022/primeng-types-fieldset.mjs.map +1 -0
  393. package/fesm2022/primeng-types-fileupload.mjs +4 -0
  394. package/fesm2022/primeng-types-fileupload.mjs.map +1 -0
  395. package/fesm2022/primeng-types-floatlabel.mjs +4 -0
  396. package/fesm2022/primeng-types-floatlabel.mjs.map +1 -0
  397. package/fesm2022/primeng-types-fluid.mjs +4 -0
  398. package/fesm2022/primeng-types-fluid.mjs.map +1 -0
  399. package/fesm2022/primeng-types-galleria.mjs +4 -0
  400. package/fesm2022/primeng-types-galleria.mjs.map +1 -0
  401. package/fesm2022/primeng-types-iconfield.mjs +4 -0
  402. package/fesm2022/primeng-types-iconfield.mjs.map +1 -0
  403. package/fesm2022/primeng-types-iftalabel.mjs +4 -0
  404. package/fesm2022/primeng-types-iftalabel.mjs.map +1 -0
  405. package/fesm2022/primeng-types-image.mjs +4 -0
  406. package/fesm2022/primeng-types-image.mjs.map +1 -0
  407. package/fesm2022/primeng-types-imagecompare.mjs +4 -0
  408. package/fesm2022/primeng-types-imagecompare.mjs.map +1 -0
  409. package/fesm2022/primeng-types-inplace.mjs +4 -0
  410. package/fesm2022/primeng-types-inplace.mjs.map +1 -0
  411. package/fesm2022/primeng-types-inputgroup.mjs +4 -0
  412. package/fesm2022/primeng-types-inputgroup.mjs.map +1 -0
  413. package/fesm2022/primeng-types-inputgroupaddon.mjs +4 -0
  414. package/fesm2022/primeng-types-inputgroupaddon.mjs.map +1 -0
  415. package/fesm2022/primeng-types-inputicon.mjs +4 -0
  416. package/fesm2022/primeng-types-inputicon.mjs.map +1 -0
  417. package/fesm2022/primeng-types-inputmask.mjs +4 -0
  418. package/fesm2022/primeng-types-inputmask.mjs.map +1 -0
  419. package/fesm2022/primeng-types-inputnumber.mjs +4 -0
  420. package/fesm2022/primeng-types-inputnumber.mjs.map +1 -0
  421. package/fesm2022/primeng-types-inputotp.mjs +4 -0
  422. package/fesm2022/primeng-types-inputotp.mjs.map +1 -0
  423. package/fesm2022/primeng-types-inputtext.mjs +4 -0
  424. package/fesm2022/primeng-types-inputtext.mjs.map +1 -0
  425. package/fesm2022/primeng-types-knob.mjs +4 -0
  426. package/fesm2022/primeng-types-knob.mjs.map +1 -0
  427. package/fesm2022/primeng-types-listbox.mjs +4 -0
  428. package/fesm2022/primeng-types-listbox.mjs.map +1 -0
  429. package/fesm2022/primeng-types-megamenu.mjs +4 -0
  430. package/fesm2022/primeng-types-megamenu.mjs.map +1 -0
  431. package/fesm2022/primeng-types-menu.mjs +4 -0
  432. package/fesm2022/primeng-types-menu.mjs.map +1 -0
  433. package/fesm2022/primeng-types-menubar.mjs +4 -0
  434. package/fesm2022/primeng-types-menubar.mjs.map +1 -0
  435. package/fesm2022/primeng-types-message.mjs +4 -0
  436. package/fesm2022/primeng-types-message.mjs.map +1 -0
  437. package/fesm2022/primeng-types-metergroup.mjs +4 -0
  438. package/fesm2022/primeng-types-metergroup.mjs.map +1 -0
  439. package/fesm2022/primeng-types-motion.mjs +4 -0
  440. package/fesm2022/primeng-types-motion.mjs.map +1 -0
  441. package/fesm2022/primeng-types-multiselect.mjs +4 -0
  442. package/fesm2022/primeng-types-multiselect.mjs.map +1 -0
  443. package/fesm2022/primeng-types-orderlist.mjs +4 -0
  444. package/fesm2022/primeng-types-orderlist.mjs.map +1 -0
  445. package/fesm2022/primeng-types-organizationchart.mjs +4 -0
  446. package/fesm2022/primeng-types-organizationchart.mjs.map +1 -0
  447. package/fesm2022/primeng-types-overlay.mjs +4 -0
  448. package/fesm2022/primeng-types-overlay.mjs.map +1 -0
  449. package/fesm2022/primeng-types-overlaybadge.mjs +4 -0
  450. package/fesm2022/primeng-types-overlaybadge.mjs.map +1 -0
  451. package/fesm2022/primeng-types-paginator.mjs +4 -0
  452. package/fesm2022/primeng-types-paginator.mjs.map +1 -0
  453. package/fesm2022/primeng-types-panel.mjs +4 -0
  454. package/fesm2022/primeng-types-panel.mjs.map +1 -0
  455. package/fesm2022/primeng-types-panelmenu.mjs +4 -0
  456. package/fesm2022/primeng-types-panelmenu.mjs.map +1 -0
  457. package/fesm2022/primeng-types-password.mjs +4 -0
  458. package/fesm2022/primeng-types-password.mjs.map +1 -0
  459. package/fesm2022/primeng-types-picklist.mjs +4 -0
  460. package/fesm2022/primeng-types-picklist.mjs.map +1 -0
  461. package/fesm2022/primeng-types-popover.mjs +4 -0
  462. package/fesm2022/primeng-types-popover.mjs.map +1 -0
  463. package/fesm2022/primeng-types-progressbar.mjs +4 -0
  464. package/fesm2022/primeng-types-progressbar.mjs.map +1 -0
  465. package/fesm2022/primeng-types-progressspinner.mjs +4 -0
  466. package/fesm2022/primeng-types-progressspinner.mjs.map +1 -0
  467. package/fesm2022/primeng-types-radiobutton.mjs +4 -0
  468. package/fesm2022/primeng-types-radiobutton.mjs.map +1 -0
  469. package/fesm2022/primeng-types-rating.mjs +4 -0
  470. package/fesm2022/primeng-types-rating.mjs.map +1 -0
  471. package/fesm2022/primeng-types-scroller.mjs +4 -0
  472. package/fesm2022/primeng-types-scroller.mjs.map +1 -0
  473. package/fesm2022/primeng-types-scrollpanel.mjs +4 -0
  474. package/fesm2022/primeng-types-scrollpanel.mjs.map +1 -0
  475. package/fesm2022/primeng-types-scrolltop.mjs +4 -0
  476. package/fesm2022/primeng-types-scrolltop.mjs.map +1 -0
  477. package/fesm2022/primeng-types-select.mjs +4 -0
  478. package/fesm2022/primeng-types-select.mjs.map +1 -0
  479. package/fesm2022/primeng-types-selectbutton.mjs +4 -0
  480. package/fesm2022/primeng-types-selectbutton.mjs.map +1 -0
  481. package/fesm2022/primeng-types-skeleton.mjs +4 -0
  482. package/fesm2022/primeng-types-skeleton.mjs.map +1 -0
  483. package/fesm2022/primeng-types-slider.mjs +4 -0
  484. package/fesm2022/primeng-types-slider.mjs.map +1 -0
  485. package/fesm2022/primeng-types-speeddial.mjs +4 -0
  486. package/fesm2022/primeng-types-speeddial.mjs.map +1 -0
  487. package/fesm2022/primeng-types-splitbutton.mjs +4 -0
  488. package/fesm2022/primeng-types-splitbutton.mjs.map +1 -0
  489. package/fesm2022/primeng-types-splitter.mjs +4 -0
  490. package/fesm2022/primeng-types-splitter.mjs.map +1 -0
  491. package/fesm2022/primeng-types-stepper.mjs +4 -0
  492. package/fesm2022/primeng-types-stepper.mjs.map +1 -0
  493. package/fesm2022/primeng-types-table.mjs +4 -0
  494. package/fesm2022/primeng-types-table.mjs.map +1 -0
  495. package/fesm2022/primeng-types-tabs.mjs +4 -0
  496. package/fesm2022/primeng-types-tabs.mjs.map +1 -0
  497. package/fesm2022/primeng-types-tag.mjs +4 -0
  498. package/fesm2022/primeng-types-tag.mjs.map +1 -0
  499. package/fesm2022/primeng-types-terminal.mjs +4 -0
  500. package/fesm2022/primeng-types-terminal.mjs.map +1 -0
  501. package/fesm2022/primeng-types-textarea.mjs +4 -0
  502. package/fesm2022/primeng-types-textarea.mjs.map +1 -0
  503. package/fesm2022/primeng-types-tieredmenu.mjs +4 -0
  504. package/fesm2022/primeng-types-tieredmenu.mjs.map +1 -0
  505. package/fesm2022/primeng-types-timeline.mjs +4 -0
  506. package/fesm2022/primeng-types-timeline.mjs.map +1 -0
  507. package/fesm2022/primeng-types-toast.mjs +4 -0
  508. package/fesm2022/primeng-types-toast.mjs.map +1 -0
  509. package/fesm2022/primeng-types-togglebutton.mjs +4 -0
  510. package/fesm2022/primeng-types-togglebutton.mjs.map +1 -0
  511. package/fesm2022/primeng-types-toggleswitch.mjs +4 -0
  512. package/fesm2022/primeng-types-toggleswitch.mjs.map +1 -0
  513. package/fesm2022/primeng-types-toolbar.mjs +4 -0
  514. package/fesm2022/primeng-types-toolbar.mjs.map +1 -0
  515. package/fesm2022/primeng-types-tooltip.mjs +4 -0
  516. package/fesm2022/primeng-types-tooltip.mjs.map +1 -0
  517. package/fesm2022/primeng-types-tree.mjs +4 -0
  518. package/fesm2022/primeng-types-tree.mjs.map +1 -0
  519. package/fesm2022/primeng-types-treeselect.mjs +4 -0
  520. package/fesm2022/primeng-types-treeselect.mjs.map +1 -0
  521. package/fesm2022/primeng-types-treetable.mjs +4 -0
  522. package/fesm2022/primeng-types-treetable.mjs.map +1 -0
  523. package/fesm2022/primeng-usestyle.mjs +54 -0
  524. package/fesm2022/primeng-usestyle.mjs.map +1 -0
  525. package/fesm2022/primeng-utils.mjs +332 -0
  526. package/fesm2022/primeng-utils.mjs.map +1 -0
  527. package/fesm2022/primeng.mjs +6 -0
  528. package/fesm2022/primeng.mjs.map +1 -0
  529. package/package.json +1103 -4
  530. package/types/primeng-accordion.d.ts +289 -0
  531. package/types/primeng-animateonscroll.d.ts +70 -0
  532. package/types/primeng-api.d.ts +1976 -0
  533. package/types/primeng-autocomplete.d.ts +793 -0
  534. package/types/primeng-autofocus.d.ts +31 -0
  535. package/types/primeng-avatar.d.ts +140 -0
  536. package/types/primeng-avatargroup.d.ts +66 -0
  537. package/types/primeng-badge.d.ts +184 -0
  538. package/types/primeng-base.d.ts +58 -0
  539. package/types/primeng-basecomponent.d.ts +175 -0
  540. package/types/primeng-baseeditableholder.d.ts +45 -0
  541. package/types/primeng-baseinput.d.ts +73 -0
  542. package/types/primeng-basemodelholder.d.ts +12 -0
  543. package/types/primeng-bind.d.ts +38 -0
  544. package/types/primeng-blockui.d.ts +111 -0
  545. package/types/primeng-breadcrumb.d.ts +149 -0
  546. package/types/primeng-button.d.ts +491 -0
  547. package/types/primeng-buttongroup.d.ts +44 -0
  548. package/types/primeng-card.d.ts +157 -0
  549. package/types/primeng-carousel.d.ts +388 -0
  550. package/types/primeng-cascadeselect.d.ts +628 -0
  551. package/types/primeng-chart.d.ts +135 -0
  552. package/types/primeng-checkbox.d.ts +231 -0
  553. package/types/primeng-chip.d.ts +167 -0
  554. package/types/primeng-classnames.d.ts +32 -0
  555. package/types/primeng-colorpicker.d.ts +317 -0
  556. package/types/primeng-config.d.ts +268 -0
  557. package/types/primeng-confirmdialog.d.ts +360 -0
  558. package/types/primeng-confirmpopup.d.ts +236 -0
  559. package/types/primeng-contextmenu.d.ts +381 -0
  560. package/types/primeng-dataview.d.ts +379 -0
  561. package/types/primeng-datepicker.d.ts +1017 -0
  562. package/types/primeng-dialog.d.ts +555 -0
  563. package/types/primeng-divider.d.ts +122 -0
  564. package/types/primeng-dock.d.ts +195 -0
  565. package/types/primeng-dom.d.ts +109 -0
  566. package/types/primeng-dragdrop.d.ts +121 -0
  567. package/types/primeng-drawer.d.ts +303 -0
  568. package/types/primeng-dynamicdialog.d.ts +554 -0
  569. package/types/primeng-editor.d.ts +191 -0
  570. package/types/primeng-fieldset.d.ts +199 -0
  571. package/types/primeng-fileupload.d.ts +562 -0
  572. package/types/primeng-floatlabel.d.ts +67 -0
  573. package/types/primeng-fluid.d.ts +54 -0
  574. package/types/primeng-focustrap.d.ts +36 -0
  575. package/types/primeng-galleria.d.ts +694 -0
  576. package/types/primeng-iconfield.d.ts +73 -0
  577. package/types/primeng-icons-angledoubledown.d.ts +9 -0
  578. package/types/primeng-icons-angledoubleleft.d.ts +9 -0
  579. package/types/primeng-icons-angledoubleright.d.ts +9 -0
  580. package/types/primeng-icons-angledoubleup.d.ts +9 -0
  581. package/types/primeng-icons-angledown.d.ts +9 -0
  582. package/types/primeng-icons-angleleft.d.ts +9 -0
  583. package/types/primeng-icons-angleright.d.ts +9 -0
  584. package/types/primeng-icons-angleup.d.ts +9 -0
  585. package/types/primeng-icons-arrowdown.d.ts +11 -0
  586. package/types/primeng-icons-arrowdownleft.d.ts +9 -0
  587. package/types/primeng-icons-arrowdownright.d.ts +9 -0
  588. package/types/primeng-icons-arrowleft.d.ts +11 -0
  589. package/types/primeng-icons-arrowright.d.ts +9 -0
  590. package/types/primeng-icons-arrowup.d.ts +11 -0
  591. package/types/primeng-icons-ban.d.ts +11 -0
  592. package/types/primeng-icons-bars.d.ts +9 -0
  593. package/types/primeng-icons-baseicon.d.ts +33 -0
  594. package/types/primeng-icons-blank.d.ts +9 -0
  595. package/types/primeng-icons-calendar.d.ts +9 -0
  596. package/types/primeng-icons-caretleft.d.ts +9 -0
  597. package/types/primeng-icons-caretright.d.ts +9 -0
  598. package/types/primeng-icons-check.d.ts +9 -0
  599. package/types/primeng-icons-chevrondown.d.ts +9 -0
  600. package/types/primeng-icons-chevronleft.d.ts +9 -0
  601. package/types/primeng-icons-chevronright.d.ts +9 -0
  602. package/types/primeng-icons-chevronup.d.ts +9 -0
  603. package/types/primeng-icons-exclamationtriangle.d.ts +11 -0
  604. package/types/primeng-icons-eye.d.ts +9 -0
  605. package/types/primeng-icons-eyeslash.d.ts +11 -0
  606. package/types/primeng-icons-filter.d.ts +11 -0
  607. package/types/primeng-icons-filterfill.d.ts +9 -0
  608. package/types/primeng-icons-filterslash.d.ts +11 -0
  609. package/types/primeng-icons-home.d.ts +11 -0
  610. package/types/primeng-icons-infocircle.d.ts +11 -0
  611. package/types/primeng-icons-minus.d.ts +9 -0
  612. package/types/primeng-icons-pencil.d.ts +11 -0
  613. package/types/primeng-icons-plus.d.ts +11 -0
  614. package/types/primeng-icons-refresh.d.ts +11 -0
  615. package/types/primeng-icons-search.d.ts +11 -0
  616. package/types/primeng-icons-searchminus.d.ts +11 -0
  617. package/types/primeng-icons-searchplus.d.ts +11 -0
  618. package/types/primeng-icons-sortalt.d.ts +11 -0
  619. package/types/primeng-icons-sortamountdown.d.ts +11 -0
  620. package/types/primeng-icons-sortamountupalt.d.ts +11 -0
  621. package/types/primeng-icons-spinner.d.ts +11 -0
  622. package/types/primeng-icons-star.d.ts +11 -0
  623. package/types/primeng-icons-starfill.d.ts +11 -0
  624. package/types/primeng-icons-thlarge.d.ts +11 -0
  625. package/types/primeng-icons-times.d.ts +9 -0
  626. package/types/primeng-icons-timescircle.d.ts +11 -0
  627. package/types/primeng-icons-trash.d.ts +11 -0
  628. package/types/primeng-icons-undo.d.ts +11 -0
  629. package/types/primeng-icons-upload.d.ts +11 -0
  630. package/types/primeng-icons-windowmaximize.d.ts +11 -0
  631. package/types/primeng-icons-windowminimize.d.ts +11 -0
  632. package/types/primeng-icons.d.ts +53 -0
  633. package/types/primeng-iftalabel.d.ts +58 -0
  634. package/types/primeng-image.d.ts +349 -0
  635. package/types/primeng-imagecompare.d.ts +100 -0
  636. package/types/primeng-inplace.d.ts +171 -0
  637. package/types/primeng-inputgroup.d.ts +65 -0
  638. package/types/primeng-inputgroupaddon.d.ts +52 -0
  639. package/types/primeng-inputicon.d.ts +44 -0
  640. package/types/primeng-inputmask.d.ts +381 -0
  641. package/types/primeng-inputnumber.d.ts +436 -0
  642. package/types/primeng-inputotp.d.ts +179 -0
  643. package/types/primeng-inputtext.d.ts +117 -0
  644. package/types/primeng-keyfilter.d.ts +61 -0
  645. package/types/primeng-knob.d.ts +213 -0
  646. package/types/primeng-listbox.d.ts +675 -0
  647. package/types/primeng-megamenu.d.ts +392 -0
  648. package/types/primeng-menu.d.ts +364 -0
  649. package/types/primeng-menubar.d.ts +392 -0
  650. package/types/primeng-message.d.ts +213 -0
  651. package/types/primeng-metergroup.d.ts +209 -0
  652. package/types/primeng-motion.d.ts +398 -0
  653. package/types/primeng-multiselect.d.ts +903 -0
  654. package/types/primeng-orderlist.d.ts +375 -0
  655. package/types/primeng-organizationchart.d.ts +236 -0
  656. package/types/primeng-overlay.d.ts +355 -0
  657. package/types/primeng-overlaybadge.d.ts +80 -0
  658. package/types/primeng-paginator.d.ts +363 -0
  659. package/types/primeng-panel.d.ts +257 -0
  660. package/types/primeng-panelmenu.d.ts +367 -0
  661. package/types/primeng-passthrough.d.ts +14 -0
  662. package/types/primeng-password.d.ts +494 -0
  663. package/types/primeng-picklist.d.ts +669 -0
  664. package/types/primeng-popover.d.ts +202 -0
  665. package/types/primeng-progressbar.d.ts +124 -0
  666. package/types/primeng-progressspinner.d.ts +92 -0
  667. package/types/primeng-radiobutton.d.ts +193 -0
  668. package/types/primeng-rating.d.ts +196 -0
  669. package/types/primeng-ripple.d.ts +63 -0
  670. package/types/primeng-scroller.d.ts +452 -0
  671. package/types/primeng-scrollpanel.d.ts +157 -0
  672. package/types/primeng-scrolltop.d.ts +159 -0
  673. package/types/primeng-select.d.ts +792 -0
  674. package/types/primeng-selectbutton.d.ts +186 -0
  675. package/types/primeng-skeleton.d.ts +104 -0
  676. package/types/primeng-slider.d.ts +224 -0
  677. package/types/primeng-speeddial.d.ts +420 -0
  678. package/types/primeng-splitbutton.d.ts +294 -0
  679. package/types/primeng-splitter.d.ts +212 -0
  680. package/types/primeng-stepper.d.ts +337 -0
  681. package/types/primeng-steps.d.ts +153 -0
  682. package/types/primeng-styleclass.d.ts +115 -0
  683. package/types/primeng-table.d.ts +2089 -0
  684. package/types/primeng-tabs.d.ts +360 -0
  685. package/types/primeng-tag.d.ts +115 -0
  686. package/types/primeng-terminal.d.ts +141 -0
  687. package/types/primeng-textarea.d.ts +127 -0
  688. package/types/primeng-tieredmenu.d.ts +432 -0
  689. package/types/primeng-timeline.d.ts +141 -0
  690. package/types/primeng-toast.d.ts +303 -0
  691. package/types/primeng-togglebutton.d.ts +205 -0
  692. package/types/primeng-toggleswitch.d.ts +168 -0
  693. package/types/primeng-toolbar.d.ts +106 -0
  694. package/types/primeng-tooltip.d.ts +286 -0
  695. package/types/primeng-tree.d.ts +668 -0
  696. package/types/primeng-treeselect.d.ts +575 -0
  697. package/types/primeng-treetable.d.ts +1278 -0
  698. package/types/primeng-ts-helpers.d.ts +6 -0
  699. package/types/primeng-types-accordion.d.ts +97 -0
  700. package/types/primeng-types-autocomplete.d.ts +312 -0
  701. package/types/primeng-types-avatar.d.ts +40 -0
  702. package/types/primeng-types-avatargroup.d.ts +28 -0
  703. package/types/primeng-types-badge.d.ts +26 -0
  704. package/types/primeng-types-blockui.d.ts +39 -0
  705. package/types/primeng-types-breadcrumb.d.ts +96 -0
  706. package/types/primeng-types-button.d.ts +124 -0
  707. package/types/primeng-types-card.d.ts +75 -0
  708. package/types/primeng-types-carousel.d.ts +143 -0
  709. package/types/primeng-types-cascadeselect.d.ts +215 -0
  710. package/types/primeng-types-chart.d.ts +32 -0
  711. package/types/primeng-types-checkbox.d.ts +81 -0
  712. package/types/primeng-types-chip.d.ts +71 -0
  713. package/types/primeng-types-colorpicker.d.ts +78 -0
  714. package/types/primeng-types-confirmdialog.d.ts +147 -0
  715. package/types/primeng-types-confirmpopup.d.ts +105 -0
  716. package/types/primeng-types-contextmenu.d.ts +102 -0
  717. package/types/primeng-types-dataview.d.ts +253 -0
  718. package/types/primeng-types-datepicker.d.ts +521 -0
  719. package/types/primeng-types-dialog.d.ts +107 -0
  720. package/types/primeng-types-divider.d.ts +28 -0
  721. package/types/primeng-types-dock.d.ts +70 -0
  722. package/types/primeng-types-drawer.d.ts +82 -0
  723. package/types/primeng-types-editor.d.ts +210 -0
  724. package/types/primeng-types-fieldset.d.ts +101 -0
  725. package/types/primeng-types-fileupload.d.ts +360 -0
  726. package/types/primeng-types-floatlabel.d.ts +26 -0
  727. package/types/primeng-types-fluid.d.ts +28 -0
  728. package/types/primeng-types-galleria.d.ts +250 -0
  729. package/types/primeng-types-iconfield.d.ts +26 -0
  730. package/types/primeng-types-iftalabel.d.ts +26 -0
  731. package/types/primeng-types-image.d.ts +144 -0
  732. package/types/primeng-types-imagecompare.d.ts +43 -0
  733. package/types/primeng-types-inplace.d.ts +72 -0
  734. package/types/primeng-types-inputgroup.d.ts +28 -0
  735. package/types/primeng-types-inputgroupaddon.d.ts +28 -0
  736. package/types/primeng-types-inputicon.d.ts +26 -0
  737. package/types/primeng-types-inputmask.d.ts +56 -0
  738. package/types/primeng-types-inputnumber.d.ts +95 -0
  739. package/types/primeng-types-inputotp.d.ts +101 -0
  740. package/types/primeng-types-inputtext.d.ts +24 -0
  741. package/types/primeng-types-knob.d.ts +40 -0
  742. package/types/primeng-types-listbox.d.ts +359 -0
  743. package/types/primeng-types-megamenu.d.ts +138 -0
  744. package/types/primeng-types-menu.d.ts +114 -0
  745. package/types/primeng-types-menubar.d.ts +124 -0
  746. package/types/primeng-types-message.d.ts +87 -0
  747. package/types/primeng-types-metergroup.d.ts +176 -0
  748. package/types/primeng-types-motion.d.ts +26 -0
  749. package/types/primeng-types-multiselect.d.ts +414 -0
  750. package/types/primeng-types-orderlist.d.ts +173 -0
  751. package/types/primeng-types-organizationchart.d.ts +138 -0
  752. package/types/primeng-types-overlay.d.ts +60 -0
  753. package/types/primeng-types-overlaybadge.d.ts +34 -0
  754. package/types/primeng-types-paginator.d.ts +167 -0
  755. package/types/primeng-types-panel.d.ts +129 -0
  756. package/types/primeng-types-panelmenu.d.ts +131 -0
  757. package/types/primeng-types-password.d.ts +120 -0
  758. package/types/primeng-types-picklist.d.ts +348 -0
  759. package/types/primeng-types-popover.d.ts +59 -0
  760. package/types/primeng-types-progressbar.d.ts +58 -0
  761. package/types/primeng-types-progressspinner.d.ts +36 -0
  762. package/types/primeng-types-radiobutton.d.ts +51 -0
  763. package/types/primeng-types-rating.d.ts +94 -0
  764. package/types/primeng-types-scroller.d.ts +231 -0
  765. package/types/primeng-types-scrollpanel.d.ts +51 -0
  766. package/types/primeng-types-scrolltop.d.ts +61 -0
  767. package/types/primeng-types-select.d.ts +319 -0
  768. package/types/primeng-types-selectbutton.d.ts +92 -0
  769. package/types/primeng-types-skeleton.d.ts +28 -0
  770. package/types/primeng-types-slider.d.ts +78 -0
  771. package/types/primeng-types-speeddial.d.ts +100 -0
  772. package/types/primeng-types-splitbutton.d.ts +70 -0
  773. package/types/primeng-types-splitter.d.ts +70 -0
  774. package/types/primeng-types-stepper.d.ts +162 -0
  775. package/types/primeng-types-table.d.ts +893 -0
  776. package/types/primeng-types-tabs.d.ts +119 -0
  777. package/types/primeng-types-tag.d.ts +47 -0
  778. package/types/primeng-types-terminal.d.ts +60 -0
  779. package/types/primeng-types-textarea.d.ts +28 -0
  780. package/types/primeng-types-tieredmenu.d.ts +95 -0
  781. package/types/primeng-types-timeline.d.ts +85 -0
  782. package/types/primeng-types-toast.d.ts +131 -0
  783. package/types/primeng-types-togglebutton.d.ts +86 -0
  784. package/types/primeng-types-toggleswitch.d.ts +73 -0
  785. package/types/primeng-types-toolbar.d.ts +55 -0
  786. package/types/primeng-types-tooltip.d.ts +32 -0
  787. package/types/primeng-types-tree.d.ts +342 -0
  788. package/types/primeng-types-treeselect.d.ts +251 -0
  789. package/types/primeng-types-treetable.d.ts +629 -0
  790. package/types/primeng-usestyle.d.ts +15 -0
  791. package/types/primeng-utils.d.ts +43 -0
  792. package/types/primeng.d.ts +2 -0
@@ -0,0 +1,2399 @@
1
+ export * from 'primeng/types/select';
2
+ import * as i1 from '@angular/common';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from '@angular/core';
5
+ import { Injectable, InjectionToken, forwardRef, inject, EventEmitter, booleanAttribute, numberAttribute, Output, Input, Component, input, computed, signal, effect, ContentChildren, ContentChild, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
6
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import { deepEquals, isNotEmpty, isEmpty, uuid, findSingle, scrollInView, equals, resolveFieldData, focus, isPrintableCharacter, findLastIndex, getFirstFocusableElement, getLastFocusableElement, getFocusableElements } from '@primeuix/utils';
8
+ import * as i3 from 'primeng/api';
9
+ import { SharedModule, TranslationKeys, PrimeTemplate } from 'primeng/api';
10
+ import { AutoFocus } from 'primeng/autofocus';
11
+ import { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';
12
+ import { BaseInput } from 'primeng/baseinput';
13
+ import * as i2 from 'primeng/bind';
14
+ import { BindModule, Bind } from 'primeng/bind';
15
+ import { unblockBodyScroll } from 'primeng/dom';
16
+ import { IconField } from 'primeng/iconfield';
17
+ import { CheckIcon, BlankIcon, TimesIcon, ChevronDownIcon, SearchIcon } from 'primeng/icons';
18
+ import { InputIcon } from 'primeng/inputicon';
19
+ import { InputText } from 'primeng/inputtext';
20
+ import { Overlay } from 'primeng/overlay';
21
+ import { Ripple } from 'primeng/ripple';
22
+ import { Scroller } from 'primeng/scroller';
23
+ import { Tooltip } from 'primeng/tooltip';
24
+ import { style as style$1 } from '@primeuix/styles/select';
25
+ import { BaseStyle } from 'primeng/base';
26
+
27
+ const style = /*css*/ `
28
+ ${style$1}
29
+
30
+ /* For PrimeNG */
31
+ .p-select-label.p-placeholder {
32
+ color: dt('select.placeholder.color');
33
+ }
34
+
35
+ .p-select.ng-invalid.ng-dirty {
36
+ border-color: dt('select.invalid.border.color');
37
+ }
38
+
39
+ .p-dropdown.ng-invalid.ng-dirty .p-dropdown-label.p-placeholder,
40
+ .p-select.ng-invalid.ng-dirty .p-select-label.p-placeholder {
41
+ color: dt('select.invalid.placeholder.color');
42
+ }
43
+ `;
44
+ const classes = {
45
+ root: ({ instance }) => [
46
+ 'p-select p-component p-inputwrapper',
47
+ {
48
+ 'p-disabled': instance.$disabled(),
49
+ 'p-variant-filled': instance.$variant() === 'filled',
50
+ 'p-focus': instance.focused,
51
+ 'p-invalid': instance.invalid(),
52
+ 'p-inputwrapper-filled': instance.$filled(),
53
+ 'p-inputwrapper-focus': instance.focused || instance.overlayVisible,
54
+ 'p-select-open': instance.overlayVisible,
55
+ 'p-select-fluid': instance.hasFluid,
56
+ 'p-select-sm p-inputfield-sm': instance.size() === 'small',
57
+ 'p-select-lg p-inputfield-lg': instance.size() === 'large'
58
+ }
59
+ ],
60
+ label: ({ instance }) => [
61
+ 'p-select-label',
62
+ {
63
+ 'p-placeholder': instance.placeholder() && instance.label() === instance.placeholder(),
64
+ 'p-select-label-empty': !instance.editable && !instance.selectedItemTemplate && (instance.label() === undefined || instance.label() === null || instance.label() === 'p-emptylabel' || instance.label().length === 0)
65
+ }
66
+ ],
67
+ clearIcon: 'p-select-clear-icon',
68
+ dropdown: 'p-select-dropdown',
69
+ loadingIcon: 'p-select-loading-icon',
70
+ dropdownIcon: 'p-select-dropdown-icon',
71
+ overlay: 'p-select-overlay p-component-overlay p-component',
72
+ header: 'p-select-header',
73
+ pcFilter: 'p-select-filter',
74
+ listContainer: 'p-select-list-container',
75
+ list: 'p-select-list',
76
+ optionGroup: 'p-select-option-group',
77
+ optionGroupLabel: 'p-select-option-group-label',
78
+ option: ({ instance }) => [
79
+ 'p-select-option',
80
+ {
81
+ 'p-select-option-selected': instance.selected && !instance.checkmark,
82
+ 'p-disabled': instance.disabled,
83
+ 'p-focus': instance.focused
84
+ }
85
+ ],
86
+ optionLabel: 'p-select-option-label',
87
+ optionCheckIcon: 'p-select-option-check-icon',
88
+ optionBlankIcon: 'p-select-option-blank-icon',
89
+ emptyMessage: 'p-select-empty-message'
90
+ };
91
+ class SelectStyle extends BaseStyle {
92
+ name = 'select';
93
+ style = style;
94
+ classes = classes;
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
96
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectStyle });
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectStyle, decorators: [{
99
+ type: Injectable
100
+ }] });
101
+ /**
102
+ *
103
+ * Select also known as Select, is used to choose an item from a collection of options.
104
+ *
105
+ * [Live Demo](https://www.primeng.org/select/)
106
+ *
107
+ * @module selectstyle
108
+ *
109
+ */
110
+ var SelectClasses;
111
+ (function (SelectClasses) {
112
+ /**
113
+ * Class name of the root element
114
+ */
115
+ SelectClasses["root"] = "p-select";
116
+ /**
117
+ * Class name of the label element
118
+ */
119
+ SelectClasses["label"] = "p-select-label";
120
+ /**
121
+ * Class name of the clear icon element
122
+ */
123
+ SelectClasses["clearIcon"] = "p-select-clear-icon";
124
+ /**
125
+ * Class name of the dropdown element
126
+ */
127
+ SelectClasses["dropdown"] = "p-select-dropdown";
128
+ /**
129
+ * Class name of the loadingicon element
130
+ */
131
+ SelectClasses["loadingIcon"] = "p-select-loading-icon";
132
+ /**
133
+ * Class name of the dropdown icon element
134
+ */
135
+ SelectClasses["dropdownIcon"] = "p-select-dropdown-icon";
136
+ /**
137
+ * Class name of the overlay element
138
+ */
139
+ SelectClasses["overlay"] = "p-select-overlay";
140
+ /**
141
+ * Class name of the header element
142
+ */
143
+ SelectClasses["header"] = "p-select-header";
144
+ /**
145
+ * Class name of the filter element
146
+ */
147
+ SelectClasses["pcFilter"] = "p-select-filter";
148
+ /**
149
+ * Class name of the list container element
150
+ */
151
+ SelectClasses["listContainer"] = "p-select-list-container";
152
+ /**
153
+ * Class name of the list element
154
+ */
155
+ SelectClasses["list"] = "p-select-list";
156
+ /**
157
+ * Class name of the option group element
158
+ */
159
+ SelectClasses["optionGroup"] = "p-select-option-group";
160
+ /**
161
+ * Class name of the option group label element
162
+ */
163
+ SelectClasses["optionGroupLabel"] = "p-select-option-group-label";
164
+ /**
165
+ * Class name of the option element
166
+ */
167
+ SelectClasses["option"] = "p-select-option";
168
+ /**
169
+ * Class name of the option label element
170
+ */
171
+ SelectClasses["optionLabel"] = "p-select-option-label";
172
+ /**
173
+ * Class name of the option check icon element
174
+ */
175
+ SelectClasses["optionCheckIcon"] = "p-select-option-check-icon";
176
+ /**
177
+ * Class name of the option blank icon element
178
+ */
179
+ SelectClasses["optionBlankIcon"] = "p-select-option-blank-icon";
180
+ /**
181
+ * Class name of the empty message element
182
+ */
183
+ SelectClasses["emptyMessage"] = "p-select-empty-message";
184
+ })(SelectClasses || (SelectClasses = {}));
185
+
186
+ const SELECT_INSTANCE = new InjectionToken('SELECT_INSTANCE');
187
+ const SELECT_ITEM_INSTANCE = new InjectionToken('SELECT_ITEM_INSTANCE');
188
+ const SELECT_VALUE_ACCESSOR = {
189
+ provide: NG_VALUE_ACCESSOR,
190
+ useExisting: forwardRef(() => Select),
191
+ multi: true
192
+ };
193
+ class SelectItem extends BaseComponent {
194
+ hostName = 'select';
195
+ $pcSelectItem = inject(SELECT_ITEM_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
196
+ $pcSelect = inject(SELECT_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
197
+ id;
198
+ option;
199
+ selected;
200
+ focused;
201
+ label;
202
+ disabled;
203
+ visible;
204
+ itemSize;
205
+ ariaPosInset;
206
+ ariaSetSize;
207
+ template;
208
+ checkmark;
209
+ index;
210
+ scrollerOptions;
211
+ onClick = new EventEmitter();
212
+ onMouseEnter = new EventEmitter();
213
+ _componentStyle = inject(SelectStyle);
214
+ onOptionClick(event) {
215
+ this.onClick.emit(event);
216
+ }
217
+ onOptionMouseEnter(event) {
218
+ this.onMouseEnter.emit(event);
219
+ }
220
+ getPTOptions() {
221
+ return (this.$pcSelect?.getPTItemOptions?.(this.option, this.scrollerOptions, this.index ?? 0, 'option') ??
222
+ this.$pcSelect?.ptm('option', {
223
+ context: {
224
+ option: this.option,
225
+ selected: this.selected,
226
+ focused: this.focused,
227
+ disabled: this.disabled
228
+ }
229
+ }));
230
+ }
231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
232
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.2.22", type: SelectItem, isStandalone: true, selector: "p-selectItem", inputs: { id: "id", option: "option", selected: ["selected", "selected", booleanAttribute], focused: ["focused", "focused", booleanAttribute], label: "label", disabled: ["disabled", "disabled", booleanAttribute], visible: ["visible", "visible", booleanAttribute], itemSize: ["itemSize", "itemSize", numberAttribute], ariaPosInset: "ariaPosInset", ariaSetSize: "ariaSetSize", template: "template", checkmark: ["checkmark", "checkmark", booleanAttribute], index: "index", scrollerOptions: "scrollerOptions" }, outputs: { onClick: "onClick", onMouseEnter: "onMouseEnter" }, providers: [SelectStyle, { provide: PARENT_INSTANCE, useExisting: SelectItem }], usesInheritance: true, ngImport: i0, template: `
233
+ <li
234
+ [id]="id"
235
+ [pBind]="getPTOptions()"
236
+ (click)="onOptionClick($event)"
237
+ (mouseenter)="onOptionMouseEnter($event)"
238
+ role="option"
239
+ pRipple
240
+ [attr.aria-label]="label"
241
+ [attr.aria-setsize]="ariaSetSize"
242
+ [attr.aria-posinset]="ariaPosInset"
243
+ [attr.aria-selected]="selected"
244
+ [attr.data-p-focused]="focused"
245
+ [attr.data-p-highlight]="selected"
246
+ [attr.data-p-selected]="selected"
247
+ [attr.data-p-disabled]="disabled"
248
+ [ngStyle]="{ height: scrollerOptions?.itemSize + 'px' }"
249
+ [class]="cx('option')"
250
+ >
251
+ <ng-container *ngIf="checkmark">
252
+ <svg data-p-icon="check" *ngIf="selected" [class]="cx('optionCheckIcon')" [pBind]="$pcSelect?.ptm('optionCheckIcon')" />
253
+ <svg data-p-icon="blank" *ngIf="!selected" [class]="cx('optionBlankIcon')" [pBind]="$pcSelect?.ptm('optionBlankIcon')" />
254
+ </ng-container>
255
+ <span *ngIf="!template" [pBind]="$pcSelect?.ptm('optionLabel')">{{ label ?? 'empty' }}</span>
256
+ <ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
257
+ </li>
258
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: CheckIcon, selector: "[data-p-icon=\"check\"]" }, { kind: "component", type: BlankIcon, selector: "[data-p-icon=\"blank\"]" }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i2.Bind, selector: "[pBind]", inputs: ["pBind"] }] });
259
+ }
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectItem, decorators: [{
261
+ type: Component,
262
+ args: [{
263
+ selector: 'p-selectItem',
264
+ standalone: true,
265
+ imports: [CommonModule, SharedModule, Ripple, CheckIcon, BlankIcon, BindModule],
266
+ template: `
267
+ <li
268
+ [id]="id"
269
+ [pBind]="getPTOptions()"
270
+ (click)="onOptionClick($event)"
271
+ (mouseenter)="onOptionMouseEnter($event)"
272
+ role="option"
273
+ pRipple
274
+ [attr.aria-label]="label"
275
+ [attr.aria-setsize]="ariaSetSize"
276
+ [attr.aria-posinset]="ariaPosInset"
277
+ [attr.aria-selected]="selected"
278
+ [attr.data-p-focused]="focused"
279
+ [attr.data-p-highlight]="selected"
280
+ [attr.data-p-selected]="selected"
281
+ [attr.data-p-disabled]="disabled"
282
+ [ngStyle]="{ height: scrollerOptions?.itemSize + 'px' }"
283
+ [class]="cx('option')"
284
+ >
285
+ <ng-container *ngIf="checkmark">
286
+ <svg data-p-icon="check" *ngIf="selected" [class]="cx('optionCheckIcon')" [pBind]="$pcSelect?.ptm('optionCheckIcon')" />
287
+ <svg data-p-icon="blank" *ngIf="!selected" [class]="cx('optionBlankIcon')" [pBind]="$pcSelect?.ptm('optionBlankIcon')" />
288
+ </ng-container>
289
+ <span *ngIf="!template" [pBind]="$pcSelect?.ptm('optionLabel')">{{ label ?? 'empty' }}</span>
290
+ <ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
291
+ </li>
292
+ `,
293
+ providers: [SelectStyle, { provide: PARENT_INSTANCE, useExisting: SelectItem }]
294
+ }]
295
+ }], propDecorators: { id: [{
296
+ type: Input
297
+ }], option: [{
298
+ type: Input
299
+ }], selected: [{
300
+ type: Input,
301
+ args: [{ transform: booleanAttribute }]
302
+ }], focused: [{
303
+ type: Input,
304
+ args: [{ transform: booleanAttribute }]
305
+ }], label: [{
306
+ type: Input
307
+ }], disabled: [{
308
+ type: Input,
309
+ args: [{ transform: booleanAttribute }]
310
+ }], visible: [{
311
+ type: Input,
312
+ args: [{ transform: booleanAttribute }]
313
+ }], itemSize: [{
314
+ type: Input,
315
+ args: [{ transform: numberAttribute }]
316
+ }], ariaPosInset: [{
317
+ type: Input
318
+ }], ariaSetSize: [{
319
+ type: Input
320
+ }], template: [{
321
+ type: Input
322
+ }], checkmark: [{
323
+ type: Input,
324
+ args: [{ transform: booleanAttribute }]
325
+ }], index: [{
326
+ type: Input
327
+ }], scrollerOptions: [{
328
+ type: Input
329
+ }], onClick: [{
330
+ type: Output
331
+ }], onMouseEnter: [{
332
+ type: Output
333
+ }] } });
334
+ /**
335
+ * Select is used to choose an item from a collection of options.
336
+ * @group Components
337
+ */
338
+ class Select extends BaseInput {
339
+ zone;
340
+ filterService;
341
+ componentName = 'Select';
342
+ bindDirectiveInstance = inject(Bind, { self: true });
343
+ /**
344
+ * Unique identifier of the component
345
+ * @group Props
346
+ */
347
+ id;
348
+ /**
349
+ * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.
350
+ * @group Props
351
+ */
352
+ scrollHeight = '200px';
353
+ /**
354
+ * When specified, displays an input field to filter the items on keyup.
355
+ * @group Props
356
+ */
357
+ filter;
358
+ /**
359
+ * Inline style of the overlay panel element.
360
+ * @group Props
361
+ */
362
+ panelStyle;
363
+ /**
364
+ * Style class of the element.
365
+ * @deprecated since v20.0.0, use `class` instead.
366
+ * @group Props
367
+ */
368
+ styleClass;
369
+ /**
370
+ * Style class of the overlay panel element.
371
+ * @group Props
372
+ */
373
+ panelStyleClass;
374
+ /**
375
+ * When present, it specifies that the component cannot be edited.
376
+ * @group Props
377
+ */
378
+ readonly;
379
+ /**
380
+ * When present, custom value instead of predefined options can be entered using the editable input field.
381
+ * @group Props
382
+ */
383
+ editable;
384
+ /**
385
+ * Index of the element in tabbing order.
386
+ * @group Props
387
+ */
388
+ tabindex = 0;
389
+ /**
390
+ * Default text to display when no option is selected.
391
+ * @group Props
392
+ */
393
+ set placeholder(val) {
394
+ this._placeholder.set(val);
395
+ }
396
+ get placeholder() {
397
+ return this._placeholder.asReadonly();
398
+ }
399
+ /**
400
+ * Icon to display in loading state.
401
+ * @group Props
402
+ */
403
+ loadingIcon;
404
+ /**
405
+ * Placeholder text to show when filter input is empty.
406
+ * @group Props
407
+ */
408
+ filterPlaceholder;
409
+ /**
410
+ * Locale to use in filtering. The default locale is the host environment's current locale.
411
+ * @group Props
412
+ */
413
+ filterLocale;
414
+ /**
415
+ * Identifier of the accessible input element.
416
+ * @group Props
417
+ */
418
+ inputId;
419
+ /**
420
+ * A property to uniquely identify a value in options.
421
+ * @group Props
422
+ */
423
+ dataKey;
424
+ /**
425
+ * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.
426
+ * @group Props
427
+ */
428
+ filterBy;
429
+ /**
430
+ * Fields used when filtering the options, defaults to optionLabel.
431
+ * @group Props
432
+ */
433
+ filterFields;
434
+ /**
435
+ * When present, it specifies that the component should automatically get focus on load.
436
+ * @group Props
437
+ */
438
+ autofocus;
439
+ /**
440
+ * Clears the filter value when hiding the select.
441
+ * @group Props
442
+ */
443
+ resetFilterOnHide = false;
444
+ /**
445
+ * Whether the selected option will be shown with a check mark.
446
+ * @group Props
447
+ */
448
+ checkmark = false;
449
+ /**
450
+ * Icon class of the select icon.
451
+ * @group Props
452
+ */
453
+ dropdownIcon;
454
+ /**
455
+ * Whether the select is in loading state.
456
+ * @group Props
457
+ */
458
+ loading = false;
459
+ /**
460
+ * Name of the label field of an option.
461
+ * @group Props
462
+ */
463
+ optionLabel;
464
+ /**
465
+ * Name of the value field of an option.
466
+ * @group Props
467
+ */
468
+ optionValue;
469
+ /**
470
+ * Name of the disabled field of an option.
471
+ * @group Props
472
+ */
473
+ optionDisabled;
474
+ /**
475
+ * Name of the label field of an option group.
476
+ * @group Props
477
+ */
478
+ optionGroupLabel = 'label';
479
+ /**
480
+ * Name of the options field of an option group.
481
+ * @group Props
482
+ */
483
+ optionGroupChildren = 'items';
484
+ /**
485
+ * Whether to display options as grouped when nested options are provided.
486
+ * @group Props
487
+ */
488
+ group;
489
+ /**
490
+ * When enabled, a clear icon is displayed to clear the value.
491
+ * @group Props
492
+ */
493
+ showClear;
494
+ /**
495
+ * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.
496
+ * @group Props
497
+ */
498
+ emptyFilterMessage = '';
499
+ /**
500
+ * Text to display when there is no data. Defaults to global value in i18n translation configuration.
501
+ * @group Props
502
+ */
503
+ emptyMessage = '';
504
+ /**
505
+ * Defines if data is loaded and interacted with in lazy manner.
506
+ * @group Props
507
+ */
508
+ lazy = false;
509
+ /**
510
+ * Whether the data should be loaded on demand during scroll.
511
+ * @group Props
512
+ */
513
+ virtualScroll;
514
+ /**
515
+ * Height of an item in the list for VirtualScrolling.
516
+ * @group Props
517
+ */
518
+ virtualScrollItemSize;
519
+ /**
520
+ * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
521
+ * @group Props
522
+ */
523
+ virtualScrollOptions;
524
+ /**
525
+ * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.
526
+ * @group Props
527
+ */
528
+ overlayOptions;
529
+ /**
530
+ * Defines a string that labels the filter input.
531
+ * @group Props
532
+ */
533
+ ariaFilterLabel;
534
+ /**
535
+ * Used to define a aria label attribute the current element.
536
+ * @group Props
537
+ */
538
+ ariaLabel;
539
+ /**
540
+ * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
541
+ * @group Props
542
+ */
543
+ ariaLabelledBy;
544
+ /**
545
+ * Defines how the items are filtered.
546
+ * @group Props
547
+ */
548
+ filterMatchMode = 'contains';
549
+ /**
550
+ * Advisory information to display in a tooltip on hover.
551
+ * @group Props
552
+ */
553
+ tooltip = '';
554
+ /**
555
+ * Position of the tooltip.
556
+ * @group Props
557
+ */
558
+ tooltipPosition = 'right';
559
+ /**
560
+ * Type of CSS position.
561
+ * @group Props
562
+ */
563
+ tooltipPositionStyle = 'absolute';
564
+ /**
565
+ * Style class of the tooltip.
566
+ * @group Props
567
+ */
568
+ tooltipStyleClass;
569
+ /**
570
+ * Fields used when filtering the options, defaults to optionLabel.
571
+ * @group Props
572
+ */
573
+ focusOnHover = true;
574
+ /**
575
+ * Determines if the option will be selected on focus.
576
+ * @group Props
577
+ */
578
+ selectOnFocus = false;
579
+ /**
580
+ * Whether to focus on the first visible or selected element when the overlay panel is shown.
581
+ * @group Props
582
+ */
583
+ autoOptionFocus = false;
584
+ /**
585
+ * Applies focus to the filter element when the overlay is shown.
586
+ * @group Props
587
+ */
588
+ autofocusFilter = true;
589
+ /**
590
+ * When specified, filter displays with this value.
591
+ * @group Props
592
+ */
593
+ get filterValue() {
594
+ return this._filterValue();
595
+ }
596
+ set filterValue(val) {
597
+ setTimeout(() => {
598
+ this._filterValue.set(val);
599
+ });
600
+ }
601
+ /**
602
+ * An array of objects to display as the available options.
603
+ * @group Props
604
+ */
605
+ get options() {
606
+ const options = this._options();
607
+ return options;
608
+ }
609
+ set options(val) {
610
+ if (!deepEquals(val, this._options())) {
611
+ this._options.set(val);
612
+ }
613
+ }
614
+ /**
615
+ * Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
616
+ * @defaultValue 'self'
617
+ * @group Props
618
+ */
619
+ appendTo = input(undefined, ...(ngDevMode ? [{ debugName: "appendTo" }] : /* istanbul ignore next */ []));
620
+ /**
621
+ * The motion options.
622
+ * @group Props
623
+ */
624
+ motionOptions = input(undefined, ...(ngDevMode ? [{ debugName: "motionOptions" }] : /* istanbul ignore next */ []));
625
+ /**
626
+ * Callback to invoke when value of select changes.
627
+ * @param {SelectChangeEvent} event - custom change event.
628
+ * @group Emits
629
+ */
630
+ onChange = new EventEmitter();
631
+ /**
632
+ * Callback to invoke when data is filtered.
633
+ * @param {SelectFilterEvent} event - custom filter event.
634
+ * @group Emits
635
+ */
636
+ onFilter = new EventEmitter();
637
+ /**
638
+ * Callback to invoke when select gets focus.
639
+ * @param {Event} event - Browser event.
640
+ * @group Emits
641
+ */
642
+ onFocus = new EventEmitter();
643
+ /**
644
+ * Callback to invoke when select loses focus.
645
+ * @param {Event} event - Browser event.
646
+ * @group Emits
647
+ */
648
+ onBlur = new EventEmitter();
649
+ /**
650
+ * Callback to invoke when component is clicked.
651
+ * @param {MouseEvent} event - Mouse event.
652
+ * @group Emits
653
+ */
654
+ onClick = new EventEmitter();
655
+ /**
656
+ * Callback to invoke when select overlay gets visible.
657
+ * @param {AnimationEvent} event - Animation event.
658
+ * @group Emits
659
+ */
660
+ onShow = new EventEmitter();
661
+ /**
662
+ * Callback to invoke when select overlay gets hidden.
663
+ * @param {AnimationEvent} event - Animation event.
664
+ * @group Emits
665
+ */
666
+ onHide = new EventEmitter();
667
+ /**
668
+ * Callback to invoke when select clears the value.
669
+ * @param {Event} event - Browser event.
670
+ * @group Emits
671
+ */
672
+ onClear = new EventEmitter();
673
+ /**
674
+ * Callback to invoke in lazy mode to load new data.
675
+ * @param {SelectLazyLoadEvent} event - Lazy load event.
676
+ * @group Emits
677
+ */
678
+ onLazyLoad = new EventEmitter();
679
+ _componentStyle = inject(SelectStyle);
680
+ filterViewChild;
681
+ focusInputViewChild;
682
+ editableInputViewChild;
683
+ itemsViewChild;
684
+ scroller;
685
+ overlayViewChild;
686
+ firstHiddenFocusableElementOnOverlay;
687
+ lastHiddenFocusableElementOnOverlay;
688
+ itemsWrapper;
689
+ $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo(), ...(ngDevMode ? [{ debugName: "$appendTo" }] : /* istanbul ignore next */ []));
690
+ /**
691
+ * Custom item template.
692
+ * @group Templates
693
+ */
694
+ itemTemplate;
695
+ /**
696
+ * Custom group template.
697
+ * @group Templates
698
+ */
699
+ groupTemplate;
700
+ /**
701
+ * Custom loader template.
702
+ * @group Templates
703
+ */
704
+ loaderTemplate;
705
+ /**
706
+ * Custom selected item template.
707
+ * @group Templates
708
+ */
709
+ selectedItemTemplate;
710
+ /**
711
+ * Custom header template.
712
+ * @group Templates
713
+ */
714
+ headerTemplate;
715
+ /**
716
+ * Custom filter template.
717
+ * @group Templates
718
+ */
719
+ filterTemplate;
720
+ /**
721
+ * Custom footer template.
722
+ * @group Templates
723
+ */
724
+ footerTemplate;
725
+ /**
726
+ * Custom empty filter template.
727
+ * @group Templates
728
+ */
729
+ emptyFilterTemplate;
730
+ /**
731
+ * Custom empty template.
732
+ * @group Templates
733
+ */
734
+ emptyTemplate;
735
+ /**
736
+ * Custom dropdown icon template.
737
+ * @group Templates
738
+ */
739
+ dropdownIconTemplate;
740
+ /**
741
+ * Custom loading icon template.
742
+ * @group Templates
743
+ */
744
+ loadingIconTemplate;
745
+ /**
746
+ * Custom clear icon template.
747
+ * @group Templates
748
+ */
749
+ clearIconTemplate;
750
+ /**
751
+ * Custom filter icon template.
752
+ * @group Templates
753
+ */
754
+ filterIconTemplate;
755
+ /**
756
+ * Custom on icon template.
757
+ * @group Templates
758
+ */
759
+ onIconTemplate;
760
+ /**
761
+ * Custom off icon template.
762
+ * @group Templates
763
+ */
764
+ offIconTemplate;
765
+ /**
766
+ * Custom cancel icon template.
767
+ * @group Templates
768
+ */
769
+ cancelIconTemplate;
770
+ templates;
771
+ _itemTemplate;
772
+ _selectedItemTemplate;
773
+ _headerTemplate;
774
+ _filterTemplate;
775
+ _footerTemplate;
776
+ _emptyFilterTemplate;
777
+ _emptyTemplate;
778
+ _groupTemplate;
779
+ _loaderTemplate;
780
+ _dropdownIconTemplate;
781
+ _loadingIconTemplate;
782
+ _clearIconTemplate;
783
+ _filterIconTemplate;
784
+ _cancelIconTemplate;
785
+ _onIconTemplate;
786
+ _offIconTemplate;
787
+ filterOptions;
788
+ _options = signal(null, ...(ngDevMode ? [{ debugName: "_options" }] : /* istanbul ignore next */ []));
789
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : /* istanbul ignore next */ []));
790
+ value;
791
+ hover;
792
+ focused;
793
+ overlayVisible;
794
+ optionsChanged;
795
+ panel;
796
+ dimensionsUpdated;
797
+ hoveredItem;
798
+ selectedOptionUpdated;
799
+ _filterValue = signal(null, ...(ngDevMode ? [{ debugName: "_filterValue" }] : /* istanbul ignore next */ []));
800
+ searchValue;
801
+ searchIndex;
802
+ searchTimeout;
803
+ previousSearchChar;
804
+ currentSearchChar;
805
+ preventModelTouched;
806
+ focusedOptionIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedOptionIndex" }] : /* istanbul ignore next */ []));
807
+ labelId;
808
+ listId;
809
+ clicked = signal(false, ...(ngDevMode ? [{ debugName: "clicked" }] : /* istanbul ignore next */ []));
810
+ get emptyMessageLabel() {
811
+ return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);
812
+ }
813
+ get emptyFilterMessageLabel() {
814
+ return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);
815
+ }
816
+ get isVisibleClearIcon() {
817
+ return this.modelValue() != null && this.hasSelectedOption() && this.showClear && !this.$disabled();
818
+ }
819
+ get listLabel() {
820
+ return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];
821
+ }
822
+ get focusedOptionId() {
823
+ return this.focusedOptionIndex() !== -1 ? `${this.id}_${this.focusedOptionIndex()}` : null;
824
+ }
825
+ visibleOptions = computed(() => {
826
+ const options = this.getAllVisibleAndNonVisibleOptions();
827
+ if (this._filterValue()) {
828
+ const _filterBy = this.filterBy || this.optionLabel;
829
+ const filteredOptions = !_filterBy && !this.filterFields && !this.optionValue
830
+ ? this.options?.filter((option) => {
831
+ if (option.label) {
832
+ return option.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()) !== -1;
833
+ }
834
+ return option.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()) !== -1;
835
+ })
836
+ : this.filterService.filter(options, this.searchFields(), this._filterValue().trim(), this.filterMatchMode, this.filterLocale);
837
+ if (this.group) {
838
+ const optionGroups = this.options || [];
839
+ const filtered = [];
840
+ optionGroups.forEach((group) => {
841
+ const groupChildren = this.getOptionGroupChildren(group);
842
+ const filteredItems = groupChildren.filter((item) => filteredOptions?.includes(item));
843
+ if (filteredItems.length > 0)
844
+ filtered.push({
845
+ ...group,
846
+ [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems]
847
+ });
848
+ });
849
+ return this.flatOptions(filtered);
850
+ }
851
+ return filteredOptions;
852
+ }
853
+ return options;
854
+ }, ...(ngDevMode ? [{ debugName: "visibleOptions" }] : /* istanbul ignore next */ []));
855
+ label = computed(() => {
856
+ // use getAllVisibleAndNonVisibleOptions verses just visible options
857
+ // this will find the selected option whether or not the user is currently filtering because the filtered (i.e. visible) options, are a subset of all the options
858
+ const options = this.getAllVisibleAndNonVisibleOptions();
859
+ // use isOptionEqualsModelValue for the use case where the dropdown is initalized with a disabled option
860
+ const selectedOptionIndex = options.findIndex((option) => {
861
+ const isEqual = this.isOptionValueEqualsModelValue(option);
862
+ return isEqual;
863
+ });
864
+ if (selectedOptionIndex !== -1) {
865
+ const selectedOption = options[selectedOptionIndex];
866
+ // Always show the label for selected options, even if disabled
867
+ return this.getOptionLabel(selectedOption);
868
+ }
869
+ return this.placeholder() || 'p-emptylabel';
870
+ }, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
871
+ selectedOption;
872
+ constructor(zone, filterService) {
873
+ super();
874
+ this.zone = zone;
875
+ this.filterService = filterService;
876
+ effect(() => {
877
+ const modelValue = this.modelValue();
878
+ const visibleOptions = this.visibleOptions();
879
+ if (visibleOptions && isNotEmpty(visibleOptions)) {
880
+ const selectedOptionIndex = this.findSelectedOptionIndex();
881
+ if (selectedOptionIndex !== -1 || modelValue === undefined || (typeof modelValue === 'string' && modelValue.length === 0) || this.isModelValueNotSet() || this.editable) {
882
+ this.selectedOption = visibleOptions[selectedOptionIndex];
883
+ }
884
+ else {
885
+ // If no valid selected option found but we have a model value,
886
+ // try to find the option including disabled ones for template display
887
+ const disabledSelectedIndex = visibleOptions.findIndex((option) => this.isSelected(option));
888
+ if (disabledSelectedIndex !== -1) {
889
+ this.selectedOption = visibleOptions[disabledSelectedIndex];
890
+ }
891
+ }
892
+ }
893
+ if (isEmpty(visibleOptions) && (modelValue === undefined || this.isModelValueNotSet()) && isNotEmpty(this.selectedOption)) {
894
+ this.selectedOption = null;
895
+ }
896
+ if (modelValue !== undefined && this.editable) {
897
+ this.updateEditableLabel();
898
+ }
899
+ this.cd.markForCheck();
900
+ });
901
+ }
902
+ isModelValueNotSet() {
903
+ return this.modelValue() === null && !this.isOptionValueEqualsModelValue(this.selectedOption);
904
+ }
905
+ getAllVisibleAndNonVisibleOptions() {
906
+ return this.group ? this.flatOptions(this.options) : this.options || [];
907
+ }
908
+ onInit() {
909
+ this.id = this.id || uuid('pn_id_');
910
+ this.autoUpdateModel();
911
+ if (this.filterBy) {
912
+ this.filterOptions = {
913
+ filter: (value) => this.onFilterInputChange(value),
914
+ reset: () => this.resetFilter()
915
+ };
916
+ }
917
+ }
918
+ onAfterContentInit() {
919
+ this.templates.forEach((item) => {
920
+ switch (item.getType()) {
921
+ case 'item':
922
+ this._itemTemplate = item.template;
923
+ break;
924
+ case 'selectedItem':
925
+ this._selectedItemTemplate = item.template;
926
+ break;
927
+ case 'header':
928
+ this._headerTemplate = item.template;
929
+ break;
930
+ case 'filter':
931
+ this._filterTemplate = item.template;
932
+ break;
933
+ case 'footer':
934
+ this._footerTemplate = item.template;
935
+ break;
936
+ case 'emptyfilter':
937
+ this._emptyFilterTemplate = item.template;
938
+ break;
939
+ case 'empty':
940
+ this._emptyTemplate = item.template;
941
+ break;
942
+ case 'group':
943
+ this._groupTemplate = item.template;
944
+ break;
945
+ case 'loader':
946
+ this._loaderTemplate = item.template;
947
+ break;
948
+ case 'dropdownicon':
949
+ this._dropdownIconTemplate = item.template;
950
+ break;
951
+ case 'loadingicon':
952
+ this._loadingIconTemplate = item.template;
953
+ break;
954
+ case 'clearicon':
955
+ this._clearIconTemplate = item.template;
956
+ break;
957
+ case 'filtericon':
958
+ this._filterIconTemplate = item.template;
959
+ break;
960
+ case 'cancelicon':
961
+ this._cancelIconTemplate = item.template;
962
+ break;
963
+ case 'onicon':
964
+ this._onIconTemplate = item.template;
965
+ break;
966
+ case 'officon':
967
+ this._offIconTemplate = item.template;
968
+ break;
969
+ default:
970
+ this._itemTemplate = item.template;
971
+ break;
972
+ }
973
+ });
974
+ }
975
+ onAfterViewChecked() {
976
+ this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
977
+ if (this.optionsChanged && this.overlayVisible) {
978
+ this.optionsChanged = false;
979
+ this.zone.runOutsideAngular(() => {
980
+ setTimeout(() => {
981
+ if (this.overlayViewChild) {
982
+ this.overlayViewChild.alignOverlay();
983
+ }
984
+ }, 1);
985
+ });
986
+ }
987
+ if (this.selectedOptionUpdated && this.itemsWrapper) {
988
+ let selectedItem = findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, 'li[data-p-selected="true"]');
989
+ if (selectedItem) {
990
+ scrollInView(this.itemsWrapper, selectedItem);
991
+ }
992
+ this.selectedOptionUpdated = false;
993
+ }
994
+ }
995
+ flatOptions(options) {
996
+ return (options || []).reduce((result, option, index) => {
997
+ result.push({ optionGroup: option, group: true, index });
998
+ const optionGroupChildren = this.getOptionGroupChildren(option);
999
+ optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));
1000
+ return result;
1001
+ }, []);
1002
+ }
1003
+ autoUpdateModel() {
1004
+ if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {
1005
+ this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex());
1006
+ this.onOptionSelect(null, this.visibleOptions()[this.focusedOptionIndex()], false);
1007
+ }
1008
+ }
1009
+ onOptionSelect(event, option, isHide = true, preventChange = false) {
1010
+ // Check if option is disabled before proceeding
1011
+ if (this.isOptionDisabled(option)) {
1012
+ return;
1013
+ }
1014
+ if (!this.isSelected(option)) {
1015
+ const value = this.getOptionValue(option);
1016
+ this.updateModel(value, event);
1017
+ this.focusedOptionIndex.set(this.findSelectedOptionIndex());
1018
+ preventChange === false && this.onChange.emit({ originalEvent: event, value: value });
1019
+ }
1020
+ if (isHide) {
1021
+ this.hide(true);
1022
+ }
1023
+ }
1024
+ onOptionMouseEnter(event, index) {
1025
+ if (this.focusOnHover) {
1026
+ this.changeFocusedOptionIndex(event, index);
1027
+ }
1028
+ }
1029
+ updateModel(value, event) {
1030
+ this.value = value;
1031
+ this.onModelChange(value);
1032
+ this.writeModelValue(value);
1033
+ this.selectedOptionUpdated = true;
1034
+ }
1035
+ allowModelChange() {
1036
+ return !!this.modelValue() && !this.placeholder() && (this.modelValue() === undefined || this.modelValue() === null) && !this.editable && this.options && this.options.length;
1037
+ }
1038
+ isSelected(option) {
1039
+ return this.isOptionValueEqualsModelValue(option);
1040
+ }
1041
+ isOptionValueEqualsModelValue(option) {
1042
+ // Don't check isValidOption here since we need to match disabled options too
1043
+ return option !== undefined && option !== null && !this.isOptionGroup(option) && equals(this.modelValue(), this.getOptionValue(option), this.equalityKey());
1044
+ }
1045
+ onAfterViewInit() {
1046
+ if (this.editable) {
1047
+ this.updateEditableLabel();
1048
+ }
1049
+ this.updatePlaceHolderForFloatingLabel();
1050
+ }
1051
+ updatePlaceHolderForFloatingLabel() {
1052
+ const parentElement = this.el.nativeElement.parentElement;
1053
+ const isInFloatingLabel = parentElement?.classList.contains('p-float-label');
1054
+ if (parentElement && isInFloatingLabel && !this.selectedOption) {
1055
+ const label = parentElement.querySelector('label');
1056
+ if (label) {
1057
+ this._placeholder.set(label.textContent);
1058
+ }
1059
+ }
1060
+ }
1061
+ updateEditableLabel() {
1062
+ if (this.editableInputViewChild) {
1063
+ this.editableInputViewChild.nativeElement.value = this.getOptionLabel(this.selectedOption) || this.modelValue() || '';
1064
+ }
1065
+ }
1066
+ clearEditableLabel() {
1067
+ if (this.editableInputViewChild) {
1068
+ this.editableInputViewChild.nativeElement.value = '';
1069
+ }
1070
+ }
1071
+ getOptionIndex(index, scrollerOptions) {
1072
+ return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];
1073
+ }
1074
+ getOptionLabel(option) {
1075
+ return this.optionLabel !== undefined && this.optionLabel !== null ? resolveFieldData(option, this.optionLabel) : option && option.label !== undefined ? option.label : option;
1076
+ }
1077
+ getOptionValue(option) {
1078
+ return this.optionValue && this.optionValue !== null ? resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;
1079
+ }
1080
+ getPTItemOptions(option, itemOptions, index, key) {
1081
+ return this.ptm(key, {
1082
+ context: {
1083
+ option,
1084
+ index,
1085
+ selected: this.isSelected(option),
1086
+ focused: this.focusedOptionIndex() === this.getOptionIndex(index, itemOptions),
1087
+ disabled: this.isOptionDisabled(option)
1088
+ }
1089
+ });
1090
+ }
1091
+ isSelectedOptionEmpty() {
1092
+ return isEmpty(this.selectedOption);
1093
+ }
1094
+ isOptionDisabled(option) {
1095
+ return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false;
1096
+ }
1097
+ getOptionGroupLabel(optionGroup) {
1098
+ return this.optionGroupLabel !== undefined && this.optionGroupLabel !== null ? resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label !== undefined ? optionGroup.label : optionGroup;
1099
+ }
1100
+ getOptionGroupChildren(optionGroup) {
1101
+ return this.optionGroupChildren !== undefined && this.optionGroupChildren !== null ? resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;
1102
+ }
1103
+ getAriaPosInset(index) {
1104
+ return ((this.optionGroupLabel
1105
+ ? index -
1106
+ this.visibleOptions()
1107
+ .slice(0, index)
1108
+ .filter((option) => this.isOptionGroup(option)).length
1109
+ : index) + 1);
1110
+ }
1111
+ get ariaSetSize() {
1112
+ return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;
1113
+ }
1114
+ /**
1115
+ * Callback to invoke on filter reset.
1116
+ * @group Method
1117
+ */
1118
+ resetFilter() {
1119
+ this._filterValue.set(null);
1120
+ if (this.filterViewChild && this.filterViewChild.nativeElement) {
1121
+ this.filterViewChild.nativeElement.value = '';
1122
+ }
1123
+ }
1124
+ onContainerClick(event) {
1125
+ if (this.$disabled() || this.readonly || this.loading) {
1126
+ return;
1127
+ }
1128
+ if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section="clearicon"]')) {
1129
+ return;
1130
+ }
1131
+ else if (!this.overlayViewChild || !this.overlayViewChild.el.nativeElement.contains(event.target)) {
1132
+ this.overlayVisible ? this.hide(true) : this.show(true);
1133
+ }
1134
+ this.focusInputViewChild?.nativeElement.focus({ preventScroll: true });
1135
+ this.onClick.emit(event);
1136
+ this.clicked.set(true);
1137
+ this.cd.detectChanges();
1138
+ }
1139
+ isEmpty() {
1140
+ return !this._options() || (this.visibleOptions() && this.visibleOptions().length === 0);
1141
+ }
1142
+ onEditableInput(event) {
1143
+ const value = event.target.value;
1144
+ this.searchValue = '';
1145
+ const matched = this.searchOptions(event, value);
1146
+ !matched && this.focusedOptionIndex.set(-1);
1147
+ this.onModelChange(value);
1148
+ this.updateModel(value || null, event);
1149
+ setTimeout(() => {
1150
+ this.onChange.emit({ originalEvent: event, value: value });
1151
+ }, 1);
1152
+ !this.overlayVisible && isNotEmpty(value) && this.show();
1153
+ }
1154
+ /**
1155
+ * Displays the panel.
1156
+ * @group Method
1157
+ */
1158
+ show(isFocus) {
1159
+ this.overlayVisible = true;
1160
+ this.focusedOptionIndex.set(this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex());
1161
+ if (isFocus) {
1162
+ focus(this.focusInputViewChild?.nativeElement);
1163
+ }
1164
+ this.cd.markForCheck();
1165
+ }
1166
+ onOverlayBeforeEnter(event) {
1167
+ this.itemsWrapper = findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, this.virtualScroll ? '[data-pc-name="virtualscroller"]' : '[data-pc-section="listcontainer"]');
1168
+ this.virtualScroll && this.scroller?.setContentEl(this.itemsViewChild?.nativeElement);
1169
+ if (this.options && this.options.length) {
1170
+ if (this.virtualScroll) {
1171
+ const selectedIndex = this.modelValue() ? this.focusedOptionIndex() : -1;
1172
+ if (selectedIndex !== -1) {
1173
+ setTimeout(() => {
1174
+ this.scroller?.scrollToIndex(selectedIndex);
1175
+ }, 10);
1176
+ }
1177
+ }
1178
+ else {
1179
+ let selectedListItem = findSingle(this.itemsWrapper, '[data-p-selected="true"]');
1180
+ if (selectedListItem) {
1181
+ selectedListItem.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1182
+ }
1183
+ }
1184
+ }
1185
+ if (this.filterViewChild && this.filterViewChild.nativeElement) {
1186
+ this.preventModelTouched = true;
1187
+ if (this.autofocusFilter && !this.editable) {
1188
+ this.filterViewChild.nativeElement.focus();
1189
+ }
1190
+ }
1191
+ this.onShow.emit(event);
1192
+ }
1193
+ onOverlayAfterLeave(event) {
1194
+ this.itemsWrapper = null;
1195
+ this.onModelTouched();
1196
+ this.onHide.emit(event);
1197
+ }
1198
+ /**
1199
+ * Hides the panel.
1200
+ * @group Method
1201
+ */
1202
+ hide(isFocus) {
1203
+ this.overlayVisible = false;
1204
+ this.focusedOptionIndex.set(-1);
1205
+ this.clicked.set(false);
1206
+ this.searchValue = '';
1207
+ if (this.overlayOptions?.mode === 'modal') {
1208
+ unblockBodyScroll();
1209
+ }
1210
+ if (this.filter && this.resetFilterOnHide) {
1211
+ this.resetFilter();
1212
+ }
1213
+ if (isFocus) {
1214
+ if (this.focusInputViewChild) {
1215
+ focus(this.focusInputViewChild?.nativeElement);
1216
+ }
1217
+ if (this.editable && this.editableInputViewChild) {
1218
+ focus(this.editableInputViewChild?.nativeElement);
1219
+ }
1220
+ }
1221
+ this.cd.markForCheck();
1222
+ }
1223
+ onInputFocus(event) {
1224
+ if (this.$disabled()) {
1225
+ // For ScreenReaders
1226
+ return;
1227
+ }
1228
+ this.focused = true;
1229
+ const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;
1230
+ this.focusedOptionIndex.set(focusedOptionIndex);
1231
+ this.overlayVisible && this.scrollInView(this.focusedOptionIndex());
1232
+ this.onFocus.emit(event);
1233
+ }
1234
+ onInputBlur(event) {
1235
+ this.focused = false;
1236
+ this.onBlur.emit(event);
1237
+ if (!this.preventModelTouched && !this.overlayVisible) {
1238
+ this.onModelTouched();
1239
+ }
1240
+ this.preventModelTouched = false;
1241
+ }
1242
+ onKeyDown(event, search = false) {
1243
+ if (this.$disabled() || this.readonly || this.loading) {
1244
+ return;
1245
+ }
1246
+ switch (event.code) {
1247
+ //down
1248
+ case 'ArrowDown':
1249
+ this.onArrowDownKey(event);
1250
+ break;
1251
+ //up
1252
+ case 'ArrowUp':
1253
+ this.onArrowUpKey(event, this.editable);
1254
+ break;
1255
+ case 'ArrowLeft':
1256
+ case 'ArrowRight':
1257
+ this.onArrowLeftKey(event, this.editable);
1258
+ break;
1259
+ case 'Delete':
1260
+ this.onDeleteKey(event);
1261
+ break;
1262
+ case 'Home':
1263
+ this.onHomeKey(event, this.editable);
1264
+ break;
1265
+ case 'End':
1266
+ this.onEndKey(event, this.editable);
1267
+ break;
1268
+ case 'PageDown':
1269
+ this.onPageDownKey(event);
1270
+ break;
1271
+ case 'PageUp':
1272
+ this.onPageUpKey(event);
1273
+ break;
1274
+ //space
1275
+ case 'Space':
1276
+ this.onSpaceKey(event, search);
1277
+ break;
1278
+ //enter
1279
+ case 'Enter':
1280
+ case 'NumpadEnter':
1281
+ this.onEnterKey(event);
1282
+ break;
1283
+ //escape and tab
1284
+ case 'Escape':
1285
+ this.onEscapeKey(event);
1286
+ break;
1287
+ case 'Tab':
1288
+ this.onTabKey(event);
1289
+ break;
1290
+ case 'Backspace':
1291
+ this.onBackspaceKey(event, this.editable);
1292
+ break;
1293
+ case 'ShiftLeft':
1294
+ case 'ShiftRight':
1295
+ //NOOP
1296
+ break;
1297
+ default:
1298
+ if (!event.metaKey && isPrintableCharacter(event.key)) {
1299
+ !this.overlayVisible && this.show();
1300
+ !this.editable && this.searchOptions(event, event.key);
1301
+ }
1302
+ break;
1303
+ }
1304
+ this.clicked.set(false);
1305
+ }
1306
+ onFilterKeyDown(event) {
1307
+ switch (event.code) {
1308
+ case 'ArrowDown':
1309
+ this.onArrowDownKey(event);
1310
+ break;
1311
+ case 'ArrowUp':
1312
+ this.onArrowUpKey(event, true);
1313
+ break;
1314
+ case 'ArrowLeft':
1315
+ case 'ArrowRight':
1316
+ this.onArrowLeftKey(event, true);
1317
+ break;
1318
+ case 'Home':
1319
+ this.onHomeKey(event, true);
1320
+ break;
1321
+ case 'End':
1322
+ this.onEndKey(event, true);
1323
+ break;
1324
+ case 'Enter':
1325
+ case 'NumpadEnter':
1326
+ this.onEnterKey(event, true);
1327
+ break;
1328
+ case 'Escape':
1329
+ this.onEscapeKey(event);
1330
+ break;
1331
+ case 'Tab':
1332
+ this.onTabKey(event, true);
1333
+ break;
1334
+ default:
1335
+ break;
1336
+ }
1337
+ }
1338
+ onFilterBlur(event) {
1339
+ this.focusedOptionIndex.set(-1);
1340
+ }
1341
+ onArrowDownKey(event) {
1342
+ if (!this.overlayVisible) {
1343
+ this.show();
1344
+ this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());
1345
+ }
1346
+ else {
1347
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.clicked() ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();
1348
+ this.changeFocusedOptionIndex(event, optionIndex);
1349
+ }
1350
+ // const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();
1351
+ // this.changeFocusedOptionIndex(event, optionIndex);
1352
+ // !this.overlayVisible && this.show();
1353
+ event.preventDefault();
1354
+ event.stopPropagation();
1355
+ }
1356
+ changeFocusedOptionIndex(event, index) {
1357
+ if (this.focusedOptionIndex() !== index) {
1358
+ this.focusedOptionIndex.set(index);
1359
+ this.scrollInView();
1360
+ if (this.selectOnFocus) {
1361
+ const option = this.visibleOptions()[index];
1362
+ this.onOptionSelect(event, option, false);
1363
+ }
1364
+ }
1365
+ }
1366
+ get virtualScrollerDisabled() {
1367
+ return !this.virtualScroll;
1368
+ }
1369
+ scrollInView(index = -1) {
1370
+ const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
1371
+ if (this.itemsViewChild && this.itemsViewChild.nativeElement) {
1372
+ const element = findSingle(this.itemsViewChild.nativeElement, `li[id="${id}"]`);
1373
+ if (element) {
1374
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1375
+ }
1376
+ else if (!this.virtualScrollerDisabled) {
1377
+ setTimeout(() => {
1378
+ this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());
1379
+ }, 0);
1380
+ }
1381
+ }
1382
+ }
1383
+ hasSelectedOption() {
1384
+ return this.modelValue() !== undefined;
1385
+ }
1386
+ isValidSelectedOption(option) {
1387
+ return this.isValidOption(option) && this.isSelected(option);
1388
+ }
1389
+ equalityKey() {
1390
+ return this.optionValue ? undefined : this.dataKey;
1391
+ }
1392
+ findFirstFocusedOptionIndex() {
1393
+ const selectedIndex = this.findSelectedOptionIndex();
1394
+ return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;
1395
+ }
1396
+ findFirstOptionIndex() {
1397
+ return this.visibleOptions().findIndex((option) => this.isValidOption(option));
1398
+ }
1399
+ findSelectedOptionIndex() {
1400
+ return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;
1401
+ }
1402
+ findNextOptionIndex(index) {
1403
+ const matchedOptionIndex = index < this.visibleOptions().length - 1
1404
+ ? this.visibleOptions()
1405
+ .slice(index + 1)
1406
+ .findIndex((option) => this.isValidOption(option))
1407
+ : -1;
1408
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
1409
+ }
1410
+ findPrevOptionIndex(index) {
1411
+ const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;
1412
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1413
+ }
1414
+ findLastOptionIndex() {
1415
+ return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));
1416
+ }
1417
+ findLastFocusedOptionIndex() {
1418
+ const selectedIndex = this.findSelectedOptionIndex();
1419
+ return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;
1420
+ }
1421
+ isValidOption(option) {
1422
+ return option !== undefined && option !== null && !(this.isOptionDisabled(option) || this.isOptionGroup(option));
1423
+ }
1424
+ isOptionGroup(option) {
1425
+ return this.optionGroupLabel !== undefined && this.optionGroupLabel !== null && option.optionGroup !== undefined && option.optionGroup !== null && option.group;
1426
+ }
1427
+ onArrowUpKey(event, pressedInInputText = false) {
1428
+ if (event.altKey && !pressedInInputText) {
1429
+ if (this.focusedOptionIndex() !== -1) {
1430
+ const option = this.visibleOptions()[this.focusedOptionIndex()];
1431
+ this.onOptionSelect(event, option);
1432
+ }
1433
+ this.overlayVisible && this.hide();
1434
+ }
1435
+ else {
1436
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.clicked() ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();
1437
+ this.changeFocusedOptionIndex(event, optionIndex);
1438
+ !this.overlayVisible && this.show();
1439
+ }
1440
+ event.preventDefault();
1441
+ event.stopPropagation();
1442
+ }
1443
+ onArrowLeftKey(event, pressedInInputText = false) {
1444
+ pressedInInputText && this.focusedOptionIndex.set(-1);
1445
+ }
1446
+ onDeleteKey(event) {
1447
+ if (this.showClear) {
1448
+ this.clear(event);
1449
+ event.preventDefault();
1450
+ }
1451
+ }
1452
+ onHomeKey(event, pressedInInputText = false) {
1453
+ if (pressedInInputText && event.currentTarget && event.currentTarget.setSelectionRange) {
1454
+ const target = event.currentTarget;
1455
+ if (event.shiftKey) {
1456
+ target.setSelectionRange(0, target.value.length);
1457
+ }
1458
+ else {
1459
+ target.setSelectionRange(0, 0);
1460
+ this.focusedOptionIndex.set(-1);
1461
+ }
1462
+ }
1463
+ else {
1464
+ this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());
1465
+ !this.overlayVisible && this.show();
1466
+ }
1467
+ event.preventDefault();
1468
+ }
1469
+ onEndKey(event, pressedInInputText = false) {
1470
+ if (pressedInInputText && event.currentTarget && event.currentTarget.setSelectionRange) {
1471
+ const target = event.currentTarget;
1472
+ if (event.shiftKey) {
1473
+ target.setSelectionRange(0, target.value.length);
1474
+ }
1475
+ else {
1476
+ const len = target.value.length;
1477
+ target.setSelectionRange(len, len);
1478
+ this.focusedOptionIndex.set(-1);
1479
+ }
1480
+ }
1481
+ else {
1482
+ this.changeFocusedOptionIndex(event, this.findLastOptionIndex());
1483
+ !this.overlayVisible && this.show();
1484
+ }
1485
+ event.preventDefault();
1486
+ }
1487
+ onPageDownKey(event) {
1488
+ this.scrollInView(this.visibleOptions().length - 1);
1489
+ event.preventDefault();
1490
+ }
1491
+ onPageUpKey(event) {
1492
+ this.scrollInView(0);
1493
+ event.preventDefault();
1494
+ }
1495
+ onSpaceKey(event, pressedInInputText = false) {
1496
+ !this.editable && !pressedInInputText && this.onEnterKey(event);
1497
+ }
1498
+ onEnterKey(event, pressedInInput = false) {
1499
+ if (!this.overlayVisible) {
1500
+ this.focusedOptionIndex.set(-1);
1501
+ this.onArrowDownKey(event);
1502
+ }
1503
+ else {
1504
+ if (this.focusedOptionIndex() !== -1) {
1505
+ const option = this.visibleOptions()[this.focusedOptionIndex()];
1506
+ this.onOptionSelect(event, option);
1507
+ }
1508
+ !pressedInInput && this.hide();
1509
+ }
1510
+ event.preventDefault();
1511
+ }
1512
+ onEscapeKey(event) {
1513
+ if (this.overlayVisible) {
1514
+ this.hide(true);
1515
+ event.preventDefault();
1516
+ event.stopPropagation();
1517
+ }
1518
+ }
1519
+ onTabKey(event, pressedInInputText = false) {
1520
+ if (!pressedInInputText) {
1521
+ if (this.overlayVisible && this.hasFocusableElements()) {
1522
+ focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay?.nativeElement : this.firstHiddenFocusableElementOnOverlay?.nativeElement);
1523
+ event.preventDefault();
1524
+ }
1525
+ else {
1526
+ if (this.focusedOptionIndex() !== -1 && this.overlayVisible) {
1527
+ const option = this.visibleOptions()[this.focusedOptionIndex()];
1528
+ this.onOptionSelect(event, option);
1529
+ }
1530
+ this.overlayVisible && this.hide(this.filter);
1531
+ }
1532
+ }
1533
+ event.stopPropagation();
1534
+ }
1535
+ onFirstHiddenFocus(event) {
1536
+ const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getFirstFocusableElement(this.overlayViewChild?.el?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInputViewChild?.nativeElement;
1537
+ focus(focusableEl);
1538
+ }
1539
+ onLastHiddenFocus(event) {
1540
+ const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInputViewChild?.nativeElement;
1541
+ focus(focusableEl);
1542
+ }
1543
+ hasFocusableElements() {
1544
+ return getFocusableElements(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])').length > 0;
1545
+ }
1546
+ onBackspaceKey(event, pressedInInputText = false) {
1547
+ if (pressedInInputText) {
1548
+ !this.overlayVisible && this.show();
1549
+ }
1550
+ }
1551
+ searchFields() {
1552
+ return this.filterBy?.split(',') || this.filterFields || [this.optionLabel];
1553
+ }
1554
+ searchOptions(event, char) {
1555
+ this.searchValue = (this.searchValue || '') + char;
1556
+ let optionIndex = -1;
1557
+ let matched = false;
1558
+ optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));
1559
+ if (optionIndex !== -1) {
1560
+ matched = true;
1561
+ }
1562
+ if (optionIndex === -1 && this.focusedOptionIndex() === -1) {
1563
+ optionIndex = this.findFirstFocusedOptionIndex();
1564
+ }
1565
+ if (optionIndex !== -1) {
1566
+ setTimeout(() => {
1567
+ this.changeFocusedOptionIndex(event, optionIndex);
1568
+ });
1569
+ }
1570
+ if (this.searchTimeout) {
1571
+ clearTimeout(this.searchTimeout);
1572
+ }
1573
+ this.searchTimeout = setTimeout(() => {
1574
+ this.searchValue = '';
1575
+ this.searchTimeout = null;
1576
+ }, 500);
1577
+ return matched;
1578
+ }
1579
+ isOptionMatched(option) {
1580
+ return this.isValidOption(option) && this.getOptionLabel(option).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale));
1581
+ }
1582
+ onFilterInputChange(event) {
1583
+ let value = event.target.value;
1584
+ this._filterValue.set(value);
1585
+ this.focusedOptionIndex.set(-1);
1586
+ this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });
1587
+ !this.virtualScrollerDisabled && this.scroller?.scrollToIndex(0);
1588
+ setTimeout(() => {
1589
+ this.overlayViewChild?.alignOverlay();
1590
+ });
1591
+ this.cd.markForCheck();
1592
+ }
1593
+ applyFocus() {
1594
+ if (this.editable)
1595
+ findSingle(this.el.nativeElement, '[data-pc-section="label"]').focus();
1596
+ else
1597
+ focus(this.focusInputViewChild?.nativeElement);
1598
+ }
1599
+ /**
1600
+ * Applies focus.
1601
+ * @group Method
1602
+ */
1603
+ focus() {
1604
+ this.applyFocus();
1605
+ }
1606
+ /**
1607
+ * Clears the model.
1608
+ * @group Method
1609
+ */
1610
+ clear(event) {
1611
+ this.updateModel(null, event);
1612
+ this.clearEditableLabel();
1613
+ this.onModelTouched();
1614
+ this.onChange.emit({ originalEvent: event, value: this.value });
1615
+ this.onClear.emit(event);
1616
+ this.resetFilter();
1617
+ }
1618
+ /**
1619
+ * @override
1620
+ *
1621
+ * @see {@link BaseEditableHolder.writeControlValue}
1622
+ * Writes the value to the control.
1623
+ */
1624
+ writeControlValue(value, setModelValue) {
1625
+ if (this.filter) {
1626
+ this.resetFilter();
1627
+ }
1628
+ this.value = value;
1629
+ this.allowModelChange() && this.onModelChange(value);
1630
+ setModelValue(this.value);
1631
+ this.updateEditableLabel();
1632
+ this.cd.markForCheck();
1633
+ }
1634
+ get containerDataP() {
1635
+ return this.cn({
1636
+ invalid: this.invalid(),
1637
+ disabled: this.$disabled(),
1638
+ focus: this.focused,
1639
+ fluid: this.hasFluid,
1640
+ filled: this.$variant() === 'filled',
1641
+ [this.size()]: this.size()
1642
+ });
1643
+ }
1644
+ get labelDataP() {
1645
+ return this.cn({
1646
+ placeholder: this.label === this.placeholder,
1647
+ clearable: this.showClear,
1648
+ disabled: this.$disabled(),
1649
+ [this.size()]: this.size(),
1650
+ empty: !this.editable && !this.selectedItemTemplate && (!this.label?.() || this.label() === 'p-emptylabel' || this.label()?.length === 0)
1651
+ });
1652
+ }
1653
+ get dropdownIconDataP() {
1654
+ return this.cn({
1655
+ [this.size()]: this.size()
1656
+ });
1657
+ }
1658
+ get overlayDataP() {
1659
+ return this.cn({
1660
+ ['overlay-' + this.$appendTo()]: 'overlay-' + this.$appendTo()
1661
+ });
1662
+ }
1663
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: Select, deps: [{ token: i0.NgZone }, { token: i3.FilterService }], target: i0.ɵɵFactoryTarget.Component });
1664
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: Select, isStandalone: true, selector: "p-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, panelStyle: { classPropertyName: "panelStyle", publicName: "panelStyle", isSignal: false, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, panelStyleClass: { classPropertyName: "panelStyleClass", publicName: "panelStyleClass", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, loadingIcon: { classPropertyName: "loadingIcon", publicName: "loadingIcon", isSignal: false, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: false, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: false, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: false, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, resetFilterOnHide: { classPropertyName: "resetFilterOnHide", publicName: "resetFilterOnHide", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkmark: { classPropertyName: "checkmark", publicName: "checkmark", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dropdownIcon: { classPropertyName: "dropdownIcon", publicName: "dropdownIcon", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: false, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: false, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: false, isRequired: false, transformFunction: null }, optionGroupLabel: { classPropertyName: "optionGroupLabel", publicName: "optionGroupLabel", isSignal: false, isRequired: false, transformFunction: null }, optionGroupChildren: { classPropertyName: "optionGroupChildren", publicName: "optionGroupChildren", isSignal: false, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, emptyFilterMessage: { classPropertyName: "emptyFilterMessage", publicName: "emptyFilterMessage", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, overlayOptions: { classPropertyName: "overlayOptions", publicName: "overlayOptions", isSignal: false, isRequired: false, transformFunction: null }, ariaFilterLabel: { classPropertyName: "ariaFilterLabel", publicName: "ariaFilterLabel", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, filterMatchMode: { classPropertyName: "filterMatchMode", publicName: "filterMatchMode", isSignal: false, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: false, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: false, isRequired: false, transformFunction: null }, tooltipPositionStyle: { classPropertyName: "tooltipPositionStyle", publicName: "tooltipPositionStyle", isSignal: false, isRequired: false, transformFunction: null }, tooltipStyleClass: { classPropertyName: "tooltipStyleClass", publicName: "tooltipStyleClass", isSignal: false, isRequired: false, transformFunction: null }, focusOnHover: { classPropertyName: "focusOnHover", publicName: "focusOnHover", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autoOptionFocus: { classPropertyName: "autoOptionFocus", publicName: "autoOptionFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autofocusFilter: { classPropertyName: "autofocusFilter", publicName: "autofocusFilter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, motionOptions: { classPropertyName: "motionOptions", publicName: "motionOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onShow: "onShow", onHide: "onHide", onClear: "onClear", onLazyLoad: "onLazyLoad" }, host: { listeners: { "click": "onContainerClick($event)" }, properties: { "class": "cn(cx('root'), styleClass)", "attr.id": "id", "attr.data-p": "containerDataP" } }, providers: [SELECT_VALUE_ACCESSOR, SelectStyle, { provide: SELECT_INSTANCE, useExisting: Select }, { provide: PARENT_INSTANCE, useExisting: Select }], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "groupTemplate", first: true, predicate: ["group"] }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"] }, { propertyName: "selectedItemTemplate", first: true, predicate: ["selectedItem"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "filterTemplate", first: true, predicate: ["filter"] }, { propertyName: "footerTemplate", first: true, predicate: ["footer"] }, { propertyName: "emptyFilterTemplate", first: true, predicate: ["emptyfilter"] }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"] }, { propertyName: "dropdownIconTemplate", first: true, predicate: ["dropdownicon"] }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"] }, { propertyName: "clearIconTemplate", first: true, predicate: ["clearicon"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "onIconTemplate", first: true, predicate: ["onicon"] }, { propertyName: "offIconTemplate", first: true, predicate: ["officon"] }, { propertyName: "cancelIconTemplate", first: true, predicate: ["cancelicon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }, { propertyName: "focusInputViewChild", first: true, predicate: ["focusInput"], descendants: true }, { propertyName: "editableInputViewChild", first: true, predicate: ["editableInput"], descendants: true }, { propertyName: "itemsViewChild", first: true, predicate: ["items"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "overlayViewChild", first: true, predicate: ["overlay"], descendants: true }, { propertyName: "firstHiddenFocusableElementOnOverlay", first: true, predicate: ["firstHiddenFocusableEl"], descendants: true }, { propertyName: "lastHiddenFocusableElementOnOverlay", first: true, predicate: ["lastHiddenFocusableEl"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i2.Bind }], ngImport: i0, template: `
1665
+ <span
1666
+ #focusInput
1667
+ [class]="cx('label')"
1668
+ *ngIf="!editable"
1669
+ [pBind]="ptm('label')"
1670
+ [pTooltip]="tooltip"
1671
+ [pTooltipUnstyled]="unstyled()"
1672
+ [tooltipPosition]="tooltipPosition"
1673
+ [positionStyle]="tooltipPositionStyle"
1674
+ [tooltipStyleClass]="tooltipStyleClass"
1675
+ [attr.aria-disabled]="$disabled()"
1676
+ [attr.id]="inputId"
1677
+ role="combobox"
1678
+ [attr.aria-label]="ariaLabel || (label() === 'p-emptylabel' ? undefined : label())"
1679
+ [attr.aria-labelledby]="ariaLabelledBy"
1680
+ [attr.aria-haspopup]="'listbox'"
1681
+ [attr.aria-expanded]="overlayVisible ?? false"
1682
+ [attr.aria-controls]="overlayVisible ? id + '_list' : null"
1683
+ [attr.tabindex]="!$disabled() ? tabindex : -1"
1684
+ [pAutoFocus]="autofocus"
1685
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1686
+ (focus)="onInputFocus($event)"
1687
+ (blur)="onInputBlur($event)"
1688
+ (keydown)="onKeyDown($event)"
1689
+ [attr.aria-required]="required()"
1690
+ [attr.required]="required() ? '' : undefined"
1691
+ [attr.disabled]="$disabled() ? '' : undefined"
1692
+ [attr.data-p]="labelDataP"
1693
+ >
1694
+ <ng-container *ngIf="!selectedItemTemplate && !_selectedItemTemplate; else defaultPlaceholder">{{ label() === 'p-emptylabel' ? '&nbsp;' : label() }}</ng-container>
1695
+ <ng-container *ngIf="(selectedItemTemplate || _selectedItemTemplate) && !isSelectedOptionEmpty()" [ngTemplateOutlet]="selectedItemTemplate || _selectedItemTemplate" [ngTemplateOutletContext]="{ $implicit: selectedOption }"></ng-container>
1696
+ <ng-template #defaultPlaceholder>
1697
+ <span *ngIf="isSelectedOptionEmpty()">{{ label() === 'p-emptylabel' ? '&nbsp;' : label() }}</span>
1698
+ </ng-template>
1699
+ </span>
1700
+ <input
1701
+ *ngIf="editable"
1702
+ #editableInput
1703
+ type="text"
1704
+ [attr.id]="inputId"
1705
+ [class]="cx('label')"
1706
+ [pBind]="ptm('label')"
1707
+ [attr.aria-haspopup]="'listbox'"
1708
+ [attr.placeholder]="modelValue() === undefined || modelValue() === null ? placeholder() : undefined"
1709
+ [attr.aria-label]="ariaLabel || (label() === 'p-emptylabel' ? undefined : label())"
1710
+ (input)="onEditableInput($event)"
1711
+ (keydown)="onKeyDown($event)"
1712
+ [pAutoFocus]="autofocus"
1713
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1714
+ (focus)="onInputFocus($event)"
1715
+ (blur)="onInputBlur($event)"
1716
+ [attr.name]="name()"
1717
+ [attr.minlength]="minlength()"
1718
+ [attr.min]="min()"
1719
+ [attr.max]="max()"
1720
+ [attr.pattern]="pattern()"
1721
+ [attr.size]="inputSize()"
1722
+ [attr.maxlength]="maxlength()"
1723
+ [attr.required]="required() ? '' : undefined"
1724
+ [attr.readonly]="readonly ? '' : undefined"
1725
+ [attr.disabled]="$disabled() ? '' : undefined"
1726
+ [attr.data-p]="labelDataP"
1727
+ />
1728
+ <ng-container *ngIf="isVisibleClearIcon">
1729
+ <svg data-p-icon="times" [class]="cx('clearIcon')" [pBind]="ptm('clearIcon')" (click)="clear($event)" *ngIf="!clearIconTemplate && !_clearIconTemplate" [attr.data-pc-section]="'clearicon'" />
1730
+ <span [class]="cx('clearIcon')" [pBind]="ptm('clearIcon')" (click)="clear($event)" *ngIf="clearIconTemplate || _clearIconTemplate" [attr.data-pc-section]="'clearicon'">
1731
+ <ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate; context: { class: cx('clearIcon') }"></ng-template>
1732
+ </span>
1733
+ </ng-container>
1734
+
1735
+ <div [class]="cx('dropdown')" [pBind]="ptm('dropdown')" role="button" aria-label="dropdown trigger" aria-haspopup="listbox" [attr.aria-expanded]="overlayVisible ?? false" [attr.data-pc-section]="'trigger'">
1736
+ <ng-container *ngIf="loading; else elseBlock">
1737
+ <ng-container *ngIf="loadingIconTemplate || _loadingIconTemplate">
1738
+ <ng-container *ngTemplateOutlet="loadingIconTemplate || _loadingIconTemplate"></ng-container>
1739
+ </ng-container>
1740
+ <ng-container *ngIf="!loadingIconTemplate && !_loadingIconTemplate">
1741
+ <span *ngIf="loadingIcon" [class]="cn(cx('loadingIcon'), 'pi-spin' + loadingIcon)" [pBind]="ptm('loadingIcon')" aria-hidden="true"></span>
1742
+ <span *ngIf="!loadingIcon" [class]="cn(cx('loadingIcon'), 'pi pi-spinner pi-spin')" [pBind]="ptm('loadingIcon')" aria-hidden="true"></span>
1743
+ </ng-container>
1744
+ </ng-container>
1745
+
1746
+ <ng-template #elseBlock>
1747
+ <ng-container *ngIf="!dropdownIconTemplate && !_dropdownIconTemplate">
1748
+ <span [class]="cn(cx('dropdownIcon'), dropdownIcon)" [pBind]="ptm('dropdownIcon')" *ngIf="dropdownIcon"></span>
1749
+ <svg data-p-icon="chevron-down" *ngIf="!dropdownIcon" [class]="cx('dropdownIcon')" [pBind]="ptm('dropdownIcon')" />
1750
+ </ng-container>
1751
+ <span *ngIf="dropdownIconTemplate || _dropdownIconTemplate" [class]="cx('dropdownIcon')" [pBind]="ptm('dropdownIcon')">
1752
+ <ng-template *ngTemplateOutlet="dropdownIconTemplate || _dropdownIconTemplate; context: { class: cx('dropdownIcon') }"></ng-template>
1753
+ </span>
1754
+ </ng-template>
1755
+ </div>
1756
+
1757
+ <p-overlay
1758
+ #overlay
1759
+ [hostAttrSelector]="$attrSelector"
1760
+ [(visible)]="overlayVisible"
1761
+ [options]="overlayOptions"
1762
+ [target]="'@parent'"
1763
+ [appendTo]="$appendTo()"
1764
+ [unstyled]="unstyled()"
1765
+ [pt]="ptm('pcOverlay')"
1766
+ [motionOptions]="motionOptions()"
1767
+ (onBeforeEnter)="onOverlayBeforeEnter($event)"
1768
+ (onAfterLeave)="onOverlayAfterLeave($event)"
1769
+ (onHide)="hide()"
1770
+ >
1771
+ <ng-template #content>
1772
+ <div [class]="cn(cx('overlay'), panelStyleClass)" [ngStyle]="panelStyle" [pBind]="ptm('overlay')" [attr.data-p]="overlayDataP">
1773
+ <span
1774
+ #firstHiddenFocusableEl
1775
+ role="presentation"
1776
+ class="p-hidden-accessible p-hidden-focusable"
1777
+ [attr.tabindex]="0"
1778
+ (focus)="onFirstHiddenFocus($event)"
1779
+ [attr.data-p-hidden-accessible]="true"
1780
+ [attr.data-p-hidden-focusable]="true"
1781
+ [pBind]="ptm('hiddenFirstFocusableEl')"
1782
+ >
1783
+ </span>
1784
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate"></ng-container>
1785
+ <div [class]="cx('header')" *ngIf="filter" (click)="$event.stopPropagation()" [pBind]="ptm('header')">
1786
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
1787
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
1788
+ </ng-container>
1789
+ <ng-template #builtInFilterElement>
1790
+ <p-iconfield [pt]="ptm('pcFilterContainer')" [unstyled]="unstyled()">
1791
+ <input
1792
+ #filter
1793
+ pInputText
1794
+ [pSize]="size()"
1795
+ type="text"
1796
+ role="searchbox"
1797
+ autocomplete="off"
1798
+ [value]="_filterValue() || ''"
1799
+ [class]="cx('pcFilter')"
1800
+ [variant]="$variant()"
1801
+ [attr.placeholder]="filterPlaceholder"
1802
+ [attr.aria-owns]="id + '_list'"
1803
+ (input)="onFilterInputChange($event)"
1804
+ [attr.aria-label]="ariaFilterLabel"
1805
+ [attr.aria-activedescendant]="focusedOptionId"
1806
+ (keydown)="onFilterKeyDown($event)"
1807
+ (blur)="onFilterBlur($event)"
1808
+ [pt]="ptm('pcFilter')"
1809
+ [unstyled]="unstyled()"
1810
+ />
1811
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
1812
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [pBind]="ptm('filterIcon')" />
1813
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [pBind]="ptm('filterIcon')">
1814
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
1815
+ </span>
1816
+ </p-inputicon>
1817
+ </p-iconfield>
1818
+ </ng-template>
1819
+ </div>
1820
+ <div [class]="cx('listContainer')" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'" [pBind]="ptm('listContainer')">
1821
+ <p-scroller
1822
+ *ngIf="virtualScroll"
1823
+ hostName="select"
1824
+ #scroller
1825
+ [items]="visibleOptions()"
1826
+ [style]="{ height: scrollHeight }"
1827
+ [itemSize]="virtualScrollItemSize"
1828
+ [autoSize]="true"
1829
+ [lazy]="lazy"
1830
+ (onLazyLoad)="onLazyLoad.emit($event)"
1831
+ [options]="virtualScrollOptions"
1832
+ [pt]="ptm('virtualScroller')"
1833
+ >
1834
+ <ng-template #content let-items let-scrollerOptions="options">
1835
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
1836
+ </ng-template>
1837
+ <ng-container *ngIf="loaderTemplate || _loaderTemplate">
1838
+ <ng-template #loader let-scrollerOptions="options">
1839
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
1840
+ </ng-template>
1841
+ </ng-container>
1842
+ </p-scroller>
1843
+ <ng-container *ngIf="!virtualScroll">
1844
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
1845
+ </ng-container>
1846
+
1847
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
1848
+ <ul #items [attr.id]="id + '_list'" [attr.aria-label]="listLabel" [class]="cn(cx('list'), scrollerOptions.contentStyleClass)" [style]="scrollerOptions.contentStyle" role="listbox" [pBind]="ptm('list')">
1849
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1850
+ <ng-container *ngIf="isOptionGroup(option)">
1851
+ <li [class]="cx('optionGroup')" [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option" [pBind]="ptm('optionGroup')">
1852
+ <span *ngIf="!groupTemplate && !_groupTemplate" [class]="cx('optionGroupLabel')" [pBind]="ptm('optionGroupLabel')">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1853
+ <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
1854
+ </li>
1855
+ </ng-container>
1856
+ <ng-container *ngIf="!isOptionGroup(option)">
1857
+ <p-selectItem
1858
+ [id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1859
+ [option]="option"
1860
+ [checkmark]="checkmark"
1861
+ [selected]="isSelected(option)"
1862
+ [label]="getOptionLabel(option)"
1863
+ [disabled]="isOptionDisabled(option)"
1864
+ [template]="itemTemplate || _itemTemplate"
1865
+ [focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
1866
+ [ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
1867
+ [ariaSetSize]="ariaSetSize"
1868
+ [index]="i"
1869
+ [unstyled]="unstyled()"
1870
+ [scrollerOptions]="scrollerOptions"
1871
+ (onClick)="onOptionSelect($event, option)"
1872
+ (onMouseEnter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
1873
+ ></p-selectItem>
1874
+ </ng-container>
1875
+ </ng-template>
1876
+ <li *ngIf="filterValue && isEmpty()" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option" [pBind]="ptm('emptyMessage')">
1877
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate) {
1878
+ {{ emptyFilterMessageLabel }}
1879
+ } @else {
1880
+ <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || emptyTemplate || _emptyTemplate"></ng-container>
1881
+ }
1882
+ </li>
1883
+ <li *ngIf="!filterValue && isEmpty()" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option" [pBind]="ptm('emptyMessage')">
1884
+ @if (!emptyTemplate && !_emptyTemplate) {
1885
+ {{ emptyMessageLabel || emptyFilterMessageLabel }}
1886
+ } @else {
1887
+ <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1888
+ }
1889
+ </li>
1890
+ </ul>
1891
+ </ng-template>
1892
+ </div>
1893
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
1894
+ <span
1895
+ #lastHiddenFocusableEl
1896
+ role="presentation"
1897
+ class="p-hidden-accessible p-hidden-focusable"
1898
+ [pBind]="ptm('hiddenLastFocusableEl')"
1899
+ [attr.tabindex]="0"
1900
+ (focus)="onLastHiddenFocus($event)"
1901
+ [attr.data-p-hidden-accessible]="true"
1902
+ [attr.data-p-hidden-focusable]="true"
1903
+ ></span>
1904
+ </div>
1905
+ </ng-template>
1906
+ </p-overlay>
1907
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SelectItem, selector: "p-selectItem", inputs: ["id", "option", "selected", "focused", "label", "disabled", "visible", "itemSize", "ariaPosInset", "ariaSetSize", "template", "checkmark", "index", "scrollerOptions"], outputs: ["onClick", "onMouseEnter"] }, { kind: "component", type: Overlay, selector: "p-overlay", inputs: ["hostName", "visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options", "appendTo", "inline", "motionOptions", "hostAttrSelector"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone", "onBeforeEnter", "onEnter", "onAfterEnter", "onBeforeLeave", "onLeave", "onAfterLeave"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "component", type: Scroller, selector: "p-scroller, p-virtualscroller, p-virtual-scroller, p-virtualScroller", inputs: ["hostName", "id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i2.Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1908
+ }
1909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: Select, decorators: [{
1910
+ type: Component,
1911
+ args: [{
1912
+ selector: 'p-select',
1913
+ standalone: true,
1914
+ imports: [CommonModule, SelectItem, Overlay, Tooltip, AutoFocus, TimesIcon, ChevronDownIcon, SearchIcon, InputText, IconField, InputIcon, Scroller, SharedModule, BindModule],
1915
+ template: `
1916
+ <span
1917
+ #focusInput
1918
+ [class]="cx('label')"
1919
+ *ngIf="!editable"
1920
+ [pBind]="ptm('label')"
1921
+ [pTooltip]="tooltip"
1922
+ [pTooltipUnstyled]="unstyled()"
1923
+ [tooltipPosition]="tooltipPosition"
1924
+ [positionStyle]="tooltipPositionStyle"
1925
+ [tooltipStyleClass]="tooltipStyleClass"
1926
+ [attr.aria-disabled]="$disabled()"
1927
+ [attr.id]="inputId"
1928
+ role="combobox"
1929
+ [attr.aria-label]="ariaLabel || (label() === 'p-emptylabel' ? undefined : label())"
1930
+ [attr.aria-labelledby]="ariaLabelledBy"
1931
+ [attr.aria-haspopup]="'listbox'"
1932
+ [attr.aria-expanded]="overlayVisible ?? false"
1933
+ [attr.aria-controls]="overlayVisible ? id + '_list' : null"
1934
+ [attr.tabindex]="!$disabled() ? tabindex : -1"
1935
+ [pAutoFocus]="autofocus"
1936
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1937
+ (focus)="onInputFocus($event)"
1938
+ (blur)="onInputBlur($event)"
1939
+ (keydown)="onKeyDown($event)"
1940
+ [attr.aria-required]="required()"
1941
+ [attr.required]="required() ? '' : undefined"
1942
+ [attr.disabled]="$disabled() ? '' : undefined"
1943
+ [attr.data-p]="labelDataP"
1944
+ >
1945
+ <ng-container *ngIf="!selectedItemTemplate && !_selectedItemTemplate; else defaultPlaceholder">{{ label() === 'p-emptylabel' ? '&nbsp;' : label() }}</ng-container>
1946
+ <ng-container *ngIf="(selectedItemTemplate || _selectedItemTemplate) && !isSelectedOptionEmpty()" [ngTemplateOutlet]="selectedItemTemplate || _selectedItemTemplate" [ngTemplateOutletContext]="{ $implicit: selectedOption }"></ng-container>
1947
+ <ng-template #defaultPlaceholder>
1948
+ <span *ngIf="isSelectedOptionEmpty()">{{ label() === 'p-emptylabel' ? '&nbsp;' : label() }}</span>
1949
+ </ng-template>
1950
+ </span>
1951
+ <input
1952
+ *ngIf="editable"
1953
+ #editableInput
1954
+ type="text"
1955
+ [attr.id]="inputId"
1956
+ [class]="cx('label')"
1957
+ [pBind]="ptm('label')"
1958
+ [attr.aria-haspopup]="'listbox'"
1959
+ [attr.placeholder]="modelValue() === undefined || modelValue() === null ? placeholder() : undefined"
1960
+ [attr.aria-label]="ariaLabel || (label() === 'p-emptylabel' ? undefined : label())"
1961
+ (input)="onEditableInput($event)"
1962
+ (keydown)="onKeyDown($event)"
1963
+ [pAutoFocus]="autofocus"
1964
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1965
+ (focus)="onInputFocus($event)"
1966
+ (blur)="onInputBlur($event)"
1967
+ [attr.name]="name()"
1968
+ [attr.minlength]="minlength()"
1969
+ [attr.min]="min()"
1970
+ [attr.max]="max()"
1971
+ [attr.pattern]="pattern()"
1972
+ [attr.size]="inputSize()"
1973
+ [attr.maxlength]="maxlength()"
1974
+ [attr.required]="required() ? '' : undefined"
1975
+ [attr.readonly]="readonly ? '' : undefined"
1976
+ [attr.disabled]="$disabled() ? '' : undefined"
1977
+ [attr.data-p]="labelDataP"
1978
+ />
1979
+ <ng-container *ngIf="isVisibleClearIcon">
1980
+ <svg data-p-icon="times" [class]="cx('clearIcon')" [pBind]="ptm('clearIcon')" (click)="clear($event)" *ngIf="!clearIconTemplate && !_clearIconTemplate" [attr.data-pc-section]="'clearicon'" />
1981
+ <span [class]="cx('clearIcon')" [pBind]="ptm('clearIcon')" (click)="clear($event)" *ngIf="clearIconTemplate || _clearIconTemplate" [attr.data-pc-section]="'clearicon'">
1982
+ <ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate; context: { class: cx('clearIcon') }"></ng-template>
1983
+ </span>
1984
+ </ng-container>
1985
+
1986
+ <div [class]="cx('dropdown')" [pBind]="ptm('dropdown')" role="button" aria-label="dropdown trigger" aria-haspopup="listbox" [attr.aria-expanded]="overlayVisible ?? false" [attr.data-pc-section]="'trigger'">
1987
+ <ng-container *ngIf="loading; else elseBlock">
1988
+ <ng-container *ngIf="loadingIconTemplate || _loadingIconTemplate">
1989
+ <ng-container *ngTemplateOutlet="loadingIconTemplate || _loadingIconTemplate"></ng-container>
1990
+ </ng-container>
1991
+ <ng-container *ngIf="!loadingIconTemplate && !_loadingIconTemplate">
1992
+ <span *ngIf="loadingIcon" [class]="cn(cx('loadingIcon'), 'pi-spin' + loadingIcon)" [pBind]="ptm('loadingIcon')" aria-hidden="true"></span>
1993
+ <span *ngIf="!loadingIcon" [class]="cn(cx('loadingIcon'), 'pi pi-spinner pi-spin')" [pBind]="ptm('loadingIcon')" aria-hidden="true"></span>
1994
+ </ng-container>
1995
+ </ng-container>
1996
+
1997
+ <ng-template #elseBlock>
1998
+ <ng-container *ngIf="!dropdownIconTemplate && !_dropdownIconTemplate">
1999
+ <span [class]="cn(cx('dropdownIcon'), dropdownIcon)" [pBind]="ptm('dropdownIcon')" *ngIf="dropdownIcon"></span>
2000
+ <svg data-p-icon="chevron-down" *ngIf="!dropdownIcon" [class]="cx('dropdownIcon')" [pBind]="ptm('dropdownIcon')" />
2001
+ </ng-container>
2002
+ <span *ngIf="dropdownIconTemplate || _dropdownIconTemplate" [class]="cx('dropdownIcon')" [pBind]="ptm('dropdownIcon')">
2003
+ <ng-template *ngTemplateOutlet="dropdownIconTemplate || _dropdownIconTemplate; context: { class: cx('dropdownIcon') }"></ng-template>
2004
+ </span>
2005
+ </ng-template>
2006
+ </div>
2007
+
2008
+ <p-overlay
2009
+ #overlay
2010
+ [hostAttrSelector]="$attrSelector"
2011
+ [(visible)]="overlayVisible"
2012
+ [options]="overlayOptions"
2013
+ [target]="'@parent'"
2014
+ [appendTo]="$appendTo()"
2015
+ [unstyled]="unstyled()"
2016
+ [pt]="ptm('pcOverlay')"
2017
+ [motionOptions]="motionOptions()"
2018
+ (onBeforeEnter)="onOverlayBeforeEnter($event)"
2019
+ (onAfterLeave)="onOverlayAfterLeave($event)"
2020
+ (onHide)="hide()"
2021
+ >
2022
+ <ng-template #content>
2023
+ <div [class]="cn(cx('overlay'), panelStyleClass)" [ngStyle]="panelStyle" [pBind]="ptm('overlay')" [attr.data-p]="overlayDataP">
2024
+ <span
2025
+ #firstHiddenFocusableEl
2026
+ role="presentation"
2027
+ class="p-hidden-accessible p-hidden-focusable"
2028
+ [attr.tabindex]="0"
2029
+ (focus)="onFirstHiddenFocus($event)"
2030
+ [attr.data-p-hidden-accessible]="true"
2031
+ [attr.data-p-hidden-focusable]="true"
2032
+ [pBind]="ptm('hiddenFirstFocusableEl')"
2033
+ >
2034
+ </span>
2035
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate"></ng-container>
2036
+ <div [class]="cx('header')" *ngIf="filter" (click)="$event.stopPropagation()" [pBind]="ptm('header')">
2037
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
2038
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
2039
+ </ng-container>
2040
+ <ng-template #builtInFilterElement>
2041
+ <p-iconfield [pt]="ptm('pcFilterContainer')" [unstyled]="unstyled()">
2042
+ <input
2043
+ #filter
2044
+ pInputText
2045
+ [pSize]="size()"
2046
+ type="text"
2047
+ role="searchbox"
2048
+ autocomplete="off"
2049
+ [value]="_filterValue() || ''"
2050
+ [class]="cx('pcFilter')"
2051
+ [variant]="$variant()"
2052
+ [attr.placeholder]="filterPlaceholder"
2053
+ [attr.aria-owns]="id + '_list'"
2054
+ (input)="onFilterInputChange($event)"
2055
+ [attr.aria-label]="ariaFilterLabel"
2056
+ [attr.aria-activedescendant]="focusedOptionId"
2057
+ (keydown)="onFilterKeyDown($event)"
2058
+ (blur)="onFilterBlur($event)"
2059
+ [pt]="ptm('pcFilter')"
2060
+ [unstyled]="unstyled()"
2061
+ />
2062
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
2063
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [pBind]="ptm('filterIcon')" />
2064
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [pBind]="ptm('filterIcon')">
2065
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
2066
+ </span>
2067
+ </p-inputicon>
2068
+ </p-iconfield>
2069
+ </ng-template>
2070
+ </div>
2071
+ <div [class]="cx('listContainer')" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'" [pBind]="ptm('listContainer')">
2072
+ <p-scroller
2073
+ *ngIf="virtualScroll"
2074
+ hostName="select"
2075
+ #scroller
2076
+ [items]="visibleOptions()"
2077
+ [style]="{ height: scrollHeight }"
2078
+ [itemSize]="virtualScrollItemSize"
2079
+ [autoSize]="true"
2080
+ [lazy]="lazy"
2081
+ (onLazyLoad)="onLazyLoad.emit($event)"
2082
+ [options]="virtualScrollOptions"
2083
+ [pt]="ptm('virtualScroller')"
2084
+ >
2085
+ <ng-template #content let-items let-scrollerOptions="options">
2086
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
2087
+ </ng-template>
2088
+ <ng-container *ngIf="loaderTemplate || _loaderTemplate">
2089
+ <ng-template #loader let-scrollerOptions="options">
2090
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
2091
+ </ng-template>
2092
+ </ng-container>
2093
+ </p-scroller>
2094
+ <ng-container *ngIf="!virtualScroll">
2095
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
2096
+ </ng-container>
2097
+
2098
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
2099
+ <ul #items [attr.id]="id + '_list'" [attr.aria-label]="listLabel" [class]="cn(cx('list'), scrollerOptions.contentStyleClass)" [style]="scrollerOptions.contentStyle" role="listbox" [pBind]="ptm('list')">
2100
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
2101
+ <ng-container *ngIf="isOptionGroup(option)">
2102
+ <li [class]="cx('optionGroup')" [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option" [pBind]="ptm('optionGroup')">
2103
+ <span *ngIf="!groupTemplate && !_groupTemplate" [class]="cx('optionGroupLabel')" [pBind]="ptm('optionGroupLabel')">{{ getOptionGroupLabel(option.optionGroup) }}</span>
2104
+ <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
2105
+ </li>
2106
+ </ng-container>
2107
+ <ng-container *ngIf="!isOptionGroup(option)">
2108
+ <p-selectItem
2109
+ [id]="id + '_' + getOptionIndex(i, scrollerOptions)"
2110
+ [option]="option"
2111
+ [checkmark]="checkmark"
2112
+ [selected]="isSelected(option)"
2113
+ [label]="getOptionLabel(option)"
2114
+ [disabled]="isOptionDisabled(option)"
2115
+ [template]="itemTemplate || _itemTemplate"
2116
+ [focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
2117
+ [ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
2118
+ [ariaSetSize]="ariaSetSize"
2119
+ [index]="i"
2120
+ [unstyled]="unstyled()"
2121
+ [scrollerOptions]="scrollerOptions"
2122
+ (onClick)="onOptionSelect($event, option)"
2123
+ (onMouseEnter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
2124
+ ></p-selectItem>
2125
+ </ng-container>
2126
+ </ng-template>
2127
+ <li *ngIf="filterValue && isEmpty()" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option" [pBind]="ptm('emptyMessage')">
2128
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate) {
2129
+ {{ emptyFilterMessageLabel }}
2130
+ } @else {
2131
+ <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || emptyTemplate || _emptyTemplate"></ng-container>
2132
+ }
2133
+ </li>
2134
+ <li *ngIf="!filterValue && isEmpty()" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option" [pBind]="ptm('emptyMessage')">
2135
+ @if (!emptyTemplate && !_emptyTemplate) {
2136
+ {{ emptyMessageLabel || emptyFilterMessageLabel }}
2137
+ } @else {
2138
+ <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
2139
+ }
2140
+ </li>
2141
+ </ul>
2142
+ </ng-template>
2143
+ </div>
2144
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
2145
+ <span
2146
+ #lastHiddenFocusableEl
2147
+ role="presentation"
2148
+ class="p-hidden-accessible p-hidden-focusable"
2149
+ [pBind]="ptm('hiddenLastFocusableEl')"
2150
+ [attr.tabindex]="0"
2151
+ (focus)="onLastHiddenFocus($event)"
2152
+ [attr.data-p-hidden-accessible]="true"
2153
+ [attr.data-p-hidden-focusable]="true"
2154
+ ></span>
2155
+ </div>
2156
+ </ng-template>
2157
+ </p-overlay>
2158
+ `,
2159
+ host: {
2160
+ '[class]': "cn(cx('root'), styleClass)",
2161
+ '[attr.id]': 'id',
2162
+ '[attr.data-p]': 'containerDataP',
2163
+ '(click)': 'onContainerClick($event)'
2164
+ },
2165
+ providers: [SELECT_VALUE_ACCESSOR, SelectStyle, { provide: SELECT_INSTANCE, useExisting: Select }, { provide: PARENT_INSTANCE, useExisting: Select }],
2166
+ changeDetection: ChangeDetectionStrategy.OnPush,
2167
+ encapsulation: ViewEncapsulation.None,
2168
+ hostDirectives: [Bind]
2169
+ }]
2170
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i3.FilterService }], propDecorators: { id: [{
2171
+ type: Input
2172
+ }], scrollHeight: [{
2173
+ type: Input
2174
+ }], filter: [{
2175
+ type: Input,
2176
+ args: [{ transform: booleanAttribute }]
2177
+ }], panelStyle: [{
2178
+ type: Input
2179
+ }], styleClass: [{
2180
+ type: Input
2181
+ }], panelStyleClass: [{
2182
+ type: Input
2183
+ }], readonly: [{
2184
+ type: Input,
2185
+ args: [{ transform: booleanAttribute }]
2186
+ }], editable: [{
2187
+ type: Input,
2188
+ args: [{ transform: booleanAttribute }]
2189
+ }], tabindex: [{
2190
+ type: Input,
2191
+ args: [{ transform: numberAttribute }]
2192
+ }], placeholder: [{
2193
+ type: Input
2194
+ }], loadingIcon: [{
2195
+ type: Input
2196
+ }], filterPlaceholder: [{
2197
+ type: Input
2198
+ }], filterLocale: [{
2199
+ type: Input
2200
+ }], inputId: [{
2201
+ type: Input
2202
+ }], dataKey: [{
2203
+ type: Input
2204
+ }], filterBy: [{
2205
+ type: Input
2206
+ }], filterFields: [{
2207
+ type: Input
2208
+ }], autofocus: [{
2209
+ type: Input,
2210
+ args: [{ transform: booleanAttribute }]
2211
+ }], resetFilterOnHide: [{
2212
+ type: Input,
2213
+ args: [{ transform: booleanAttribute }]
2214
+ }], checkmark: [{
2215
+ type: Input,
2216
+ args: [{ transform: booleanAttribute }]
2217
+ }], dropdownIcon: [{
2218
+ type: Input
2219
+ }], loading: [{
2220
+ type: Input,
2221
+ args: [{ transform: booleanAttribute }]
2222
+ }], optionLabel: [{
2223
+ type: Input
2224
+ }], optionValue: [{
2225
+ type: Input
2226
+ }], optionDisabled: [{
2227
+ type: Input
2228
+ }], optionGroupLabel: [{
2229
+ type: Input
2230
+ }], optionGroupChildren: [{
2231
+ type: Input
2232
+ }], group: [{
2233
+ type: Input,
2234
+ args: [{ transform: booleanAttribute }]
2235
+ }], showClear: [{
2236
+ type: Input,
2237
+ args: [{ transform: booleanAttribute }]
2238
+ }], emptyFilterMessage: [{
2239
+ type: Input
2240
+ }], emptyMessage: [{
2241
+ type: Input
2242
+ }], lazy: [{
2243
+ type: Input,
2244
+ args: [{ transform: booleanAttribute }]
2245
+ }], virtualScroll: [{
2246
+ type: Input,
2247
+ args: [{ transform: booleanAttribute }]
2248
+ }], virtualScrollItemSize: [{
2249
+ type: Input,
2250
+ args: [{ transform: numberAttribute }]
2251
+ }], virtualScrollOptions: [{
2252
+ type: Input
2253
+ }], overlayOptions: [{
2254
+ type: Input
2255
+ }], ariaFilterLabel: [{
2256
+ type: Input
2257
+ }], ariaLabel: [{
2258
+ type: Input
2259
+ }], ariaLabelledBy: [{
2260
+ type: Input
2261
+ }], filterMatchMode: [{
2262
+ type: Input
2263
+ }], tooltip: [{
2264
+ type: Input
2265
+ }], tooltipPosition: [{
2266
+ type: Input
2267
+ }], tooltipPositionStyle: [{
2268
+ type: Input
2269
+ }], tooltipStyleClass: [{
2270
+ type: Input
2271
+ }], focusOnHover: [{
2272
+ type: Input,
2273
+ args: [{ transform: booleanAttribute }]
2274
+ }], selectOnFocus: [{
2275
+ type: Input,
2276
+ args: [{ transform: booleanAttribute }]
2277
+ }], autoOptionFocus: [{
2278
+ type: Input,
2279
+ args: [{ transform: booleanAttribute }]
2280
+ }], autofocusFilter: [{
2281
+ type: Input,
2282
+ args: [{ transform: booleanAttribute }]
2283
+ }], filterValue: [{
2284
+ type: Input
2285
+ }], options: [{
2286
+ type: Input
2287
+ }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], motionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "motionOptions", required: false }] }], onChange: [{
2288
+ type: Output
2289
+ }], onFilter: [{
2290
+ type: Output
2291
+ }], onFocus: [{
2292
+ type: Output
2293
+ }], onBlur: [{
2294
+ type: Output
2295
+ }], onClick: [{
2296
+ type: Output
2297
+ }], onShow: [{
2298
+ type: Output
2299
+ }], onHide: [{
2300
+ type: Output
2301
+ }], onClear: [{
2302
+ type: Output
2303
+ }], onLazyLoad: [{
2304
+ type: Output
2305
+ }], filterViewChild: [{
2306
+ type: ViewChild,
2307
+ args: ['filter']
2308
+ }], focusInputViewChild: [{
2309
+ type: ViewChild,
2310
+ args: ['focusInput']
2311
+ }], editableInputViewChild: [{
2312
+ type: ViewChild,
2313
+ args: ['editableInput']
2314
+ }], itemsViewChild: [{
2315
+ type: ViewChild,
2316
+ args: ['items']
2317
+ }], scroller: [{
2318
+ type: ViewChild,
2319
+ args: ['scroller']
2320
+ }], overlayViewChild: [{
2321
+ type: ViewChild,
2322
+ args: ['overlay']
2323
+ }], firstHiddenFocusableElementOnOverlay: [{
2324
+ type: ViewChild,
2325
+ args: ['firstHiddenFocusableEl']
2326
+ }], lastHiddenFocusableElementOnOverlay: [{
2327
+ type: ViewChild,
2328
+ args: ['lastHiddenFocusableEl']
2329
+ }], itemTemplate: [{
2330
+ type: ContentChild,
2331
+ args: ['item', { descendants: false }]
2332
+ }], groupTemplate: [{
2333
+ type: ContentChild,
2334
+ args: ['group', { descendants: false }]
2335
+ }], loaderTemplate: [{
2336
+ type: ContentChild,
2337
+ args: ['loader', { descendants: false }]
2338
+ }], selectedItemTemplate: [{
2339
+ type: ContentChild,
2340
+ args: ['selectedItem', { descendants: false }]
2341
+ }], headerTemplate: [{
2342
+ type: ContentChild,
2343
+ args: ['header', { descendants: false }]
2344
+ }], filterTemplate: [{
2345
+ type: ContentChild,
2346
+ args: ['filter', { descendants: false }]
2347
+ }], footerTemplate: [{
2348
+ type: ContentChild,
2349
+ args: ['footer', { descendants: false }]
2350
+ }], emptyFilterTemplate: [{
2351
+ type: ContentChild,
2352
+ args: ['emptyfilter', { descendants: false }]
2353
+ }], emptyTemplate: [{
2354
+ type: ContentChild,
2355
+ args: ['empty', { descendants: false }]
2356
+ }], dropdownIconTemplate: [{
2357
+ type: ContentChild,
2358
+ args: ['dropdownicon', { descendants: false }]
2359
+ }], loadingIconTemplate: [{
2360
+ type: ContentChild,
2361
+ args: ['loadingicon', { descendants: false }]
2362
+ }], clearIconTemplate: [{
2363
+ type: ContentChild,
2364
+ args: ['clearicon', { descendants: false }]
2365
+ }], filterIconTemplate: [{
2366
+ type: ContentChild,
2367
+ args: ['filtericon', { descendants: false }]
2368
+ }], onIconTemplate: [{
2369
+ type: ContentChild,
2370
+ args: ['onicon', { descendants: false }]
2371
+ }], offIconTemplate: [{
2372
+ type: ContentChild,
2373
+ args: ['officon', { descendants: false }]
2374
+ }], cancelIconTemplate: [{
2375
+ type: ContentChild,
2376
+ args: ['cancelicon', { descendants: false }]
2377
+ }], templates: [{
2378
+ type: ContentChildren,
2379
+ args: [PrimeTemplate]
2380
+ }] } });
2381
+ class SelectModule {
2382
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2383
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: SelectModule, imports: [Select, SharedModule], exports: [Select, SharedModule] });
2384
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectModule, imports: [Select, SharedModule, SharedModule] });
2385
+ }
2386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectModule, decorators: [{
2387
+ type: NgModule,
2388
+ args: [{
2389
+ imports: [Select, SharedModule],
2390
+ exports: [Select, SharedModule]
2391
+ }]
2392
+ }] });
2393
+
2394
+ /**
2395
+ * Generated bundle index. Do not edit.
2396
+ */
2397
+
2398
+ export { SELECT_VALUE_ACCESSOR, Select, SelectClasses, SelectItem, SelectModule, SelectStyle };
2399
+ //# sourceMappingURL=primeng-select.mjs.map