primeng 19.0.10 → 19.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/autocomplete/autocomplete.d.ts +1 -1
  2. package/button/button.d.ts +6 -3
  3. package/button/button.interface.d.ts +1 -0
  4. package/cascadeselect/cascadeselect.d.ts +2 -0
  5. package/chips/chips.d.ts +237 -0
  6. package/chips/chips.interface.d.ts +66 -0
  7. package/chips/index.d.ts +5 -0
  8. package/chips/public_api.d.ts +2 -0
  9. package/chips/style/chipsstyle.d.ts +69 -0
  10. package/colorpicker/colorpicker.d.ts +3 -2
  11. package/confirmdialog/confirmdialog.d.ts +10 -4
  12. package/datepicker/datepicker.d.ts +6 -2
  13. package/fesm2022/primeng-accordion.mjs +24 -23
  14. package/fesm2022/primeng-accordion.mjs.map +1 -1
  15. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  16. package/fesm2022/primeng-api.mjs +31 -31
  17. package/fesm2022/primeng-autocomplete.mjs +31 -37
  18. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  19. package/fesm2022/primeng-autofocus.mjs +7 -7
  20. package/fesm2022/primeng-avatar.mjs +10 -10
  21. package/fesm2022/primeng-avatargroup.mjs +10 -10
  22. package/fesm2022/primeng-badge.mjs +13 -13
  23. package/fesm2022/primeng-base.mjs +7 -3
  24. package/fesm2022/primeng-base.mjs.map +1 -1
  25. package/fesm2022/primeng-basecomponent.mjs +6 -6
  26. package/fesm2022/primeng-blockui.mjs +10 -10
  27. package/fesm2022/primeng-breadcrumb.mjs +10 -10
  28. package/fesm2022/primeng-button.mjs +54 -21
  29. package/fesm2022/primeng-button.mjs.map +1 -1
  30. package/fesm2022/primeng-buttongroup.mjs +10 -10
  31. package/fesm2022/primeng-calendar.mjs +13 -11
  32. package/fesm2022/primeng-calendar.mjs.map +1 -1
  33. package/fesm2022/primeng-card.mjs +10 -10
  34. package/fesm2022/primeng-carousel.mjs +12 -12
  35. package/fesm2022/primeng-carousel.mjs.map +1 -1
  36. package/fesm2022/primeng-cascadeselect.mjs +28 -17
  37. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  38. package/fesm2022/primeng-chart.mjs +10 -10
  39. package/fesm2022/primeng-checkbox.mjs +12 -10
  40. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  41. package/fesm2022/primeng-chip.mjs +10 -10
  42. package/fesm2022/primeng-chips.mjs +930 -0
  43. package/fesm2022/primeng-chips.mjs.map +1 -0
  44. package/fesm2022/primeng-colorpicker.mjs +16 -10
  45. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  46. package/fesm2022/primeng-config.mjs +9 -7
  47. package/fesm2022/primeng-config.mjs.map +1 -1
  48. package/fesm2022/primeng-confirmdialog.mjs +21 -11
  49. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  50. package/fesm2022/primeng-confirmpopup.mjs +12 -12
  51. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  52. package/fesm2022/primeng-contextmenu.mjs +14 -14
  53. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  54. package/fesm2022/primeng-dataview.mjs +11 -11
  55. package/fesm2022/primeng-dataview.mjs.map +1 -1
  56. package/fesm2022/primeng-datepicker.mjs +44 -19
  57. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  58. package/fesm2022/primeng-defer.mjs +7 -7
  59. package/fesm2022/primeng-dialog.mjs +10 -10
  60. package/fesm2022/primeng-divider.mjs +10 -10
  61. package/fesm2022/primeng-dock.mjs +10 -10
  62. package/fesm2022/primeng-dragdrop.mjs +10 -10
  63. package/fesm2022/primeng-drawer.mjs +10 -10
  64. package/fesm2022/primeng-dropdown.mjs +13 -13
  65. package/fesm2022/primeng-dynamicdialog.mjs +21 -17
  66. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  67. package/fesm2022/primeng-editor.mjs +10 -10
  68. package/fesm2022/primeng-fieldset.mjs +10 -10
  69. package/fesm2022/primeng-fileupload.mjs +14 -14
  70. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  71. package/fesm2022/primeng-floatlabel.mjs +10 -10
  72. package/fesm2022/primeng-fluid.mjs +10 -10
  73. package/fesm2022/primeng-focustrap.mjs +7 -7
  74. package/fesm2022/primeng-galleria.mjs +22 -22
  75. package/fesm2022/primeng-iconfield.mjs +10 -10
  76. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  77. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  78. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  79. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  80. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  81. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  82. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  83. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  84. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  85. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  86. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  87. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  88. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  89. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  90. package/fesm2022/primeng-icons-ban.mjs +3 -3
  91. package/fesm2022/primeng-icons-bars.mjs +3 -3
  92. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  93. package/fesm2022/primeng-icons-blank.mjs +3 -3
  94. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  95. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  96. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  97. package/fesm2022/primeng-icons-check.mjs +3 -3
  98. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  99. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  100. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  101. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  102. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  103. package/fesm2022/primeng-icons-eye.mjs +3 -3
  104. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  105. package/fesm2022/primeng-icons-filter.mjs +3 -3
  106. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  107. package/fesm2022/primeng-icons-home.mjs +3 -3
  108. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  109. package/fesm2022/primeng-icons-minus.mjs +3 -3
  110. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  111. package/fesm2022/primeng-icons-plus.mjs +3 -3
  112. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  113. package/fesm2022/primeng-icons-search.mjs +3 -3
  114. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  115. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  116. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  117. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  118. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  119. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  120. package/fesm2022/primeng-icons-star.mjs +3 -3
  121. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  122. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  123. package/fesm2022/primeng-icons-times.mjs +3 -3
  124. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  125. package/fesm2022/primeng-icons-trash.mjs +3 -3
  126. package/fesm2022/primeng-icons-undo.mjs +3 -3
  127. package/fesm2022/primeng-icons-upload.mjs +3 -3
  128. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  129. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  130. package/fesm2022/primeng-iftalabel.mjs +12 -12
  131. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  132. package/fesm2022/primeng-image.mjs +10 -10
  133. package/fesm2022/primeng-imagecompare.mjs +10 -10
  134. package/fesm2022/primeng-inplace.mjs +16 -16
  135. package/fesm2022/primeng-inputgroup.mjs +10 -10
  136. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  137. package/fesm2022/primeng-inputicon.mjs +10 -10
  138. package/fesm2022/primeng-inputmask.mjs +17 -10
  139. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  140. package/fesm2022/primeng-inputnumber.mjs +45 -27
  141. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  142. package/fesm2022/primeng-inputotp.mjs +10 -10
  143. package/fesm2022/primeng-inputswitch.mjs +10 -10
  144. package/fesm2022/primeng-inputtext.mjs +10 -10
  145. package/fesm2022/primeng-inputtextarea.mjs +10 -10
  146. package/fesm2022/primeng-keyfilter.mjs +7 -7
  147. package/fesm2022/primeng-knob.mjs +10 -10
  148. package/fesm2022/primeng-listbox.mjs +290 -278
  149. package/fesm2022/primeng-listbox.mjs.map +1 -1
  150. package/fesm2022/primeng-megamenu.mjs +14 -18
  151. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  152. package/fesm2022/primeng-menu.mjs +18 -17
  153. package/fesm2022/primeng-menu.mjs.map +1 -1
  154. package/fesm2022/primeng-menubar.mjs +17 -19
  155. package/fesm2022/primeng-menubar.mjs.map +1 -1
  156. package/fesm2022/primeng-message.mjs +10 -10
  157. package/fesm2022/primeng-messages.mjs +10 -10
  158. package/fesm2022/primeng-metergroup.mjs +13 -13
  159. package/fesm2022/primeng-multiselect.mjs +84 -57
  160. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  161. package/fesm2022/primeng-orderlist.mjs +30 -10
  162. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  163. package/fesm2022/primeng-organizationchart.mjs +13 -13
  164. package/fesm2022/primeng-overlay.mjs +24 -21
  165. package/fesm2022/primeng-overlay.mjs.map +1 -1
  166. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  167. package/fesm2022/primeng-overlaypanel.mjs +11 -11
  168. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  169. package/fesm2022/primeng-paginator.mjs +11 -11
  170. package/fesm2022/primeng-paginator.mjs.map +1 -1
  171. package/fesm2022/primeng-panel.mjs +10 -11
  172. package/fesm2022/primeng-panel.mjs.map +1 -1
  173. package/fesm2022/primeng-panelmenu.mjs +16 -16
  174. package/fesm2022/primeng-password.mjs +17 -17
  175. package/fesm2022/primeng-password.mjs.map +1 -1
  176. package/fesm2022/primeng-picklist.mjs +97 -51
  177. package/fesm2022/primeng-picklist.mjs.map +1 -1
  178. package/fesm2022/primeng-popover.mjs +12 -11
  179. package/fesm2022/primeng-popover.mjs.map +1 -1
  180. package/fesm2022/primeng-progressbar.mjs +10 -10
  181. package/fesm2022/primeng-progressspinner.mjs +14 -14
  182. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  183. package/fesm2022/primeng-radiobutton.mjs +15 -13
  184. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  185. package/fesm2022/primeng-rating.mjs +10 -10
  186. package/fesm2022/primeng-ripple.mjs +10 -10
  187. package/fesm2022/primeng-scroller.mjs +28 -16
  188. package/fesm2022/primeng-scroller.mjs.map +1 -1
  189. package/fesm2022/primeng-scrollpanel.mjs +10 -10
  190. package/fesm2022/primeng-scrolltop.mjs +10 -10
  191. package/fesm2022/primeng-select.mjs +22 -19
  192. package/fesm2022/primeng-select.mjs.map +1 -1
  193. package/fesm2022/primeng-selectbutton.mjs +28 -18
  194. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  195. package/fesm2022/primeng-sidebar.mjs +10 -10
  196. package/fesm2022/primeng-skeleton.mjs +10 -10
  197. package/fesm2022/primeng-slider.mjs +10 -10
  198. package/fesm2022/primeng-speeddial.mjs +11 -11
  199. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  200. package/fesm2022/primeng-splitbutton.mjs +17 -36
  201. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  202. package/fesm2022/primeng-splitter.mjs +13 -13
  203. package/fesm2022/primeng-stepper.mjs +30 -30
  204. package/fesm2022/primeng-stepper.mjs.map +1 -1
  205. package/fesm2022/primeng-steps.mjs +10 -10
  206. package/fesm2022/primeng-styleclass.mjs +7 -7
  207. package/fesm2022/primeng-table.mjs +163 -206
  208. package/fesm2022/primeng-table.mjs.map +1 -1
  209. package/fesm2022/primeng-tabmenu.mjs +10 -10
  210. package/fesm2022/primeng-tabs.mjs +30 -28
  211. package/fesm2022/primeng-tabs.mjs.map +1 -1
  212. package/fesm2022/primeng-tabview.mjs +13 -13
  213. package/fesm2022/primeng-tag.mjs +10 -10
  214. package/fesm2022/primeng-tag.mjs.map +1 -1
  215. package/fesm2022/primeng-terminal.mjs +13 -13
  216. package/fesm2022/primeng-textarea.mjs +20 -12
  217. package/fesm2022/primeng-textarea.mjs.map +1 -1
  218. package/fesm2022/primeng-tieredmenu.mjs +35 -54
  219. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  220. package/fesm2022/primeng-timeline.mjs +10 -10
  221. package/fesm2022/primeng-toast.mjs +13 -13
  222. package/fesm2022/primeng-togglebutton.mjs +131 -146
  223. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  224. package/fesm2022/primeng-toggleswitch.mjs +12 -10
  225. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  226. package/fesm2022/primeng-toolbar.mjs +10 -10
  227. package/fesm2022/primeng-tooltip.mjs +11 -11
  228. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  229. package/fesm2022/primeng-tree.mjs +49 -19
  230. package/fesm2022/primeng-tree.mjs.map +1 -1
  231. package/fesm2022/primeng-treeselect.mjs +17 -11
  232. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  233. package/fesm2022/primeng-treetable.mjs +68 -64
  234. package/fesm2022/primeng-treetable.mjs.map +1 -1
  235. package/fesm2022/primeng-usestyle.mjs +3 -3
  236. package/inputnumber/inputnumber.d.ts +8 -2
  237. package/listbox/listbox.d.ts +1 -1
  238. package/multiselect/multiselect.d.ts +11 -3
  239. package/multiselect/multiselect.interface.d.ts +1 -1
  240. package/package.json +115 -111
  241. package/panel/panel.d.ts +0 -1
  242. package/picklist/picklist.d.ts +2 -2
  243. package/scroller/scroller.d.ts +4 -0
  244. package/select/select.d.ts +1 -0
  245. package/selectbutton/selectbutton.d.ts +4 -1
  246. package/splitbutton/splitbutton.d.ts +4 -6
  247. package/table/table.d.ts +27 -36
  248. package/tag/tag.d.ts +1 -1
  249. package/textarea/textarea.d.ts +2 -1
  250. package/tieredmenu/tieredmenu.d.ts +1 -1
  251. package/togglebutton/togglebutton.d.ts +7 -6
  252. package/tree/tree.d.ts +7 -1
  253. package/treetable/treetable.d.ts +2 -2
@@ -143,6 +143,8 @@ const theme = ({ dt }) => `
143
143
 
144
144
  /* For PrimeNG */
145
145
 
146
+ p-listBox.ng-invalid.ng-dirty > .p-listbox.p-component,
147
+ p-list-box.ng-invalid.ng-dirty > .p-listbox.p-component,
146
148
  p-listbox.ng-invalid.ng-dirty > .p-listbox.p-component {
147
149
  border-color: ${dt('listbox.invalid.border.color')};
148
150
  }
@@ -177,10 +179,10 @@ class ListBoxStyle extends BaseStyle {
177
179
  name = 'listbox';
178
180
  theme = theme;
179
181
  classes = classes;
180
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ListBoxStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
181
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ListBoxStyle });
182
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ListBoxStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
183
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ListBoxStyle });
182
184
  }
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ListBoxStyle, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ListBoxStyle, decorators: [{
184
186
  type: Injectable
185
187
  }] });
186
188
  /**
@@ -1357,8 +1359,8 @@ class Listbox extends BaseComponent {
1357
1359
  }
1358
1360
  super.ngOnDestroy();
1359
1361
  }
1360
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: Listbox, deps: [{ token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
1361
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: Listbox, isStandalone: true, selector: "p-listbox, p-listBox, p-list-box", inputs: { id: "id", searchMessage: "searchMessage", emptySelectionMessage: "emptySelectionMessage", selectionMessage: "selectionMessage", autoOptionFocus: ["autoOptionFocus", "autoOptionFocus", booleanAttribute], ariaLabel: "ariaLabel", selectOnFocus: ["selectOnFocus", "selectOnFocus", booleanAttribute], searchLocale: ["searchLocale", "searchLocale", booleanAttribute], focusOnHover: ["focusOnHover", "focusOnHover", booleanAttribute], filterMessage: "filterMessage", filterFields: "filterFields", lazy: ["lazy", "lazy", booleanAttribute], virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], virtualScrollItemSize: ["virtualScrollItemSize", "virtualScrollItemSize", numberAttribute], virtualScrollOptions: "virtualScrollOptions", scrollHeight: "scrollHeight", tabindex: ["tabindex", "tabindex", numberAttribute], multiple: ["multiple", "multiple", booleanAttribute], style: "style", styleClass: "styleClass", listStyle: "listStyle", listStyleClass: "listStyleClass", readonly: ["readonly", "readonly", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], checkbox: ["checkbox", "checkbox", booleanAttribute], filter: ["filter", "filter", booleanAttribute], filterBy: "filterBy", filterMatchMode: "filterMatchMode", filterLocale: "filterLocale", metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], dataKey: "dataKey", showToggleAll: ["showToggleAll", "showToggleAll", booleanAttribute], optionLabel: "optionLabel", optionValue: "optionValue", optionGroupChildren: "optionGroupChildren", optionGroupLabel: "optionGroupLabel", optionDisabled: "optionDisabled", ariaFilterLabel: "ariaFilterLabel", filterPlaceHolder: "filterPlaceHolder", emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", group: ["group", "group", booleanAttribute], options: "options", filterValue: "filterValue", selectAll: "selectAll", striped: ["striped", "striped", booleanAttribute], highlightOnSelect: ["highlightOnSelect", "highlightOnSelect", booleanAttribute], checkmark: ["checkmark", "checkmark", booleanAttribute], dragdrop: ["dragdrop", "dragdrop", booleanAttribute] }, outputs: { onChange: "onChange", onClick: "onClick", onDblClick: "onDblClick", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onSelectAllChange: "onSelectAllChange", onLazyLoad: "onLazyLoad", onDrop: "onDrop" }, providers: [
1362
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: Listbox, deps: [{ token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
1363
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: Listbox, isStandalone: true, selector: "p-listbox, p-listBox, p-list-box", inputs: { id: "id", searchMessage: "searchMessage", emptySelectionMessage: "emptySelectionMessage", selectionMessage: "selectionMessage", autoOptionFocus: ["autoOptionFocus", "autoOptionFocus", booleanAttribute], ariaLabel: "ariaLabel", selectOnFocus: ["selectOnFocus", "selectOnFocus", booleanAttribute], searchLocale: ["searchLocale", "searchLocale", booleanAttribute], focusOnHover: ["focusOnHover", "focusOnHover", booleanAttribute], filterMessage: "filterMessage", filterFields: "filterFields", lazy: ["lazy", "lazy", booleanAttribute], virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], virtualScrollItemSize: ["virtualScrollItemSize", "virtualScrollItemSize", numberAttribute], virtualScrollOptions: "virtualScrollOptions", scrollHeight: "scrollHeight", tabindex: ["tabindex", "tabindex", numberAttribute], multiple: ["multiple", "multiple", booleanAttribute], style: "style", styleClass: "styleClass", listStyle: "listStyle", listStyleClass: "listStyleClass", readonly: ["readonly", "readonly", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], checkbox: ["checkbox", "checkbox", booleanAttribute], filter: ["filter", "filter", booleanAttribute], filterBy: "filterBy", filterMatchMode: "filterMatchMode", filterLocale: "filterLocale", metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], dataKey: "dataKey", showToggleAll: ["showToggleAll", "showToggleAll", booleanAttribute], optionLabel: "optionLabel", optionValue: "optionValue", optionGroupChildren: "optionGroupChildren", optionGroupLabel: "optionGroupLabel", optionDisabled: "optionDisabled", ariaFilterLabel: "ariaFilterLabel", filterPlaceHolder: "filterPlaceHolder", emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", group: ["group", "group", booleanAttribute], options: "options", filterValue: "filterValue", selectAll: "selectAll", striped: ["striped", "striped", booleanAttribute], highlightOnSelect: ["highlightOnSelect", "highlightOnSelect", booleanAttribute], checkmark: ["checkmark", "checkmark", booleanAttribute], dragdrop: ["dragdrop", "dragdrop", booleanAttribute] }, outputs: { onChange: "onChange", onClick: "onClick", onDblClick: "onDblClick", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onSelectAllChange: "onSelectAllChange", onLazyLoad: "onLazyLoad", onDrop: "onDrop" }, providers: [
1362
1364
  LISTBOX_VALUE_ACCESSOR,
1363
1365
  ListBoxStyle,
1364
1366
  {
@@ -1433,144 +1435,149 @@ class Listbox extends BaseComponent {
1433
1435
  </ng-template>
1434
1436
  </div>
1435
1437
  <div [ngClass]="'p-listbox-list-container'" #container [ngStyle]="listStyle" [class]="listStyleClass" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'" [attr.tabindex]="!disabled && '0'">
1436
- <p-scroller
1437
- #scroller
1438
- *ngIf="virtualScroll"
1439
- [items]="visibleOptions()"
1440
- [style]="{ height: scrollHeight }"
1441
- [itemSize]="virtualScrollItemSize"
1442
- [autoSize]="true"
1443
- [lazy]="lazy"
1444
- [options]="virtualScrollOptions"
1445
- (onLazyLoad)="onLazyLoad.emit($event)"
1446
- [tabindex]="scrollerTabIndex"
1447
- >
1448
- <ng-template #content let-items let-scrollerOptions="options">
1449
- <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
1450
- </ng-template>
1451
- @if (loaderTemplate || _loaderTemplate) {
1452
- <ng-template #loader let-scrollerOptions="options">
1453
- <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
1438
+ @if (hasFilter() && isEmpty()) {
1439
+ <div class="p-listbox-empty-message" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1440
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1441
+ {{ emptyFilterMessageText }}
1442
+ } @else {
1443
+ <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || _emptyTemplate || emptyTemplate"></ng-container>
1444
+ }
1445
+ </div>
1446
+ } @else if (!hasFilter() && isEmpty()) {
1447
+ <div class="p-listbox-empty-message" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1448
+ @if (!emptyTemplate && !_emptyTemplate) {
1449
+ {{ emptyMessage }}
1450
+ } @else {
1451
+ <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1452
+ }
1453
+ </div>
1454
+ } @else {
1455
+ <p-scroller
1456
+ #scroller
1457
+ *ngIf="virtualScroll"
1458
+ [items]="visibleOptions()"
1459
+ [style]="{ height: scrollHeight }"
1460
+ [itemSize]="virtualScrollItemSize"
1461
+ [autoSize]="true"
1462
+ [lazy]="lazy"
1463
+ [options]="virtualScrollOptions"
1464
+ (onLazyLoad)="onLazyLoad.emit($event)"
1465
+ [tabindex]="scrollerTabIndex"
1466
+ >
1467
+ <ng-template #content let-items let-scrollerOptions="options">
1468
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
1454
1469
  </ng-template>
1455
- }
1456
- </p-scroller>
1457
- <ng-container *ngIf="!virtualScroll">
1458
- <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
1459
- </ng-container>
1470
+ @if (loaderTemplate || _loaderTemplate) {
1471
+ <ng-template #loader let-scrollerOptions="options">
1472
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
1473
+ </ng-template>
1474
+ }
1475
+ </p-scroller>
1476
+ <ng-container *ngIf="!virtualScroll">
1477
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
1478
+ </ng-container>
1460
1479
 
1461
- <ng-template #buildInItems let-items let-scrollerOptions="options">
1462
- <ul
1463
- #list
1464
- class="p-listbox-list"
1465
- role="listbox"
1466
- [tabindex]="-1"
1467
- [attr.aria-multiselectable]="true"
1468
- [ngClass]="scrollerOptions.contentStyleClass"
1469
- [style]="scrollerOptions.contentStyle"
1470
- [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1471
- [attr.aria-label]="ariaLabel"
1472
- [attr.aria-disabled]="disabled"
1473
- (focus)="onListFocus($event)"
1474
- (blur)="onListBlur($event)"
1475
- (keydown)="onListKeyDown($event)"
1476
- cdkDropList
1477
- [cdkDropListData]="items"
1478
- (cdkDropListDropped)="drop($event)"
1479
- >
1480
- <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1481
- <ng-container *ngIf="isOptionGroup(option)">
1482
- <li
1483
- [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1484
- class="p-listbox-option-group"
1485
- [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1486
- role="option"
1487
- cdkDrag
1488
- [cdkDragData]="option"
1489
- [cdkDragDisabled]="!dragdrop"
1490
- >
1491
- <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1492
- <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
1493
- </li>
1494
- </ng-container>
1495
- <ng-container *ngIf="!isOptionGroup(option)">
1496
- <li
1497
- pRipple
1498
- class="p-listbox-option"
1499
- role="option"
1500
- [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1501
- [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1502
- [ngClass]="{
1503
- 'p-listbox-option-selected': isSelected(option) && highlightOnSelect,
1504
- 'p-focus': focusedOptionIndex() === getOptionIndex(i, scrollerOptions),
1505
- 'p-disabled': isOptionDisabled(option)
1506
- }"
1507
- [attr.aria-label]="getOptionLabel(option)"
1508
- [attr.aria-selected]="isSelected(option)"
1509
- [attr.aria-disabled]="isOptionDisabled(option)"
1510
- [attr.aria-setsize]="ariaSetSize"
1511
- [attr.ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
1512
- (click)="onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))"
1513
- (dblclick)="onOptionDoubleClick($event, option)"
1514
- (mousedown)="onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))"
1515
- (mouseenter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
1516
- (touchend)="onOptionTouchEnd()"
1517
- cdkDrag
1518
- [cdkDragData]="option"
1519
- [cdkDragDisabled]="!dragdrop"
1520
- >
1521
- <p-checkbox
1522
- *ngIf="checkbox && multiple"
1523
- styleClass="p-listbox-option-check-icon"
1524
- [ngModel]="isSelected(option)"
1525
- [readonly]="true"
1526
- [disabled]="disabled || isOptionDisabled(option)"
1527
- [tabindex]="-1"
1528
- [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1529
- [binary]="true"
1480
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
1481
+ <ul
1482
+ #list
1483
+ class="p-listbox-list"
1484
+ role="listbox"
1485
+ [tabindex]="-1"
1486
+ [attr.aria-multiselectable]="true"
1487
+ [ngClass]="scrollerOptions.contentStyleClass"
1488
+ [style]="scrollerOptions.contentStyle"
1489
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1490
+ [attr.aria-label]="ariaLabel"
1491
+ [attr.aria-disabled]="disabled"
1492
+ (focus)="onListFocus($event)"
1493
+ (blur)="onListBlur($event)"
1494
+ (keydown)="onListKeyDown($event)"
1495
+ cdkDropList
1496
+ [cdkDropListData]="items"
1497
+ (cdkDropListDropped)="drop($event)"
1498
+ >
1499
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1500
+ <ng-container *ngIf="isOptionGroup(option)">
1501
+ <li
1502
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1503
+ class="p-listbox-option-group"
1504
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1505
+ role="option"
1506
+ cdkDrag
1507
+ [cdkDragData]="option"
1508
+ [cdkDragDisabled]="!dragdrop"
1530
1509
  >
1531
- <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1532
- <ng-template #icon>
1533
- <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: isSelected(option) }"></ng-template>
1534
- </ng-template>
1535
- </ng-container>
1536
- </p-checkbox>
1537
- <ng-container *ngIf="checkmark">
1538
- <ng-container *ngIf="!checkmarkTemplate && !_checkmarkTemplate">
1539
- <BlankIcon *ngIf="!isSelected(option)" styleClass="p-listbox-option-check-icon" />
1540
- <CheckIcon *ngIf="isSelected(option)" styleClass="p-listbox-option-check-icon" />
1510
+ <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1511
+ <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
1512
+ </li>
1513
+ </ng-container>
1514
+ <ng-container *ngIf="!isOptionGroup(option)">
1515
+ <li
1516
+ pRipple
1517
+ class="p-listbox-option"
1518
+ role="option"
1519
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1520
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1521
+ [ngClass]="{
1522
+ 'p-listbox-option-selected': isSelected(option) && highlightOnSelect,
1523
+ 'p-focus': focusedOptionIndex() === getOptionIndex(i, scrollerOptions),
1524
+ 'p-disabled': isOptionDisabled(option)
1525
+ }"
1526
+ [attr.aria-label]="getOptionLabel(option)"
1527
+ [attr.aria-selected]="isSelected(option)"
1528
+ [attr.aria-disabled]="isOptionDisabled(option)"
1529
+ [attr.aria-setsize]="ariaSetSize"
1530
+ [attr.ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
1531
+ (click)="onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))"
1532
+ (dblclick)="onOptionDoubleClick($event, option)"
1533
+ (mousedown)="onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))"
1534
+ (mouseenter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
1535
+ (touchend)="onOptionTouchEnd()"
1536
+ cdkDrag
1537
+ [cdkDragData]="option"
1538
+ [cdkDragDisabled]="!dragdrop"
1539
+ >
1540
+ <p-checkbox
1541
+ *ngIf="checkbox && multiple"
1542
+ styleClass="p-listbox-option-check-icon"
1543
+ [ngModel]="isSelected(option)"
1544
+ [readonly]="true"
1545
+ [disabled]="disabled || isOptionDisabled(option)"
1546
+ [tabindex]="-1"
1547
+ [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1548
+ [binary]="true"
1549
+ >
1550
+ <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1551
+ <ng-template #icon>
1552
+ <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: isSelected(option) }"></ng-template>
1553
+ </ng-template>
1554
+ </ng-container>
1555
+ </p-checkbox>
1556
+ <ng-container *ngIf="checkmark">
1557
+ <ng-container *ngIf="!checkmarkTemplate && !_checkmarkTemplate">
1558
+ <BlankIcon *ngIf="!isSelected(option)" styleClass="p-listbox-option-check-icon" />
1559
+ <CheckIcon *ngIf="isSelected(option)" styleClass="p-listbox-option-check-icon" />
1560
+ </ng-container>
1561
+ <ng-container *ngTemplateOutlet="checkmarkTemplate || _checkmarkTemplate; context: { implicit: isSelected(option) }"></ng-container>
1541
1562
  </ng-container>
1542
- <ng-container *ngTemplateOutlet="checkmarkTemplate || _checkmarkTemplate; context: { implicit: isSelected(option) }"></ng-container>
1543
- </ng-container>
1544
- <span *ngIf="!itemTemplate && !_itemTemplate">{{ getOptionLabel(option) }}</span>
1545
- <ng-container
1546
- *ngTemplateOutlet="
1547
- itemTemplate || _itemTemplate;
1548
- context: {
1549
- $implicit: option,
1550
- index: getOptionIndex(i, scrollerOptions),
1551
- selected: isSelected(option)
1552
- }
1553
- "
1554
- ></ng-container>
1555
- </li>
1556
- </ng-container>
1557
- </ng-template>
1558
- <li *ngIf="hasFilter() && isEmpty()" class="p-listbox-empty-message" role="option">
1559
- @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1560
- {{ emptyFilterMessageText }}
1561
- } @else {
1562
- <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || _emptyTemplate || emptyTemplate"></ng-container>
1563
- }
1564
- </li>
1565
- <li *ngIf="!hasFilter() && isEmpty()" class="p-listbox-empty-message" role="option">
1566
- @if (!emptyTemplate && !_emptyTemplate) {
1567
- {{ emptyMessage }}
1568
- } @else {
1569
- <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1570
- }
1571
- </li>
1572
- </ul>
1573
- </ng-template>
1563
+ <span *ngIf="!itemTemplate && !_itemTemplate">{{ getOptionLabel(option) }}</span>
1564
+ <ng-container
1565
+ *ngTemplateOutlet="
1566
+ itemTemplate || _itemTemplate;
1567
+ context: {
1568
+ $implicit: option,
1569
+ index: getOptionIndex(i, scrollerOptions),
1570
+ selected: isSelected(option),
1571
+ disabled: isOptionDisabled(option)
1572
+ }
1573
+ "
1574
+ ></ng-container>
1575
+ </li>
1576
+ </ng-container>
1577
+ </ng-template>
1578
+ </ul>
1579
+ </ng-template>
1580
+ }
1574
1581
  </div>
1575
1582
  <div class="p-listbox-footer" *ngIf="footerFacet || footerTemplate || _footerTemplate">
1576
1583
  <ng-content select="p-footer"></ng-content>
@@ -1586,7 +1593,7 @@ class Listbox extends BaseComponent {
1586
1593
  </div>
1587
1594
  `, 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: "SearchIcon" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: CheckIcon, selector: "CheckIcon" }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "component", type: BlankIcon, selector: "BlankIcon" }, { 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"], 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 });
1588
1595
  }
1589
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: Listbox, decorators: [{
1596
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: Listbox, decorators: [{
1590
1597
  type: Component,
1591
1598
  args: [{
1592
1599
  selector: 'p-listbox, p-listBox, p-list-box',
@@ -1658,144 +1665,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
1658
1665
  </ng-template>
1659
1666
  </div>
1660
1667
  <div [ngClass]="'p-listbox-list-container'" #container [ngStyle]="listStyle" [class]="listStyleClass" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'" [attr.tabindex]="!disabled && '0'">
1661
- <p-scroller
1662
- #scroller
1663
- *ngIf="virtualScroll"
1664
- [items]="visibleOptions()"
1665
- [style]="{ height: scrollHeight }"
1666
- [itemSize]="virtualScrollItemSize"
1667
- [autoSize]="true"
1668
- [lazy]="lazy"
1669
- [options]="virtualScrollOptions"
1670
- (onLazyLoad)="onLazyLoad.emit($event)"
1671
- [tabindex]="scrollerTabIndex"
1672
- >
1673
- <ng-template #content let-items let-scrollerOptions="options">
1674
- <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
1675
- </ng-template>
1676
- @if (loaderTemplate || _loaderTemplate) {
1677
- <ng-template #loader let-scrollerOptions="options">
1678
- <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
1668
+ @if (hasFilter() && isEmpty()) {
1669
+ <div class="p-listbox-empty-message" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1670
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1671
+ {{ emptyFilterMessageText }}
1672
+ } @else {
1673
+ <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || _emptyTemplate || emptyTemplate"></ng-container>
1674
+ }
1675
+ </div>
1676
+ } @else if (!hasFilter() && isEmpty()) {
1677
+ <div class="p-listbox-empty-message" [cdkDropListData]="$any([])" (cdkDropListDropped)="drop($event)" cdkDropList>
1678
+ @if (!emptyTemplate && !_emptyTemplate) {
1679
+ {{ emptyMessage }}
1680
+ } @else {
1681
+ <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1682
+ }
1683
+ </div>
1684
+ } @else {
1685
+ <p-scroller
1686
+ #scroller
1687
+ *ngIf="virtualScroll"
1688
+ [items]="visibleOptions()"
1689
+ [style]="{ height: scrollHeight }"
1690
+ [itemSize]="virtualScrollItemSize"
1691
+ [autoSize]="true"
1692
+ [lazy]="lazy"
1693
+ [options]="virtualScrollOptions"
1694
+ (onLazyLoad)="onLazyLoad.emit($event)"
1695
+ [tabindex]="scrollerTabIndex"
1696
+ >
1697
+ <ng-template #content let-items let-scrollerOptions="options">
1698
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
1679
1699
  </ng-template>
1680
- }
1681
- </p-scroller>
1682
- <ng-container *ngIf="!virtualScroll">
1683
- <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
1684
- </ng-container>
1700
+ @if (loaderTemplate || _loaderTemplate) {
1701
+ <ng-template #loader let-scrollerOptions="options">
1702
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
1703
+ </ng-template>
1704
+ }
1705
+ </p-scroller>
1706
+ <ng-container *ngIf="!virtualScroll">
1707
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
1708
+ </ng-container>
1685
1709
 
1686
- <ng-template #buildInItems let-items let-scrollerOptions="options">
1687
- <ul
1688
- #list
1689
- class="p-listbox-list"
1690
- role="listbox"
1691
- [tabindex]="-1"
1692
- [attr.aria-multiselectable]="true"
1693
- [ngClass]="scrollerOptions.contentStyleClass"
1694
- [style]="scrollerOptions.contentStyle"
1695
- [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1696
- [attr.aria-label]="ariaLabel"
1697
- [attr.aria-disabled]="disabled"
1698
- (focus)="onListFocus($event)"
1699
- (blur)="onListBlur($event)"
1700
- (keydown)="onListKeyDown($event)"
1701
- cdkDropList
1702
- [cdkDropListData]="items"
1703
- (cdkDropListDropped)="drop($event)"
1704
- >
1705
- <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1706
- <ng-container *ngIf="isOptionGroup(option)">
1707
- <li
1708
- [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1709
- class="p-listbox-option-group"
1710
- [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1711
- role="option"
1712
- cdkDrag
1713
- [cdkDragData]="option"
1714
- [cdkDragDisabled]="!dragdrop"
1715
- >
1716
- <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1717
- <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
1718
- </li>
1719
- </ng-container>
1720
- <ng-container *ngIf="!isOptionGroup(option)">
1721
- <li
1722
- pRipple
1723
- class="p-listbox-option"
1724
- role="option"
1725
- [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1726
- [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1727
- [ngClass]="{
1728
- 'p-listbox-option-selected': isSelected(option) && highlightOnSelect,
1729
- 'p-focus': focusedOptionIndex() === getOptionIndex(i, scrollerOptions),
1730
- 'p-disabled': isOptionDisabled(option)
1731
- }"
1732
- [attr.aria-label]="getOptionLabel(option)"
1733
- [attr.aria-selected]="isSelected(option)"
1734
- [attr.aria-disabled]="isOptionDisabled(option)"
1735
- [attr.aria-setsize]="ariaSetSize"
1736
- [attr.ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
1737
- (click)="onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))"
1738
- (dblclick)="onOptionDoubleClick($event, option)"
1739
- (mousedown)="onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))"
1740
- (mouseenter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
1741
- (touchend)="onOptionTouchEnd()"
1742
- cdkDrag
1743
- [cdkDragData]="option"
1744
- [cdkDragDisabled]="!dragdrop"
1745
- >
1746
- <p-checkbox
1747
- *ngIf="checkbox && multiple"
1748
- styleClass="p-listbox-option-check-icon"
1749
- [ngModel]="isSelected(option)"
1750
- [readonly]="true"
1751
- [disabled]="disabled || isOptionDisabled(option)"
1752
- [tabindex]="-1"
1753
- [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1754
- [binary]="true"
1710
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
1711
+ <ul
1712
+ #list
1713
+ class="p-listbox-list"
1714
+ role="listbox"
1715
+ [tabindex]="-1"
1716
+ [attr.aria-multiselectable]="true"
1717
+ [ngClass]="scrollerOptions.contentStyleClass"
1718
+ [style]="scrollerOptions.contentStyle"
1719
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1720
+ [attr.aria-label]="ariaLabel"
1721
+ [attr.aria-disabled]="disabled"
1722
+ (focus)="onListFocus($event)"
1723
+ (blur)="onListBlur($event)"
1724
+ (keydown)="onListKeyDown($event)"
1725
+ cdkDropList
1726
+ [cdkDropListData]="items"
1727
+ (cdkDropListDropped)="drop($event)"
1728
+ >
1729
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
1730
+ <ng-container *ngIf="isOptionGroup(option)">
1731
+ <li
1732
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1733
+ class="p-listbox-option-group"
1734
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1735
+ role="option"
1736
+ cdkDrag
1737
+ [cdkDragData]="option"
1738
+ [cdkDragDisabled]="!dragdrop"
1755
1739
  >
1756
- <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1757
- <ng-template #icon>
1758
- <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: isSelected(option) }"></ng-template>
1759
- </ng-template>
1760
- </ng-container>
1761
- </p-checkbox>
1762
- <ng-container *ngIf="checkmark">
1763
- <ng-container *ngIf="!checkmarkTemplate && !_checkmarkTemplate">
1764
- <BlankIcon *ngIf="!isSelected(option)" styleClass="p-listbox-option-check-icon" />
1765
- <CheckIcon *ngIf="isSelected(option)" styleClass="p-listbox-option-check-icon" />
1740
+ <span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
1741
+ <ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
1742
+ </li>
1743
+ </ng-container>
1744
+ <ng-container *ngIf="!isOptionGroup(option)">
1745
+ <li
1746
+ pRipple
1747
+ class="p-listbox-option"
1748
+ role="option"
1749
+ [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)"
1750
+ [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }"
1751
+ [ngClass]="{
1752
+ 'p-listbox-option-selected': isSelected(option) && highlightOnSelect,
1753
+ 'p-focus': focusedOptionIndex() === getOptionIndex(i, scrollerOptions),
1754
+ 'p-disabled': isOptionDisabled(option)
1755
+ }"
1756
+ [attr.aria-label]="getOptionLabel(option)"
1757
+ [attr.aria-selected]="isSelected(option)"
1758
+ [attr.aria-disabled]="isOptionDisabled(option)"
1759
+ [attr.aria-setsize]="ariaSetSize"
1760
+ [attr.ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
1761
+ (click)="onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))"
1762
+ (dblclick)="onOptionDoubleClick($event, option)"
1763
+ (mousedown)="onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))"
1764
+ (mouseenter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
1765
+ (touchend)="onOptionTouchEnd()"
1766
+ cdkDrag
1767
+ [cdkDragData]="option"
1768
+ [cdkDragDisabled]="!dragdrop"
1769
+ >
1770
+ <p-checkbox
1771
+ *ngIf="checkbox && multiple"
1772
+ styleClass="p-listbox-option-check-icon"
1773
+ [ngModel]="isSelected(option)"
1774
+ [readonly]="true"
1775
+ [disabled]="disabled || isOptionDisabled(option)"
1776
+ [tabindex]="-1"
1777
+ [variant]="config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'"
1778
+ [binary]="true"
1779
+ >
1780
+ <ng-container *ngIf="checkIconTemplate || _checkIconTemplate">
1781
+ <ng-template #icon>
1782
+ <ng-template *ngTemplateOutlet="checkIconTemplate || _checkIconTemplate; context: { $implicit: isSelected(option) }"></ng-template>
1783
+ </ng-template>
1784
+ </ng-container>
1785
+ </p-checkbox>
1786
+ <ng-container *ngIf="checkmark">
1787
+ <ng-container *ngIf="!checkmarkTemplate && !_checkmarkTemplate">
1788
+ <BlankIcon *ngIf="!isSelected(option)" styleClass="p-listbox-option-check-icon" />
1789
+ <CheckIcon *ngIf="isSelected(option)" styleClass="p-listbox-option-check-icon" />
1790
+ </ng-container>
1791
+ <ng-container *ngTemplateOutlet="checkmarkTemplate || _checkmarkTemplate; context: { implicit: isSelected(option) }"></ng-container>
1766
1792
  </ng-container>
1767
- <ng-container *ngTemplateOutlet="checkmarkTemplate || _checkmarkTemplate; context: { implicit: isSelected(option) }"></ng-container>
1768
- </ng-container>
1769
- <span *ngIf="!itemTemplate && !_itemTemplate">{{ getOptionLabel(option) }}</span>
1770
- <ng-container
1771
- *ngTemplateOutlet="
1772
- itemTemplate || _itemTemplate;
1773
- context: {
1774
- $implicit: option,
1775
- index: getOptionIndex(i, scrollerOptions),
1776
- selected: isSelected(option)
1777
- }
1778
- "
1779
- ></ng-container>
1780
- </li>
1781
- </ng-container>
1782
- </ng-template>
1783
- <li *ngIf="hasFilter() && isEmpty()" class="p-listbox-empty-message" role="option">
1784
- @if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
1785
- {{ emptyFilterMessageText }}
1786
- } @else {
1787
- <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || _emptyTemplate || emptyTemplate"></ng-container>
1788
- }
1789
- </li>
1790
- <li *ngIf="!hasFilter() && isEmpty()" class="p-listbox-empty-message" role="option">
1791
- @if (!emptyTemplate && !_emptyTemplate) {
1792
- {{ emptyMessage }}
1793
- } @else {
1794
- <ng-container #empty *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1795
- }
1796
- </li>
1797
- </ul>
1798
- </ng-template>
1793
+ <span *ngIf="!itemTemplate && !_itemTemplate">{{ getOptionLabel(option) }}</span>
1794
+ <ng-container
1795
+ *ngTemplateOutlet="
1796
+ itemTemplate || _itemTemplate;
1797
+ context: {
1798
+ $implicit: option,
1799
+ index: getOptionIndex(i, scrollerOptions),
1800
+ selected: isSelected(option),
1801
+ disabled: isOptionDisabled(option)
1802
+ }
1803
+ "
1804
+ ></ng-container>
1805
+ </li>
1806
+ </ng-container>
1807
+ </ng-template>
1808
+ </ul>
1809
+ </ng-template>
1810
+ }
1799
1811
  </div>
1800
1812
  <div class="p-listbox-footer" *ngIf="footerFacet || footerTemplate || _footerTemplate">
1801
1813
  <ng-content select="p-footer"></ng-content>
@@ -2024,11 +2036,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
2024
2036
  args: [PrimeTemplate]
2025
2037
  }] } });
2026
2038
  class ListboxModule {
2027
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2028
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.2", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule], exports: [Listbox, SharedModule] });
2029
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule, SharedModule] });
2039
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2040
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule], exports: [Listbox, SharedModule] });
2041
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule, SharedModule] });
2030
2042
  }
2031
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ListboxModule, decorators: [{
2043
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ListboxModule, decorators: [{
2032
2044
  type: NgModule,
2033
2045
  args: [{
2034
2046
  imports: [Listbox, SharedModule],