primeng 19.1.0 → 19.1.2

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