primeng 18.0.4-lts → 18.0.6-lts

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 (161) hide show
  1. package/autocomplete/autocomplete.d.ts +1 -1
  2. package/chips/chips.d.ts +237 -0
  3. package/chips/chips.interface.d.ts +66 -0
  4. package/chips/index.d.ts +5 -0
  5. package/chips/public_api.d.ts +2 -0
  6. package/chips/style/chipsstyle.d.ts +69 -0
  7. package/confirmdialog/confirmdialog.d.ts +1 -0
  8. package/datepicker/datepicker.d.ts +7 -3
  9. package/esm2022/accordion/accordion.mjs +13 -12
  10. package/esm2022/autocomplete/autocomplete.mjs +56 -56
  11. package/esm2022/autocomplete/style/autocompletestyle.mjs +19 -6
  12. package/esm2022/base/style/basestyle.mjs +5 -1
  13. package/esm2022/button/button.mjs +11 -43
  14. package/esm2022/calendar/calendar.mjs +4 -4
  15. package/esm2022/carousel/carousel.mjs +3 -3
  16. package/esm2022/chips/chips.interface.mjs +2 -0
  17. package/esm2022/chips/chips.mjs +827 -0
  18. package/esm2022/chips/primeng-chips.mjs +5 -0
  19. package/esm2022/chips/public_api.mjs +3 -0
  20. package/esm2022/chips/style/chipsstyle.mjs +175 -0
  21. package/esm2022/confirmdialog/confirmdialog.mjs +44 -41
  22. package/esm2022/dataview/dataview.mjs +10 -35
  23. package/esm2022/datepicker/datepicker.mjs +85 -51
  24. package/esm2022/datepicker/style/datepickerstyle.mjs +19 -2
  25. package/esm2022/dialog/dialog.mjs +98 -108
  26. package/esm2022/drawer/drawer.mjs +2 -2
  27. package/esm2022/dynamicdialog/dynamicdialog.mjs +6 -2
  28. package/esm2022/fieldset/style/fieldsetstyle.mjs +2 -1
  29. package/esm2022/iftalabel/style/iftalabelstyle.mjs +10 -4
  30. package/esm2022/inputmask/inputmask.mjs +2 -1
  31. package/esm2022/inputnumber/inputnumber.mjs +13 -5
  32. package/esm2022/inputnumber/style/inputnumberstyle.mjs +10 -1
  33. package/esm2022/listbox/listbox.mjs +1 -1
  34. package/esm2022/megamenu/megamenu.mjs +6 -8
  35. package/esm2022/menu/menu.mjs +2 -1
  36. package/esm2022/menubar/menubar.mjs +3 -4
  37. package/esm2022/multiselect/multiselect.interface.mjs +1 -1
  38. package/esm2022/multiselect/multiselect.mjs +43 -83
  39. package/esm2022/overlay/overlay.mjs +14 -10
  40. package/esm2022/panel/panel.mjs +1 -2
  41. package/esm2022/password/style/passwordstyle.mjs +2 -1
  42. package/esm2022/picklist/picklist.mjs +263 -173
  43. package/esm2022/scroller/scroller.mjs +26 -10
  44. package/esm2022/select/select.mjs +10 -7
  45. package/esm2022/selectbutton/selectbutton.mjs +12 -5
  46. package/esm2022/splitbutton/splitbutton.mjs +9 -28
  47. package/esm2022/splitter/splitter.mjs +3 -3
  48. package/esm2022/stepper/stepper.mjs +31 -59
  49. package/esm2022/table/style/tablestyle.mjs +2 -2
  50. package/esm2022/table/table.interface.mjs +1 -1
  51. package/esm2022/table/table.mjs +116 -476
  52. package/esm2022/tabs/tabs.mjs +3 -3
  53. package/esm2022/tag/tag.mjs +1 -1
  54. package/esm2022/textarea/textarea.mjs +5 -1
  55. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +13 -32
  56. package/esm2022/tieredmenu/tieredmenu.mjs +8 -8
  57. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +2 -2
  58. package/esm2022/tooltip/tooltip.mjs +2 -2
  59. package/esm2022/tree/tree.mjs +68 -116
  60. package/esm2022/treeselect/treeselect.mjs +8 -7
  61. package/esm2022/treetable/treetable.mjs +3 -3
  62. package/fesm2022/primeng-accordion.mjs +12 -11
  63. package/fesm2022/primeng-accordion.mjs.map +1 -1
  64. package/fesm2022/primeng-autocomplete.mjs +73 -60
  65. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  66. package/fesm2022/primeng-base.mjs +4 -0
  67. package/fesm2022/primeng-base.mjs.map +1 -1
  68. package/fesm2022/primeng-button.mjs +10 -42
  69. package/fesm2022/primeng-button.mjs.map +1 -1
  70. package/fesm2022/primeng-calendar.mjs +3 -3
  71. package/fesm2022/primeng-calendar.mjs.map +1 -1
  72. package/fesm2022/primeng-carousel.mjs +2 -2
  73. package/fesm2022/primeng-carousel.mjs.map +1 -1
  74. package/fesm2022/primeng-chips.mjs +1006 -0
  75. package/fesm2022/primeng-chips.mjs.map +1 -0
  76. package/fesm2022/primeng-confirmdialog.mjs +43 -40
  77. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  78. package/fesm2022/primeng-dataview.mjs +9 -34
  79. package/fesm2022/primeng-dataview.mjs.map +1 -1
  80. package/fesm2022/primeng-datepicker.mjs +102 -51
  81. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  82. package/fesm2022/primeng-dialog.mjs +97 -107
  83. package/fesm2022/primeng-dialog.mjs.map +1 -1
  84. package/fesm2022/primeng-drawer.mjs +1 -1
  85. package/fesm2022/primeng-drawer.mjs.map +1 -1
  86. package/fesm2022/primeng-dynamicdialog.mjs +5 -1
  87. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  88. package/fesm2022/primeng-fieldset.mjs +1 -0
  89. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  90. package/fesm2022/primeng-iftalabel.mjs +9 -3
  91. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  92. package/fesm2022/primeng-inputmask.mjs +1 -0
  93. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  94. package/fesm2022/primeng-inputnumber.mjs +21 -4
  95. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  96. package/fesm2022/primeng-listbox.mjs.map +1 -1
  97. package/fesm2022/primeng-megamenu.mjs +5 -7
  98. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  99. package/fesm2022/primeng-menu.mjs +1 -0
  100. package/fesm2022/primeng-menu.mjs.map +1 -1
  101. package/fesm2022/primeng-menubar.mjs +2 -3
  102. package/fesm2022/primeng-menubar.mjs.map +1 -1
  103. package/fesm2022/primeng-multiselect.mjs +42 -82
  104. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  105. package/fesm2022/primeng-overlay.mjs +13 -9
  106. package/fesm2022/primeng-overlay.mjs.map +1 -1
  107. package/fesm2022/primeng-panel.mjs +0 -1
  108. package/fesm2022/primeng-panel.mjs.map +1 -1
  109. package/fesm2022/primeng-password.mjs +1 -0
  110. package/fesm2022/primeng-password.mjs.map +1 -1
  111. package/fesm2022/primeng-picklist.mjs +262 -172
  112. package/fesm2022/primeng-picklist.mjs.map +1 -1
  113. package/fesm2022/primeng-scroller.mjs +25 -9
  114. package/fesm2022/primeng-scroller.mjs.map +1 -1
  115. package/fesm2022/primeng-select.mjs +9 -6
  116. package/fesm2022/primeng-select.mjs.map +1 -1
  117. package/fesm2022/primeng-selectbutton.mjs +11 -4
  118. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  119. package/fesm2022/primeng-splitbutton.mjs +9 -28
  120. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  121. package/fesm2022/primeng-splitter.mjs +2 -2
  122. package/fesm2022/primeng-splitter.mjs.map +1 -1
  123. package/fesm2022/primeng-stepper.mjs +32 -60
  124. package/fesm2022/primeng-stepper.mjs.map +1 -1
  125. package/fesm2022/primeng-table.mjs +117 -477
  126. package/fesm2022/primeng-table.mjs.map +1 -1
  127. package/fesm2022/primeng-tabs.mjs +2 -2
  128. package/fesm2022/primeng-tabs.mjs.map +1 -1
  129. package/fesm2022/primeng-tag.mjs.map +1 -1
  130. package/fesm2022/primeng-textarea.mjs +4 -0
  131. package/fesm2022/primeng-textarea.mjs.map +1 -1
  132. package/fesm2022/primeng-tieredmenu.mjs +20 -39
  133. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  134. package/fesm2022/primeng-togglebutton.mjs +1 -1
  135. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  136. package/fesm2022/primeng-tooltip.mjs +1 -1
  137. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  138. package/fesm2022/primeng-tree.mjs +67 -115
  139. package/fesm2022/primeng-tree.mjs.map +1 -1
  140. package/fesm2022/primeng-treeselect.mjs +7 -6
  141. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  142. package/fesm2022/primeng-treetable.mjs +2 -2
  143. package/fesm2022/primeng-treetable.mjs.map +1 -1
  144. package/inputnumber/inputnumber.d.ts +6 -1
  145. package/listbox/listbox.d.ts +1 -1
  146. package/multiselect/multiselect.d.ts +10 -2
  147. package/multiselect/multiselect.interface.d.ts +1 -1
  148. package/package.json +217 -211
  149. package/panel/panel.d.ts +0 -1
  150. package/picklist/picklist.d.ts +2 -2
  151. package/scroller/scroller.d.ts +4 -0
  152. package/select/select.d.ts +1 -0
  153. package/selectbutton/selectbutton.d.ts +1 -0
  154. package/splitbutton/splitbutton.d.ts +4 -6
  155. package/splitter/splitter.d.ts +2 -2
  156. package/stepper/stepper.d.ts +4 -3
  157. package/table/table.d.ts +14 -12
  158. package/table/table.interface.d.ts +13 -13
  159. package/tag/tag.d.ts +1 -1
  160. package/textarea/textarea.d.ts +1 -0
  161. package/tree/tree.d.ts +7 -1
@@ -393,7 +393,7 @@ var MultiSelectClasses;
393
393
  })(MultiSelectClasses || (MultiSelectClasses = {}));
394
394
 
395
395
  const _c0 = a0 => ({ height: a0 });
396
- const _c1 = (a0, a1) => ({ "p-multiselect-option": true, "p-disabled": a0, "p-focus": a1 });
396
+ const _c1 = (a0, a1, a2) => ({ "p-multiselect-option-selected": a0, "p-disabled": a1, "p-focus": a2 });
397
397
  const _c2 = a0 => ({ $implicit: a0 });
398
398
  const _c3 = (a0, a1) => ({ checked: a0, class: a1 });
399
399
  function MultiSelectItem_ng_container_2_ng_template_1_0_ng_template_0_Template(rf, ctx) { }
@@ -496,7 +496,7 @@ function MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_templ
496
496
  i0.ɵɵtemplate(0, MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_Template, 2, 1, "ng-container", 20);
497
497
  } if (rf & 2) {
498
498
  const ctx_r1 = i0.ɵɵnextContext(5);
499
- i0.ɵɵproperty("ngIf", !ctx_r1.disabled);
499
+ i0.ɵɵproperty("ngIf", !ctx_r1.disabled && !ctx_r1.readonly);
500
500
  } }
501
501
  function MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
502
502
  i0.ɵɵelementContainerStart(0);
@@ -513,7 +513,7 @@ function MultiSelect_ng_container_5_ng_container_2_div_1_Template(rf, ctx) { if
513
513
  const item_r4 = ctx.$implicit;
514
514
  const ctx_r1 = i0.ɵɵnextContext(3);
515
515
  i0.ɵɵadvance(2);
516
- i0.ɵɵproperty("label", ctx_r1.getLabelByValue(item_r4))("removable", true)("removeIcon", ctx_r1.chipIcon);
516
+ i0.ɵɵproperty("label", ctx_r1.getLabelByValue(item_r4))("removable", !ctx_r1.disabled && !ctx_r1.readonly)("removeIcon", ctx_r1.chipIcon);
517
517
  i0.ɵɵadvance();
518
518
  i0.ɵɵproperty("ngIf", ctx_r1.chipIconTemplate || ctx_r1._chipIconTemplate || ctx_r1.removeTokenIconTemplate || ctx_r1._removeTokenIconTemplate);
519
519
  } }
@@ -878,10 +878,10 @@ function MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_T
878
878
  const scrollerOptions_r21 = i0.ɵɵnextContext().options;
879
879
  const ctx_r1 = i0.ɵɵnextContext(2);
880
880
  i0.ɵɵadvance();
881
- i0.ɵɵproperty("id", ctx_r1.id + "_" + ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))("option", option_r18)("selected", ctx_r1.isSelected(option_r18))("label", ctx_r1.getOptionLabel(option_r18))("disabled", ctx_r1.isOptionDisabled(option_r18))("template", ctx_r1.itemTemplate || ctx_r1._itemTemplate)("checkIconTemplate", ctx_r1.checkIconTemplate || ctx_r1._checkIconTemplate)("itemCheckboxIconTemplate", ctx_r1.itemCheckboxIconTemplate || ctx_r1._itemCheckboxIconTemplate)("itemSize", scrollerOptions_r21.itemSize)("focused", ctx_r1.focusedOptionIndex() === ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))("ariaPosInset", ctx_r1.getAriaPosInset(ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21)))("ariaSetSize", ctx_r1.ariaSetSize)("variant", ctx_r1.variant);
881
+ i0.ɵɵproperty("id", ctx_r1.id + "_" + ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))("option", option_r18)("selected", ctx_r1.isSelected(option_r18))("label", ctx_r1.getOptionLabel(option_r18))("disabled", ctx_r1.isOptionDisabled(option_r18))("template", ctx_r1.itemTemplate || ctx_r1._itemTemplate)("checkIconTemplate", ctx_r1.checkIconTemplate || ctx_r1._checkIconTemplate)("itemCheckboxIconTemplate", ctx_r1.itemCheckboxIconTemplate || ctx_r1._itemCheckboxIconTemplate)("itemSize", scrollerOptions_r21.itemSize)("focused", ctx_r1.focusedOptionIndex() === ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))("ariaPosInset", ctx_r1.getAriaPosInset(ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21)))("ariaSetSize", ctx_r1.ariaSetSize)("variant", ctx_r1.variant)("highlightOnSelect", ctx_r1.highlightOnSelect);
882
882
  } }
883
883
  function MultiSelect_ng_template_14_ng_template_8_ng_template_2_Template(rf, ctx) { if (rf & 1) {
884
- i0.ɵɵtemplate(0, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_Template, 4, 9, "ng-container", 20)(1, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_Template, 2, 13, "ng-container", 20);
884
+ i0.ɵɵtemplate(0, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_Template, 4, 9, "ng-container", 20)(1, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_Template, 2, 14, "ng-container", 20);
885
885
  } if (rf & 2) {
886
886
  const option_r18 = ctx.$implicit;
887
887
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1007,11 +1007,7 @@ function MultiSelect_ng_template_14_Template(rf, ctx) { if (rf & 1) {
1007
1007
  i0.ɵɵadvance();
1008
1008
  i0.ɵɵattribute("tabindex", 0)("data-p-hidden-accessible", true)("data-p-hidden-focusable", true);
1009
1009
  } }
1010
- const MULTISELECT_VALUE_ACCESSOR = {
1011
- provide: NG_VALUE_ACCESSOR,
1012
- useExisting: forwardRef(() => MultiSelect),
1013
- multi: true
1014
- };
1010
+ const MULTISELECT_VALUE_ACCESSOR = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiSelect), multi: true };
1015
1011
  class MultiSelectItem extends BaseComponent {
1016
1012
  id;
1017
1013
  option;
@@ -1026,26 +1022,19 @@ class MultiSelectItem extends BaseComponent {
1026
1022
  template;
1027
1023
  checkIconTemplate;
1028
1024
  itemCheckboxIconTemplate;
1025
+ highlightOnSelect;
1029
1026
  onClick = new EventEmitter();
1030
1027
  onMouseEnter = new EventEmitter();
1031
1028
  onOptionClick(event) {
1032
- this.onClick.emit({
1033
- originalEvent: event,
1034
- option: this.option,
1035
- selected: this.selected
1036
- });
1029
+ this.onClick.emit({ originalEvent: event, option: this.option, selected: this.selected });
1037
1030
  event.stopPropagation();
1038
1031
  event.preventDefault();
1039
1032
  }
1040
1033
  onOptionMouseEnter(event) {
1041
- this.onMouseEnter.emit({
1042
- originalEvent: event,
1043
- option: this.option,
1044
- selected: this.selected
1045
- });
1034
+ this.onMouseEnter.emit({ originalEvent: event, option: this.option, selected: this.selected });
1046
1035
  }
1047
1036
  static ɵfac = /*@__PURE__*/ (() => { let ɵMultiSelectItem_BaseFactory; return function MultiSelectItem_Factory(__ngFactoryType__) { return (ɵMultiSelectItem_BaseFactory || (ɵMultiSelectItem_BaseFactory = i0.ɵɵgetInheritedFactory(MultiSelectItem)))(__ngFactoryType__ || MultiSelectItem); }; })();
1048
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MultiSelectItem, selectors: [["p-multiSelectItem"], ["p-multiselect-item"]], inputs: { id: "id", option: "option", selected: [2, "selected", "selected", booleanAttribute], label: "label", disabled: [2, "disabled", "disabled", booleanAttribute], itemSize: [2, "itemSize", "itemSize", numberAttribute], focused: [2, "focused", "focused", booleanAttribute], ariaPosInset: "ariaPosInset", ariaSetSize: "ariaSetSize", variant: "variant", template: "template", checkIconTemplate: "checkIconTemplate", itemCheckboxIconTemplate: "itemCheckboxIconTemplate" }, outputs: { onClick: "onClick", onMouseEnter: "onMouseEnter" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 26, consts: [["icon", ""], ["pRipple", "", "role", "option", 3, "click", "mouseenter", "ngStyle", "ngClass", "id"], [3, "ngModel", "binary", "tabindex", "variant"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function MultiSelectItem_Template(rf, ctx) { if (rf & 1) {
1037
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MultiSelectItem, selectors: [["p-multiSelectItem"], ["p-multiselect-item"]], inputs: { id: "id", option: "option", selected: [2, "selected", "selected", booleanAttribute], label: "label", disabled: [2, "disabled", "disabled", booleanAttribute], itemSize: [2, "itemSize", "itemSize", numberAttribute], focused: [2, "focused", "focused", booleanAttribute], ariaPosInset: "ariaPosInset", ariaSetSize: "ariaSetSize", variant: "variant", template: "template", checkIconTemplate: "checkIconTemplate", itemCheckboxIconTemplate: "itemCheckboxIconTemplate", highlightOnSelect: [2, "highlightOnSelect", "highlightOnSelect", booleanAttribute] }, outputs: { onClick: "onClick", onMouseEnter: "onMouseEnter" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 27, consts: [["icon", ""], ["pRipple", "", "role", "option", 1, "p-multiselect-option", 3, "click", "mouseenter", "ngStyle", "ngClass", "id"], [3, "ngModel", "binary", "tabindex", "variant"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function MultiSelectItem_Template(rf, ctx) { if (rf & 1) {
1049
1038
  i0.ɵɵelementStart(0, "li", 1);
1050
1039
  i0.ɵɵlistener("click", function MultiSelectItem_Template_li_click_0_listener($event) { return ctx.onOptionClick($event); })("mouseenter", function MultiSelectItem_Template_li_mouseenter_0_listener($event) { return ctx.onOptionMouseEnter($event); });
1051
1040
  i0.ɵɵelementStart(1, "p-checkbox", 2);
@@ -1054,7 +1043,7 @@ class MultiSelectItem extends BaseComponent {
1054
1043
  i0.ɵɵtemplate(3, MultiSelectItem_span_3_Template, 2, 1, "span", 3)(4, MultiSelectItem_ng_container_4_Template, 1, 0, "ng-container", 4);
1055
1044
  i0.ɵɵelementEnd();
1056
1045
  } if (rf & 2) {
1057
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(19, _c0, ctx.itemSize + "px"))("ngClass", i0.ɵɵpureFunction2(21, _c1, ctx.disabled, ctx.focused))("id", ctx.id);
1046
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(19, _c0, ctx.itemSize + "px"))("ngClass", i0.ɵɵpureFunction3(21, _c1, ctx.selected && ctx.highlightOnSelect, ctx.disabled, ctx.focused))("id", ctx.id);
1058
1047
  i0.ɵɵattribute("aria-label", ctx.label)("aria-setsize", ctx.ariaSetSize)("aria-posinset", ctx.ariaPosInset)("aria-selected", ctx.selected)("data-p-focused", ctx.focused)("data-p-highlight", ctx.selected)("data-p-disabled", ctx.disabled)("aria-checked", ctx.selected);
1059
1048
  i0.ɵɵadvance();
1060
1049
  i0.ɵɵproperty("ngModel", ctx.selected)("binary", true)("tabindex", -1)("variant", ctx.variant);
@@ -1063,7 +1052,7 @@ class MultiSelectItem extends BaseComponent {
1063
1052
  i0.ɵɵadvance();
1064
1053
  i0.ɵɵproperty("ngIf", !ctx.template);
1065
1054
  i0.ɵɵadvance();
1066
- i0.ɵɵproperty("ngTemplateOutlet", ctx.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(24, _c2, ctx.option));
1055
+ i0.ɵɵproperty("ngTemplateOutlet", ctx.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(25, _c2, ctx.option));
1067
1056
  } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, Checkbox, FormsModule, i2.NgControlStatus, i2.NgModel, Ripple, SharedModule], encapsulation: 2 });
1068
1057
  }
1069
1058
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectItem, [{
@@ -1076,12 +1065,9 @@ class MultiSelectItem extends BaseComponent {
1076
1065
  <li
1077
1066
  pRipple
1078
1067
  role="option"
1068
+ class="p-multiselect-option"
1079
1069
  [ngStyle]="{ height: itemSize + 'px' }"
1080
- [ngClass]="{
1081
- 'p-multiselect-option': true,
1082
- 'p-disabled': disabled,
1083
- 'p-focus': focused
1084
- }"
1070
+ [ngClass]="{ 'p-multiselect-option-selected': selected && highlightOnSelect, 'p-disabled': disabled, 'p-focus': focused }"
1085
1071
  [id]="id"
1086
1072
  [attr.aria-label]="label"
1087
1073
  [attr.aria-setsize]="ariaSetSize"
@@ -1137,6 +1123,9 @@ class MultiSelectItem extends BaseComponent {
1137
1123
  type: Input
1138
1124
  }], itemCheckboxIconTemplate: [{
1139
1125
  type: Input
1126
+ }], highlightOnSelect: [{
1127
+ type: Input,
1128
+ args: [{ transform: booleanAttribute }]
1140
1129
  }], onClick: [{
1141
1130
  type: Output
1142
1131
  }], onMouseEnter: [{
@@ -1589,6 +1578,11 @@ class MultiSelect extends BaseComponent {
1589
1578
  * @group Props
1590
1579
  */
1591
1580
  autoOptionFocus = false;
1581
+ /**
1582
+ * Whether the selected option will be add highlight class.
1583
+ * @group Props
1584
+ */
1585
+ highlightOnSelect = true;
1592
1586
  /**
1593
1587
  * Callback to invoke when value changes.
1594
1588
  * @param {MultiSelectChangeEvent} event - Custom change event.
@@ -1834,7 +1828,7 @@ class MultiSelect extends BaseComponent {
1834
1828
  return isNotEmpty(this.modelValue());
1835
1829
  }
1836
1830
  get isVisibleClearIcon() {
1837
- return this.modelValue() != null && this.modelValue() !== '' && isNotEmpty(this.modelValue()) && this.showClear && !this.disabled && this.filled;
1831
+ return this.modelValue() != null && this.modelValue() !== '' && isNotEmpty(this.modelValue()) && this.showClear && !this.disabled && !this.readonly && this.filled;
1838
1832
  }
1839
1833
  get toggleAllAriaLabel() {
1840
1834
  return this.config.translation.aria ? this.config.translation.aria[this.allSelected() ? 'selectAll' : 'unselectAll'] : undefined;
@@ -1871,10 +1865,7 @@ class MultiSelect extends BaseComponent {
1871
1865
  const groupChildren = this.getOptionGroupChildren(group);
1872
1866
  const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));
1873
1867
  if (filteredItems.length > 0)
1874
- filtered.push({
1875
- ...group,
1876
- [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems]
1877
- });
1868
+ filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });
1878
1869
  });
1879
1870
  return this.flatOptions(filtered);
1880
1871
  }
@@ -1931,10 +1922,7 @@ class MultiSelect extends BaseComponent {
1931
1922
  this.id = this.id || uuid('pn_id_');
1932
1923
  this.autoUpdateModel();
1933
1924
  if (this.filterBy) {
1934
- this.filterOptions = {
1935
- filter: (value) => this.onFilterInputChange(value),
1936
- reset: () => this.resetFilter()
1937
- };
1925
+ this.filterOptions = { filter: (value) => this.onFilterInputChange(value), reset: () => this.resetFilter() };
1938
1926
  }
1939
1927
  }
1940
1928
  maxSelectionLimitReached() {
@@ -2001,11 +1989,7 @@ class MultiSelect extends BaseComponent {
2001
1989
  this.updateModel(value, originalEvent);
2002
1990
  index !== -1 && this.focusedOptionIndex.set(index);
2003
1991
  isFocus && focus(this.focusInputViewChild?.nativeElement);
2004
- this.onChange.emit({
2005
- originalEvent: event,
2006
- value: value,
2007
- itemValue: option
2008
- });
1992
+ this.onChange.emit({ originalEvent: event, value: value, itemValue: option });
2009
1993
  }
2010
1994
  findSelectedOptionIndex() {
2011
1995
  return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;
@@ -2425,10 +2409,7 @@ class MultiSelect extends BaseComponent {
2425
2409
  return;
2426
2410
  }
2427
2411
  if (this.selectAll != null) {
2428
- this.onSelectAllChange.emit({
2429
- originalEvent: event,
2430
- checked: !this.allSelected()
2431
- });
2412
+ this.onSelectAllChange.emit({ originalEvent: event, checked: !this.allSelected() });
2432
2413
  }
2433
2414
  else {
2434
2415
  // pre-selected disabled options should always be selected.
@@ -2436,15 +2417,13 @@ class MultiSelect extends BaseComponent {
2436
2417
  const visibleOptions = this.allSelected()
2437
2418
  ? this.visibleOptions().filter((option) => !this.isValidOption(option) && this.isSelected(option))
2438
2419
  : this.visibleOptions().filter((option) => this.isSelected(option) || this.isValidOption(option));
2439
- const optionValues = [...selectedDisabledOptions, ...visibleOptions].map((option) => this.getOptionValue(option));
2420
+ const selectedOptionsBeforeSearch = this.filter && !this.allSelected() ? this.getAllVisibleAndNonVisibleOptions().filter((option) => this.isSelected(option) && this.isValidOption(option)) : [];
2421
+ const optionValues = [...selectedOptionsBeforeSearch, ...selectedDisabledOptions, ...visibleOptions].map((option) => this.getOptionValue(option));
2440
2422
  const value = [...new Set(optionValues)];
2441
2423
  this.updateModel(value, event);
2442
2424
  // because onToggleAll could have been called during filtering, this additional test needs to be performed before calling onSelectAllChange.emit
2443
2425
  if (!value.length || value.length === this.getAllVisibleAndNonVisibleOptions().length) {
2444
- this.onSelectAllChange.emit({
2445
- originalEvent: event,
2446
- checked: !!value.length
2447
- });
2426
+ this.onSelectAllChange.emit({ originalEvent: event, checked: !!value.length });
2448
2427
  }
2449
2428
  }
2450
2429
  if (this.partialSelected()) {
@@ -2593,15 +2572,8 @@ class MultiSelect extends BaseComponent {
2593
2572
  removeOption(optionValue, event) {
2594
2573
  let value = this.modelValue().filter((val) => !equals(val, optionValue, this.equalityKey()));
2595
2574
  this.updateModel(value, event);
2596
- this.onChange.emit({
2597
- originalEvent: event,
2598
- value: value,
2599
- itemValue: optionValue
2600
- });
2601
- this.onRemove.emit({
2602
- newValue: value,
2603
- removed: optionValue
2604
- });
2575
+ this.onChange.emit({ originalEvent: event, value: value, itemValue: optionValue });
2576
+ this.onRemove.emit({ newValue: value, removed: optionValue });
2605
2577
  event && event.stopPropagation();
2606
2578
  }
2607
2579
  findNextItem(item) {
@@ -2773,7 +2745,7 @@ class MultiSelect extends BaseComponent {
2773
2745
  i0.ɵɵattribute("id", ctx.id);
2774
2746
  i0.ɵɵstyleMap(ctx.style);
2775
2747
  i0.ɵɵclassMap(ctx.hostClasses);
2776
- } }, inputs: { id: "id", ariaLabel: "ariaLabel", style: "style", styleClass: "styleClass", panelStyle: "panelStyle", panelStyleClass: "panelStyleClass", inputId: "inputId", disabled: [2, "disabled", "disabled", booleanAttribute], fluid: [2, "fluid", "fluid", booleanAttribute], readonly: [2, "readonly", "readonly", booleanAttribute], group: [2, "group", "group", booleanAttribute], filter: [2, "filter", "filter", booleanAttribute], filterPlaceHolder: "filterPlaceHolder", filterLocale: "filterLocale", overlayVisible: [2, "overlayVisible", "overlayVisible", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute], variant: "variant", appendTo: "appendTo", dataKey: "dataKey", name: "name", ariaLabelledBy: "ariaLabelledBy", displaySelectedLabel: "displaySelectedLabel", maxSelectedLabels: "maxSelectedLabels", selectionLimit: [2, "selectionLimit", "selectionLimit", numberAttribute], selectedItemsLabel: "selectedItemsLabel", showToggleAll: [2, "showToggleAll", "showToggleAll", booleanAttribute], emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", resetFilterOnHide: [2, "resetFilterOnHide", "resetFilterOnHide", booleanAttribute], dropdownIcon: "dropdownIcon", chipIcon: "chipIcon", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", showHeader: [2, "showHeader", "showHeader", booleanAttribute], filterBy: "filterBy", scrollHeight: "scrollHeight", lazy: [2, "lazy", "lazy", booleanAttribute], virtualScroll: [2, "virtualScroll", "virtualScroll", booleanAttribute], loading: [2, "loading", "loading", booleanAttribute], virtualScrollItemSize: [2, "virtualScrollItemSize", "virtualScrollItemSize", numberAttribute], loadingIcon: "loadingIcon", virtualScrollOptions: "virtualScrollOptions", overlayOptions: "overlayOptions", ariaFilterLabel: "ariaFilterLabel", filterMatchMode: "filterMatchMode", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", autofocusFilter: [2, "autofocusFilter", "autofocusFilter", booleanAttribute], display: "display", autocomplete: "autocomplete", size: "size", showClear: [2, "showClear", "showClear", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", defaultLabel: "defaultLabel", placeholder: "placeholder", options: "options", filterValue: "filterValue", itemSize: "itemSize", selectAll: "selectAll", focusOnHover: [2, "focusOnHover", "focusOnHover", booleanAttribute], filterFields: "filterFields", selectOnFocus: [2, "selectOnFocus", "selectOnFocus", booleanAttribute], autoOptionFocus: [2, "autoOptionFocus", "autoOptionFocus", booleanAttribute] }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onClear: "onClear", onPanelShow: "onPanelShow", onPanelHide: "onPanelHide", onLazyLoad: "onLazyLoad", onRemove: "onRemove", onSelectAllChange: "onSelectAllChange" }, standalone: true, features: [i0.ɵɵProvidersFeature([MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c31, decls: 16, vars: 39, consts: [["focusInput", ""], ["elseBlock", ""], ["overlay", ""], ["content", ""], ["token", ""], ["removeicon", ""], ["firstHiddenFocusableEl", ""], ["buildInItems", ""], ["lastHiddenFocusableEl", ""], ["builtInFilterElement", ""], ["headerCheckbox", ""], ["checkboxicon", ""], ["filterInput", ""], ["scroller", ""], ["loader", ""], ["items", ""], [1, "p-hidden-accessible"], ["role", "combobox", 3, "focus", "blur", "keydown", "pTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "pAutoFocus"], [1, "p-multiselect-label-container", 3, "mouseleave", "pTooltip", "tooltipDisabled", "tooltipPosition", "positionStyle", "tooltipStyleClass"], [3, "ngClass"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "p-multiselect-dropdown"], [4, "ngIf", "ngIfElse"], [3, "visibleChange", "onAnimationStart", "onHide", "visible", "options", "target", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], ["class", "p-multiselect-chip-item", 4, "ngFor", "ngForOf"], [1, "p-multiselect-chip-item"], ["styleClass", "p-multiselect-chip", 3, "onRemove", "label", "removable", "removeIcon"], ["class", "p-multiselect-chip-icon", 3, "click", 4, "ngIf"], [1, "p-multiselect-chip-icon", 3, "click"], ["class", "p-multiselect-clear-icon", 3, "click", 4, "ngIf"], [1, "p-multiselect-clear-icon", 3, "click"], [4, "ngTemplateOutlet"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], ["aria-hidden", "true", 3, "class", 4, "ngIf"], ["aria-hidden", "true", 3, "ngClass"], ["aria-hidden", "true"], ["class", "p-multiselect-dropdown-icon", 4, "ngIf"], ["class", "p-multiselect-dropdown-icon", 3, "ngClass", 4, "ngIf"], [3, "styleClass", 4, "ngIf"], [1, "p-multiselect-dropdown-icon", 3, "ngClass"], [3, "styleClass"], [1, "p-multiselect-dropdown-icon"], [3, "ngClass", "ngStyle"], ["role", "presentation", 1, "p-hidden-accessible", "p-hidden-focusable", 3, "focus"], ["class", "p-multiselect-header", 4, "ngIf"], [1, "p-multiselect-list-container"], [3, "items", "style", "itemSize", "autoSize", "tabindex", "lazy", "options", "onLazyLoad", 4, "ngIf"], [1, "p-multiselect-header"], [3, "ngModel", "binary", "variant", "disabled", "onChange", 4, "ngIf"], ["class", "p-multiselect-filter-container", 4, "ngIf"], [3, "onChange", "ngModel", "binary", "variant", "disabled"], [1, "p-multiselect-filter-container"], ["pInputText", "", "type", "text", "role", "searchbox", 1, "p-multiselect-filter", 3, "input", "keydown", "click", "blur", "variant", "value", "disabled"], ["class", "p-multiselect-filter-icon", 4, "ngIf"], [1, "p-multiselect-filter-icon"], [3, "onLazyLoad", "items", "itemSize", "autoSize", "tabindex", "lazy", "options"], ["role", "listbox", "aria-multiselectable", "true", 1, "p-multiselect-list", 3, "ngClass"], ["ngFor", "", 3, "ngForOf"], ["class", "p-multiselect-empty-message", "role", "option", 3, "ngStyle", 4, "ngIf"], ["role", "option", 1, "p-multiselect-option-group", 3, "ngStyle"], [3, "onClick", "onMouseEnter", "id", "option", "selected", "label", "disabled", "template", "checkIconTemplate", "itemCheckboxIconTemplate", "itemSize", "focused", "ariaPosInset", "ariaSetSize", "variant"], ["role", "option", 1, "p-multiselect-empty-message", 3, "ngStyle"]], template: function MultiSelect_Template(rf, ctx) { if (rf & 1) {
2748
+ } }, inputs: { id: "id", ariaLabel: "ariaLabel", style: "style", styleClass: "styleClass", panelStyle: "panelStyle", panelStyleClass: "panelStyleClass", inputId: "inputId", disabled: [2, "disabled", "disabled", booleanAttribute], fluid: [2, "fluid", "fluid", booleanAttribute], readonly: [2, "readonly", "readonly", booleanAttribute], group: [2, "group", "group", booleanAttribute], filter: [2, "filter", "filter", booleanAttribute], filterPlaceHolder: "filterPlaceHolder", filterLocale: "filterLocale", overlayVisible: [2, "overlayVisible", "overlayVisible", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute], variant: "variant", appendTo: "appendTo", dataKey: "dataKey", name: "name", ariaLabelledBy: "ariaLabelledBy", displaySelectedLabel: "displaySelectedLabel", maxSelectedLabels: "maxSelectedLabels", selectionLimit: [2, "selectionLimit", "selectionLimit", numberAttribute], selectedItemsLabel: "selectedItemsLabel", showToggleAll: [2, "showToggleAll", "showToggleAll", booleanAttribute], emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", resetFilterOnHide: [2, "resetFilterOnHide", "resetFilterOnHide", booleanAttribute], dropdownIcon: "dropdownIcon", chipIcon: "chipIcon", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", showHeader: [2, "showHeader", "showHeader", booleanAttribute], filterBy: "filterBy", scrollHeight: "scrollHeight", lazy: [2, "lazy", "lazy", booleanAttribute], virtualScroll: [2, "virtualScroll", "virtualScroll", booleanAttribute], loading: [2, "loading", "loading", booleanAttribute], virtualScrollItemSize: [2, "virtualScrollItemSize", "virtualScrollItemSize", numberAttribute], loadingIcon: "loadingIcon", virtualScrollOptions: "virtualScrollOptions", overlayOptions: "overlayOptions", ariaFilterLabel: "ariaFilterLabel", filterMatchMode: "filterMatchMode", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", autofocusFilter: [2, "autofocusFilter", "autofocusFilter", booleanAttribute], display: "display", autocomplete: "autocomplete", size: "size", showClear: [2, "showClear", "showClear", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", defaultLabel: "defaultLabel", placeholder: "placeholder", options: "options", filterValue: "filterValue", itemSize: "itemSize", selectAll: "selectAll", focusOnHover: [2, "focusOnHover", "focusOnHover", booleanAttribute], filterFields: "filterFields", selectOnFocus: [2, "selectOnFocus", "selectOnFocus", booleanAttribute], autoOptionFocus: [2, "autoOptionFocus", "autoOptionFocus", booleanAttribute], highlightOnSelect: [2, "highlightOnSelect", "highlightOnSelect", booleanAttribute] }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onClear: "onClear", onPanelShow: "onPanelShow", onPanelHide: "onPanelHide", onLazyLoad: "onLazyLoad", onRemove: "onRemove", onSelectAllChange: "onSelectAllChange" }, standalone: true, features: [i0.ɵɵProvidersFeature([MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c31, decls: 16, vars: 39, consts: [["focusInput", ""], ["elseBlock", ""], ["overlay", ""], ["content", ""], ["token", ""], ["removeicon", ""], ["firstHiddenFocusableEl", ""], ["buildInItems", ""], ["lastHiddenFocusableEl", ""], ["builtInFilterElement", ""], ["headerCheckbox", ""], ["checkboxicon", ""], ["filterInput", ""], ["scroller", ""], ["loader", ""], ["items", ""], [1, "p-hidden-accessible"], ["role", "combobox", 3, "focus", "blur", "keydown", "pTooltip", "tooltipPosition", "positionStyle", "tooltipStyleClass", "pAutoFocus"], [1, "p-multiselect-label-container", 3, "mouseleave", "pTooltip", "tooltipDisabled", "tooltipPosition", "positionStyle", "tooltipStyleClass"], [3, "ngClass"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "p-multiselect-dropdown"], [4, "ngIf", "ngIfElse"], [3, "visibleChange", "onAnimationStart", "onHide", "visible", "options", "target", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], ["class", "p-multiselect-chip-item", 4, "ngFor", "ngForOf"], [1, "p-multiselect-chip-item"], ["styleClass", "p-multiselect-chip", 3, "onRemove", "label", "removable", "removeIcon"], ["class", "p-multiselect-chip-icon", 3, "click", 4, "ngIf"], [1, "p-multiselect-chip-icon", 3, "click"], ["class", "p-multiselect-clear-icon", 3, "click", 4, "ngIf"], [1, "p-multiselect-clear-icon", 3, "click"], [4, "ngTemplateOutlet"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], ["aria-hidden", "true", 3, "class", 4, "ngIf"], ["aria-hidden", "true", 3, "ngClass"], ["aria-hidden", "true"], ["class", "p-multiselect-dropdown-icon", 4, "ngIf"], ["class", "p-multiselect-dropdown-icon", 3, "ngClass", 4, "ngIf"], [3, "styleClass", 4, "ngIf"], [1, "p-multiselect-dropdown-icon", 3, "ngClass"], [3, "styleClass"], [1, "p-multiselect-dropdown-icon"], [3, "ngClass", "ngStyle"], ["role", "presentation", 1, "p-hidden-accessible", "p-hidden-focusable", 3, "focus"], ["class", "p-multiselect-header", 4, "ngIf"], [1, "p-multiselect-list-container"], [3, "items", "style", "itemSize", "autoSize", "tabindex", "lazy", "options", "onLazyLoad", 4, "ngIf"], [1, "p-multiselect-header"], [3, "ngModel", "binary", "variant", "disabled", "onChange", 4, "ngIf"], ["class", "p-multiselect-filter-container", 4, "ngIf"], [3, "onChange", "ngModel", "binary", "variant", "disabled"], [1, "p-multiselect-filter-container"], ["pInputText", "", "type", "text", "role", "searchbox", 1, "p-multiselect-filter", 3, "input", "keydown", "click", "blur", "variant", "value", "disabled"], ["class", "p-multiselect-filter-icon", 4, "ngIf"], [1, "p-multiselect-filter-icon"], [3, "onLazyLoad", "items", "itemSize", "autoSize", "tabindex", "lazy", "options"], ["role", "listbox", "aria-multiselectable", "true", 1, "p-multiselect-list", 3, "ngClass"], ["ngFor", "", 3, "ngForOf"], ["class", "p-multiselect-empty-message", "role", "option", 3, "ngStyle", 4, "ngIf"], ["role", "option", 1, "p-multiselect-option-group", 3, "ngStyle"], [3, "onClick", "onMouseEnter", "id", "option", "selected", "label", "disabled", "template", "checkIconTemplate", "itemCheckboxIconTemplate", "itemSize", "focused", "ariaPosInset", "ariaSetSize", "variant", "highlightOnSelect"], ["role", "option", 1, "p-multiselect-empty-message", 3, "ngStyle"]], template: function MultiSelect_Template(rf, ctx) { if (rf & 1) {
2777
2749
  const _r1 = i0.ɵɵgetCurrentView();
2778
2750
  i0.ɵɵprojectionDef(_c30);
2779
2751
  i0.ɵɵelementStart(0, "div", 16)(1, "input", 17, 0);
@@ -2862,10 +2834,10 @@ class MultiSelect extends BaseComponent {
2862
2834
  <ng-container *ngIf="display === 'comma'">{{ label() || 'empty' }}</ng-container>
2863
2835
  <ng-container *ngIf="display === 'chip'">
2864
2836
  <div #token *ngFor="let item of chipSelectedItems(); let i = index" class="p-multiselect-chip-item">
2865
- <p-chip styleClass="p-multiselect-chip" [label]="getLabelByValue(item)" [removable]="true" (onRemove)="removeOption(item, $event)" [removeIcon]="chipIcon">
2837
+ <p-chip styleClass="p-multiselect-chip" [label]="getLabelByValue(item)" [removable]="!disabled && !readonly" (onRemove)="removeOption(item, $event)" [removeIcon]="chipIcon">
2866
2838
  <ng-container *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate">
2867
2839
  <ng-template #removeicon>
2868
- <ng-container *ngIf="!disabled">
2840
+ <ng-container *ngIf="!disabled && !readonly">
2869
2841
  <span
2870
2842
  class="p-multiselect-chip-icon"
2871
2843
  *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate"
@@ -2947,16 +2919,7 @@ class MultiSelect extends BaseComponent {
2947
2919
  <p-checkbox [ngModel]="allSelected()" [binary]="true" (onChange)="onToggleAll($event)" *ngIf="showToggleAll && !selectionLimit" [variant]="variant" [disabled]="disabled" #headerCheckbox>
2948
2920
  <ng-template #checkboxicon let-klass="class">
2949
2921
  <CheckIcon *ngIf="!headerCheckboxIconTemplate && !_headerCheckboxIconTemplate && allSelected()" [styleClass]="klass" [attr.data-pc-section]="'icon'" />
2950
- <ng-template
2951
- *ngTemplateOutlet="
2952
- headerCheckboxIconTemplate || _headerCheckboxIconTemplate;
2953
- context: {
2954
- checked: allSelected(),
2955
- partialSelected: partialSelected(),
2956
- class: klass
2957
- }
2958
- "
2959
- ></ng-template>
2922
+ <ng-template *ngTemplateOutlet="headerCheckboxIconTemplate || _headerCheckboxIconTemplate; context: { checked: allSelected(), partialSelected: partialSelected(), class: klass }"></ng-template>
2960
2923
  </ng-template>
2961
2924
  </p-checkbox>
2962
2925
 
@@ -3041,6 +3004,7 @@ class MultiSelect extends BaseComponent {
3041
3004
  [ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
3042
3005
  [ariaSetSize]="ariaSetSize"
3043
3006
  [variant]="variant"
3007
+ [highlightOnSelect]="highlightOnSelect"
3044
3008
  (onClick)="onOptionSelect($event, false, getOptionIndex(i, scrollerOptions))"
3045
3009
  (onMouseEnter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
3046
3010
  ></p-multiselect-item>
@@ -3085,11 +3049,7 @@ class MultiSelect extends BaseComponent {
3085
3049
  providers: [MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle],
3086
3050
  changeDetection: ChangeDetectionStrategy.OnPush,
3087
3051
  encapsulation: ViewEncapsulation.None,
3088
- host: {
3089
- '[attr.id]': 'id',
3090
- '[style]': 'style',
3091
- '(click)': 'onContainerClick($event)'
3092
- }
3052
+ host: { '[attr.id]': 'id', '[style]': 'style', '(click)': 'onContainerClick($event)' }
3093
3053
  }]
3094
3054
  }], () => [{ type: i0.NgZone }, { type: i3.FilterService }, { type: i3.OverlayService }], { id: [{
3095
3055
  type: Input
@@ -3256,6 +3216,9 @@ class MultiSelect extends BaseComponent {
3256
3216
  }], autoOptionFocus: [{
3257
3217
  type: Input,
3258
3218
  args: [{ transform: booleanAttribute }]
3219
+ }], highlightOnSelect: [{
3220
+ type: Input,
3221
+ args: [{ transform: booleanAttribute }]
3259
3222
  }], onChange: [{
3260
3223
  type: Output
3261
3224
  }], onFilter: [{
@@ -3377,10 +3340,7 @@ class MultiSelectModule {
3377
3340
  }
3378
3341
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectModule, [{
3379
3342
  type: NgModule,
3380
- args: [{
3381
- imports: [MultiSelect, SharedModule],
3382
- exports: [MultiSelect, SharedModule]
3383
- }]
3343
+ args: [{ imports: [MultiSelect, SharedModule], exports: [MultiSelect, SharedModule] }]
3384
3344
  }], null, null); })();
3385
3345
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MultiSelectModule, { imports: [MultiSelect, SharedModule], exports: [MultiSelect, SharedModule] }); })();
3386
3346