@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,2690 @@
1
+ export * from 'primeng/types/multiselect';
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, ViewEncapsulation, Component, input, signal, computed, effect, ContentChildren, ContentChild, ViewChild, ChangeDetectionStrategy, NgModule } from '@angular/core';
6
+ import * as i2 from '@angular/forms';
7
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
8
+ import { deepEquals, isNotEmpty, isArray, uuid, equals, focus, findLastIndex, resolveFieldData, isPrintableCharacter, getFirstFocusableElement, getLastFocusableElement, findSingle, getFocusableElements } from '@primeuix/utils';
9
+ import * as i3 from 'primeng/api';
10
+ import { SharedModule, TranslationKeys, Footer, Header, PrimeTemplate } from 'primeng/api';
11
+ import { AutoFocus } from 'primeng/autofocus';
12
+ import { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';
13
+ import { BaseEditableHolder } from 'primeng/baseeditableholder';
14
+ import * as i4 from 'primeng/bind';
15
+ import { Bind, BindModule } from 'primeng/bind';
16
+ import { Checkbox } from 'primeng/checkbox';
17
+ import { Chip } from 'primeng/chip';
18
+ import { DomHandler, unblockBodyScroll } from 'primeng/dom';
19
+ import { Fluid } from 'primeng/fluid';
20
+ import { IconField } from 'primeng/iconfield';
21
+ import { CheckIcon, SearchIcon, TimesIcon, ChevronDownIcon } from 'primeng/icons';
22
+ import { InputIcon } from 'primeng/inputicon';
23
+ import { InputText } from 'primeng/inputtext';
24
+ import { Overlay } from 'primeng/overlay';
25
+ import { Scroller } from 'primeng/scroller';
26
+ import { Tooltip } from 'primeng/tooltip';
27
+ import { ObjectUtils } from 'primeng/utils';
28
+ import { style as style$1 } from '@primeuix/styles/multiselect';
29
+ import { BaseStyle } from 'primeng/base';
30
+
31
+ const style = /*css*/ `
32
+ ${style$1}
33
+
34
+ /* For PrimeNG */
35
+ .p-multiselect.ng-invalid.ng-dirty {
36
+ border-color: dt('multiselect.invalid.border.color');
37
+ }
38
+ p-multiSelect.ng-invalid.ng-dirty .p-multiselect-label.p-placeholder,
39
+ p-multi-select.ng-invalid.ng-dirty .p-multiselect-label.p-placeholder,
40
+ p-multiselect.ng-invalid.ng-dirty .p-multiselect-label.p-placeholder {
41
+ color: dt('multiselect.invalid.placeholder.color');
42
+ }
43
+ `;
44
+ const inlineStyles = {
45
+ root: ({ instance }) => ({ position: instance.$appendTo() === 'self' ? 'relative' : undefined })
46
+ };
47
+ const classes = {
48
+ root: ({ instance }) => [
49
+ 'p-multiselect p-component p-inputwrapper',
50
+ {
51
+ 'p-multiselect p-component p-inputwrapper': true,
52
+ 'p-multiselect-display-chip': instance.display === 'chip',
53
+ 'p-disabled': instance.$disabled(),
54
+ 'p-invalid': instance.invalid(),
55
+ 'p-variant-filled': instance.$variant() === 'filled',
56
+ 'p-focus': instance.focused,
57
+ 'p-inputwrapper-filled': instance.$filled(),
58
+ 'p-inputwrapper-focus': instance.focused || instance.overlayVisible,
59
+ 'p-multiselect-open': instance.overlayVisible,
60
+ 'p-multiselect-fluid': instance.hasFluid,
61
+ 'p-multiselect-sm p-inputfield-sm': instance.size() === 'small',
62
+ 'p-multiselect-lg p-inputfield-lg': instance.size() === 'large'
63
+ }
64
+ ],
65
+ labelContainer: 'p-multiselect-label-container',
66
+ label: ({ instance }) => ({
67
+ 'p-multiselect-label': true,
68
+ 'p-placeholder': instance.label() === instance.placeholder(),
69
+ 'p-multiselect-label-empty': !instance.placeholder() && !instance.defaultLabel && (!instance.modelValue() || instance.modelValue().length === 0)
70
+ }),
71
+ chipItem: 'p-multiselect-chip-item',
72
+ pcChip: 'p-multiselect-chip',
73
+ chipIcon: 'p-multiselect-chip-icon',
74
+ dropdown: 'p-multiselect-dropdown',
75
+ loadingIcon: 'p-multiselect-loading-icon',
76
+ dropdownIcon: 'p-multiselect-dropdown-icon',
77
+ overlay: 'p-multiselect-overlay p-component-overlay p-component',
78
+ header: 'p-multiselect-header',
79
+ pcFilterContainer: 'p-multiselect-filter-container',
80
+ pcFilter: 'p-multiselect-filter',
81
+ listContainer: 'p-multiselect-list-container',
82
+ list: 'p-multiselect-list',
83
+ optionGroup: 'p-multiselect-option-group',
84
+ option: ({ instance }) => ({
85
+ 'p-multiselect-option': true,
86
+ 'p-multiselect-option-selected': instance.selected && instance.highlightOnSelect,
87
+ 'p-disabled': instance.disabled,
88
+ 'p-focus': instance.focused
89
+ }),
90
+ emptyMessage: 'p-multiselect-empty-message',
91
+ clearIcon: 'p-multiselect-clear-icon'
92
+ };
93
+ class MultiSelectStyle extends BaseStyle {
94
+ name = 'multiselect';
95
+ style = style;
96
+ classes = classes;
97
+ inlineStyles = inlineStyles;
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
99
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectStyle });
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectStyle, decorators: [{
102
+ type: Injectable
103
+ }] });
104
+ /**
105
+ *
106
+ * MultiSelect is used to select multiple items from a collection.
107
+ *
108
+ * [Live Demo](https://www.primeng.org/multiselect/)
109
+ *
110
+ * @module multiselectstyle
111
+ *
112
+ */
113
+ var MultiSelectClasses;
114
+ (function (MultiSelectClasses) {
115
+ /**
116
+ * Class name of the root element
117
+ */
118
+ MultiSelectClasses["root"] = "p-multiselect";
119
+ /**
120
+ * Class name of the label container element
121
+ */
122
+ MultiSelectClasses["labelContainer"] = "p-multiselect-label-container";
123
+ /**
124
+ * Class name of the label element
125
+ */
126
+ MultiSelectClasses["label"] = "p-multiselect-label";
127
+ /**
128
+ * Class name of the chip item element
129
+ */
130
+ MultiSelectClasses["chipItem"] = "p-multiselect-chip-item";
131
+ /**
132
+ * Class name of the chip element
133
+ */
134
+ MultiSelectClasses["pcChip"] = "p-multiselect-chip";
135
+ /**
136
+ * Class name of the chip icon element
137
+ */
138
+ MultiSelectClasses["chipIcon"] = "p-multiselect-chip-icon";
139
+ /**
140
+ * Class name of the dropdown element
141
+ */
142
+ MultiSelectClasses["dropdown"] = "p-multiselect-dropdown";
143
+ /**
144
+ * Class name of the loading icon element
145
+ */
146
+ MultiSelectClasses["loadingIcon"] = "p-multiselect-loading-icon";
147
+ /**
148
+ * Class name of the dropdown icon element
149
+ */
150
+ MultiSelectClasses["dropdownIcon"] = "p-multiselect-dropdown-icon";
151
+ /**
152
+ * Class name of the overlay element
153
+ */
154
+ MultiSelectClasses["overlay"] = "p-multiselect-overlay";
155
+ /**
156
+ * Class name of the header element
157
+ */
158
+ MultiSelectClasses["header"] = "p-multiselect-header";
159
+ /**
160
+ * Class name of the filter container element
161
+ */
162
+ MultiSelectClasses["pcFilterContainer"] = "p-multiselect-filter-container";
163
+ /**
164
+ * Class name of the filter element
165
+ */
166
+ MultiSelectClasses["pcFilter"] = "p-multiselect-filter";
167
+ /**
168
+ * Class name of the list container element
169
+ */
170
+ MultiSelectClasses["listContainer"] = "p-multiselect-list-container";
171
+ /**
172
+ * Class name of the list element
173
+ */
174
+ MultiSelectClasses["list"] = "p-multiselect-list";
175
+ /**
176
+ * Class name of the option group element
177
+ */
178
+ MultiSelectClasses["optionGroup"] = "p-multiselect-option-group";
179
+ /**
180
+ * Class name of the option element
181
+ */
182
+ MultiSelectClasses["option"] = "p-multiselect-option";
183
+ /**
184
+ * Class name of the empty message element
185
+ */
186
+ MultiSelectClasses["emptyMessage"] = "p-multiselect-empty-message";
187
+ /**
188
+ * Class name of the clear icon
189
+ */
190
+ MultiSelectClasses["clearIcon"] = "p-autocomplete-clear-icon";
191
+ })(MultiSelectClasses || (MultiSelectClasses = {}));
192
+
193
+ const MULTISELECT_INSTANCE = new InjectionToken('MULTISELECT_INSTANCE');
194
+ const MULTISELECT_ITEM_INSTANCE = new InjectionToken('MULTISELECT_ITEM_INSTANCE');
195
+ const MULTISELECT_VALUE_ACCESSOR = {
196
+ provide: NG_VALUE_ACCESSOR,
197
+ useExisting: forwardRef(() => MultiSelect),
198
+ multi: true
199
+ };
200
+ class MultiSelectItem extends BaseComponent {
201
+ $pcMultiSelectItem = inject(MULTISELECT_ITEM_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
202
+ hostName = 'MultiSelect';
203
+ getPTOptions(key) {
204
+ return this.ptm(key, {
205
+ context: {
206
+ selected: this.selected,
207
+ focused: this.focused,
208
+ disabled: this.disabled
209
+ }
210
+ });
211
+ }
212
+ option;
213
+ selected;
214
+ label;
215
+ disabled;
216
+ itemSize;
217
+ focused;
218
+ ariaPosInset;
219
+ ariaSetSize;
220
+ variant;
221
+ template;
222
+ checkIconTemplate;
223
+ itemCheckboxIconTemplate;
224
+ highlightOnSelect;
225
+ onClick = new EventEmitter();
226
+ onMouseEnter = new EventEmitter();
227
+ _componentStyle = inject(MultiSelectStyle);
228
+ onOptionClick(event) {
229
+ this.onClick.emit({
230
+ originalEvent: event,
231
+ option: this.option,
232
+ selected: this.selected
233
+ });
234
+ event.stopPropagation();
235
+ event.preventDefault();
236
+ }
237
+ onOptionMouseEnter(event) {
238
+ this.onMouseEnter.emit({
239
+ originalEvent: event,
240
+ option: this.option,
241
+ selected: this.selected
242
+ });
243
+ }
244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
245
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.2.22", type: MultiSelectItem, isStandalone: true, selector: "li[pMultiSelectItem]", inputs: { option: "option", selected: ["selected", "selected", booleanAttribute], label: "label", disabled: ["disabled", "disabled", booleanAttribute], itemSize: ["itemSize", "itemSize", numberAttribute], focused: ["focused", "focused", booleanAttribute], ariaPosInset: "ariaPosInset", ariaSetSize: "ariaSetSize", variant: "variant", template: "template", checkIconTemplate: "checkIconTemplate", itemCheckboxIconTemplate: "itemCheckboxIconTemplate", highlightOnSelect: ["highlightOnSelect", "highlightOnSelect", booleanAttribute] }, outputs: { onClick: "onClick", onMouseEnter: "onMouseEnter" }, host: { attributes: { "role": "option" }, listeners: { "click": "onOptionClick($event)", "mouseenter": "onOptionMouseEnter($event)" }, properties: { "style.height.px": "itemSize", "attr.aria-label": "label", "attr.aria-setsize": "ariaSetSize", "attr.aria-posinset": "ariaPosInset", "attr.aria-selected": "selected", "attr.data-p-selected": "selected", "attr.data-p-focused": "focused", "attr.data-p-highlight": "selected", "attr.data-p-disabled": "disabled", "attr.aria-checked": "selected", "class": "cx('option')" } }, providers: [MultiSelectStyle], usesInheritance: true, ngImport: i0, template: `
246
+ <p-checkbox [ngModel]="selected" [binary]="true" [tabindex]="-1" [variant]="variant" [ariaLabel]="label" [pt]="getPTOptions('pcOptionCheckbox')" [unstyled]="unstyled()">
247
+ <ng-container *ngIf="itemCheckboxIconTemplate">
248
+ <ng-template #icon let-klass="class">
249
+ <ng-template *ngTemplateOutlet="itemCheckboxIconTemplate; context: { checked: selected, class: klass }"></ng-template>
250
+ </ng-template>
251
+ </ng-container>
252
+ </p-checkbox>
253
+ <span *ngIf="!template">{{ label ?? 'empty' }}</span>
254
+ <ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
255
+ `, 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: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SharedModule }], encapsulation: i0.ViewEncapsulation.None });
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectItem, decorators: [{
258
+ type: Component,
259
+ args: [{
260
+ selector: 'li[pMultiSelectItem]',
261
+ standalone: true,
262
+ imports: [CommonModule, Checkbox, FormsModule, SharedModule],
263
+ template: `
264
+ <p-checkbox [ngModel]="selected" [binary]="true" [tabindex]="-1" [variant]="variant" [ariaLabel]="label" [pt]="getPTOptions('pcOptionCheckbox')" [unstyled]="unstyled()">
265
+ <ng-container *ngIf="itemCheckboxIconTemplate">
266
+ <ng-template #icon let-klass="class">
267
+ <ng-template *ngTemplateOutlet="itemCheckboxIconTemplate; context: { checked: selected, class: klass }"></ng-template>
268
+ </ng-template>
269
+ </ng-container>
270
+ </p-checkbox>
271
+ <span *ngIf="!template">{{ label ?? 'empty' }}</span>
272
+ <ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
273
+ `,
274
+ encapsulation: ViewEncapsulation.None,
275
+ providers: [MultiSelectStyle],
276
+ host: {
277
+ '[style.height.px]': 'itemSize',
278
+ '[attr.aria-label]': 'label',
279
+ role: 'option',
280
+ '[attr.aria-setsize]': 'ariaSetSize',
281
+ '[attr.aria-posinset]': 'ariaPosInset',
282
+ '[attr.aria-selected]': 'selected',
283
+ '[attr.data-p-selected]': 'selected',
284
+ '[attr.data-p-focused]': 'focused',
285
+ '[attr.data-p-highlight]': 'selected',
286
+ '[attr.data-p-disabled]': 'disabled',
287
+ '[attr.aria-checked]': 'selected',
288
+ '(click)': 'onOptionClick($event)',
289
+ '(mouseenter)': 'onOptionMouseEnter($event)',
290
+ '[class]': "cx('option')"
291
+ }
292
+ }]
293
+ }], propDecorators: { option: [{
294
+ type: Input
295
+ }], selected: [{
296
+ type: Input,
297
+ args: [{ transform: booleanAttribute }]
298
+ }], label: [{
299
+ type: Input
300
+ }], disabled: [{
301
+ type: Input,
302
+ args: [{ transform: booleanAttribute }]
303
+ }], itemSize: [{
304
+ type: Input,
305
+ args: [{ transform: numberAttribute }]
306
+ }], focused: [{
307
+ type: Input,
308
+ args: [{ transform: booleanAttribute }]
309
+ }], ariaPosInset: [{
310
+ type: Input
311
+ }], ariaSetSize: [{
312
+ type: Input
313
+ }], variant: [{
314
+ type: Input
315
+ }], template: [{
316
+ type: Input
317
+ }], checkIconTemplate: [{
318
+ type: Input
319
+ }], itemCheckboxIconTemplate: [{
320
+ type: Input
321
+ }], highlightOnSelect: [{
322
+ type: Input,
323
+ args: [{ transform: booleanAttribute }]
324
+ }], onClick: [{
325
+ type: Output
326
+ }], onMouseEnter: [{
327
+ type: Output
328
+ }] } });
329
+ /**
330
+ * MultiSelect is used to select multiple items from a collection.
331
+ * @group Components
332
+ */
333
+ class MultiSelect extends BaseEditableHolder {
334
+ zone;
335
+ filterService;
336
+ overlayService;
337
+ componentName = 'MultiSelect';
338
+ /**
339
+ * Unique identifier of the component
340
+ * @group Props
341
+ */
342
+ id;
343
+ /**
344
+ * Defines a string that labels the input for accessibility.
345
+ * @group Props
346
+ */
347
+ ariaLabel;
348
+ /**
349
+ * Style class of the element.
350
+ * @deprecated since v20.0.0, use `class` instead.
351
+ * @group Props
352
+ */
353
+ styleClass;
354
+ /**
355
+ * Inline style of the overlay panel.
356
+ * @group Props
357
+ */
358
+ panelStyle;
359
+ /**
360
+ * Style class of the overlay panel element.
361
+ * @group Props
362
+ */
363
+ panelStyleClass;
364
+ /**
365
+ * Identifier of the focus input to match a label defined for the component.
366
+ * @group Props
367
+ */
368
+ inputId;
369
+ /**
370
+ * When present, it specifies that the component cannot be edited.
371
+ * @group Props
372
+ */
373
+ readonly;
374
+ /**
375
+ * Whether to display options as grouped when nested options are provided.
376
+ * @group Props
377
+ */
378
+ group;
379
+ /**
380
+ * When specified, displays an input field to filter the items on keyup.
381
+ * @group Props
382
+ */
383
+ filter = true;
384
+ /**
385
+ * Defines placeholder of the filter input.
386
+ * @group Props
387
+ */
388
+ filterPlaceHolder;
389
+ /**
390
+ * Locale to use in filtering. The default locale is the host environment's current locale.
391
+ * @group Props
392
+ */
393
+ filterLocale;
394
+ /**
395
+ * Specifies the visibility of the options panel.
396
+ * @group Props
397
+ */
398
+ overlayVisible = false;
399
+ /**
400
+ * Index of the element in tabbing order.
401
+ * @group Props
402
+ */
403
+ tabindex = 0;
404
+ /**
405
+ * A property to uniquely identify a value in options.
406
+ * @group Props
407
+ */
408
+ dataKey;
409
+ /**
410
+ * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
411
+ * @group Props
412
+ */
413
+ ariaLabelledBy;
414
+ /**
415
+ * Whether to show labels of selected item labels or use default label.
416
+ * @group Props
417
+ * @defaultValue true
418
+ */
419
+ set displaySelectedLabel(val) {
420
+ this._displaySelectedLabel = val;
421
+ }
422
+ get displaySelectedLabel() {
423
+ return this._displaySelectedLabel;
424
+ }
425
+ /**
426
+ * Decides how many selected item labels to show at most.
427
+ * @group Props
428
+ * @defaultValue 3
429
+ */
430
+ set maxSelectedLabels(val) {
431
+ this._maxSelectedLabels = val;
432
+ }
433
+ get maxSelectedLabels() {
434
+ return this._maxSelectedLabels;
435
+ }
436
+ /**
437
+ * Maximum number of selectable items.
438
+ * @group Props
439
+ */
440
+ selectionLimit;
441
+ /**
442
+ * Label to display after exceeding max selected labels e.g. ({0} items selected), defaults "ellipsis" keyword to indicate a text-overflow.
443
+ * @group Props
444
+ */
445
+ selectedItemsLabel;
446
+ /**
447
+ * Whether to show the checkbox at header to toggle all items at once.
448
+ * @group Props
449
+ */
450
+ showToggleAll = true;
451
+ /**
452
+ * Text to display when filtering does not return any results.
453
+ * @group Props
454
+ */
455
+ emptyFilterMessage = '';
456
+ /**
457
+ * Text to display when there is no data. Defaults to global value in i18n translation configuration.
458
+ * @group Props
459
+ */
460
+ emptyMessage = '';
461
+ /**
462
+ * Clears the filter value when hiding the dropdown.
463
+ * @group Props
464
+ */
465
+ resetFilterOnHide = false;
466
+ /**
467
+ * Icon class of the dropdown icon.
468
+ * @group Props
469
+ */
470
+ dropdownIcon;
471
+ /**
472
+ * Icon class of the chip icon.
473
+ * @group Props
474
+ */
475
+ chipIcon;
476
+ /**
477
+ * Name of the label field of an option.
478
+ * @group Props
479
+ */
480
+ optionLabel;
481
+ /**
482
+ * Name of the value field of an option.
483
+ * @group Props
484
+ */
485
+ optionValue;
486
+ /**
487
+ * Name of the disabled field of an option.
488
+ * @group Props
489
+ */
490
+ optionDisabled;
491
+ /**
492
+ * Name of the label field of an option group.
493
+ * @group Props
494
+ */
495
+ optionGroupLabel = 'label';
496
+ /**
497
+ * Name of the options field of an option group.
498
+ * @group Props
499
+ */
500
+ optionGroupChildren = 'items';
501
+ /**
502
+ * Whether to show the header.
503
+ * @group Props
504
+ */
505
+ showHeader = true;
506
+ /**
507
+ * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.
508
+ * @group Props
509
+ */
510
+ filterBy;
511
+ /**
512
+ * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.
513
+ * @group Props
514
+ */
515
+ scrollHeight = '200px';
516
+ /**
517
+ * Defines if data is loaded and interacted with in lazy manner.
518
+ * @group Props
519
+ */
520
+ lazy = false;
521
+ /**
522
+ * Whether the data should be loaded on demand during scroll.
523
+ * @group Props
524
+ */
525
+ virtualScroll;
526
+ /**
527
+ * Whether the multiselect is in loading state.
528
+ * @group Props
529
+ */
530
+ loading = false;
531
+ /**
532
+ * Height of an item in the list for VirtualScrolling.
533
+ * @group Props
534
+ */
535
+ virtualScrollItemSize;
536
+ /**
537
+ * Icon to display in loading state.
538
+ * @group Props
539
+ */
540
+ loadingIcon;
541
+ /**
542
+ * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
543
+ * @group Props
544
+ */
545
+ virtualScrollOptions;
546
+ /**
547
+ * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.
548
+ * @group Props
549
+ */
550
+ overlayOptions;
551
+ /**
552
+ * Defines a string that labels the filter input.
553
+ * @group Props
554
+ */
555
+ ariaFilterLabel;
556
+ /**
557
+ * Defines how the items are filtered.
558
+ * @group Props
559
+ */
560
+ filterMatchMode = 'contains';
561
+ /**
562
+ * Advisory information to display in a tooltip on hover.
563
+ * @group Props
564
+ */
565
+ tooltip = '';
566
+ /**
567
+ * Position of the tooltip.
568
+ * @group Props
569
+ */
570
+ tooltipPosition = 'right';
571
+ /**
572
+ * Type of CSS position.
573
+ * @group Props
574
+ */
575
+ tooltipPositionStyle = 'absolute';
576
+ /**
577
+ * Style class of the tooltip.
578
+ * @group Props
579
+ */
580
+ tooltipStyleClass;
581
+ /**
582
+ * Applies focus to the filter element when the overlay is shown.
583
+ * @group Props
584
+ */
585
+ autofocusFilter = false;
586
+ /**
587
+ * Defines how the selected items are displayed.
588
+ * @group Props
589
+ */
590
+ display = 'comma';
591
+ /**
592
+ * Defines the autocomplete is active.
593
+ * @group Props
594
+ */
595
+ autocomplete = 'off';
596
+ /**
597
+ * When enabled, a clear icon is displayed to clear the value.
598
+ * @group Props
599
+ */
600
+ showClear = false;
601
+ /**
602
+ * When present, it specifies that the component should automatically get focus on load.
603
+ * @group Props
604
+ */
605
+ autofocus;
606
+ /**
607
+ * Label to display when there are no selections.
608
+ * @group Props
609
+ */
610
+ set placeholder(val) {
611
+ this._placeholder.set(val);
612
+ }
613
+ get placeholder() {
614
+ return this._placeholder.asReadonly();
615
+ }
616
+ /**
617
+ * An array of objects to display as the available options.
618
+ * @group Props
619
+ */
620
+ get options() {
621
+ return this._options();
622
+ }
623
+ set options(val) {
624
+ if (!deepEquals(this._options(), val)) {
625
+ this._options.set(val || []);
626
+ }
627
+ }
628
+ /**
629
+ * When specified, filter displays with this value.
630
+ * @group Props
631
+ */
632
+ get filterValue() {
633
+ return this._filterValue();
634
+ }
635
+ set filterValue(val) {
636
+ this._filterValue.set(val);
637
+ }
638
+ /**
639
+ * Whether all data is selected.
640
+ * @group Props
641
+ */
642
+ get selectAll() {
643
+ return this._selectAll;
644
+ }
645
+ set selectAll(value) {
646
+ this._selectAll = value;
647
+ }
648
+ /**
649
+ * Indicates whether to focus on options when hovering over them, defaults to optionLabel.
650
+ * @group Props
651
+ */
652
+ focusOnHover = true;
653
+ /**
654
+ * Fields used when filtering the options, defaults to optionLabel.
655
+ * @group Props
656
+ */
657
+ filterFields;
658
+ /**
659
+ * Determines if the option will be selected on focus.
660
+ * @group Props
661
+ */
662
+ selectOnFocus = false;
663
+ /**
664
+ * Whether to focus on the first visible or selected element when the overlay panel is shown.
665
+ * @group Props
666
+ */
667
+ autoOptionFocus = false;
668
+ /**
669
+ * Whether the selected option will be add highlight class.
670
+ * @group Props
671
+ */
672
+ highlightOnSelect = true;
673
+ /**
674
+ * Specifies the size of the component.
675
+ * @defaultValue undefined
676
+ * @group Props
677
+ */
678
+ size = input(...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
679
+ /**
680
+ * Specifies the input variant of the component.
681
+ * @defaultValue undefined
682
+ * @group Props
683
+ */
684
+ variant = input(...(ngDevMode ? [undefined, { debugName: "variant" }] : /* istanbul ignore next */ []));
685
+ /**
686
+ * Spans 100% width of the container when enabled.
687
+ * @defaultValue undefined
688
+ * @group Props
689
+ */
690
+ fluid = input(undefined, { ...(ngDevMode ? { debugName: "fluid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
691
+ /**
692
+ * 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).
693
+ * @defaultValue 'self'
694
+ * @group Props
695
+ */
696
+ appendTo = input(undefined, ...(ngDevMode ? [{ debugName: "appendTo" }] : /* istanbul ignore next */ []));
697
+ /**
698
+ * The motion options.
699
+ * @group Props
700
+ */
701
+ motionOptions = input(undefined, ...(ngDevMode ? [{ debugName: "motionOptions" }] : /* istanbul ignore next */ []));
702
+ /**
703
+ * Callback to invoke when value changes.
704
+ * @param {MultiSelectChangeEvent} event - Custom change event.
705
+ * @group Emits
706
+ */
707
+ onChange = new EventEmitter();
708
+ /**
709
+ * Callback to invoke when data is filtered.
710
+ * @param {MultiSelectFilterEvent} event - Custom filter event.
711
+ * @group Emits
712
+ */
713
+ onFilter = new EventEmitter();
714
+ /**
715
+ * Callback to invoke when multiselect receives focus.
716
+ * @param {MultiSelectFocusEvent} event - Custom focus event.
717
+ * @group Emits
718
+ */
719
+ onFocus = new EventEmitter();
720
+ /**
721
+ * Callback to invoke when multiselect loses focus.
722
+ * @param {MultiSelectBlurEvent} event - Custom blur event.
723
+ * @group Emits
724
+ */
725
+ onBlur = new EventEmitter();
726
+ /**
727
+ * Callback to invoke when component is clicked.
728
+ * @param {Event} event - Browser event.
729
+ * @group Emits
730
+ */
731
+ onClick = new EventEmitter();
732
+ /**
733
+ * Callback to invoke when input field is cleared.
734
+ * @group Emits
735
+ */
736
+ onClear = new EventEmitter();
737
+ /**
738
+ * Callback to invoke when overlay panel becomes visible.
739
+ * @param {AnimationEvent} event - Animation event.
740
+ * @group Emits
741
+ */
742
+ onPanelShow = new EventEmitter();
743
+ /**
744
+ * Callback to invoke when overlay panel becomes hidden.
745
+ * @param {AnimationEvent} event - Animation event.
746
+ * @group Emits
747
+ */
748
+ onPanelHide = new EventEmitter();
749
+ /**
750
+ * Callback to invoke in lazy mode to load new data.
751
+ * @param {MultiSelectLazyLoadEvent} event - Lazy load event.
752
+ * @group Emits
753
+ */
754
+ onLazyLoad = new EventEmitter();
755
+ /**
756
+ * Callback to invoke in lazy mode to load new data.
757
+ * @param {MultiSelectRemoveEvent} event - Remove event.
758
+ * @group Emits
759
+ */
760
+ onRemove = new EventEmitter();
761
+ /**
762
+ * Callback to invoke when all data is selected.
763
+ * @param {MultiSelectSelectAllChangeEvent} event - Custom select event.
764
+ * @group Emits
765
+ */
766
+ onSelectAllChange = new EventEmitter();
767
+ overlayViewChild;
768
+ filterInputChild;
769
+ focusInputViewChild;
770
+ itemsViewChild;
771
+ scroller;
772
+ lastHiddenFocusableElementOnOverlay;
773
+ firstHiddenFocusableElementOnOverlay;
774
+ headerCheckboxViewChild;
775
+ footerFacet;
776
+ headerFacet;
777
+ _componentStyle = inject(MultiSelectStyle);
778
+ bindDirectiveInstance = inject(Bind, { self: true });
779
+ searchValue;
780
+ searchTimeout;
781
+ _selectAll = null;
782
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : /* istanbul ignore next */ []));
783
+ _disableTooltip = false;
784
+ value;
785
+ _filteredOptions;
786
+ focus;
787
+ filtered;
788
+ /**
789
+ * Custom item template.
790
+ * @group Templates
791
+ */
792
+ itemTemplate;
793
+ /**
794
+ * Custom group template.
795
+ * @group Templates
796
+ */
797
+ groupTemplate;
798
+ /**
799
+ * Custom loader template.
800
+ * @group Templates
801
+ */
802
+ loaderTemplate;
803
+ /**
804
+ * Custom header template.
805
+ * @group Templates
806
+ */
807
+ headerTemplate;
808
+ /**
809
+ * Custom filter template.
810
+ * @group Templates
811
+ */
812
+ filterTemplate;
813
+ /**
814
+ * Custom footer template.
815
+ * @group Templates
816
+ */
817
+ footerTemplate;
818
+ /**
819
+ * Custom empty filter template.
820
+ * @group Templates
821
+ */
822
+ emptyFilterTemplate;
823
+ /**
824
+ * Custom empty template.
825
+ * @group Templates
826
+ */
827
+ emptyTemplate;
828
+ /**
829
+ * Custom selected items template.
830
+ * @group Templates
831
+ */
832
+ selectedItemsTemplate;
833
+ /**
834
+ * Custom loading icon template.
835
+ * @group Templates
836
+ */
837
+ loadingIconTemplate;
838
+ /**
839
+ * Custom filter icon template.
840
+ * @group Templates
841
+ */
842
+ filterIconTemplate;
843
+ /**
844
+ * Custom remove token icon template.
845
+ * @group Templates
846
+ */
847
+ removeTokenIconTemplate;
848
+ /**
849
+ * Custom chip icon template.
850
+ * @group Templates
851
+ */
852
+ chipIconTemplate;
853
+ /**
854
+ * Custom clear icon template.
855
+ * @group Templates
856
+ */
857
+ clearIconTemplate;
858
+ /**
859
+ * Custom dropdown icon template.
860
+ * @group Templates
861
+ */
862
+ dropdownIconTemplate;
863
+ /**
864
+ * Custom item checkbox icon template.
865
+ * @group Templates
866
+ */
867
+ itemCheckboxIconTemplate;
868
+ /**
869
+ * Custom header checkbox icon template.
870
+ * @group Templates
871
+ */
872
+ headerCheckboxIconTemplate;
873
+ templates;
874
+ _itemTemplate;
875
+ _groupTemplate;
876
+ _loaderTemplate;
877
+ _headerTemplate;
878
+ _filterTemplate;
879
+ _footerTemplate;
880
+ _emptyFilterTemplate;
881
+ _emptyTemplate;
882
+ _selectedItemsTemplate;
883
+ _loadingIconTemplate;
884
+ _filterIconTemplate;
885
+ _removeTokenIconTemplate;
886
+ _chipIconTemplate;
887
+ _clearIconTemplate;
888
+ _dropdownIconTemplate;
889
+ _itemCheckboxIconTemplate;
890
+ _headerCheckboxIconTemplate;
891
+ $variant = computed(() => this.variant() || this.config.inputStyle() || this.config.inputVariant(), ...(ngDevMode ? [{ debugName: "$variant" }] : /* istanbul ignore next */ []));
892
+ $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo(), ...(ngDevMode ? [{ debugName: "$appendTo" }] : /* istanbul ignore next */ []));
893
+ $pcMultiSelect = inject(MULTISELECT_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
894
+ pcFluid = inject(Fluid, { optional: true, host: true, skipSelf: true });
895
+ get hasFluid() {
896
+ return this.fluid() ?? !!this.pcFluid;
897
+ }
898
+ onAfterContentInit() {
899
+ this.templates.forEach((item) => {
900
+ switch (item.getType()) {
901
+ case 'item':
902
+ this._itemTemplate = item.template;
903
+ break;
904
+ case 'group':
905
+ this._groupTemplate = item.template;
906
+ break;
907
+ case 'selectedItems':
908
+ case 'selecteditems':
909
+ this._selectedItemsTemplate = item.template;
910
+ break;
911
+ case 'header':
912
+ this._headerTemplate = item.template;
913
+ break;
914
+ case 'filter':
915
+ this._filterTemplate = item.template;
916
+ break;
917
+ case 'emptyfilter':
918
+ this._emptyFilterTemplate = item.template;
919
+ break;
920
+ case 'empty':
921
+ this._emptyTemplate = item.template;
922
+ break;
923
+ case 'footer':
924
+ this._footerTemplate = item.template;
925
+ break;
926
+ case 'loader':
927
+ this._loaderTemplate = item.template;
928
+ break;
929
+ case 'headercheckboxicon':
930
+ this._headerCheckboxIconTemplate = item.template;
931
+ break;
932
+ case 'loadingicon':
933
+ this._loadingIconTemplate = item.template;
934
+ break;
935
+ case 'filtericon':
936
+ this._filterIconTemplate = item.template;
937
+ break;
938
+ case 'removetokenicon':
939
+ this._removeTokenIconTemplate = item.template;
940
+ break;
941
+ case 'clearicon':
942
+ this._clearIconTemplate = item.template;
943
+ break;
944
+ case 'dropdownicon':
945
+ this._dropdownIconTemplate = item.template;
946
+ break;
947
+ case 'itemcheckboxicon':
948
+ this._itemCheckboxIconTemplate = item.template;
949
+ break;
950
+ case 'chipicon':
951
+ this._chipIconTemplate = item.template;
952
+ break;
953
+ default:
954
+ this._itemTemplate = item.template;
955
+ break;
956
+ }
957
+ });
958
+ }
959
+ headerCheckboxFocus;
960
+ filterOptions;
961
+ preventModelTouched;
962
+ focused = false;
963
+ itemsWrapper;
964
+ _displaySelectedLabel = true;
965
+ _maxSelectedLabels = 3;
966
+ modelValue = signal(null, ...(ngDevMode ? [{ debugName: "modelValue" }] : /* istanbul ignore next */ []));
967
+ _filterValue = signal(null, ...(ngDevMode ? [{ debugName: "_filterValue" }] : /* istanbul ignore next */ []));
968
+ _options = signal([], ...(ngDevMode ? [{ debugName: "_options" }] : /* istanbul ignore next */ []));
969
+ startRangeIndex = signal(-1, ...(ngDevMode ? [{ debugName: "startRangeIndex" }] : /* istanbul ignore next */ []));
970
+ focusedOptionIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedOptionIndex" }] : /* istanbul ignore next */ []));
971
+ selectedOptions;
972
+ clickInProgress = false;
973
+ get emptyMessageLabel() {
974
+ return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);
975
+ }
976
+ get emptyFilterMessageLabel() {
977
+ return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);
978
+ }
979
+ get isVisibleClearIcon() {
980
+ return this.modelValue() != null && this.modelValue() !== '' && isNotEmpty(this.modelValue()) && this.showClear && !this.$disabled() && !this.readonly && this.$filled();
981
+ }
982
+ get toggleAllAriaLabel() {
983
+ return this.config.translation.aria ? this.config.translation.aria[this.allSelected() ? 'selectAll' : 'unselectAll'] : undefined;
984
+ }
985
+ get listLabel() {
986
+ return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];
987
+ }
988
+ getAllVisibleAndNonVisibleOptions() {
989
+ return this.group ? this.flatOptions(this.options) : this.options || [];
990
+ }
991
+ visibleOptions = computed(() => {
992
+ const options = this.getAllVisibleAndNonVisibleOptions();
993
+ const isArrayOfObjects = isArray(options) && ObjectUtils.isObject(options[0]);
994
+ if (this._filterValue()) {
995
+ let filteredOptions;
996
+ if (isArrayOfObjects) {
997
+ filteredOptions = this.filterService.filter(options, this.searchFields(), this._filterValue(), this.filterMatchMode, this.filterLocale);
998
+ }
999
+ else {
1000
+ filteredOptions = options.filter((option) => option.toString().toLocaleLowerCase().includes(this._filterValue().toLocaleLowerCase()));
1001
+ }
1002
+ if (this.group) {
1003
+ const optionGroups = this.options || [];
1004
+ const filtered = [];
1005
+ optionGroups.forEach((group) => {
1006
+ const groupChildren = this.getOptionGroupChildren(group);
1007
+ const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));
1008
+ if (filteredItems.length > 0)
1009
+ filtered.push({
1010
+ ...group,
1011
+ [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems]
1012
+ });
1013
+ });
1014
+ return this.flatOptions(filtered);
1015
+ }
1016
+ return filteredOptions;
1017
+ }
1018
+ return options;
1019
+ }, ...(ngDevMode ? [{ debugName: "visibleOptions" }] : /* istanbul ignore next */ []));
1020
+ label = computed(() => {
1021
+ let label;
1022
+ const modelValue = this.modelValue();
1023
+ if (modelValue && modelValue?.length && this.displaySelectedLabel) {
1024
+ if (isNotEmpty(this.maxSelectedLabels) && modelValue?.length > (this.maxSelectedLabels || 0)) {
1025
+ return this.getSelectedItemsLabel();
1026
+ }
1027
+ else {
1028
+ label = '';
1029
+ for (let i = 0; i < modelValue.length; i++) {
1030
+ if (i !== 0) {
1031
+ label += ', ';
1032
+ }
1033
+ label += this.getLabelByValue(modelValue[i]);
1034
+ }
1035
+ }
1036
+ }
1037
+ else {
1038
+ label = this.placeholder() || '';
1039
+ }
1040
+ return label;
1041
+ }, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
1042
+ chipSelectedItems = computed(() => {
1043
+ return isNotEmpty(this.maxSelectedLabels) && this.modelValue() && this.modelValue()?.length > (this.maxSelectedLabels || 0) ? this.modelValue()?.slice(0, this.maxSelectedLabels) : this.modelValue();
1044
+ }, ...(ngDevMode ? [{ debugName: "chipSelectedItems" }] : /* istanbul ignore next */ []));
1045
+ constructor(zone, filterService, overlayService) {
1046
+ super();
1047
+ this.zone = zone;
1048
+ this.filterService = filterService;
1049
+ this.overlayService = overlayService;
1050
+ effect(() => {
1051
+ const modelValue = this.modelValue();
1052
+ const allVisibleAndNonVisibleOptions = this.getAllVisibleAndNonVisibleOptions();
1053
+ if (allVisibleAndNonVisibleOptions && isNotEmpty(allVisibleAndNonVisibleOptions)) {
1054
+ if (this.optionValue && this.optionLabel && modelValue) {
1055
+ this.selectedOptions = allVisibleAndNonVisibleOptions.filter((option) => modelValue.includes(option[this.optionLabel]) || modelValue.includes(option[this.optionValue]));
1056
+ }
1057
+ else {
1058
+ this.selectedOptions = modelValue;
1059
+ }
1060
+ this.cd.markForCheck();
1061
+ }
1062
+ });
1063
+ }
1064
+ onInit() {
1065
+ this.id = this.id || uuid('pn_id_');
1066
+ this.autoUpdateModel();
1067
+ if (this.filterBy) {
1068
+ this.filterOptions = {
1069
+ filter: (value) => this.onFilterInputChange(value),
1070
+ reset: () => this.resetFilter()
1071
+ };
1072
+ }
1073
+ }
1074
+ maxSelectionLimitReached() {
1075
+ return this.selectionLimit && this.modelValue() && this.modelValue().length === this.selectionLimit;
1076
+ }
1077
+ onAfterViewInit() {
1078
+ if (this.overlayVisible) {
1079
+ this.show();
1080
+ }
1081
+ }
1082
+ onAfterViewChecked() {
1083
+ this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
1084
+ if (this.filtered) {
1085
+ this.zone.runOutsideAngular(() => {
1086
+ setTimeout(() => {
1087
+ this.overlayViewChild?.alignOverlay();
1088
+ }, 1);
1089
+ });
1090
+ this.filtered = false;
1091
+ }
1092
+ }
1093
+ flatOptions(options) {
1094
+ return (options || []).reduce((result, option, index) => {
1095
+ result.push({ optionGroup: option, group: true, index });
1096
+ const optionGroupChildren = this.getOptionGroupChildren(option);
1097
+ optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));
1098
+ return result;
1099
+ }, []);
1100
+ }
1101
+ autoUpdateModel() {
1102
+ if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {
1103
+ this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex());
1104
+ const value = this.getOptionValue(this.visibleOptions()[this.focusedOptionIndex()]);
1105
+ this.onOptionSelect({ originalEvent: null, option: [value] });
1106
+ }
1107
+ }
1108
+ /**
1109
+ * Updates the model value.
1110
+ * @group Method
1111
+ */
1112
+ updateModel(value, event) {
1113
+ this.value = value;
1114
+ this.onModelChange(value);
1115
+ this.writeValue(value);
1116
+ }
1117
+ onInputClick(event) {
1118
+ event.stopPropagation();
1119
+ event.preventDefault();
1120
+ this.focusedOptionIndex.set(-1);
1121
+ }
1122
+ onOptionSelect(event, isFocus = false, index = -1) {
1123
+ const { originalEvent, option } = event;
1124
+ if (this.$disabled() || this.isOptionDisabled(option)) {
1125
+ return;
1126
+ }
1127
+ let selected = this.isSelected(option);
1128
+ let value = [];
1129
+ if (selected) {
1130
+ value = this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey() || ''));
1131
+ }
1132
+ else {
1133
+ value = [...(this.modelValue() || []), this.getOptionValue(option)];
1134
+ }
1135
+ this.updateModel(value, originalEvent);
1136
+ index !== -1 && this.focusedOptionIndex.set(index);
1137
+ isFocus && focus(this.focusInputViewChild?.nativeElement);
1138
+ this.onChange.emit({
1139
+ originalEvent: event,
1140
+ value: value,
1141
+ itemValue: option
1142
+ });
1143
+ }
1144
+ findSelectedOptionIndex() {
1145
+ return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;
1146
+ }
1147
+ onOptionSelectRange(event, start = -1, end = -1) {
1148
+ start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));
1149
+ end === -1 && (end = this.findNearestSelectedOptionIndex(start));
1150
+ if (start !== -1 && end !== -1) {
1151
+ const rangeStart = Math.min(start, end);
1152
+ const rangeEnd = Math.max(start, end);
1153
+ const value = this.visibleOptions()
1154
+ .slice(rangeStart, rangeEnd + 1)
1155
+ .filter((option) => this.isValidOption(option))
1156
+ .map((option) => this.getOptionValue(option));
1157
+ this.updateModel(value, event);
1158
+ }
1159
+ }
1160
+ searchFields() {
1161
+ return (this.filterBy || this.optionLabel || 'label').split(',');
1162
+ }
1163
+ findNearestSelectedOptionIndex(index, firstCheckUp = false) {
1164
+ let matchedOptionIndex = -1;
1165
+ if (this.hasSelectedOption()) {
1166
+ if (firstCheckUp) {
1167
+ matchedOptionIndex = this.findPrevSelectedOptionIndex(index);
1168
+ matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;
1169
+ }
1170
+ else {
1171
+ matchedOptionIndex = this.findNextSelectedOptionIndex(index);
1172
+ matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;
1173
+ }
1174
+ }
1175
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1176
+ }
1177
+ findPrevSelectedOptionIndex(index) {
1178
+ const matchedOptionIndex = this.hasSelectedOption() && index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;
1179
+ return matchedOptionIndex > -1 ? matchedOptionIndex : -1;
1180
+ }
1181
+ findFirstFocusedOptionIndex() {
1182
+ const selectedIndex = this.findFirstSelectedOptionIndex();
1183
+ return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;
1184
+ }
1185
+ findFirstOptionIndex() {
1186
+ return this.visibleOptions().findIndex((option) => this.isValidOption(option));
1187
+ }
1188
+ findFirstSelectedOptionIndex() {
1189
+ return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;
1190
+ }
1191
+ findNextSelectedOptionIndex(index) {
1192
+ const matchedOptionIndex = this.hasSelectedOption() && index < this.visibleOptions().length - 1
1193
+ ? this.visibleOptions()
1194
+ .slice(index + 1)
1195
+ .findIndex((option) => this.isValidSelectedOption(option))
1196
+ : -1;
1197
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;
1198
+ }
1199
+ equalityKey() {
1200
+ return this.optionValue ? null : this.dataKey;
1201
+ }
1202
+ hasSelectedOption() {
1203
+ return isNotEmpty(this.modelValue());
1204
+ }
1205
+ isValidSelectedOption(option) {
1206
+ return this.isValidOption(option) && this.isSelected(option);
1207
+ }
1208
+ isOptionGroup(option) {
1209
+ return option && (this.group || this.optionGroupLabel) && option.optionGroup && option.group;
1210
+ }
1211
+ isValidOption(option) {
1212
+ return option && !(this.isOptionDisabled(option) || this.isOptionGroup(option));
1213
+ }
1214
+ isOptionDisabled(option) {
1215
+ if (this.maxSelectionLimitReached() && !this.isSelected(option)) {
1216
+ return true;
1217
+ }
1218
+ return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false;
1219
+ }
1220
+ isSelected(option) {
1221
+ const optionValue = this.getOptionValue(option);
1222
+ return (this.modelValue() || []).some((value) => equals(value, optionValue, this.equalityKey() || ''));
1223
+ }
1224
+ isOptionMatched(option) {
1225
+ return this.isValidOption(option) && this.getOptionLabel(option).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale));
1226
+ }
1227
+ isEmpty() {
1228
+ return !this._options() || (this.visibleOptions() && this.visibleOptions().length === 0);
1229
+ }
1230
+ getOptionIndex(index, scrollerOptions) {
1231
+ return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];
1232
+ }
1233
+ getAriaPosInset(index) {
1234
+ return ((this.optionGroupLabel
1235
+ ? index -
1236
+ this.visibleOptions()
1237
+ .slice(0, index)
1238
+ .filter((option) => this.isOptionGroup(option)).length
1239
+ : index) + 1);
1240
+ }
1241
+ get ariaSetSize() {
1242
+ return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;
1243
+ }
1244
+ getLabelByValue(value) {
1245
+ const options = this.group ? this.flatOptions(this._options()) : this._options() || [];
1246
+ const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey() || ''));
1247
+ return matchedOption ? this.getOptionLabel(matchedOption) : null;
1248
+ }
1249
+ getSelectedItemsLabel() {
1250
+ let pattern = /{(.*?)}/;
1251
+ let message = this.selectedItemsLabel ? this.selectedItemsLabel : this.config.getTranslation(TranslationKeys.SELECTION_MESSAGE);
1252
+ if (pattern.test(message)) {
1253
+ return message.replace(message.match(pattern)[0], this.modelValue().length + '');
1254
+ }
1255
+ return message;
1256
+ }
1257
+ getOptionLabel(option) {
1258
+ return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option && option.label != undefined ? option.label : option;
1259
+ }
1260
+ getOptionValue(option) {
1261
+ return this.optionValue ? resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;
1262
+ }
1263
+ getOptionGroupLabel(optionGroup) {
1264
+ return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label != undefined ? optionGroup.label : optionGroup;
1265
+ }
1266
+ getOptionGroupChildren(optionGroup) {
1267
+ return optionGroup ? (this.optionGroupChildren ? resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items) : [];
1268
+ }
1269
+ onKeyDown(event) {
1270
+ if (this.$disabled()) {
1271
+ event.preventDefault();
1272
+ return;
1273
+ }
1274
+ const metaKey = event.metaKey || event.ctrlKey;
1275
+ switch (event.code) {
1276
+ case 'ArrowDown':
1277
+ this.onArrowDownKey(event);
1278
+ break;
1279
+ case 'ArrowUp':
1280
+ this.onArrowUpKey(event);
1281
+ break;
1282
+ case 'Home':
1283
+ this.onHomeKey(event);
1284
+ break;
1285
+ case 'End':
1286
+ this.onEndKey(event);
1287
+ break;
1288
+ case 'PageDown':
1289
+ this.onPageDownKey(event);
1290
+ break;
1291
+ case 'PageUp':
1292
+ this.onPageUpKey(event);
1293
+ break;
1294
+ case 'Enter':
1295
+ case 'Space':
1296
+ this.onEnterKey(event);
1297
+ break;
1298
+ case 'Escape':
1299
+ this.onEscapeKey(event);
1300
+ break;
1301
+ case 'Tab':
1302
+ this.onTabKey(event);
1303
+ break;
1304
+ case 'ShiftLeft':
1305
+ case 'ShiftRight':
1306
+ this.onShiftKey();
1307
+ break;
1308
+ default:
1309
+ if (event.code === 'KeyA' && metaKey) {
1310
+ const value = this.visibleOptions()
1311
+ .filter((option) => this.isValidOption(option))
1312
+ .map((option) => this.getOptionValue(option));
1313
+ this.updateModel(value, event);
1314
+ event.preventDefault();
1315
+ break;
1316
+ }
1317
+ if (!metaKey && isPrintableCharacter(event.key)) {
1318
+ !this.overlayVisible && this.show();
1319
+ this.searchOptions(event, event.key);
1320
+ event.preventDefault();
1321
+ }
1322
+ break;
1323
+ }
1324
+ }
1325
+ onFilterKeyDown(event) {
1326
+ switch (event.code) {
1327
+ case 'ArrowDown':
1328
+ this.onArrowDownKey(event);
1329
+ break;
1330
+ case 'ArrowUp':
1331
+ this.onArrowUpKey(event, true);
1332
+ break;
1333
+ case 'ArrowLeft':
1334
+ case 'ArrowRight':
1335
+ this.onArrowLeftKey(event, true);
1336
+ break;
1337
+ case 'Home':
1338
+ this.onHomeKey(event, true);
1339
+ break;
1340
+ case 'End':
1341
+ this.onEndKey(event, true);
1342
+ break;
1343
+ case 'Enter':
1344
+ case 'NumpadEnter':
1345
+ this.onEnterKey(event);
1346
+ break;
1347
+ case 'Escape':
1348
+ this.onEscapeKey(event);
1349
+ break;
1350
+ case 'Tab':
1351
+ this.onTabKey(event, true);
1352
+ break;
1353
+ default:
1354
+ break;
1355
+ }
1356
+ }
1357
+ onArrowLeftKey(event, pressedInInputText = false) {
1358
+ pressedInInputText && this.focusedOptionIndex.set(-1);
1359
+ }
1360
+ onArrowDownKey(event) {
1361
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();
1362
+ if (event.shiftKey) {
1363
+ this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);
1364
+ }
1365
+ this.changeFocusedOptionIndex(event, optionIndex);
1366
+ !this.overlayVisible && this.show();
1367
+ event.preventDefault();
1368
+ event.stopPropagation();
1369
+ }
1370
+ onArrowUpKey(event, pressedInInputText = false) {
1371
+ if (event.altKey && !pressedInInputText) {
1372
+ if (this.focusedOptionIndex() !== -1) {
1373
+ this.onOptionSelect(event, this.visibleOptions()[this.focusedOptionIndex()]);
1374
+ }
1375
+ this.overlayVisible && this.hide();
1376
+ event.preventDefault();
1377
+ }
1378
+ else {
1379
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.findLastFocusedOptionIndex();
1380
+ if (event.shiftKey) {
1381
+ this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());
1382
+ }
1383
+ this.changeFocusedOptionIndex(event, optionIndex);
1384
+ !this.overlayVisible && this.show();
1385
+ event.preventDefault();
1386
+ }
1387
+ event.stopPropagation();
1388
+ }
1389
+ onHomeKey(event, pressedInInputText = false) {
1390
+ const { currentTarget } = event;
1391
+ if (pressedInInputText) {
1392
+ const len = currentTarget.value.length;
1393
+ currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);
1394
+ this.focusedOptionIndex.set(-1);
1395
+ }
1396
+ else {
1397
+ let metaKey = event.metaKey || event.ctrlKey;
1398
+ let optionIndex = this.findFirstOptionIndex();
1399
+ if (event.shiftKey && metaKey) {
1400
+ this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());
1401
+ }
1402
+ this.changeFocusedOptionIndex(event, optionIndex);
1403
+ !this.overlayVisible && this.show();
1404
+ }
1405
+ event.preventDefault();
1406
+ }
1407
+ onEndKey(event, pressedInInputText = false) {
1408
+ const { currentTarget } = event;
1409
+ if (pressedInInputText) {
1410
+ const len = currentTarget.value.length;
1411
+ currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);
1412
+ this.focusedOptionIndex.set(-1);
1413
+ }
1414
+ else {
1415
+ let metaKey = event.metaKey || event.ctrlKey;
1416
+ let optionIndex = this.findLastFocusedOptionIndex();
1417
+ if (event.shiftKey && metaKey) {
1418
+ this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);
1419
+ }
1420
+ this.changeFocusedOptionIndex(event, optionIndex);
1421
+ !this.overlayVisible && this.show();
1422
+ }
1423
+ event.preventDefault();
1424
+ }
1425
+ onPageDownKey(event) {
1426
+ this.scrollInView(this.visibleOptions().length - 1);
1427
+ event.preventDefault();
1428
+ }
1429
+ onPageUpKey(event) {
1430
+ this.scrollInView(0);
1431
+ event.preventDefault();
1432
+ }
1433
+ onEnterKey(event) {
1434
+ if (!this.overlayVisible) {
1435
+ this.onArrowDownKey(event);
1436
+ }
1437
+ else {
1438
+ if (this.focusedOptionIndex() !== -1) {
1439
+ if (event.shiftKey) {
1440
+ this.onOptionSelectRange(event, this.focusedOptionIndex());
1441
+ }
1442
+ else {
1443
+ this.onOptionSelect({ originalEvent: event, option: this.visibleOptions()[this.focusedOptionIndex()] });
1444
+ }
1445
+ }
1446
+ }
1447
+ event.preventDefault();
1448
+ }
1449
+ onEscapeKey(event) {
1450
+ if (this.overlayVisible) {
1451
+ this.hide(true);
1452
+ event.stopPropagation();
1453
+ event.preventDefault();
1454
+ }
1455
+ }
1456
+ onTabKey(event, pressedInInputText = false) {
1457
+ if (!pressedInInputText) {
1458
+ if (this.overlayVisible && this.hasFocusableElements()) {
1459
+ focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay?.nativeElement : this.firstHiddenFocusableElementOnOverlay?.nativeElement);
1460
+ event.preventDefault();
1461
+ }
1462
+ else {
1463
+ if (this.focusedOptionIndex() !== -1) {
1464
+ const option = this.visibleOptions()[this.focusedOptionIndex()];
1465
+ !this.isSelected(option) && this.onOptionSelect({ originalEvent: event, option });
1466
+ }
1467
+ this.overlayVisible && this.hide(this.filter);
1468
+ }
1469
+ }
1470
+ }
1471
+ onShiftKey() {
1472
+ this.startRangeIndex.set(this.focusedOptionIndex());
1473
+ }
1474
+ onContainerClick(event) {
1475
+ if (this.$disabled() || this.loading || this.readonly || event.target?.isSameNode?.(this.focusInputViewChild?.nativeElement)) {
1476
+ return;
1477
+ }
1478
+ if (!this.overlayViewChild || !this.overlayViewChild.el.nativeElement.contains(event.target)) {
1479
+ if (this.clickInProgress) {
1480
+ return;
1481
+ }
1482
+ this.clickInProgress = true;
1483
+ setTimeout(() => {
1484
+ this.clickInProgress = false;
1485
+ }, 150);
1486
+ this.overlayVisible ? this.hide(true) : this.show(true);
1487
+ }
1488
+ this.focusInputViewChild?.nativeElement.focus({ preventScroll: true });
1489
+ this.onClick.emit(event);
1490
+ this.cd.detectChanges();
1491
+ }
1492
+ onFirstHiddenFocus(event) {
1493
+ const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getFirstFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInputViewChild?.nativeElement;
1494
+ focus(focusableEl);
1495
+ }
1496
+ onInputFocus(event) {
1497
+ this.focused = true;
1498
+ const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;
1499
+ this.focusedOptionIndex.set(focusedOptionIndex);
1500
+ this.overlayVisible && this.scrollInView(this.focusedOptionIndex());
1501
+ this.onFocus.emit({ originalEvent: event });
1502
+ }
1503
+ onInputBlur(event) {
1504
+ this.focused = false;
1505
+ this.onBlur.emit({ originalEvent: event });
1506
+ if (!this.preventModelTouched) {
1507
+ this.onModelTouched();
1508
+ }
1509
+ this.preventModelTouched = false;
1510
+ }
1511
+ onFilterInputChange(event) {
1512
+ let value = event.target.value;
1513
+ this._filterValue.set(value);
1514
+ this.focusedOptionIndex.set(-1);
1515
+ this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });
1516
+ !this.virtualScrollerDisabled && this.scroller?.scrollToIndex(0);
1517
+ setTimeout(() => {
1518
+ this.overlayViewChild?.alignOverlay();
1519
+ });
1520
+ }
1521
+ onLastHiddenFocus(event) {
1522
+ const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInputViewChild?.nativeElement;
1523
+ focus(focusableEl);
1524
+ }
1525
+ onOptionMouseEnter(event, index) {
1526
+ if (this.focusOnHover) {
1527
+ this.changeFocusedOptionIndex(event, index);
1528
+ }
1529
+ }
1530
+ onFilterBlur(event) {
1531
+ this.focusedOptionIndex.set(-1);
1532
+ }
1533
+ onToggleAll(event) {
1534
+ if (this.$disabled() || this.readonly) {
1535
+ return;
1536
+ }
1537
+ if (this.selectAll != null) {
1538
+ this.onSelectAllChange.emit({
1539
+ originalEvent: event,
1540
+ checked: !this.allSelected()
1541
+ });
1542
+ }
1543
+ else {
1544
+ // pre-selected disabled options should always be selected.
1545
+ const selectedDisabledOptions = this.getAllVisibleAndNonVisibleOptions().filter((option) => this.isSelected(option) && (this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false));
1546
+ const visibleOptions = this.allSelected()
1547
+ ? this.visibleOptions().filter((option) => !this.isValidOption(option) && this.isSelected(option))
1548
+ : this.visibleOptions().filter((option) => this.isSelected(option) || this.isValidOption(option));
1549
+ const selectedOptionsBeforeSearch = this.filter && !this.allSelected() ? this.getAllVisibleAndNonVisibleOptions().filter((option) => this.isSelected(option) && this.isValidOption(option)) : [];
1550
+ const optionValues = [...selectedOptionsBeforeSearch, ...selectedDisabledOptions, ...visibleOptions].map((option) => this.getOptionValue(option));
1551
+ const value = [...new Set(optionValues)];
1552
+ this.updateModel(value, event);
1553
+ // because onToggleAll could have been called during filtering, this additional test needs to be performed before calling onSelectAllChange.emit
1554
+ if (!value.length || value.length === this.getAllVisibleAndNonVisibleOptions().length) {
1555
+ this.onSelectAllChange.emit({
1556
+ originalEvent: event,
1557
+ checked: !!value.length
1558
+ });
1559
+ }
1560
+ }
1561
+ if (this.partialSelected()) {
1562
+ this.selectedOptions = [];
1563
+ this.cd.markForCheck();
1564
+ }
1565
+ this.onChange.emit({ originalEvent: event, value: this.value });
1566
+ DomHandler.focus(this.headerCheckboxViewChild?.inputViewChild?.nativeElement);
1567
+ this.headerCheckboxFocus = true;
1568
+ event.originalEvent.preventDefault();
1569
+ event.originalEvent.stopPropagation();
1570
+ }
1571
+ changeFocusedOptionIndex(event, index) {
1572
+ if (this.focusedOptionIndex() !== index) {
1573
+ this.focusedOptionIndex.set(index);
1574
+ this.scrollInView();
1575
+ }
1576
+ }
1577
+ get virtualScrollerDisabled() {
1578
+ return !this.virtualScroll;
1579
+ }
1580
+ scrollInView(index = -1) {
1581
+ const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
1582
+ if (this.itemsViewChild && this.itemsViewChild.nativeElement) {
1583
+ const element = findSingle(this.itemsViewChild.nativeElement, `li[id="${id}"]`);
1584
+ if (element) {
1585
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1586
+ }
1587
+ else if (!this.virtualScrollerDisabled) {
1588
+ setTimeout(() => {
1589
+ this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());
1590
+ }, 0);
1591
+ }
1592
+ }
1593
+ }
1594
+ get focusedOptionId() {
1595
+ return this.focusedOptionIndex() !== -1 ? `${this.id}_${this.focusedOptionIndex()}` : null;
1596
+ }
1597
+ allSelected() {
1598
+ return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions()) && this.visibleOptions().every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));
1599
+ }
1600
+ partialSelected() {
1601
+ return this.selectedOptions && this.selectedOptions.length > 0 && this.selectedOptions.length < (this.options?.length || 0);
1602
+ }
1603
+ /**
1604
+ * Displays the panel.
1605
+ * @group Method
1606
+ */
1607
+ show(isFocus) {
1608
+ this.overlayVisible = true;
1609
+ const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();
1610
+ this.focusedOptionIndex.set(focusedOptionIndex);
1611
+ if (isFocus) {
1612
+ focus(this.focusInputViewChild?.nativeElement);
1613
+ }
1614
+ this.cd.markForCheck();
1615
+ }
1616
+ /**
1617
+ * Hides the panel.
1618
+ * @group Method
1619
+ */
1620
+ hide(isFocus) {
1621
+ this.overlayVisible = false;
1622
+ this.focusedOptionIndex.set(-1);
1623
+ if (this.filter && this.resetFilterOnHide) {
1624
+ this.resetFilter();
1625
+ }
1626
+ if (this.overlayOptions?.mode === 'modal') {
1627
+ unblockBodyScroll();
1628
+ }
1629
+ isFocus && focus(this.focusInputViewChild?.nativeElement);
1630
+ this.cd.markForCheck();
1631
+ }
1632
+ onOverlayBeforeEnter(event) {
1633
+ this.itemsWrapper = findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, this.virtualScroll ? '[data-pc-name="virtualscroller"]' : '[data-pc-section="listcontainer"]');
1634
+ this.virtualScroll && this.scroller?.setContentEl(this.itemsViewChild?.nativeElement);
1635
+ if (this.options && this.options.length) {
1636
+ if (this.virtualScroll) {
1637
+ const selectedIndex = this.modelValue() ? this.focusedOptionIndex() : -1;
1638
+ if (selectedIndex !== -1) {
1639
+ this.scroller?.scrollToIndex(selectedIndex);
1640
+ }
1641
+ }
1642
+ else {
1643
+ let selectedListItem = findSingle(this.itemsWrapper, '[data-pc-section="option"][data-p-selected="true"]');
1644
+ if (selectedListItem) {
1645
+ selectedListItem.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1646
+ }
1647
+ }
1648
+ }
1649
+ if (this.filterInputChild && this.filterInputChild.nativeElement) {
1650
+ this.preventModelTouched = true;
1651
+ if (this.autofocusFilter) {
1652
+ this.filterInputChild.nativeElement.focus();
1653
+ }
1654
+ }
1655
+ this.onPanelShow.emit(event);
1656
+ }
1657
+ onOverlayAfterLeave(event) {
1658
+ this.itemsWrapper = null;
1659
+ this.onModelTouched();
1660
+ this.onPanelHide.emit(event);
1661
+ }
1662
+ resetFilter() {
1663
+ if (this.filterInputChild && this.filterInputChild.nativeElement) {
1664
+ this.filterInputChild.nativeElement.value = '';
1665
+ }
1666
+ this._filterValue.set(null);
1667
+ this._filteredOptions = null;
1668
+ }
1669
+ close(event) {
1670
+ this.hide();
1671
+ event.preventDefault();
1672
+ event.stopPropagation();
1673
+ }
1674
+ clear(event) {
1675
+ this.value = [];
1676
+ this.updateModel(null, event);
1677
+ this.selectedOptions = [];
1678
+ this.onClear.emit();
1679
+ this._disableTooltip = true;
1680
+ event.stopPropagation();
1681
+ }
1682
+ labelContainerMouseLeave() {
1683
+ if (this._disableTooltip)
1684
+ this._disableTooltip = false;
1685
+ }
1686
+ removeOption(optionValue, event) {
1687
+ let value = this.modelValue().filter((val) => !equals(val, optionValue, this.equalityKey() || ''));
1688
+ this.updateModel(value, event);
1689
+ this.onChange.emit({
1690
+ originalEvent: event,
1691
+ value: value,
1692
+ itemValue: optionValue
1693
+ });
1694
+ this.onRemove.emit({
1695
+ newValue: value,
1696
+ removed: optionValue
1697
+ });
1698
+ event && event.stopPropagation();
1699
+ }
1700
+ findNextOptionIndex(index) {
1701
+ const matchedOptionIndex = index < this.visibleOptions().length - 1
1702
+ ? this.visibleOptions()
1703
+ .slice(index + 1)
1704
+ .findIndex((option) => this.isValidOption(option))
1705
+ : -1;
1706
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
1707
+ }
1708
+ findPrevOptionIndex(index) {
1709
+ const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;
1710
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1711
+ }
1712
+ findLastSelectedOptionIndex() {
1713
+ return this.hasSelectedOption() ? findLastIndex(this.visibleOptions(), (option) => this.isValidSelectedOption(option)) : -1;
1714
+ }
1715
+ findLastFocusedOptionIndex() {
1716
+ const selectedIndex = this.findLastSelectedOptionIndex();
1717
+ return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;
1718
+ }
1719
+ findLastOptionIndex() {
1720
+ return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));
1721
+ }
1722
+ searchOptions(event, char) {
1723
+ this.searchValue = (this.searchValue || '') + char;
1724
+ let optionIndex = -1;
1725
+ let matched = false;
1726
+ if (this.focusedOptionIndex() !== -1) {
1727
+ optionIndex = this.visibleOptions()
1728
+ .slice(this.focusedOptionIndex())
1729
+ .findIndex((option) => this.isOptionMatched(option));
1730
+ optionIndex =
1731
+ optionIndex === -1
1732
+ ? this.visibleOptions()
1733
+ .slice(0, this.focusedOptionIndex())
1734
+ .findIndex((option) => this.isOptionMatched(option))
1735
+ : optionIndex + this.focusedOptionIndex();
1736
+ }
1737
+ else {
1738
+ optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));
1739
+ }
1740
+ if (optionIndex !== -1) {
1741
+ matched = true;
1742
+ }
1743
+ if (optionIndex === -1 && this.focusedOptionIndex() === -1) {
1744
+ optionIndex = this.findFirstFocusedOptionIndex();
1745
+ }
1746
+ if (optionIndex !== -1) {
1747
+ this.changeFocusedOptionIndex(event, optionIndex);
1748
+ }
1749
+ if (this.searchTimeout) {
1750
+ clearTimeout(this.searchTimeout);
1751
+ }
1752
+ this.searchTimeout = setTimeout(() => {
1753
+ this.searchValue = '';
1754
+ this.searchTimeout = null;
1755
+ }, 500);
1756
+ return matched;
1757
+ }
1758
+ hasFocusableElements() {
1759
+ return getFocusableElements(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])').length > 0;
1760
+ }
1761
+ hasFilter() {
1762
+ return this._filterValue() && this._filterValue().trim().length > 0;
1763
+ }
1764
+ get containerDataP() {
1765
+ return this.cn({
1766
+ invalid: this.invalid(),
1767
+ disabled: this.$disabled(),
1768
+ focus: this.focused,
1769
+ fluid: this.hasFluid,
1770
+ filled: this.$variant() === 'filled',
1771
+ [this.size()]: this.size()
1772
+ });
1773
+ }
1774
+ get labelDataP() {
1775
+ return this.cn({
1776
+ placeholder: this.label === this.placeholder,
1777
+ clearable: this.showClear,
1778
+ disabled: this.disabled,
1779
+ [this.size()]: this.size(),
1780
+ 'has-chip': this.display === 'chip' && this.value && this.value.length && (this.maxSelectedLabels ? this.value.length <= this.maxSelectedLabels : true),
1781
+ empty: !this.placeholder && !this.$filled
1782
+ });
1783
+ }
1784
+ get dropdownIconDataP() {
1785
+ return this.cn({
1786
+ [this.size()]: this.size()
1787
+ });
1788
+ }
1789
+ get overlayDataP() {
1790
+ return this.cn({
1791
+ ['overlay-' + this.appendTo]: 'overlay-' + this.appendTo
1792
+ });
1793
+ }
1794
+ /**
1795
+ * @override
1796
+ *
1797
+ * @see {@link BaseEditableHolder.writeControlValue}
1798
+ * Writes the value to the control.
1799
+ */
1800
+ writeControlValue(value, setModelValue) {
1801
+ this.value = value;
1802
+ setModelValue(value);
1803
+ this.cd.markForCheck();
1804
+ }
1805
+ getHeaderCheckboxPTOptions(key) {
1806
+ return this.ptm(key, {
1807
+ context: {
1808
+ selected: this.allSelected()
1809
+ }
1810
+ });
1811
+ }
1812
+ getPTOptions(option, itemOptions, index, key) {
1813
+ return this.ptm(key, {
1814
+ context: {
1815
+ selected: this.isSelected(option),
1816
+ focused: this.focusedOptionIndex() === this.getOptionIndex(index, itemOptions),
1817
+ disabled: this.isOptionDisabled(option)
1818
+ }
1819
+ });
1820
+ }
1821
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelect, deps: [{ token: i0.NgZone }, { token: i3.FilterService }, { token: i3.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
1822
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: MultiSelect, isStandalone: true, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, panelStyle: { classPropertyName: "panelStyle", publicName: "panelStyle", isSignal: false, isRequired: false, transformFunction: null }, panelStyleClass: { classPropertyName: "panelStyleClass", publicName: "panelStyleClass", isSignal: false, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, group: { classPropertyName: "group", publicName: "group", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterPlaceHolder: { classPropertyName: "filterPlaceHolder", publicName: "filterPlaceHolder", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, overlayVisible: { classPropertyName: "overlayVisible", publicName: "overlayVisible", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, displaySelectedLabel: { classPropertyName: "displaySelectedLabel", publicName: "displaySelectedLabel", isSignal: false, isRequired: false, transformFunction: null }, maxSelectedLabels: { classPropertyName: "maxSelectedLabels", publicName: "maxSelectedLabels", isSignal: false, isRequired: false, transformFunction: null }, selectionLimit: { classPropertyName: "selectionLimit", publicName: "selectionLimit", isSignal: false, isRequired: false, transformFunction: numberAttribute }, selectedItemsLabel: { classPropertyName: "selectedItemsLabel", publicName: "selectedItemsLabel", isSignal: false, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", 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 }, resetFilterOnHide: { classPropertyName: "resetFilterOnHide", publicName: "resetFilterOnHide", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dropdownIcon: { classPropertyName: "dropdownIcon", publicName: "dropdownIcon", isSignal: false, isRequired: false, transformFunction: null }, chipIcon: { classPropertyName: "chipIcon", publicName: "chipIcon", isSignal: false, isRequired: false, transformFunction: null }, 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 }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", 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 }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, loadingIcon: { classPropertyName: "loadingIcon", publicName: "loadingIcon", isSignal: false, isRequired: false, transformFunction: null }, 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 }, 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 }, autofocusFilter: { classPropertyName: "autofocusFilter", publicName: "autofocusFilter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, display: { classPropertyName: "display", publicName: "display", isSignal: false, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: false, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: false, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: false, isRequired: false, transformFunction: null }, focusOnHover: { classPropertyName: "focusOnHover", publicName: "focusOnHover", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: false, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autoOptionFocus: { classPropertyName: "autoOptionFocus", publicName: "autoOptionFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, 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", onClear: "onClear", onPanelShow: "onPanelShow", onPanelHide: "onPanelHide", onLazyLoad: "onLazyLoad", onRemove: "onRemove", onSelectAllChange: "onSelectAllChange" }, host: { listeners: { "click": "onContainerClick($event)" }, properties: { "attr.id": "id", "attr.data-p": "containerDataP", "class": "cn(cx('root'), styleClass)", "style": "sx('root')" } }, providers: [MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle, { provide: MULTISELECT_INSTANCE, useExisting: MultiSelect }, { provide: PARENT_INSTANCE, useExisting: MultiSelect }], queries: [{ propertyName: "footerFacet", first: true, predicate: Footer, descendants: true }, { propertyName: "headerFacet", first: true, predicate: Header, descendants: true }, { propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "groupTemplate", first: true, predicate: ["group"] }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"] }, { 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: "selectedItemsTemplate", first: true, predicate: ["selecteditems"] }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "removeTokenIconTemplate", first: true, predicate: ["removetokenicon"] }, { propertyName: "chipIconTemplate", first: true, predicate: ["chipicon"] }, { propertyName: "clearIconTemplate", first: true, predicate: ["clearicon"] }, { propertyName: "dropdownIconTemplate", first: true, predicate: ["dropdownicon"] }, { propertyName: "itemCheckboxIconTemplate", first: true, predicate: ["itemcheckboxicon"] }, { propertyName: "headerCheckboxIconTemplate", first: true, predicate: ["headercheckboxicon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "overlayViewChild", first: true, predicate: ["overlay"], descendants: true }, { propertyName: "filterInputChild", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "focusInputViewChild", first: true, predicate: ["focusInput"], descendants: true }, { propertyName: "itemsViewChild", first: true, predicate: ["items"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "lastHiddenFocusableElementOnOverlay", first: true, predicate: ["lastHiddenFocusableEl"], descendants: true }, { propertyName: "firstHiddenFocusableElementOnOverlay", first: true, predicate: ["firstHiddenFocusableEl"], descendants: true }, { propertyName: "headerCheckboxViewChild", first: true, predicate: ["headerCheckbox"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i4.Bind }], ngImport: i0, template: `
1823
+ <div class="p-hidden-accessible" [attr.data-p-hidden-accessible]="true" [pBind]="ptm('hiddenInputContainer')">
1824
+ <input
1825
+ #focusInput
1826
+ [pTooltip]="tooltip"
1827
+ [pTooltipUnstyled]="unstyled()"
1828
+ [tooltipPosition]="tooltipPosition"
1829
+ [positionStyle]="tooltipPositionStyle"
1830
+ [tooltipStyleClass]="tooltipStyleClass"
1831
+ [attr.aria-disabled]="$disabled()"
1832
+ [attr.id]="inputId"
1833
+ role="combobox"
1834
+ [attr.aria-label]="ariaLabel"
1835
+ [attr.aria-labelledby]="ariaLabelledBy"
1836
+ [attr.aria-haspopup]="'listbox'"
1837
+ [attr.aria-expanded]="overlayVisible ?? false"
1838
+ [attr.aria-controls]="overlayVisible ? id + '_list' : null"
1839
+ [attr.tabindex]="!$disabled() ? tabindex : -1"
1840
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1841
+ (focus)="onInputFocus($event)"
1842
+ (blur)="onInputBlur($event)"
1843
+ (keydown)="onKeyDown($event)"
1844
+ [pAutoFocus]="autofocus"
1845
+ [attr.value]="modelValue()"
1846
+ [attr.name]="name()"
1847
+ [attr.required]="required() ? '' : undefined"
1848
+ [attr.disabled]="$disabled() ? '' : undefined"
1849
+ [pBind]="ptm('hiddenInput')"
1850
+ />
1851
+ </div>
1852
+ <div
1853
+ [pBind]="ptm('labelContainer')"
1854
+ [class]="cx('labelContainer')"
1855
+ [pTooltip]="tooltip"
1856
+ [pTooltipUnstyled]="unstyled()"
1857
+ (mouseleave)="labelContainerMouseLeave()"
1858
+ [tooltipDisabled]="_disableTooltip"
1859
+ [tooltipPosition]="tooltipPosition"
1860
+ [positionStyle]="tooltipPositionStyle"
1861
+ [tooltipStyleClass]="tooltipStyleClass"
1862
+ >
1863
+ <div [pBind]="ptm('label')" [class]="cx('label')" [attr.data-p]="labelDataP">
1864
+ <ng-container *ngIf="!selectedItemsTemplate && !_selectedItemsTemplate">
1865
+ <ng-container *ngIf="display === 'comma'">{{ label() || 'empty' }}</ng-container>
1866
+ <ng-container *ngIf="display === 'chip'">
1867
+ @if (chipSelectedItems() && chipSelectedItems().length === maxSelectedLabels) {
1868
+ {{ getSelectedItemsLabel() }}
1869
+ } @else {
1870
+ <div #token *ngFor="let item of chipSelectedItems(); let i = index" [pBind]="ptm('chipItem')" [class]="cx('chipItem')">
1871
+ <p-chip [pt]="ptm('pcChip')" [unstyled]="unstyled()" [class]="cx('pcChip')" [label]="getLabelByValue(item)" [removable]="!$disabled() && !readonly" (onRemove)="removeOption(item, $event)" [removeIcon]="chipIcon">
1872
+ <ng-container *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate">
1873
+ <ng-template #removeicon>
1874
+ <ng-container *ngIf="!$disabled() && !readonly">
1875
+ <span
1876
+ [class]="cx('chipIcon')"
1877
+ *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate"
1878
+ (click)="removeOption(item, $event)"
1879
+ [attr.aria-hidden]="true"
1880
+ [pBind]="ptm('chipIcon')"
1881
+ >
1882
+ <ng-container *ngTemplateOutlet="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate; context: { class: 'p-multiselect-chip-icon' }"></ng-container>
1883
+ </span>
1884
+ </ng-container>
1885
+ </ng-template>
1886
+ </ng-container>
1887
+ </p-chip>
1888
+ </div>
1889
+ }
1890
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
1891
+ </ng-container>
1892
+ </ng-container>
1893
+ <ng-container *ngIf="selectedItemsTemplate || _selectedItemsTemplate">
1894
+ <ng-container *ngTemplateOutlet="selectedItemsTemplate || _selectedItemsTemplate; context: { $implicit: selectedOptions, removeChip: removeOption.bind(this) }"></ng-container>
1895
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
1896
+ </ng-container>
1897
+ </div>
1898
+ </div>
1899
+ <ng-container *ngIf="isVisibleClearIcon">
1900
+ <svg data-p-icon="times" *ngIf="!clearIconTemplate && !_clearIconTemplate" [pBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true" />
1901
+ <span *ngIf="clearIconTemplate || _clearIconTemplate" [pBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true">
1902
+ <ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate"></ng-template>
1903
+ </span>
1904
+ </ng-container>
1905
+ <div [pBind]="ptm('dropdown')" [class]="cx('dropdown')">
1906
+ <ng-container *ngIf="loading; else elseBlock">
1907
+ <ng-container *ngIf="loadingIconTemplate || _loadingIconTemplate">
1908
+ <ng-container *ngTemplateOutlet="loadingIconTemplate || _loadingIconTemplate"></ng-container>
1909
+ </ng-container>
1910
+ <ng-container *ngIf="!loadingIconTemplate && !_loadingIconTemplate">
1911
+ <span *ngIf="loadingIcon" [pBind]="ptm('loadingIcon')" [class]="cn(cx('loadingIcon'), 'pi-spin ' + loadingIcon)" [attr.aria-hidden]="true"></span>
1912
+ <span *ngIf="!loadingIcon" [pBind]="ptm('loadingIcon')" [class]="cn(cx('loadingIcon'), 'pi pi-spinner pi-spin')" [attr.aria-hidden]="true"></span>
1913
+ </ng-container>
1914
+ </ng-container>
1915
+ <ng-template #elseBlock>
1916
+ <ng-container *ngIf="!dropdownIconTemplate && !_dropdownIconTemplate">
1917
+ <span *ngIf="dropdownIcon" [pBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [ngClass]="dropdownIcon" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP"></span>
1918
+ <svg data-p-icon="chevron-down" *ngIf="!dropdownIcon" [pBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP" />
1919
+ </ng-container>
1920
+ <span *ngIf="dropdownIconTemplate || _dropdownIconTemplate" [pBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true">
1921
+ <ng-template *ngTemplateOutlet="dropdownIconTemplate || _dropdownIconTemplate; context: { dataP: dropdownIconDataP }"></ng-template>
1922
+ </span>
1923
+ </ng-template>
1924
+ </div>
1925
+ <p-overlay
1926
+ #overlay
1927
+ [hostAttrSelector]="$attrSelector"
1928
+ [(visible)]="overlayVisible"
1929
+ [options]="overlayOptions"
1930
+ [target]="'@parent'"
1931
+ [appendTo]="$appendTo()"
1932
+ [unstyled]="unstyled()"
1933
+ [pt]="ptm('pcOverlay')"
1934
+ [motionOptions]="motionOptions()"
1935
+ (onBeforeEnter)="onOverlayBeforeEnter($event)"
1936
+ (onAfterLeave)="onOverlayAfterLeave($event)"
1937
+ (onHide)="hide()"
1938
+ >
1939
+ <ng-template #content>
1940
+ <div [pBind]="ptm('overlay')" [attr.data-p]="overlayDataP" [attr.id]="id + '_list'" [class]="cn(cx('overlay'), panelStyleClass)" [ngStyle]="panelStyle">
1941
+ <span
1942
+ #firstHiddenFocusableEl
1943
+ role="presentation"
1944
+ class="p-hidden-accessible p-hidden-focusable"
1945
+ [attr.tabindex]="0"
1946
+ (focus)="onFirstHiddenFocus($event)"
1947
+ [attr.data-p-hidden-accessible]="true"
1948
+ [attr.data-p-hidden-focusable]="true"
1949
+ [pBind]="ptm('firstHiddenFocusableEl')"
1950
+ >
1951
+ </span>
1952
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate"></ng-container>
1953
+ <div [pBind]="ptm('header')" [class]="cx('header')" *ngIf="showHeader">
1954
+ <ng-content select="p-header"></ng-content>
1955
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
1956
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
1957
+ </ng-container>
1958
+ <ng-template #builtInFilterElement>
1959
+ <p-checkbox
1960
+ [pt]="getHeaderCheckboxPTOptions('pcHeaderCheckbox')"
1961
+ [ngModel]="allSelected()"
1962
+ [ariaLabel]="toggleAllAriaLabel"
1963
+ [binary]="true"
1964
+ (onChange)="onToggleAll($event)"
1965
+ *ngIf="showToggleAll && !selectionLimit"
1966
+ [variant]="$variant()"
1967
+ [disabled]="$disabled()"
1968
+ [unstyled]="unstyled()"
1969
+ #headerCheckbox
1970
+ >
1971
+ <ng-template #icon let-klass="class">
1972
+ <svg data-p-icon="check" *ngIf="!headerCheckboxIconTemplate && !_headerCheckboxIconTemplate && allSelected()" [class]="klass" [pBind]="getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')" />
1973
+ <ng-template
1974
+ *ngTemplateOutlet="
1975
+ headerCheckboxIconTemplate || _headerCheckboxIconTemplate;
1976
+ context: {
1977
+ checked: allSelected(),
1978
+ partialSelected: partialSelected(),
1979
+ class: klass
1980
+ }
1981
+ "
1982
+ ></ng-template>
1983
+ </ng-template>
1984
+ </p-checkbox>
1985
+
1986
+ <p-iconfield *ngIf="filter" [pt]="ptm('pcFilterContainer')" [class]="cx('pcFilterContainer')" [unstyled]="unstyled()">
1987
+ <input
1988
+ #filterInput
1989
+ pInputText
1990
+ [pt]="ptm('pcFilter')"
1991
+ [variant]="$variant()"
1992
+ type="text"
1993
+ [attr.autocomplete]="autocomplete"
1994
+ role="searchbox"
1995
+ [attr.aria-owns]="id + '_list'"
1996
+ [attr.aria-activedescendant]="focusedOptionId"
1997
+ [value]="_filterValue() || ''"
1998
+ (input)="onFilterInputChange($event)"
1999
+ (keydown)="onFilterKeyDown($event)"
2000
+ (click)="onInputClick($event)"
2001
+ (blur)="onFilterBlur($event)"
2002
+ [class]="cx('pcFilter')"
2003
+ [attr.disabled]="$disabled() ? '' : undefined"
2004
+ [attr.placeholder]="filterPlaceHolder"
2005
+ [attr.aria-label]="ariaFilterLabel"
2006
+ [unstyled]="unstyled()"
2007
+ />
2008
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
2009
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [pBind]="ptm('filterIcon')" />
2010
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [pBind]="ptm('filterIcon')" class="p-multiselect-filter-icon">
2011
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
2012
+ </span>
2013
+ </p-inputicon>
2014
+ </p-iconfield>
2015
+ </ng-template>
2016
+ </div>
2017
+ <div [pBind]="ptm('listContainer')" [class]="cx('listContainer')" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
2018
+ <p-scroller
2019
+ *ngIf="virtualScroll"
2020
+ #scroller
2021
+ [items]="visibleOptions()"
2022
+ [style]="{ height: scrollHeight }"
2023
+ [itemSize]="virtualScrollItemSize"
2024
+ [autoSize]="true"
2025
+ [tabindex]="-1"
2026
+ [lazy]="lazy"
2027
+ (onLazyLoad)="onLazyLoad.emit($event)"
2028
+ [options]="virtualScrollOptions"
2029
+ >
2030
+ <ng-template #content let-items let-scrollerOptions="options">
2031
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
2032
+ </ng-template>
2033
+ <ng-container *ngIf="loaderTemplate || _loaderTemplate">
2034
+ <ng-template #loader let-scrollerOptions="options">
2035
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
2036
+ </ng-template>
2037
+ </ng-container>
2038
+ </p-scroller>
2039
+ <ng-container *ngIf="!virtualScroll">
2040
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
2041
+ </ng-container>
2042
+
2043
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
2044
+ <ul #items [pBind]="ptm('list')" [class]="cn(cx('list'), scrollerOptions.contentStyleClass)" [style]="scrollerOptions.contentStyle" role="listbox" aria-multiselectable="true" [attr.aria-label]="listLabel">
2045
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
2046
+ <ng-container *ngIf="isOptionGroup(option)">
2047
+ <li [pBind]="ptm('optionGroup')" [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)" [class]="cx('optionGroup')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2048
+ <span *ngIf="!groupTemplate && option.optionGroup">{{ getOptionGroupLabel(option.optionGroup) }}</span>
2049
+ <ng-container *ngIf="option.optionGroup && groupTemplate" [ngTemplateOutlet]="groupTemplate" [ngTemplateOutletContext]="{ $implicit: option.optionGroup }"></ng-container>
2050
+ </li>
2051
+ </ng-container>
2052
+ <ng-container *ngIf="!isOptionGroup(option)">
2053
+ <li
2054
+ pMultiSelectItem
2055
+ pRipple
2056
+ [pBind]="getPTOptions(option, getItemOptions, i, 'option')"
2057
+ [id]="id + '_' + getOptionIndex(i, scrollerOptions)"
2058
+ [option]="option"
2059
+ [selected]="isSelected(option)"
2060
+ [label]="getOptionLabel(option)"
2061
+ [disabled]="isOptionDisabled(option)"
2062
+ [template]="itemTemplate || _itemTemplate"
2063
+ [itemCheckboxIconTemplate]="itemCheckboxIconTemplate || _itemCheckboxIconTemplate"
2064
+ [itemSize]="scrollerOptions.itemSize"
2065
+ [focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
2066
+ [ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
2067
+ [ariaSetSize]="ariaSetSize"
2068
+ [variant]="$variant()"
2069
+ [highlightOnSelect]="highlightOnSelect"
2070
+ (onClick)="onOptionSelect($event, false, getOptionIndex(i, scrollerOptions))"
2071
+ (onMouseEnter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
2072
+ [pt]="pt"
2073
+ [unstyled]="unstyled()"
2074
+ ></li>
2075
+ </ng-container>
2076
+ </ng-template>
2077
+
2078
+ <li *ngIf="hasFilter() && isEmpty()" [pBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2079
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate && !_emptyTemplate) {
2080
+ {{ emptyFilterMessageLabel }}
2081
+ } @else {
2082
+ <ng-container *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || emptyTemplate || _emptyFilterTemplate"></ng-container>
2083
+ }
2084
+ </li>
2085
+ <li *ngIf="!hasFilter() && isEmpty()" [pBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2086
+ @if (!emptyTemplate && !_emptyTemplate) {
2087
+ {{ emptyMessageLabel }}
2088
+ } @else {
2089
+ <ng-container *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
2090
+ }
2091
+ </li>
2092
+ </ul>
2093
+ </ng-template>
2094
+ </div>
2095
+ <div *ngIf="footerFacet || footerTemplate || _footerTemplate">
2096
+ <ng-content select="p-footer"></ng-content>
2097
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
2098
+ </div>
2099
+
2100
+ <span
2101
+ #lastHiddenFocusableEl
2102
+ role="presentation"
2103
+ class="p-hidden-accessible p-hidden-focusable"
2104
+ [attr.tabindex]="0"
2105
+ (focus)="onLastHiddenFocus($event)"
2106
+ [attr.data-p-hidden-accessible]="true"
2107
+ [attr.data-p-hidden-focusable]="true"
2108
+ [pBind]="ptm('lastHiddenFocusableEl')"
2109
+ ></span>
2110
+ </div>
2111
+ </ng-template>
2112
+ </p-overlay>
2113
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: MultiSelectItem, selector: "li[pMultiSelectItem]", inputs: ["option", "selected", "label", "disabled", "itemSize", "focused", "ariaPosInset", "ariaSetSize", "variant", "template", "checkIconTemplate", "itemCheckboxIconTemplate", "highlightOnSelect"], 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: "ngmodule", type: SharedModule }, { 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: "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: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: CheckIcon, selector: "[data-p-icon=\"check\"]" }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { 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: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "disabled", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i4.Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2114
+ }
2115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelect, decorators: [{
2116
+ type: Component,
2117
+ args: [{
2118
+ selector: 'p-multiSelect, p-multiselect, p-multi-select',
2119
+ standalone: true,
2120
+ imports: [CommonModule, MultiSelectItem, Overlay, SharedModule, Tooltip, Scroller, AutoFocus, CheckIcon, SearchIcon, TimesIcon, ChevronDownIcon, IconField, InputIcon, InputText, Chip, Checkbox, FormsModule, BindModule],
2121
+ hostDirectives: [Bind],
2122
+ template: `
2123
+ <div class="p-hidden-accessible" [attr.data-p-hidden-accessible]="true" [pBind]="ptm('hiddenInputContainer')">
2124
+ <input
2125
+ #focusInput
2126
+ [pTooltip]="tooltip"
2127
+ [pTooltipUnstyled]="unstyled()"
2128
+ [tooltipPosition]="tooltipPosition"
2129
+ [positionStyle]="tooltipPositionStyle"
2130
+ [tooltipStyleClass]="tooltipStyleClass"
2131
+ [attr.aria-disabled]="$disabled()"
2132
+ [attr.id]="inputId"
2133
+ role="combobox"
2134
+ [attr.aria-label]="ariaLabel"
2135
+ [attr.aria-labelledby]="ariaLabelledBy"
2136
+ [attr.aria-haspopup]="'listbox'"
2137
+ [attr.aria-expanded]="overlayVisible ?? false"
2138
+ [attr.aria-controls]="overlayVisible ? id + '_list' : null"
2139
+ [attr.tabindex]="!$disabled() ? tabindex : -1"
2140
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
2141
+ (focus)="onInputFocus($event)"
2142
+ (blur)="onInputBlur($event)"
2143
+ (keydown)="onKeyDown($event)"
2144
+ [pAutoFocus]="autofocus"
2145
+ [attr.value]="modelValue()"
2146
+ [attr.name]="name()"
2147
+ [attr.required]="required() ? '' : undefined"
2148
+ [attr.disabled]="$disabled() ? '' : undefined"
2149
+ [pBind]="ptm('hiddenInput')"
2150
+ />
2151
+ </div>
2152
+ <div
2153
+ [pBind]="ptm('labelContainer')"
2154
+ [class]="cx('labelContainer')"
2155
+ [pTooltip]="tooltip"
2156
+ [pTooltipUnstyled]="unstyled()"
2157
+ (mouseleave)="labelContainerMouseLeave()"
2158
+ [tooltipDisabled]="_disableTooltip"
2159
+ [tooltipPosition]="tooltipPosition"
2160
+ [positionStyle]="tooltipPositionStyle"
2161
+ [tooltipStyleClass]="tooltipStyleClass"
2162
+ >
2163
+ <div [pBind]="ptm('label')" [class]="cx('label')" [attr.data-p]="labelDataP">
2164
+ <ng-container *ngIf="!selectedItemsTemplate && !_selectedItemsTemplate">
2165
+ <ng-container *ngIf="display === 'comma'">{{ label() || 'empty' }}</ng-container>
2166
+ <ng-container *ngIf="display === 'chip'">
2167
+ @if (chipSelectedItems() && chipSelectedItems().length === maxSelectedLabels) {
2168
+ {{ getSelectedItemsLabel() }}
2169
+ } @else {
2170
+ <div #token *ngFor="let item of chipSelectedItems(); let i = index" [pBind]="ptm('chipItem')" [class]="cx('chipItem')">
2171
+ <p-chip [pt]="ptm('pcChip')" [unstyled]="unstyled()" [class]="cx('pcChip')" [label]="getLabelByValue(item)" [removable]="!$disabled() && !readonly" (onRemove)="removeOption(item, $event)" [removeIcon]="chipIcon">
2172
+ <ng-container *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate">
2173
+ <ng-template #removeicon>
2174
+ <ng-container *ngIf="!$disabled() && !readonly">
2175
+ <span
2176
+ [class]="cx('chipIcon')"
2177
+ *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate"
2178
+ (click)="removeOption(item, $event)"
2179
+ [attr.aria-hidden]="true"
2180
+ [pBind]="ptm('chipIcon')"
2181
+ >
2182
+ <ng-container *ngTemplateOutlet="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate; context: { class: 'p-multiselect-chip-icon' }"></ng-container>
2183
+ </span>
2184
+ </ng-container>
2185
+ </ng-template>
2186
+ </ng-container>
2187
+ </p-chip>
2188
+ </div>
2189
+ }
2190
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
2191
+ </ng-container>
2192
+ </ng-container>
2193
+ <ng-container *ngIf="selectedItemsTemplate || _selectedItemsTemplate">
2194
+ <ng-container *ngTemplateOutlet="selectedItemsTemplate || _selectedItemsTemplate; context: { $implicit: selectedOptions, removeChip: removeOption.bind(this) }"></ng-container>
2195
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
2196
+ </ng-container>
2197
+ </div>
2198
+ </div>
2199
+ <ng-container *ngIf="isVisibleClearIcon">
2200
+ <svg data-p-icon="times" *ngIf="!clearIconTemplate && !_clearIconTemplate" [pBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true" />
2201
+ <span *ngIf="clearIconTemplate || _clearIconTemplate" [pBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true">
2202
+ <ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate"></ng-template>
2203
+ </span>
2204
+ </ng-container>
2205
+ <div [pBind]="ptm('dropdown')" [class]="cx('dropdown')">
2206
+ <ng-container *ngIf="loading; else elseBlock">
2207
+ <ng-container *ngIf="loadingIconTemplate || _loadingIconTemplate">
2208
+ <ng-container *ngTemplateOutlet="loadingIconTemplate || _loadingIconTemplate"></ng-container>
2209
+ </ng-container>
2210
+ <ng-container *ngIf="!loadingIconTemplate && !_loadingIconTemplate">
2211
+ <span *ngIf="loadingIcon" [pBind]="ptm('loadingIcon')" [class]="cn(cx('loadingIcon'), 'pi-spin ' + loadingIcon)" [attr.aria-hidden]="true"></span>
2212
+ <span *ngIf="!loadingIcon" [pBind]="ptm('loadingIcon')" [class]="cn(cx('loadingIcon'), 'pi pi-spinner pi-spin')" [attr.aria-hidden]="true"></span>
2213
+ </ng-container>
2214
+ </ng-container>
2215
+ <ng-template #elseBlock>
2216
+ <ng-container *ngIf="!dropdownIconTemplate && !_dropdownIconTemplate">
2217
+ <span *ngIf="dropdownIcon" [pBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [ngClass]="dropdownIcon" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP"></span>
2218
+ <svg data-p-icon="chevron-down" *ngIf="!dropdownIcon" [pBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP" />
2219
+ </ng-container>
2220
+ <span *ngIf="dropdownIconTemplate || _dropdownIconTemplate" [pBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true">
2221
+ <ng-template *ngTemplateOutlet="dropdownIconTemplate || _dropdownIconTemplate; context: { dataP: dropdownIconDataP }"></ng-template>
2222
+ </span>
2223
+ </ng-template>
2224
+ </div>
2225
+ <p-overlay
2226
+ #overlay
2227
+ [hostAttrSelector]="$attrSelector"
2228
+ [(visible)]="overlayVisible"
2229
+ [options]="overlayOptions"
2230
+ [target]="'@parent'"
2231
+ [appendTo]="$appendTo()"
2232
+ [unstyled]="unstyled()"
2233
+ [pt]="ptm('pcOverlay')"
2234
+ [motionOptions]="motionOptions()"
2235
+ (onBeforeEnter)="onOverlayBeforeEnter($event)"
2236
+ (onAfterLeave)="onOverlayAfterLeave($event)"
2237
+ (onHide)="hide()"
2238
+ >
2239
+ <ng-template #content>
2240
+ <div [pBind]="ptm('overlay')" [attr.data-p]="overlayDataP" [attr.id]="id + '_list'" [class]="cn(cx('overlay'), panelStyleClass)" [ngStyle]="panelStyle">
2241
+ <span
2242
+ #firstHiddenFocusableEl
2243
+ role="presentation"
2244
+ class="p-hidden-accessible p-hidden-focusable"
2245
+ [attr.tabindex]="0"
2246
+ (focus)="onFirstHiddenFocus($event)"
2247
+ [attr.data-p-hidden-accessible]="true"
2248
+ [attr.data-p-hidden-focusable]="true"
2249
+ [pBind]="ptm('firstHiddenFocusableEl')"
2250
+ >
2251
+ </span>
2252
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate"></ng-container>
2253
+ <div [pBind]="ptm('header')" [class]="cx('header')" *ngIf="showHeader">
2254
+ <ng-content select="p-header"></ng-content>
2255
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
2256
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
2257
+ </ng-container>
2258
+ <ng-template #builtInFilterElement>
2259
+ <p-checkbox
2260
+ [pt]="getHeaderCheckboxPTOptions('pcHeaderCheckbox')"
2261
+ [ngModel]="allSelected()"
2262
+ [ariaLabel]="toggleAllAriaLabel"
2263
+ [binary]="true"
2264
+ (onChange)="onToggleAll($event)"
2265
+ *ngIf="showToggleAll && !selectionLimit"
2266
+ [variant]="$variant()"
2267
+ [disabled]="$disabled()"
2268
+ [unstyled]="unstyled()"
2269
+ #headerCheckbox
2270
+ >
2271
+ <ng-template #icon let-klass="class">
2272
+ <svg data-p-icon="check" *ngIf="!headerCheckboxIconTemplate && !_headerCheckboxIconTemplate && allSelected()" [class]="klass" [pBind]="getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')" />
2273
+ <ng-template
2274
+ *ngTemplateOutlet="
2275
+ headerCheckboxIconTemplate || _headerCheckboxIconTemplate;
2276
+ context: {
2277
+ checked: allSelected(),
2278
+ partialSelected: partialSelected(),
2279
+ class: klass
2280
+ }
2281
+ "
2282
+ ></ng-template>
2283
+ </ng-template>
2284
+ </p-checkbox>
2285
+
2286
+ <p-iconfield *ngIf="filter" [pt]="ptm('pcFilterContainer')" [class]="cx('pcFilterContainer')" [unstyled]="unstyled()">
2287
+ <input
2288
+ #filterInput
2289
+ pInputText
2290
+ [pt]="ptm('pcFilter')"
2291
+ [variant]="$variant()"
2292
+ type="text"
2293
+ [attr.autocomplete]="autocomplete"
2294
+ role="searchbox"
2295
+ [attr.aria-owns]="id + '_list'"
2296
+ [attr.aria-activedescendant]="focusedOptionId"
2297
+ [value]="_filterValue() || ''"
2298
+ (input)="onFilterInputChange($event)"
2299
+ (keydown)="onFilterKeyDown($event)"
2300
+ (click)="onInputClick($event)"
2301
+ (blur)="onFilterBlur($event)"
2302
+ [class]="cx('pcFilter')"
2303
+ [attr.disabled]="$disabled() ? '' : undefined"
2304
+ [attr.placeholder]="filterPlaceHolder"
2305
+ [attr.aria-label]="ariaFilterLabel"
2306
+ [unstyled]="unstyled()"
2307
+ />
2308
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
2309
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [pBind]="ptm('filterIcon')" />
2310
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [pBind]="ptm('filterIcon')" class="p-multiselect-filter-icon">
2311
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
2312
+ </span>
2313
+ </p-inputicon>
2314
+ </p-iconfield>
2315
+ </ng-template>
2316
+ </div>
2317
+ <div [pBind]="ptm('listContainer')" [class]="cx('listContainer')" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
2318
+ <p-scroller
2319
+ *ngIf="virtualScroll"
2320
+ #scroller
2321
+ [items]="visibleOptions()"
2322
+ [style]="{ height: scrollHeight }"
2323
+ [itemSize]="virtualScrollItemSize"
2324
+ [autoSize]="true"
2325
+ [tabindex]="-1"
2326
+ [lazy]="lazy"
2327
+ (onLazyLoad)="onLazyLoad.emit($event)"
2328
+ [options]="virtualScrollOptions"
2329
+ >
2330
+ <ng-template #content let-items let-scrollerOptions="options">
2331
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
2332
+ </ng-template>
2333
+ <ng-container *ngIf="loaderTemplate || _loaderTemplate">
2334
+ <ng-template #loader let-scrollerOptions="options">
2335
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
2336
+ </ng-template>
2337
+ </ng-container>
2338
+ </p-scroller>
2339
+ <ng-container *ngIf="!virtualScroll">
2340
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
2341
+ </ng-container>
2342
+
2343
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
2344
+ <ul #items [pBind]="ptm('list')" [class]="cn(cx('list'), scrollerOptions.contentStyleClass)" [style]="scrollerOptions.contentStyle" role="listbox" aria-multiselectable="true" [attr.aria-label]="listLabel">
2345
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
2346
+ <ng-container *ngIf="isOptionGroup(option)">
2347
+ <li [pBind]="ptm('optionGroup')" [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)" [class]="cx('optionGroup')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2348
+ <span *ngIf="!groupTemplate && option.optionGroup">{{ getOptionGroupLabel(option.optionGroup) }}</span>
2349
+ <ng-container *ngIf="option.optionGroup && groupTemplate" [ngTemplateOutlet]="groupTemplate" [ngTemplateOutletContext]="{ $implicit: option.optionGroup }"></ng-container>
2350
+ </li>
2351
+ </ng-container>
2352
+ <ng-container *ngIf="!isOptionGroup(option)">
2353
+ <li
2354
+ pMultiSelectItem
2355
+ pRipple
2356
+ [pBind]="getPTOptions(option, getItemOptions, i, 'option')"
2357
+ [id]="id + '_' + getOptionIndex(i, scrollerOptions)"
2358
+ [option]="option"
2359
+ [selected]="isSelected(option)"
2360
+ [label]="getOptionLabel(option)"
2361
+ [disabled]="isOptionDisabled(option)"
2362
+ [template]="itemTemplate || _itemTemplate"
2363
+ [itemCheckboxIconTemplate]="itemCheckboxIconTemplate || _itemCheckboxIconTemplate"
2364
+ [itemSize]="scrollerOptions.itemSize"
2365
+ [focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
2366
+ [ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
2367
+ [ariaSetSize]="ariaSetSize"
2368
+ [variant]="$variant()"
2369
+ [highlightOnSelect]="highlightOnSelect"
2370
+ (onClick)="onOptionSelect($event, false, getOptionIndex(i, scrollerOptions))"
2371
+ (onMouseEnter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
2372
+ [pt]="pt"
2373
+ [unstyled]="unstyled()"
2374
+ ></li>
2375
+ </ng-container>
2376
+ </ng-template>
2377
+
2378
+ <li *ngIf="hasFilter() && isEmpty()" [pBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2379
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate && !_emptyTemplate) {
2380
+ {{ emptyFilterMessageLabel }}
2381
+ } @else {
2382
+ <ng-container *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || emptyTemplate || _emptyFilterTemplate"></ng-container>
2383
+ }
2384
+ </li>
2385
+ <li *ngIf="!hasFilter() && isEmpty()" [pBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2386
+ @if (!emptyTemplate && !_emptyTemplate) {
2387
+ {{ emptyMessageLabel }}
2388
+ } @else {
2389
+ <ng-container *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
2390
+ }
2391
+ </li>
2392
+ </ul>
2393
+ </ng-template>
2394
+ </div>
2395
+ <div *ngIf="footerFacet || footerTemplate || _footerTemplate">
2396
+ <ng-content select="p-footer"></ng-content>
2397
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
2398
+ </div>
2399
+
2400
+ <span
2401
+ #lastHiddenFocusableEl
2402
+ role="presentation"
2403
+ class="p-hidden-accessible p-hidden-focusable"
2404
+ [attr.tabindex]="0"
2405
+ (focus)="onLastHiddenFocus($event)"
2406
+ [attr.data-p-hidden-accessible]="true"
2407
+ [attr.data-p-hidden-focusable]="true"
2408
+ [pBind]="ptm('lastHiddenFocusableEl')"
2409
+ ></span>
2410
+ </div>
2411
+ </ng-template>
2412
+ </p-overlay>
2413
+ `,
2414
+ providers: [MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle, { provide: MULTISELECT_INSTANCE, useExisting: MultiSelect }, { provide: PARENT_INSTANCE, useExisting: MultiSelect }],
2415
+ changeDetection: ChangeDetectionStrategy.OnPush,
2416
+ encapsulation: ViewEncapsulation.None,
2417
+ host: {
2418
+ '[attr.id]': 'id',
2419
+ '[attr.data-p]': 'containerDataP',
2420
+ '(click)': 'onContainerClick($event)',
2421
+ '[class]': "cn(cx('root'), styleClass)",
2422
+ '[style]': "sx('root')"
2423
+ }
2424
+ }]
2425
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i3.FilterService }, { type: i3.OverlayService }], propDecorators: { id: [{
2426
+ type: Input
2427
+ }], ariaLabel: [{
2428
+ type: Input
2429
+ }], styleClass: [{
2430
+ type: Input
2431
+ }], panelStyle: [{
2432
+ type: Input
2433
+ }], panelStyleClass: [{
2434
+ type: Input
2435
+ }], inputId: [{
2436
+ type: Input
2437
+ }], readonly: [{
2438
+ type: Input,
2439
+ args: [{ transform: booleanAttribute }]
2440
+ }], group: [{
2441
+ type: Input,
2442
+ args: [{ transform: booleanAttribute }]
2443
+ }], filter: [{
2444
+ type: Input,
2445
+ args: [{ transform: booleanAttribute }]
2446
+ }], filterPlaceHolder: [{
2447
+ type: Input
2448
+ }], filterLocale: [{
2449
+ type: Input
2450
+ }], overlayVisible: [{
2451
+ type: Input,
2452
+ args: [{ transform: booleanAttribute }]
2453
+ }], tabindex: [{
2454
+ type: Input,
2455
+ args: [{ transform: numberAttribute }]
2456
+ }], dataKey: [{
2457
+ type: Input
2458
+ }], ariaLabelledBy: [{
2459
+ type: Input
2460
+ }], displaySelectedLabel: [{
2461
+ type: Input
2462
+ }], maxSelectedLabels: [{
2463
+ type: Input
2464
+ }], selectionLimit: [{
2465
+ type: Input,
2466
+ args: [{ transform: numberAttribute }]
2467
+ }], selectedItemsLabel: [{
2468
+ type: Input
2469
+ }], showToggleAll: [{
2470
+ type: Input,
2471
+ args: [{ transform: booleanAttribute }]
2472
+ }], emptyFilterMessage: [{
2473
+ type: Input
2474
+ }], emptyMessage: [{
2475
+ type: Input
2476
+ }], resetFilterOnHide: [{
2477
+ type: Input,
2478
+ args: [{ transform: booleanAttribute }]
2479
+ }], dropdownIcon: [{
2480
+ type: Input
2481
+ }], chipIcon: [{
2482
+ type: Input
2483
+ }], optionLabel: [{
2484
+ type: Input
2485
+ }], optionValue: [{
2486
+ type: Input
2487
+ }], optionDisabled: [{
2488
+ type: Input
2489
+ }], optionGroupLabel: [{
2490
+ type: Input
2491
+ }], optionGroupChildren: [{
2492
+ type: Input
2493
+ }], showHeader: [{
2494
+ type: Input,
2495
+ args: [{ transform: booleanAttribute }]
2496
+ }], filterBy: [{
2497
+ type: Input
2498
+ }], scrollHeight: [{
2499
+ type: Input
2500
+ }], lazy: [{
2501
+ type: Input,
2502
+ args: [{ transform: booleanAttribute }]
2503
+ }], virtualScroll: [{
2504
+ type: Input,
2505
+ args: [{ transform: booleanAttribute }]
2506
+ }], loading: [{
2507
+ type: Input,
2508
+ args: [{ transform: booleanAttribute }]
2509
+ }], virtualScrollItemSize: [{
2510
+ type: Input,
2511
+ args: [{ transform: numberAttribute }]
2512
+ }], loadingIcon: [{
2513
+ type: Input
2514
+ }], virtualScrollOptions: [{
2515
+ type: Input
2516
+ }], overlayOptions: [{
2517
+ type: Input
2518
+ }], ariaFilterLabel: [{
2519
+ type: Input
2520
+ }], filterMatchMode: [{
2521
+ type: Input
2522
+ }], tooltip: [{
2523
+ type: Input
2524
+ }], tooltipPosition: [{
2525
+ type: Input
2526
+ }], tooltipPositionStyle: [{
2527
+ type: Input
2528
+ }], tooltipStyleClass: [{
2529
+ type: Input
2530
+ }], autofocusFilter: [{
2531
+ type: Input,
2532
+ args: [{ transform: booleanAttribute }]
2533
+ }], display: [{
2534
+ type: Input
2535
+ }], autocomplete: [{
2536
+ type: Input
2537
+ }], showClear: [{
2538
+ type: Input,
2539
+ args: [{ transform: booleanAttribute }]
2540
+ }], autofocus: [{
2541
+ type: Input,
2542
+ args: [{ transform: booleanAttribute }]
2543
+ }], placeholder: [{
2544
+ type: Input
2545
+ }], options: [{
2546
+ type: Input
2547
+ }], filterValue: [{
2548
+ type: Input
2549
+ }], selectAll: [{
2550
+ type: Input
2551
+ }], focusOnHover: [{
2552
+ type: Input,
2553
+ args: [{ transform: booleanAttribute }]
2554
+ }], filterFields: [{
2555
+ type: Input
2556
+ }], selectOnFocus: [{
2557
+ type: Input,
2558
+ args: [{ transform: booleanAttribute }]
2559
+ }], autoOptionFocus: [{
2560
+ type: Input,
2561
+ args: [{ transform: booleanAttribute }]
2562
+ }], highlightOnSelect: [{
2563
+ type: Input,
2564
+ args: [{ transform: booleanAttribute }]
2565
+ }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], fluid: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluid", required: false }] }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], motionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "motionOptions", required: false }] }], onChange: [{
2566
+ type: Output
2567
+ }], onFilter: [{
2568
+ type: Output
2569
+ }], onFocus: [{
2570
+ type: Output
2571
+ }], onBlur: [{
2572
+ type: Output
2573
+ }], onClick: [{
2574
+ type: Output
2575
+ }], onClear: [{
2576
+ type: Output
2577
+ }], onPanelShow: [{
2578
+ type: Output
2579
+ }], onPanelHide: [{
2580
+ type: Output
2581
+ }], onLazyLoad: [{
2582
+ type: Output
2583
+ }], onRemove: [{
2584
+ type: Output
2585
+ }], onSelectAllChange: [{
2586
+ type: Output
2587
+ }], overlayViewChild: [{
2588
+ type: ViewChild,
2589
+ args: ['overlay']
2590
+ }], filterInputChild: [{
2591
+ type: ViewChild,
2592
+ args: ['filterInput']
2593
+ }], focusInputViewChild: [{
2594
+ type: ViewChild,
2595
+ args: ['focusInput']
2596
+ }], itemsViewChild: [{
2597
+ type: ViewChild,
2598
+ args: ['items']
2599
+ }], scroller: [{
2600
+ type: ViewChild,
2601
+ args: ['scroller']
2602
+ }], lastHiddenFocusableElementOnOverlay: [{
2603
+ type: ViewChild,
2604
+ args: ['lastHiddenFocusableEl']
2605
+ }], firstHiddenFocusableElementOnOverlay: [{
2606
+ type: ViewChild,
2607
+ args: ['firstHiddenFocusableEl']
2608
+ }], headerCheckboxViewChild: [{
2609
+ type: ViewChild,
2610
+ args: ['headerCheckbox']
2611
+ }], footerFacet: [{
2612
+ type: ContentChild,
2613
+ args: [Footer]
2614
+ }], headerFacet: [{
2615
+ type: ContentChild,
2616
+ args: [Header]
2617
+ }], itemTemplate: [{
2618
+ type: ContentChild,
2619
+ args: ['item', { descendants: false }]
2620
+ }], groupTemplate: [{
2621
+ type: ContentChild,
2622
+ args: ['group', { descendants: false }]
2623
+ }], loaderTemplate: [{
2624
+ type: ContentChild,
2625
+ args: ['loader', { descendants: false }]
2626
+ }], headerTemplate: [{
2627
+ type: ContentChild,
2628
+ args: ['header', { descendants: false }]
2629
+ }], filterTemplate: [{
2630
+ type: ContentChild,
2631
+ args: ['filter', { descendants: false }]
2632
+ }], footerTemplate: [{
2633
+ type: ContentChild,
2634
+ args: ['footer', { descendants: false }]
2635
+ }], emptyFilterTemplate: [{
2636
+ type: ContentChild,
2637
+ args: ['emptyfilter', { descendants: false }]
2638
+ }], emptyTemplate: [{
2639
+ type: ContentChild,
2640
+ args: ['empty', { descendants: false }]
2641
+ }], selectedItemsTemplate: [{
2642
+ type: ContentChild,
2643
+ args: ['selecteditems', { descendants: false }]
2644
+ }], loadingIconTemplate: [{
2645
+ type: ContentChild,
2646
+ args: ['loadingicon', { descendants: false }]
2647
+ }], filterIconTemplate: [{
2648
+ type: ContentChild,
2649
+ args: ['filtericon', { descendants: false }]
2650
+ }], removeTokenIconTemplate: [{
2651
+ type: ContentChild,
2652
+ args: ['removetokenicon', { descendants: false }]
2653
+ }], chipIconTemplate: [{
2654
+ type: ContentChild,
2655
+ args: ['chipicon', { descendants: false }]
2656
+ }], clearIconTemplate: [{
2657
+ type: ContentChild,
2658
+ args: ['clearicon', { descendants: false }]
2659
+ }], dropdownIconTemplate: [{
2660
+ type: ContentChild,
2661
+ args: ['dropdownicon', { descendants: false }]
2662
+ }], itemCheckboxIconTemplate: [{
2663
+ type: ContentChild,
2664
+ args: ['itemcheckboxicon', { descendants: false }]
2665
+ }], headerCheckboxIconTemplate: [{
2666
+ type: ContentChild,
2667
+ args: ['headercheckboxicon', { descendants: false }]
2668
+ }], templates: [{
2669
+ type: ContentChildren,
2670
+ args: [PrimeTemplate]
2671
+ }] } });
2672
+ class MultiSelectModule {
2673
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2674
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectModule, imports: [MultiSelect, SharedModule], exports: [MultiSelect, SharedModule] });
2675
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectModule, imports: [MultiSelect, SharedModule, SharedModule] });
2676
+ }
2677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MultiSelectModule, decorators: [{
2678
+ type: NgModule,
2679
+ args: [{
2680
+ imports: [MultiSelect, SharedModule],
2681
+ exports: [MultiSelect, SharedModule]
2682
+ }]
2683
+ }] });
2684
+
2685
+ /**
2686
+ * Generated bundle index. Do not edit.
2687
+ */
2688
+
2689
+ export { MULTISELECT_VALUE_ACCESSOR, MultiSelect, MultiSelectClasses, MultiSelectItem, MultiSelectModule, MultiSelectStyle };
2690
+ //# sourceMappingURL=primeng-multiselect.mjs.map