primeng 20.1.1 → 20.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/accordion/index.d.ts +2 -2
  2. package/animateonscroll/index.d.ts +2 -2
  3. package/api/index.d.ts +4 -3
  4. package/autocomplete/index.d.ts +59 -13
  5. package/avatargroup/index.d.ts +2 -2
  6. package/badge/index.d.ts +5 -5
  7. package/base/index.d.ts +6 -6
  8. package/basecomponent/index.d.ts +1 -1
  9. package/baseeditableholder/index.d.ts +4 -4
  10. package/baseinput/index.d.ts +12 -12
  11. package/breadcrumb/index.d.ts +1 -2
  12. package/button/index.d.ts +10 -10
  13. package/card/index.d.ts +1 -1
  14. package/carousel/index.d.ts +6 -6
  15. package/cascadeselect/index.d.ts +9 -9
  16. package/checkbox/index.d.ts +3 -3
  17. package/chip/index.d.ts +14 -4
  18. package/classnames/index.d.ts +38 -0
  19. package/config/index.d.ts +2 -2
  20. package/confirmdialog/index.d.ts +3 -3
  21. package/contextmenu/index.d.ts +4 -4
  22. package/dataview/index.d.ts +1 -1
  23. package/datepicker/index.d.ts +1 -1
  24. package/dialog/index.d.ts +4 -3
  25. package/divider/index.d.ts +2 -2
  26. package/dock/index.d.ts +2 -2
  27. package/dom/index.d.ts +4 -4
  28. package/dynamicdialog/index.d.ts +14 -14
  29. package/editor/index.d.ts +92 -13
  30. package/fesm2022/primeng-accordion.mjs +33 -21
  31. package/fesm2022/primeng-accordion.mjs.map +1 -1
  32. package/fesm2022/primeng-animateonscroll.mjs +8 -8
  33. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  34. package/fesm2022/primeng-api.mjs +31 -31
  35. package/fesm2022/primeng-autocomplete.mjs +180 -50
  36. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  37. package/fesm2022/primeng-autofocus.mjs +7 -7
  38. package/fesm2022/primeng-avatar.mjs +10 -10
  39. package/fesm2022/primeng-avatargroup.mjs +10 -10
  40. package/fesm2022/primeng-badge.mjs +15 -15
  41. package/fesm2022/primeng-badge.mjs.map +1 -1
  42. package/fesm2022/primeng-base.mjs +3 -3
  43. package/fesm2022/primeng-base.mjs.map +1 -1
  44. package/fesm2022/primeng-basecomponent.mjs +6 -6
  45. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  46. package/fesm2022/primeng-baseeditableholder.mjs +3 -3
  47. package/fesm2022/primeng-baseinput.mjs +3 -3
  48. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  49. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  50. package/fesm2022/primeng-blockui.mjs +10 -10
  51. package/fesm2022/primeng-breadcrumb.mjs +21 -21
  52. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  53. package/fesm2022/primeng-button.mjs +24 -23
  54. package/fesm2022/primeng-button.mjs.map +1 -1
  55. package/fesm2022/primeng-buttongroup.mjs +10 -10
  56. package/fesm2022/primeng-card.mjs +10 -10
  57. package/fesm2022/primeng-carousel.mjs +23 -23
  58. package/fesm2022/primeng-carousel.mjs.map +1 -1
  59. package/fesm2022/primeng-cascadeselect.mjs +31 -25
  60. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  61. package/fesm2022/primeng-chart.mjs +10 -10
  62. package/fesm2022/primeng-checkbox.mjs +15 -14
  63. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  64. package/fesm2022/primeng-chip.mjs +48 -17
  65. package/fesm2022/primeng-chip.mjs.map +1 -1
  66. package/fesm2022/primeng-classnames.mjs +73 -0
  67. package/fesm2022/primeng-classnames.mjs.map +1 -0
  68. package/fesm2022/primeng-colorpicker.mjs +11 -11
  69. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  70. package/fesm2022/primeng-config.mjs +8 -7
  71. package/fesm2022/primeng-config.mjs.map +1 -1
  72. package/fesm2022/primeng-confirmdialog.mjs +16 -10
  73. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  74. package/fesm2022/primeng-confirmpopup.mjs +24 -22
  75. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  76. package/fesm2022/primeng-contextmenu.mjs +24 -22
  77. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  78. package/fesm2022/primeng-dataview.mjs +11 -11
  79. package/fesm2022/primeng-dataview.mjs.map +1 -1
  80. package/fesm2022/primeng-datepicker.mjs +23 -23
  81. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  82. package/fesm2022/primeng-dialog.mjs +35 -16
  83. package/fesm2022/primeng-dialog.mjs.map +1 -1
  84. package/fesm2022/primeng-divider.mjs +10 -10
  85. package/fesm2022/primeng-dock.mjs +27 -25
  86. package/fesm2022/primeng-dock.mjs.map +1 -1
  87. package/fesm2022/primeng-dom.mjs +13 -10
  88. package/fesm2022/primeng-dom.mjs.map +1 -1
  89. package/fesm2022/primeng-dragdrop.mjs +10 -10
  90. package/fesm2022/primeng-drawer.mjs +28 -19
  91. package/fesm2022/primeng-drawer.mjs.map +1 -1
  92. package/fesm2022/primeng-dynamicdialog.mjs +48 -39
  93. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  94. package/fesm2022/primeng-editor.mjs +69 -11
  95. package/fesm2022/primeng-editor.mjs.map +1 -1
  96. package/fesm2022/primeng-fieldset.mjs +12 -11
  97. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  98. package/fesm2022/primeng-fileupload.mjs +15 -15
  99. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  100. package/fesm2022/primeng-floatlabel.mjs +10 -10
  101. package/fesm2022/primeng-fluid.mjs +10 -12
  102. package/fesm2022/primeng-fluid.mjs.map +1 -1
  103. package/fesm2022/primeng-focustrap.mjs +7 -7
  104. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  105. package/fesm2022/primeng-galleria.mjs +42 -38
  106. package/fesm2022/primeng-galleria.mjs.map +1 -1
  107. package/fesm2022/primeng-iconfield.mjs +10 -10
  108. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  109. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  110. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  111. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  112. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  113. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  114. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  115. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  116. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  117. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  118. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  119. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  120. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  121. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  122. package/fesm2022/primeng-icons-ban.mjs +3 -3
  123. package/fesm2022/primeng-icons-bars.mjs +3 -3
  124. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  125. package/fesm2022/primeng-icons-blank.mjs +3 -3
  126. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  127. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  128. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  129. package/fesm2022/primeng-icons-check.mjs +3 -3
  130. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  131. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  132. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  133. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  134. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  135. package/fesm2022/primeng-icons-eye.mjs +3 -3
  136. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  137. package/fesm2022/primeng-icons-filter.mjs +3 -3
  138. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  139. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  140. package/fesm2022/primeng-icons-home.mjs +3 -3
  141. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  142. package/fesm2022/primeng-icons-minus.mjs +3 -3
  143. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  144. package/fesm2022/primeng-icons-plus.mjs +3 -3
  145. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  146. package/fesm2022/primeng-icons-search.mjs +3 -3
  147. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  148. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  149. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  150. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  151. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  152. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  153. package/fesm2022/primeng-icons-star.mjs +3 -3
  154. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  155. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  156. package/fesm2022/primeng-icons-times.mjs +3 -3
  157. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  158. package/fesm2022/primeng-icons-trash.mjs +3 -3
  159. package/fesm2022/primeng-icons-undo.mjs +3 -3
  160. package/fesm2022/primeng-icons-upload.mjs +3 -3
  161. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  162. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  163. package/fesm2022/primeng-iftalabel.mjs +10 -10
  164. package/fesm2022/primeng-image.mjs +19 -16
  165. package/fesm2022/primeng-image.mjs.map +1 -1
  166. package/fesm2022/primeng-imagecompare.mjs +10 -10
  167. package/fesm2022/primeng-inplace.mjs +16 -16
  168. package/fesm2022/primeng-inputgroup.mjs +10 -10
  169. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  170. package/fesm2022/primeng-inputicon.mjs +10 -10
  171. package/fesm2022/primeng-inputmask.mjs +22 -13
  172. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  173. package/fesm2022/primeng-inputnumber.mjs +52 -31
  174. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  175. package/fesm2022/primeng-inputotp.mjs +11 -11
  176. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  177. package/fesm2022/primeng-inputtext.mjs +10 -10
  178. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  179. package/fesm2022/primeng-keyfilter.mjs +19 -10
  180. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  181. package/fesm2022/primeng-knob.mjs +10 -10
  182. package/fesm2022/primeng-listbox.mjs +124 -43
  183. package/fesm2022/primeng-listbox.mjs.map +1 -1
  184. package/fesm2022/primeng-megamenu.mjs +22 -20
  185. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  186. package/fesm2022/primeng-menu.mjs +35 -44
  187. package/fesm2022/primeng-menu.mjs.map +1 -1
  188. package/fesm2022/primeng-menubar.mjs +28 -27
  189. package/fesm2022/primeng-menubar.mjs.map +1 -1
  190. package/fesm2022/primeng-message.mjs +33 -30
  191. package/fesm2022/primeng-message.mjs.map +1 -1
  192. package/fesm2022/primeng-metergroup.mjs +27 -18
  193. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  194. package/fesm2022/primeng-multiselect.mjs +58 -48
  195. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  196. package/fesm2022/primeng-orderlist.mjs +149 -43
  197. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  198. package/fesm2022/primeng-organizationchart.mjs +13 -13
  199. package/fesm2022/primeng-overlay.mjs +15 -11
  200. package/fesm2022/primeng-overlay.mjs.map +1 -1
  201. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  202. package/fesm2022/primeng-paginator.mjs +11 -11
  203. package/fesm2022/primeng-paginator.mjs.map +1 -1
  204. package/fesm2022/primeng-panel.mjs +11 -11
  205. package/fesm2022/primeng-panel.mjs.map +1 -1
  206. package/fesm2022/primeng-panelmenu.mjs +27 -26
  207. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  208. package/fesm2022/primeng-password.mjs +25 -21
  209. package/fesm2022/primeng-password.mjs.map +1 -1
  210. package/fesm2022/primeng-picklist.mjs +129 -48
  211. package/fesm2022/primeng-picklist.mjs.map +1 -1
  212. package/fesm2022/primeng-popover.mjs +11 -11
  213. package/fesm2022/primeng-popover.mjs.map +1 -1
  214. package/fesm2022/primeng-progressbar.mjs +10 -10
  215. package/fesm2022/primeng-progressspinner.mjs +10 -10
  216. package/fesm2022/primeng-radiobutton.mjs +15 -15
  217. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  218. package/fesm2022/primeng-rating.mjs +11 -11
  219. package/fesm2022/primeng-rating.mjs.map +1 -1
  220. package/fesm2022/primeng-ripple.mjs +10 -10
  221. package/fesm2022/primeng-scroller.mjs +48 -24
  222. package/fesm2022/primeng-scroller.mjs.map +1 -1
  223. package/fesm2022/primeng-scrollpanel.mjs +19 -19
  224. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  225. package/fesm2022/primeng-scrolltop.mjs +10 -10
  226. package/fesm2022/primeng-select.mjs +56 -38
  227. package/fesm2022/primeng-select.mjs.map +1 -1
  228. package/fesm2022/primeng-selectbutton.mjs +12 -12
  229. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  230. package/fesm2022/primeng-skeleton.mjs +10 -10
  231. package/fesm2022/primeng-slider.mjs +14 -14
  232. package/fesm2022/primeng-slider.mjs.map +1 -1
  233. package/fesm2022/primeng-speeddial.mjs +32 -24
  234. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  235. package/fesm2022/primeng-splitbutton.mjs +15 -15
  236. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  237. package/fesm2022/primeng-splitter.mjs +21 -21
  238. package/fesm2022/primeng-splitter.mjs.map +1 -1
  239. package/fesm2022/primeng-stepper.mjs +43 -43
  240. package/fesm2022/primeng-stepper.mjs.map +1 -1
  241. package/fesm2022/primeng-steps.mjs +15 -15
  242. package/fesm2022/primeng-steps.mjs.map +1 -1
  243. package/fesm2022/primeng-styleclass.mjs +8 -8
  244. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  245. package/fesm2022/primeng-table.mjs +178 -158
  246. package/fesm2022/primeng-table.mjs.map +1 -1
  247. package/fesm2022/primeng-tabs.mjs +99 -55
  248. package/fesm2022/primeng-tabs.mjs.map +1 -1
  249. package/fesm2022/primeng-tag.mjs +10 -10
  250. package/fesm2022/primeng-tag.mjs.map +1 -1
  251. package/fesm2022/primeng-terminal.mjs +13 -13
  252. package/fesm2022/primeng-textarea.mjs +11 -11
  253. package/fesm2022/primeng-textarea.mjs.map +1 -1
  254. package/fesm2022/primeng-tieredmenu.mjs +26 -25
  255. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  256. package/fesm2022/primeng-timeline.mjs +10 -10
  257. package/fesm2022/primeng-toast.mjs +14 -13
  258. package/fesm2022/primeng-toast.mjs.map +1 -1
  259. package/fesm2022/primeng-togglebutton.mjs +20 -13
  260. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  261. package/fesm2022/primeng-toggleswitch.mjs +10 -10
  262. package/fesm2022/primeng-toolbar.mjs +10 -10
  263. package/fesm2022/primeng-tooltip.mjs +16 -15
  264. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  265. package/fesm2022/primeng-tree.mjs +170 -221
  266. package/fesm2022/primeng-tree.mjs.map +1 -1
  267. package/fesm2022/primeng-treeselect.mjs +17 -17
  268. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  269. package/fesm2022/primeng-treetable.mjs +84 -77
  270. package/fesm2022/primeng-treetable.mjs.map +1 -1
  271. package/fesm2022/primeng-usestyle.mjs +20 -18
  272. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  273. package/fesm2022/primeng-utils.mjs.map +1 -1
  274. package/fieldset/index.d.ts +3 -2
  275. package/fileupload/index.d.ts +6 -6
  276. package/fluid/index.d.ts +0 -2
  277. package/galleria/index.d.ts +10 -10
  278. package/icons/baseicon/index.d.ts +1 -1
  279. package/image/index.d.ts +7 -7
  280. package/inputnumber/index.d.ts +7 -7
  281. package/inputotp/index.d.ts +3 -3
  282. package/inputtext/index.d.ts +6 -6
  283. package/keyfilter/index.d.ts +2 -2
  284. package/listbox/index.d.ts +31 -19
  285. package/megamenu/index.d.ts +1 -1
  286. package/menu/index.d.ts +1 -2
  287. package/message/index.d.ts +3 -2
  288. package/metergroup/index.d.ts +6 -6
  289. package/multiselect/index.d.ts +18 -17
  290. package/orderlist/index.d.ts +13 -7
  291. package/organizationchart/index.d.ts +2 -2
  292. package/overlay/index.d.ts +5 -5
  293. package/package.json +224 -220
  294. package/paginator/index.d.ts +1 -1
  295. package/panel/index.d.ts +2 -2
  296. package/panelmenu/index.d.ts +8 -8
  297. package/password/index.d.ts +6 -6
  298. package/picklist/index.d.ts +17 -12
  299. package/radiobutton/index.d.ts +3 -3
  300. package/rating/index.d.ts +1 -1
  301. package/scroller/index.d.ts +7 -3
  302. package/select/index.d.ts +11 -11
  303. package/selectbutton/index.d.ts +3 -3
  304. package/slider/index.d.ts +2 -2
  305. package/speeddial/index.d.ts +9 -9
  306. package/splitter/index.d.ts +3 -3
  307. package/stepper/index.d.ts +4 -4
  308. package/steps/index.d.ts +3 -3
  309. package/table/index.d.ts +39 -31
  310. package/tabs/index.d.ts +23 -8
  311. package/tag/index.d.ts +1 -1
  312. package/textarea/index.d.ts +6 -6
  313. package/tieredmenu/index.d.ts +1 -1
  314. package/toast/index.d.ts +5 -5
  315. package/togglebutton/index.d.ts +4 -3
  316. package/toggleswitch/index.d.ts +1 -1
  317. package/tooltip/index.d.ts +11 -11
  318. package/tree/index.d.ts +31 -46
  319. package/treeselect/index.d.ts +6 -6
  320. package/treetable/index.d.ts +10 -10
  321. package/usestyle/index.d.ts +2 -2
  322. package/utils/index.d.ts +2 -2
@@ -1,9 +1,9 @@
1
1
  import * as i4 from '@angular/cdk/drag-drop';
2
- import { DragDropModule, CDK_DRAG_CONFIG } from '@angular/cdk/drag-drop';
2
+ import { moveItemInArray, DragDropModule, CDK_DRAG_CONFIG } from '@angular/cdk/drag-drop';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
- import { Injectable, forwardRef, input, booleanAttribute, EventEmitter, signal, inject, computed, numberAttribute, HostListener, ContentChildren, ContentChild, ViewChild, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
6
+ import { Injectable, forwardRef, computed, input, booleanAttribute, EventEmitter, signal, inject, numberAttribute, HostListener, ContentChildren, ContentChild, ViewChild, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
7
7
  import * as i3 from '@angular/forms';
8
8
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
9
9
  import { isNotEmpty, uuid, equals, focus, getFirstFocusableElement, isEmpty, isPrintableCharacter, resolveFieldData, findSingle, findLastIndex, isFunction } from '@primeuix/utils';
@@ -36,6 +36,28 @@ const theme = /*css*/ `
36
36
  .p-listbox-header > .p-iconfield {
37
37
  flex-grow: 1;
38
38
  }
39
+
40
+ .p-listbox-list-container {
41
+ height: 100%;
42
+ }
43
+
44
+ /* CDK Drag & Drop styles */
45
+ .p-listbox-option.cdk-drag-preview {
46
+ background: dt('listbox.background');
47
+ }
48
+
49
+ .p-listbox-dragging .p-listbox-option:not(.cdk-drag-preview) {
50
+ pointer-events: none !important;
51
+ }
52
+
53
+ .p-listbox-dragging .p-listbox-option:not(.cdk-drag-preview):hover {
54
+ background: inherit !important;
55
+ color: inherit !important;
56
+ }
57
+
58
+ .cdk-drag-placeholder {
59
+ pointer-events: none;
60
+ }
39
61
  `;
40
62
  const classes = {
41
63
  root: ({ instance }) => [
@@ -68,10 +90,10 @@ class ListBoxStyle extends BaseStyle {
68
90
  name = 'listbox';
69
91
  theme = theme;
70
92
  classes = classes;
71
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ListBoxStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
72
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ListBoxStyle });
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListBoxStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
94
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListBoxStyle });
73
95
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ListBoxStyle, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListBoxStyle, decorators: [{
75
97
  type: Injectable
76
98
  }] });
77
99
  /**
@@ -357,7 +379,7 @@ class Listbox extends BaseEditableHolder {
357
379
  * @group Props
358
380
  */
359
381
  get filterValue() {
360
- return this._filterValue();
382
+ return this._filterValue() || '';
361
383
  }
362
384
  set filterValue(val) {
363
385
  this._filterValue.set(val);
@@ -395,6 +417,17 @@ class Listbox extends BaseEditableHolder {
395
417
  * @group Props
396
418
  */
397
419
  dragdrop = false;
420
+ /**
421
+ * Array to use for CDK drop list data binding. When not provided, uses options array.
422
+ * @group Props
423
+ */
424
+ dropListData;
425
+ /**
426
+ * Computed property for stable CDK drop list data reference
427
+ */
428
+ cdkDropData = computed(() => {
429
+ return this.dropListData || this._options();
430
+ }, ...(ngDevMode ? [{ debugName: "cdkDropData" }] : []));
398
431
  /**
399
432
  * Spans 100% width of the container when enabled.
400
433
  * @defaultValue undefined
@@ -585,6 +618,7 @@ class Listbox extends BaseEditableHolder {
585
618
  _options = signal(null, ...(ngDevMode ? [{ debugName: "_options" }] : []));
586
619
  startRangeIndex = signal(-1, ...(ngDevMode ? [{ debugName: "startRangeIndex" }] : []));
587
620
  focusedOptionIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedOptionIndex" }] : []));
621
+ isDragging = signal(false, ...(ngDevMode ? [{ debugName: "isDragging" }] : []));
588
622
  onHostFocusOut(event) {
589
623
  this.onFocusout(event);
590
624
  }
@@ -678,7 +712,7 @@ class Listbox extends BaseEditableHolder {
678
712
  this.onChange.emit({ originalEvent: event, value: this.value });
679
713
  }
680
714
  removeOption(option) {
681
- return this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey()));
715
+ return this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey() || ''));
682
716
  }
683
717
  onOptionSelect(event, option, index = -1) {
684
718
  if (this.$disabled() || this.isOptionDisabled(option) || this.readonly) {
@@ -691,7 +725,7 @@ class Listbox extends BaseEditableHolder {
691
725
  }
692
726
  onOptionSelectMultiple(event, option) {
693
727
  let selected = this.isSelected(option);
694
- let value = null;
728
+ let value = [];
695
729
  let metaSelection = this.optionTouched ? false : this.metaKeySelection;
696
730
  if (metaSelection) {
697
731
  let metaKey = event.metaKey || event.ctrlKey;
@@ -700,7 +734,7 @@ class Listbox extends BaseEditableHolder {
700
734
  }
701
735
  else {
702
736
  value = metaKey ? this.modelValue() || [] : [];
703
- value = [...value, this.getOptionValue(option)];
737
+ value = [...(value || []), this.getOptionValue(option)];
704
738
  }
705
739
  }
706
740
  else {
@@ -751,7 +785,7 @@ class Listbox extends BaseEditableHolder {
751
785
  if (this.$disabled() || this.readonly) {
752
786
  return;
753
787
  }
754
- focus(this.headerCheckboxViewChild.nativeElement);
788
+ focus(this.headerCheckboxViewChild?.nativeElement);
755
789
  if (this.selectAll !== null) {
756
790
  this.onSelectAllChange.emit({
757
791
  originalEvent: event,
@@ -797,21 +831,21 @@ class Listbox extends BaseEditableHolder {
797
831
  }
798
832
  onFirstHiddenFocus(event) {
799
833
  focus(this.listViewChild?.nativeElement);
800
- const firstFocusableEl = getFirstFocusableElement(this.el.nativeElement, ':not([data-p-hidden-focusable="true"])');
801
- this.lastHiddenFocusableElement.nativeElement.tabIndex = isEmpty(firstFocusableEl) ? '-1' : undefined;
802
- this.firstHiddenFocusableElement.nativeElement.tabIndex = -1;
834
+ const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not([data-p-hidden-focusable="true"])');
835
+ this.lastHiddenFocusableElement?.nativeElement && (this.lastHiddenFocusableElement.nativeElement.tabIndex = isEmpty(firstFocusableEl) ? -1 : undefined);
836
+ this.firstHiddenFocusableElement?.nativeElement && (this.firstHiddenFocusableElement.nativeElement.tabIndex = -1);
803
837
  }
804
838
  onLastHiddenFocus(event) {
805
839
  const relatedTarget = event.relatedTarget;
806
840
  if (relatedTarget === this.listViewChild?.nativeElement) {
807
- const firstFocusableEl = getFirstFocusableElement(this.el.nativeElement, ':not(.p-hidden-focusable)');
841
+ const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not(.p-hidden-focusable)');
808
842
  focus(firstFocusableEl);
809
- this.firstHiddenFocusableElement.nativeElement.tabIndex = undefined;
843
+ this.firstHiddenFocusableElement?.nativeElement && (this.firstHiddenFocusableElement.nativeElement.tabIndex = undefined);
810
844
  }
811
845
  else {
812
- focus(this.firstHiddenFocusableElement.nativeElement);
846
+ focus(this.firstHiddenFocusableElement?.nativeElement);
813
847
  }
814
- this.lastHiddenFocusableElement.nativeElement.tabIndex = -1;
848
+ this.lastHiddenFocusableElement?.nativeElement && (this.lastHiddenFocusableElement.nativeElement.tabIndex = -1);
815
849
  }
816
850
  onFocusout(event) {
817
851
  if (!this.el.nativeElement.contains(event.relatedTarget) && this.lastHiddenFocusableElement && this.firstHiddenFocusableElement) {
@@ -863,7 +897,7 @@ class Listbox extends BaseEditableHolder {
863
897
  this.focusedOptionIndex.set(-1);
864
898
  this.startRangeIndex.set(-1);
865
899
  this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });
866
- !this.virtualScrollerDisabled && this.scroller.scrollToIndex(0);
900
+ !this.virtualScrollerDisabled && this.scroller?.scrollToIndex(0);
867
901
  }
868
902
  onFilterBlur(event) {
869
903
  this.focusedOptionIndex.set(-1);
@@ -1097,7 +1131,7 @@ class Listbox extends BaseEditableHolder {
1097
1131
  return matched;
1098
1132
  }
1099
1133
  isOptionMatched(option) {
1100
- return this.isValidOption(option) && this.getOptionLabel(option).toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));
1134
+ return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale));
1101
1135
  }
1102
1136
  scrollInView(index = -1) {
1103
1137
  const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
@@ -1106,7 +1140,7 @@ class Listbox extends BaseEditableHolder {
1106
1140
  element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1107
1141
  }
1108
1142
  else if (!this.virtualScrollerDisabled) {
1109
- this.virtualScroll && this.scroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());
1143
+ this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());
1110
1144
  }
1111
1145
  }
1112
1146
  findFirstOptionIndex() {
@@ -1154,7 +1188,7 @@ class Listbox extends BaseEditableHolder {
1154
1188
  return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1155
1189
  }
1156
1190
  findSelectedOptionIndex() {
1157
- if (this.$filled) {
1191
+ if (this.$filled()) {
1158
1192
  if (this.multiple) {
1159
1193
  for (let index = this.modelValue().length - 1; index >= 0; index--) {
1160
1194
  const value = this.modelValue()[index];
@@ -1196,7 +1230,7 @@ class Listbox extends BaseEditableHolder {
1196
1230
  return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;
1197
1231
  }
1198
1232
  isEquals(value1, value2) {
1199
- return equals(value1, value2, this.equalityKey());
1233
+ return equals(value1, value2, this.equalityKey() || '');
1200
1234
  }
1201
1235
  isSelected(option) {
1202
1236
  const optionValue = this.getOptionValue(option);
@@ -1212,7 +1246,7 @@ class Listbox extends BaseEditableHolder {
1212
1246
  return !this._options()?.length || !this.visibleOptions()?.length;
1213
1247
  }
1214
1248
  hasFilter() {
1215
- return this._filterValue() && this._filterValue().trim().length > 0;
1249
+ return this._filterValue() && (this._filterValue()?.trim().length || 0) > 0;
1216
1250
  }
1217
1251
  resetFilter() {
1218
1252
  if (this.filterViewChild && this.filterViewChild.nativeElement) {
@@ -1220,8 +1254,29 @@ class Listbox extends BaseEditableHolder {
1220
1254
  }
1221
1255
  this._filterValue.set(null);
1222
1256
  }
1257
+ onDragEntered() {
1258
+ this.isDragging.set(true);
1259
+ }
1260
+ onDragExited() {
1261
+ this.isDragging.set(false);
1262
+ }
1223
1263
  drop(event) {
1264
+ this.isDragging.set(false);
1224
1265
  if (event) {
1266
+ // If dragdrop is enabled and same container (reordering), automatically handle reordering
1267
+ if (this.dragdrop && event.previousContainer === event.container) {
1268
+ const currentOptions = [...this._options()];
1269
+ moveItemInArray(currentOptions, event.previousIndex, event.currentIndex);
1270
+ this._options.set(currentOptions);
1271
+ // Update model value if needed for selection preservation
1272
+ if (this.modelValue()) {
1273
+ this.writeModelValue(this.modelValue());
1274
+ this.onModelChange(this.modelValue());
1275
+ }
1276
+ // Mark for change detection
1277
+ this.cd.markForCheck();
1278
+ }
1279
+ // Always emit the event for custom handling
1225
1280
  this.onDrop.emit(event);
1226
1281
  }
1227
1282
  }
@@ -1242,8 +1297,8 @@ class Listbox extends BaseEditableHolder {
1242
1297
  }
1243
1298
  super.ngOnDestroy();
1244
1299
  }
1245
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: Listbox, deps: [{ token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
1246
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: Listbox, isStandalone: true, selector: "p-listbox, p-listBox, p-list-box", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, searchMessage: { classPropertyName: "searchMessage", publicName: "searchMessage", isSignal: false, isRequired: false, transformFunction: null }, emptySelectionMessage: { classPropertyName: "emptySelectionMessage", publicName: "emptySelectionMessage", isSignal: false, isRequired: false, transformFunction: null }, selectionMessage: { classPropertyName: "selectionMessage", publicName: "selectionMessage", isSignal: false, isRequired: false, transformFunction: null }, autoOptionFocus: { classPropertyName: "autoOptionFocus", publicName: "autoOptionFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, searchLocale: { classPropertyName: "searchLocale", publicName: "searchLocale", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, focusOnHover: { classPropertyName: "focusOnHover", publicName: "focusOnHover", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterMessage: { classPropertyName: "filterMessage", publicName: "filterMessage", isSignal: false, isRequired: false, transformFunction: null }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, listStyle: { classPropertyName: "listStyle", publicName: "listStyle", isSignal: false, isRequired: false, transformFunction: null }, listStyleClass: { classPropertyName: "listStyleClass", publicName: "listStyleClass", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, filterMatchMode: { classPropertyName: "filterMatchMode", publicName: "filterMatchMode", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: false, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: false, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: false, isRequired: false, transformFunction: null }, optionGroupChildren: { classPropertyName: "optionGroupChildren", publicName: "optionGroupChildren", isSignal: false, isRequired: false, transformFunction: null }, optionGroupLabel: { classPropertyName: "optionGroupLabel", publicName: "optionGroupLabel", isSignal: false, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: false, isRequired: false, transformFunction: null }, ariaFilterLabel: { classPropertyName: "ariaFilterLabel", publicName: "ariaFilterLabel", isSignal: false, isRequired: false, transformFunction: null }, filterPlaceHolder: { classPropertyName: "filterPlaceHolder", publicName: "filterPlaceHolder", isSignal: false, isRequired: false, transformFunction: null }, emptyFilterMessage: { classPropertyName: "emptyFilterMessage", publicName: "emptyFilterMessage", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: false, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: false, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkmark: { classPropertyName: "checkmark", publicName: "checkmark", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dragdrop: { classPropertyName: "dragdrop", publicName: "dragdrop", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", onClick: "onClick", onDblClick: "onDblClick", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onSelectAllChange: "onSelectAllChange", onLazyLoad: "onLazyLoad", onDrop: "onDrop" }, host: { listeners: { "focusout": "onHostFocusOut($event)" }, properties: { "attr.id": "id", "class": "cn(cx('root'), styleClass)" } }, providers: [
1300
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Listbox, deps: [{ token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
1301
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: Listbox, isStandalone: true, selector: "p-listbox, p-listBox, p-list-box", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, searchMessage: { classPropertyName: "searchMessage", publicName: "searchMessage", isSignal: false, isRequired: false, transformFunction: null }, emptySelectionMessage: { classPropertyName: "emptySelectionMessage", publicName: "emptySelectionMessage", isSignal: false, isRequired: false, transformFunction: null }, selectionMessage: { classPropertyName: "selectionMessage", publicName: "selectionMessage", isSignal: false, isRequired: false, transformFunction: null }, autoOptionFocus: { classPropertyName: "autoOptionFocus", publicName: "autoOptionFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, searchLocale: { classPropertyName: "searchLocale", publicName: "searchLocale", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, focusOnHover: { classPropertyName: "focusOnHover", publicName: "focusOnHover", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterMessage: { classPropertyName: "filterMessage", publicName: "filterMessage", isSignal: false, isRequired: false, transformFunction: null }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, listStyle: { classPropertyName: "listStyle", publicName: "listStyle", isSignal: false, isRequired: false, transformFunction: null }, listStyleClass: { classPropertyName: "listStyleClass", publicName: "listStyleClass", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, filterMatchMode: { classPropertyName: "filterMatchMode", publicName: "filterMatchMode", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: false, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: false, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: false, isRequired: false, transformFunction: null }, optionGroupChildren: { classPropertyName: "optionGroupChildren", publicName: "optionGroupChildren", isSignal: false, isRequired: false, transformFunction: null }, optionGroupLabel: { classPropertyName: "optionGroupLabel", publicName: "optionGroupLabel", isSignal: false, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: false, isRequired: false, transformFunction: null }, ariaFilterLabel: { classPropertyName: "ariaFilterLabel", publicName: "ariaFilterLabel", isSignal: false, isRequired: false, transformFunction: null }, filterPlaceHolder: { classPropertyName: "filterPlaceHolder", publicName: "filterPlaceHolder", isSignal: false, isRequired: false, transformFunction: null }, emptyFilterMessage: { classPropertyName: "emptyFilterMessage", publicName: "emptyFilterMessage", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: false, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: false, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkmark: { classPropertyName: "checkmark", publicName: "checkmark", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dragdrop: { classPropertyName: "dragdrop", publicName: "dragdrop", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dropListData: { classPropertyName: "dropListData", publicName: "dropListData", isSignal: false, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", onClick: "onClick", onDblClick: "onDblClick", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onSelectAllChange: "onSelectAllChange", onLazyLoad: "onLazyLoad", onDrop: "onDrop" }, host: { listeners: { "focusout": "onHostFocusOut($event)" }, properties: { "attr.id": "id", "class": "cn(cx('root'), styleClass, { 'p-listbox-dragging': isDragging() })" } }, providers: [
1247
1302
  LISTBOX_VALUE_ACCESSOR,
1248
1303
  ListBoxStyle,
1249
1304
  {
@@ -1313,9 +1368,19 @@ class Listbox extends BaseEditableHolder {
1313
1368
  </span>
1314
1369
  </ng-template>
1315
1370
  </div>
1316
- <div #container [class]="cn(cx('listContainer'), listStyleClass)" [ngStyle]="listStyle" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
1371
+ <div
1372
+ #container
1373
+ [class]="cn(cx('listContainer'), listStyleClass)"
1374
+ [ngStyle]="listStyle"
1375
+ [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'"
1376
+ cdkDropList
1377
+ [cdkDropListData]="cdkDropData()"
1378
+ (cdkDropListDropped)="drop($event)"
1379
+ (cdkDropListEntered)="onDragEntered()"
1380
+ (cdkDropListExited)="onDragExited()"
1381
+ >
1317
1382
  @if (hasFilter() && isEmpty()) {
1318
- <div [class]="cx('emptyMessage')" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1383
+ <div [class]="cx('emptyMessage')">
1319
1384
  @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1320
1385
  {{ emptyFilterMessageText }}
1321
1386
  } @else {
@@ -1323,7 +1388,7 @@ class Listbox extends BaseEditableHolder {
1323
1388
  }
1324
1389
  </div>
1325
1390
  } @else if (!hasFilter() && isEmpty()) {
1326
- <div [class]="cx('emptyMessage')" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1391
+ <div [class]="cx('emptyMessage')">
1327
1392
  @if (!emptyTemplate && !_emptyTemplate) {
1328
1393
  {{ emptyMessage }}
1329
1394
  } @else {
@@ -1358,6 +1423,7 @@ class Listbox extends BaseEditableHolder {
1358
1423
 
1359
1424
  <ng-template #buildInItems let-items let-scrollerOptions="options">
1360
1425
  <ul
1426
+ #list
1361
1427
  [id]="id + '_list'"
1362
1428
  [class]="cx('list')"
1363
1429
  role="listbox"
@@ -1371,9 +1437,6 @@ class Listbox extends BaseEditableHolder {
1371
1437
  (focus)="onListFocus($event)"
1372
1438
  (blur)="onListBlur($event)"
1373
1439
  (keydown)="onListKeyDown($event)"
1374
- cdkDropList
1375
- [cdkDropListData]="items"
1376
- (cdkDropListDropped)="drop($event)"
1377
1440
  >
1378
1441
  <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1379
1442
  <ng-container *ngIf="isOptionGroup(option)">
@@ -1385,6 +1448,8 @@ class Listbox extends BaseEditableHolder {
1385
1448
  cdkDrag
1386
1449
  [cdkDragData]="option"
1387
1450
  [cdkDragDisabled]="!dragdrop"
1451
+ (cdkDragStarted)="isDragging.set(true)"
1452
+ (cdkDragEnded)="isDragging.set(false)"
1388
1453
  >
1389
1454
  <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1390
1455
  <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
@@ -1412,6 +1477,8 @@ class Listbox extends BaseEditableHolder {
1412
1477
  cdkDrag
1413
1478
  [cdkDragData]="option"
1414
1479
  [cdkDragDisabled]="!dragdrop"
1480
+ (cdkDragStarted)="isDragging.set(true)"
1481
+ (cdkDragEnded)="isDragging.set(false)"
1415
1482
  >
1416
1483
  <p-checkbox
1417
1484
  *ngIf="checkbox && multiple"
@@ -1468,7 +1535,7 @@ class Listbox extends BaseEditableHolder {
1468
1535
  <span #lastHiddenFocusableElement role="presentation" class="p-hidden-accessible p-hidden-focusable" [tabindex]="!$disabled() ? tabindex : -1" (focus)="onLastHiddenFocus($event)" [attr.data-p-hidden-focusable]="true"> </span>
1469
1536
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Scroller, selector: "p-scroller, p-virtualscroller, p-virtual-scroller, p-virtualScroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["styleClass"] }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: CheckIcon, selector: "[data-p-icon=\"check\"]" }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: BlankIcon, selector: "[data-p-icon=\"blank\"]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1470
1537
  }
1471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: Listbox, decorators: [{
1538
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Listbox, decorators: [{
1472
1539
  type: Component,
1473
1540
  args: [{
1474
1541
  selector: 'p-listbox, p-listBox, p-list-box',
@@ -1535,9 +1602,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1535
1602
  </span>
1536
1603
  </ng-template>
1537
1604
  </div>
1538
- <div #container [class]="cn(cx('listContainer'), listStyleClass)" [ngStyle]="listStyle" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
1605
+ <div
1606
+ #container
1607
+ [class]="cn(cx('listContainer'), listStyleClass)"
1608
+ [ngStyle]="listStyle"
1609
+ [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'"
1610
+ cdkDropList
1611
+ [cdkDropListData]="cdkDropData()"
1612
+ (cdkDropListDropped)="drop($event)"
1613
+ (cdkDropListEntered)="onDragEntered()"
1614
+ (cdkDropListExited)="onDragExited()"
1615
+ >
1539
1616
  @if (hasFilter() && isEmpty()) {
1540
- <div [class]="cx('emptyMessage')" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1617
+ <div [class]="cx('emptyMessage')">
1541
1618
  @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1542
1619
  {{ emptyFilterMessageText }}
1543
1620
  } @else {
@@ -1545,7 +1622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1545
1622
  }
1546
1623
  </div>
1547
1624
  } @else if (!hasFilter() && isEmpty()) {
1548
- <div [class]="cx('emptyMessage')" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1625
+ <div [class]="cx('emptyMessage')">
1549
1626
  @if (!emptyTemplate && !_emptyTemplate) {
1550
1627
  {{ emptyMessage }}
1551
1628
  } @else {
@@ -1580,6 +1657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1580
1657
 
1581
1658
  <ng-template #buildInItems let-items let-scrollerOptions="options">
1582
1659
  <ul
1660
+ #list
1583
1661
  [id]="id + '_list'"
1584
1662
  [class]="cx('list')"
1585
1663
  role="listbox"
@@ -1593,9 +1671,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1593
1671
  (focus)="onListFocus($event)"
1594
1672
  (blur)="onListBlur($event)"
1595
1673
  (keydown)="onListKeyDown($event)"
1596
- cdkDropList
1597
- [cdkDropListData]="items"
1598
- (cdkDropListDropped)="drop($event)"
1599
1674
  >
1600
1675
  <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1601
1676
  <ng-container *ngIf="isOptionGroup(option)">
@@ -1607,6 +1682,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1607
1682
  cdkDrag
1608
1683
  [cdkDragData]="option"
1609
1684
  [cdkDragDisabled]="!dragdrop"
1685
+ (cdkDragStarted)="isDragging.set(true)"
1686
+ (cdkDragEnded)="isDragging.set(false)"
1610
1687
  >
1611
1688
  <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1612
1689
  <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
@@ -1634,6 +1711,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1634
1711
  cdkDrag
1635
1712
  [cdkDragData]="option"
1636
1713
  [cdkDragDisabled]="!dragdrop"
1714
+ (cdkDragStarted)="isDragging.set(true)"
1715
+ (cdkDragEnded)="isDragging.set(false)"
1637
1716
  >
1638
1717
  <p-checkbox
1639
1718
  *ngIf="checkbox && multiple"
@@ -1703,7 +1782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1703
1782
  encapsulation: ViewEncapsulation.None,
1704
1783
  host: {
1705
1784
  '[attr.id]': 'id',
1706
- '[class]': "cn(cx('root'), styleClass)"
1785
+ '[class]': "cn(cx('root'), styleClass, { 'p-listbox-dragging': isDragging() })"
1707
1786
  }
1708
1787
  }]
1709
1788
  }], ctorParameters: () => [{ type: i1.FilterService }], propDecorators: { id: [{
@@ -1819,6 +1898,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1819
1898
  }], dragdrop: [{
1820
1899
  type: Input,
1821
1900
  args: [{ transform: booleanAttribute }]
1901
+ }], dropListData: [{
1902
+ type: Input
1822
1903
  }], onChange: [{
1823
1904
  type: Output
1824
1905
  }], onClick: [{
@@ -1905,11 +1986,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1905
1986
  args: ['focusout', ['$event']]
1906
1987
  }] } });
1907
1988
  class ListboxModule {
1908
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1909
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule], exports: [Listbox, SharedModule] });
1910
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule, SharedModule] });
1989
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1990
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule], exports: [Listbox, SharedModule] });
1991
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule, SharedModule] });
1911
1992
  }
1912
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ListboxModule, decorators: [{
1993
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, decorators: [{
1913
1994
  type: NgModule,
1914
1995
  args: [{
1915
1996
  imports: [Listbox, SharedModule],