primeng 19.1.4 → 19.1.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 (221) hide show
  1. package/api/licensemanager.d.ts +4 -0
  2. package/api/public_api.d.ts +1 -0
  3. package/api/translation.d.ts +1 -0
  4. package/confirmdialog/confirmdialog.d.ts +1 -0
  5. package/dialog/dialog.d.ts +1 -0
  6. package/dynamicdialog/dynamicdialog-config.d.ts +1 -1
  7. package/editor/editor.d.ts +25 -4
  8. package/editor/editor.interface.d.ts +67 -9
  9. package/fesm2022/primeng-accordion.mjs +22 -22
  10. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  11. package/fesm2022/primeng-api.mjs +146 -32
  12. package/fesm2022/primeng-api.mjs.map +1 -1
  13. package/fesm2022/primeng-autocomplete.mjs +12 -15
  14. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  15. package/fesm2022/primeng-autofocus.mjs +7 -7
  16. package/fesm2022/primeng-avatar.mjs +10 -10
  17. package/fesm2022/primeng-avatargroup.mjs +10 -10
  18. package/fesm2022/primeng-badge.mjs +13 -13
  19. package/fesm2022/primeng-base.mjs +3 -3
  20. package/fesm2022/primeng-basecomponent.mjs +8 -6
  21. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  22. package/fesm2022/primeng-blockui.mjs +10 -10
  23. package/fesm2022/primeng-breadcrumb.mjs +10 -10
  24. package/fesm2022/primeng-button.mjs +19 -19
  25. package/fesm2022/primeng-buttongroup.mjs +10 -10
  26. package/fesm2022/primeng-calendar.mjs +10 -10
  27. package/fesm2022/primeng-card.mjs +10 -10
  28. package/fesm2022/primeng-carousel.mjs +11 -10
  29. package/fesm2022/primeng-carousel.mjs.map +1 -1
  30. package/fesm2022/primeng-cascadeselect.mjs +13 -13
  31. package/fesm2022/primeng-chart.mjs +12 -12
  32. package/fesm2022/primeng-chart.mjs.map +1 -1
  33. package/fesm2022/primeng-checkbox.mjs +10 -10
  34. package/fesm2022/primeng-chip.mjs +10 -10
  35. package/fesm2022/primeng-chips.mjs +10 -10
  36. package/fesm2022/primeng-colorpicker.mjs +10 -10
  37. package/fesm2022/primeng-config.mjs +8 -7
  38. package/fesm2022/primeng-config.mjs.map +1 -1
  39. package/fesm2022/primeng-confirmdialog.mjs +53 -12
  40. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  41. package/fesm2022/primeng-confirmpopup.mjs +10 -10
  42. package/fesm2022/primeng-contextmenu.mjs +15 -15
  43. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  44. package/fesm2022/primeng-dataview.mjs +10 -10
  45. package/fesm2022/primeng-datepicker.mjs +20 -13
  46. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  47. package/fesm2022/primeng-defer.mjs +7 -7
  48. package/fesm2022/primeng-dialog.mjs +35 -15
  49. package/fesm2022/primeng-dialog.mjs.map +1 -1
  50. package/fesm2022/primeng-divider.mjs +10 -10
  51. package/fesm2022/primeng-dock.mjs +11 -11
  52. package/fesm2022/primeng-dock.mjs.map +1 -1
  53. package/fesm2022/primeng-dragdrop.mjs +10 -10
  54. package/fesm2022/primeng-drawer.mjs +10 -10
  55. package/fesm2022/primeng-dropdown.mjs +13 -13
  56. package/fesm2022/primeng-dynamicdialog.mjs +20 -19
  57. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  58. package/fesm2022/primeng-editor.mjs +68 -10
  59. package/fesm2022/primeng-editor.mjs.map +1 -1
  60. package/fesm2022/primeng-fieldset.mjs +10 -10
  61. package/fesm2022/primeng-fileupload.mjs +10 -10
  62. package/fesm2022/primeng-floatlabel.mjs +10 -10
  63. package/fesm2022/primeng-fluid.mjs +10 -10
  64. package/fesm2022/primeng-focustrap.mjs +7 -7
  65. package/fesm2022/primeng-galleria.mjs +23 -22
  66. package/fesm2022/primeng-galleria.mjs.map +1 -1
  67. package/fesm2022/primeng-iconfield.mjs +10 -10
  68. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  69. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  70. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  71. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  72. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  73. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  74. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  75. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  76. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  77. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  78. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  79. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  80. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  81. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  82. package/fesm2022/primeng-icons-ban.mjs +3 -3
  83. package/fesm2022/primeng-icons-bars.mjs +3 -3
  84. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  85. package/fesm2022/primeng-icons-blank.mjs +3 -3
  86. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  87. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  88. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  89. package/fesm2022/primeng-icons-check.mjs +3 -3
  90. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  91. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  92. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  93. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  94. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  95. package/fesm2022/primeng-icons-eye.mjs +3 -3
  96. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  97. package/fesm2022/primeng-icons-filter.mjs +3 -3
  98. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  99. package/fesm2022/primeng-icons-home.mjs +3 -3
  100. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  101. package/fesm2022/primeng-icons-minus.mjs +3 -3
  102. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  103. package/fesm2022/primeng-icons-plus.mjs +3 -3
  104. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  105. package/fesm2022/primeng-icons-search.mjs +3 -3
  106. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  107. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  108. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  109. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  110. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  111. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  112. package/fesm2022/primeng-icons-star.mjs +3 -3
  113. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  114. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  115. package/fesm2022/primeng-icons-times.mjs +3 -3
  116. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  117. package/fesm2022/primeng-icons-trash.mjs +3 -3
  118. package/fesm2022/primeng-icons-undo.mjs +3 -3
  119. package/fesm2022/primeng-icons-upload.mjs +3 -3
  120. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  121. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  122. package/fesm2022/primeng-iftalabel.mjs +10 -10
  123. package/fesm2022/primeng-image.mjs +10 -10
  124. package/fesm2022/primeng-imagecompare.mjs +10 -10
  125. package/fesm2022/primeng-inplace.mjs +16 -16
  126. package/fesm2022/primeng-inputgroup.mjs +10 -10
  127. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  128. package/fesm2022/primeng-inputicon.mjs +10 -10
  129. package/fesm2022/primeng-inputmask.mjs +10 -10
  130. package/fesm2022/primeng-inputnumber.mjs +10 -10
  131. package/fesm2022/primeng-inputotp.mjs +10 -10
  132. package/fesm2022/primeng-inputswitch.mjs +10 -10
  133. package/fesm2022/primeng-inputtext.mjs +10 -10
  134. package/fesm2022/primeng-inputtextarea.mjs +10 -10
  135. package/fesm2022/primeng-keyfilter.mjs +7 -7
  136. package/fesm2022/primeng-knob.mjs +10 -10
  137. package/fesm2022/primeng-listbox.mjs +107 -25
  138. package/fesm2022/primeng-listbox.mjs.map +1 -1
  139. package/fesm2022/primeng-megamenu.mjs +14 -14
  140. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  141. package/fesm2022/primeng-menu.mjs +17 -17
  142. package/fesm2022/primeng-menu.mjs.map +1 -1
  143. package/fesm2022/primeng-menubar.mjs +17 -17
  144. package/fesm2022/primeng-menubar.mjs.map +1 -1
  145. package/fesm2022/primeng-message.mjs +10 -10
  146. package/fesm2022/primeng-message.mjs.map +1 -1
  147. package/fesm2022/primeng-messages.mjs +10 -10
  148. package/fesm2022/primeng-metergroup.mjs +13 -13
  149. package/fesm2022/primeng-multiselect.mjs +18 -16
  150. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  151. package/fesm2022/primeng-orderlist.mjs +12 -11
  152. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  153. package/fesm2022/primeng-organizationchart.mjs +13 -13
  154. package/fesm2022/primeng-overlay.mjs +10 -10
  155. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  156. package/fesm2022/primeng-overlaypanel.mjs +10 -10
  157. package/fesm2022/primeng-paginator.mjs +10 -10
  158. package/fesm2022/primeng-panel.mjs +10 -10
  159. package/fesm2022/primeng-panelmenu.mjs +16 -16
  160. package/fesm2022/primeng-password.mjs +16 -16
  161. package/fesm2022/primeng-picklist.mjs +112 -227
  162. package/fesm2022/primeng-picklist.mjs.map +1 -1
  163. package/fesm2022/primeng-popover.mjs +10 -10
  164. package/fesm2022/primeng-progressbar.mjs +12 -12
  165. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  166. package/fesm2022/primeng-progressspinner.mjs +10 -10
  167. package/fesm2022/primeng-radiobutton.mjs +13 -15
  168. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  169. package/fesm2022/primeng-rating.mjs +10 -10
  170. package/fesm2022/primeng-ripple.mjs +10 -10
  171. package/fesm2022/primeng-scroller.mjs +10 -10
  172. package/fesm2022/primeng-scrollpanel.mjs +10 -10
  173. package/fesm2022/primeng-scrolltop.mjs +10 -10
  174. package/fesm2022/primeng-select.mjs +41 -27
  175. package/fesm2022/primeng-select.mjs.map +1 -1
  176. package/fesm2022/primeng-selectbutton.mjs +10 -10
  177. package/fesm2022/primeng-sidebar.mjs +10 -10
  178. package/fesm2022/primeng-skeleton.mjs +10 -10
  179. package/fesm2022/primeng-slider.mjs +10 -10
  180. package/fesm2022/primeng-speeddial.mjs +10 -10
  181. package/fesm2022/primeng-splitbutton.mjs +10 -10
  182. package/fesm2022/primeng-splitter.mjs +13 -13
  183. package/fesm2022/primeng-stepper.mjs +28 -28
  184. package/fesm2022/primeng-steps.mjs +10 -10
  185. package/fesm2022/primeng-styleclass.mjs +7 -7
  186. package/fesm2022/primeng-table.mjs +98 -96
  187. package/fesm2022/primeng-table.mjs.map +1 -1
  188. package/fesm2022/primeng-tabmenu.mjs +10 -10
  189. package/fesm2022/primeng-tabs.mjs +68 -33
  190. package/fesm2022/primeng-tabs.mjs.map +1 -1
  191. package/fesm2022/primeng-tabview.mjs +13 -13
  192. package/fesm2022/primeng-tag.mjs +10 -10
  193. package/fesm2022/primeng-tag.mjs.map +1 -1
  194. package/fesm2022/primeng-terminal.mjs +20 -24
  195. package/fesm2022/primeng-terminal.mjs.map +1 -1
  196. package/fesm2022/primeng-textarea.mjs +10 -10
  197. package/fesm2022/primeng-tieredmenu.mjs +14 -14
  198. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  199. package/fesm2022/primeng-timeline.mjs +10 -10
  200. package/fesm2022/primeng-toast.mjs +14 -13
  201. package/fesm2022/primeng-toast.mjs.map +1 -1
  202. package/fesm2022/primeng-togglebutton.mjs +10 -10
  203. package/fesm2022/primeng-toggleswitch.mjs +10 -10
  204. package/fesm2022/primeng-toolbar.mjs +10 -10
  205. package/fesm2022/primeng-tooltip.mjs +10 -10
  206. package/fesm2022/primeng-tree.mjs +15 -15
  207. package/fesm2022/primeng-tree.mjs.map +1 -1
  208. package/fesm2022/primeng-treeselect.mjs +10 -10
  209. package/fesm2022/primeng-treetable.mjs +66 -66
  210. package/fesm2022/primeng-treetable.mjs.map +1 -1
  211. package/fesm2022/primeng-usestyle.mjs +5 -4
  212. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  213. package/listbox/listbox.d.ts +14 -1
  214. package/message/message.d.ts +1 -1
  215. package/multiselect/multiselect.d.ts +1 -1
  216. package/package.json +159 -159
  217. package/picklist/picklist.d.ts +4 -22
  218. package/tabs/tabpanel.d.ts +18 -2
  219. package/tabs/tabs.d.ts +1 -1
  220. package/tag/tag.d.ts +1 -1
  221. package/terminal/terminal.d.ts +2 -3
@@ -1,12 +1,12 @@
1
1
  import * as i2 from '@angular/cdk/drag-drop';
2
- import { transferArrayItem, moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
2
+ import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
3
3
  import * as i1 from '@angular/common';
4
4
  import { isPlatformBrowser, CommonModule } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
6
  import { Injectable, EventEmitter, inject, booleanAttribute, numberAttribute, ContentChildren, ContentChild, ViewChild, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
7
7
  import * as i3 from '@angular/forms';
8
8
  import { FormsModule } from '@angular/forms';
9
- import { uuid, find, scrollInView, findIndexInList, findSingle, setAttribute, isEmpty } from '@primeuix/utils';
9
+ import { uuid, findIndexInList, find, setAttribute, isEmpty } from '@primeuix/utils';
10
10
  import { FilterService, SharedModule, PrimeTemplate } from 'primeng/api';
11
11
  import { BaseComponent } from 'primeng/basecomponent';
12
12
  import { ButtonDirective } from 'primeng/button';
@@ -48,10 +48,10 @@ class PickListStyle extends BaseStyle {
48
48
  name = 'picklist';
49
49
  theme = theme;
50
50
  classes = classes;
51
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickListStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
52
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickListStyle });
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickListStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
52
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickListStyle });
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickListStyle, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickListStyle, decorators: [{
55
55
  type: Injectable
56
56
  }] });
57
57
  /**
@@ -490,9 +490,6 @@ class PickList extends BaseComponent {
490
490
  get idTarget() {
491
491
  return this.id + '_target';
492
492
  }
493
- get focusedOptionId() {
494
- return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
495
- }
496
493
  _breakpoint = '960px';
497
494
  visibleOptionsSource;
498
495
  visibleOptionsTarget;
@@ -514,12 +511,6 @@ class PickList extends BaseComponent {
514
511
  window;
515
512
  media;
516
513
  viewChanged;
517
- focusedOptionIndex = -1;
518
- focusedOption;
519
- focused = {
520
- sourceList: false,
521
- targetList: false
522
- };
523
514
  _componentStyle = inject(PickListStyle);
524
515
  mediaChangeListener;
525
516
  filterService = inject(FilterService);
@@ -724,58 +715,10 @@ class PickList extends BaseComponent {
724
715
  }
725
716
  });
726
717
  }
727
- ngAfterViewChecked() {
728
- if (this.movedUp || this.movedDown) {
729
- let listItems = find(this.reorderedListElement?.el.nativeElement, 'li.p-listbox-option-selected');
730
- let listItem;
731
- if (listItems.length > 0) {
732
- if (this.movedUp)
733
- listItem = listItems[0];
734
- else
735
- listItem = listItems[listItems.length - 1];
736
- scrollInView(this.reorderedListElement?.el.nativeElement, listItem);
737
- }
738
- this.movedUp = false;
739
- this.movedDown = false;
740
- this.reorderedListElement = null;
741
- }
742
- }
743
- onItemClick(event, item, selectedItems, listType, callback, itemId) {
744
- if (this.disabled) {
745
- return;
746
- }
747
- let index = this.findIndexInList(item, selectedItems);
748
- if (itemId)
749
- this.focusedOptionIndex = itemId;
750
- let selected = index != -1;
751
- let metaSelection = this.itemTouched ? false : this.metaKeySelection;
752
- if (metaSelection) {
753
- let metaKey = event.metaKey || event.ctrlKey || event.shiftKey;
754
- if (selected && metaKey) {
755
- selectedItems = selectedItems.filter((_, i) => i !== index);
756
- }
757
- else {
758
- if (!metaKey) {
759
- selectedItems = [];
760
- }
761
- selectedItems.push(item);
762
- }
763
- }
764
- else {
765
- if (selected) {
766
- selectedItems = selectedItems.filter((_, i) => i !== index); // Creating a new array without the selected item
767
- }
768
- else {
769
- selectedItems.push(item);
770
- }
771
- }
772
- this.setSelectionList(listType, selectedItems);
773
- callback.emit({ originalEvent: event, items: selectedItems });
774
- this.itemTouched = false;
775
- }
776
- onOptionMouseDown(index, listType) {
777
- this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = true;
778
- this.focusedOptionIndex = index;
718
+ onChangeSelection(e, listType) {
719
+ this.setSelectionList(listType, e.value);
720
+ const callback = listType === this.SOURCE_LIST ? this.onSourceSelect : this.onTargetSelect;
721
+ callback.emit({ originalEvent: e.originalEvent, items: e.value });
779
722
  }
780
723
  onSourceItemDblClick() {
781
724
  if (this.disabled) {
@@ -1059,20 +1002,50 @@ class PickList extends BaseComponent {
1059
1002
  let dropIndexes = this.getDropIndexes(event.previousIndex, event.currentIndex, listType, isTransfer, event.item.data);
1060
1003
  if (listType === this.SOURCE_LIST) {
1061
1004
  if (isTransfer) {
1062
- transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
1063
- let selectedItemIndex = findIndexInList(event.item.data, this.selectedItemsTarget);
1064
- if (selectedItemIndex != -1) {
1065
- this.selectedItemsTarget.splice(selectedItemIndex, 1);
1066
- if (this.keepSelection) {
1067
- this.selectedItemsTarget.push(event.item.data);
1005
+ // Moving from target to source
1006
+ let itemsToMove = [];
1007
+ // Check if dragged item is in selected items
1008
+ if (this.selectedItemsTarget && this.selectedItemsTarget.length > 0 && findIndexInList(event.item.data, this.selectedItemsTarget) !== -1) {
1009
+ // Move all selected items
1010
+ itemsToMove = [...this.selectedItemsTarget];
1011
+ }
1012
+ else {
1013
+ // Move only the dragged item
1014
+ itemsToMove = [event.item.data];
1015
+ }
1016
+ // Sort items by their index in target (to maintain order)
1017
+ const sortedItems = this.sortByIndexInList(itemsToMove, this.target || []);
1018
+ // Remove all items from target
1019
+ for (let item of sortedItems) {
1020
+ const itemIndex = findIndexInList(item, this.target || []);
1021
+ if (itemIndex !== -1) {
1022
+ this.target?.splice(itemIndex, 1);
1023
+ }
1024
+ }
1025
+ // Add all items to source at the drop position
1026
+ for (let i = 0; i < sortedItems.length; i++) {
1027
+ this.source?.splice(dropIndexes.currentIndex + i, 0, sortedItems[i]);
1028
+ }
1029
+ // Clear target selection
1030
+ this.selectedItemsTarget = [];
1031
+ if (this.keepSelection) {
1032
+ this.selectedItemsSource = [...this.selectedItemsSource, ...itemsToMove];
1033
+ }
1034
+ if (this.visibleOptionsTarget) {
1035
+ // Update visible options
1036
+ for (let item of itemsToMove) {
1037
+ const visibleIndex = findIndexInList(item, this.visibleOptionsTarget);
1038
+ if (visibleIndex !== -1) {
1039
+ this.visibleOptionsTarget.splice(visibleIndex, 1);
1040
+ }
1068
1041
  }
1069
1042
  }
1070
- if (this.visibleOptionsTarget)
1071
- this.visibleOptionsTarget.splice(event.previousIndex, 1);
1072
- this.onMoveToSource.emit({ items: [event.item.data] });
1043
+ this.onMoveToSource.emit({ items: itemsToMove });
1073
1044
  }
1074
1045
  else {
1075
- moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
1046
+ if (this.source) {
1047
+ moveItemInArray(this.source, dropIndexes.previousIndex, dropIndexes.currentIndex);
1048
+ }
1076
1049
  this.onSourceReorder.emit({ items: [event.item.data] });
1077
1050
  }
1078
1051
  if (this.filterValueSource) {
@@ -1081,26 +1054,62 @@ class PickList extends BaseComponent {
1081
1054
  }
1082
1055
  else {
1083
1056
  if (isTransfer) {
1084
- transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
1085
- let selectedItemIndex = findIndexInList(event.item.data, this.selectedItemsSource);
1086
- if (selectedItemIndex != -1) {
1087
- this.selectedItemsSource.splice(selectedItemIndex, 1);
1088
- if (this.keepSelection) {
1089
- this.selectedItemsTarget.push(event.item.data);
1057
+ // Moving from source to target
1058
+ let itemsToMove = [];
1059
+ // Check if dragged item is in selected items
1060
+ if (this.selectedItemsSource && this.selectedItemsSource.length > 0 && findIndexInList(event.item.data, this.selectedItemsSource) !== -1) {
1061
+ // Move all selected items
1062
+ itemsToMove = [...this.selectedItemsSource];
1063
+ }
1064
+ else {
1065
+ // Move only the dragged item
1066
+ itemsToMove = [event.item.data];
1067
+ }
1068
+ // Sort items by their index in source (to maintain order)
1069
+ const sortedItems = this.sortByIndexInList(itemsToMove, this.source || []);
1070
+ // Remove all items from source
1071
+ for (let item of sortedItems) {
1072
+ const itemIndex = findIndexInList(item, this.source || []);
1073
+ if (itemIndex !== -1) {
1074
+ this.source?.splice(itemIndex, 1);
1075
+ }
1076
+ }
1077
+ // Add all items to target at the drop position
1078
+ for (let i = 0; i < sortedItems.length; i++) {
1079
+ this.target?.splice(dropIndexes.currentIndex + i, 0, sortedItems[i]);
1080
+ }
1081
+ // Clear source selection
1082
+ this.selectedItemsSource = [];
1083
+ if (this.keepSelection) {
1084
+ this.selectedItemsTarget = [...this.selectedItemsTarget, ...itemsToMove];
1085
+ }
1086
+ if (this.visibleOptionsSource) {
1087
+ // Update visible options
1088
+ for (let item of itemsToMove) {
1089
+ const visibleIndex = findIndexInList(item, this.visibleOptionsSource);
1090
+ if (visibleIndex !== -1) {
1091
+ this.visibleOptionsSource.splice(visibleIndex, 1);
1092
+ }
1090
1093
  }
1091
1094
  }
1092
- if (this.visibleOptionsSource)
1093
- this.visibleOptionsSource.splice(event.previousIndex, 1);
1094
- this.onMoveToTarget.emit({ items: [event.item.data] });
1095
+ this.onMoveToTarget.emit({ items: itemsToMove });
1095
1096
  }
1096
1097
  else {
1097
- moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
1098
+ if (this.target) {
1099
+ moveItemInArray(this.target, dropIndexes.previousIndex, dropIndexes.currentIndex);
1100
+ }
1098
1101
  this.onTargetReorder.emit({ items: [event.item.data] });
1099
1102
  }
1100
1103
  if (this.filterValueTarget) {
1101
1104
  this.filter(this.target, this.TARGET_LIST);
1102
1105
  }
1103
1106
  }
1107
+ // Only trigger change detection for transfers, not reordering
1108
+ // Reordering modifies arrays in-place and triggerChangeDetection() would override changes
1109
+ if (isTransfer) {
1110
+ this.triggerChangeDetection();
1111
+ }
1112
+ this.cd.markForCheck();
1104
1113
  }
1105
1114
  onListFocus(event, listType) {
1106
1115
  this.onFocus.emit(event);
@@ -1133,135 +1142,6 @@ class PickList extends BaseComponent {
1133
1142
  this.selectedItemsTarget = selectedItems;
1134
1143
  }
1135
1144
  }
1136
- findNextOptionIndex(index, listType) {
1137
- const items = this.getListItems(listType);
1138
- const matchedOptionIndex = [...items].findIndex((link) => link.id === index);
1139
- return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;
1140
- }
1141
- findPrevOptionIndex(index, listType) {
1142
- const items = this.getListItems(listType);
1143
- const matchedOptionIndex = [...items].findIndex((link) => link.id === index);
1144
- return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;
1145
- }
1146
- onItemKeyDown(event, selectedItems, callback, listType) {
1147
- switch (event.code) {
1148
- case 'ArrowDown':
1149
- this.onArrowDownKey(event, selectedItems, callback, listType);
1150
- break;
1151
- case 'ArrowUp':
1152
- this.onArrowUpKey(event, selectedItems, callback, listType);
1153
- break;
1154
- case 'Home':
1155
- this.onHomeKey(event, selectedItems, callback, listType);
1156
- break;
1157
- case 'End':
1158
- this.onEndKey(event, selectedItems, callback, listType);
1159
- break;
1160
- case 'Enter':
1161
- this.onEnterKey(event, selectedItems, callback, listType);
1162
- break;
1163
- case 'Space':
1164
- this.onSpaceKey(event, selectedItems, callback, listType);
1165
- break;
1166
- case 'KeyA':
1167
- if (event.ctrlKey) {
1168
- this.setSelectionList(listType, this.getVisibleList(listType));
1169
- callback.emit({ items: selectedItems });
1170
- event.preventDefault();
1171
- }
1172
- default:
1173
- break;
1174
- }
1175
- }
1176
- getFocusedOption(index, listType) {
1177
- if (index === -1)
1178
- return null;
1179
- if (listType === this.SOURCE_LIST) {
1180
- return this.visibleOptionsSource && this.visibleOptionsSource.length ? this.visibleOptionsSource[index] : this.source && this.source.length ? this.source[index] : null;
1181
- }
1182
- return this.visibleOptionsTarget && this.visibleOptionsTarget.length ? this.visibleOptionsTarget[index] : this.target && this.target.length ? this.target[index] : null;
1183
- }
1184
- changeFocusedOptionIndex(index, listType) {
1185
- const items = this.getListItems(listType);
1186
- if (items?.length > 0) {
1187
- let order = index >= items.length ? items.length - 1 : index < 0 ? 0 : index;
1188
- this.focusedOptionIndex = items[order].getAttribute('id');
1189
- this.focusedOption = this.getFocusedOption(order, listType);
1190
- this.scrollInView(items[order].getAttribute('id'), listType);
1191
- }
1192
- }
1193
- scrollInView(id, listType) {
1194
- const element = findSingle(this.getListElement(listType), `li[id="${id}"]`);
1195
- if (element) {
1196
- element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });
1197
- }
1198
- }
1199
- onArrowDownKey(event, selectedItems, callback, listType) {
1200
- const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex, listType);
1201
- this.changeFocusedOptionIndex(optionIndex, listType);
1202
- if (event.shiftKey) {
1203
- this.onEnterKey(event, selectedItems, callback, listType);
1204
- }
1205
- event.preventDefault();
1206
- }
1207
- onArrowUpKey(event, selectedItems, callback, listType) {
1208
- const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex, listType);
1209
- this.changeFocusedOptionIndex(optionIndex, listType);
1210
- if (event.shiftKey) {
1211
- this.onEnterKey(event, selectedItems, callback, listType);
1212
- }
1213
- event.preventDefault();
1214
- }
1215
- onEnterKey(event, selectedItems, callback, listType) {
1216
- this.onItemClick(event, this.focusedOption, selectedItems, listType, callback);
1217
- event.preventDefault();
1218
- }
1219
- onSpaceKey(event, selectedItems, callback, listType) {
1220
- if (event.target.tagName === 'INPUT')
1221
- return;
1222
- event.preventDefault();
1223
- if (event.shiftKey && selectedItems && selectedItems.length > 0) {
1224
- let visibleList = this.getVisibleList(listType);
1225
- let lastSelectedIndex = this.getLatestSelectedVisibleOptionIndex(visibleList, selectedItems);
1226
- if (lastSelectedIndex !== -1) {
1227
- let focusedIndex = findIndexInList(this.focusedOption, visibleList);
1228
- selectedItems = [...visibleList.slice(Math.min(lastSelectedIndex, focusedIndex), Math.max(lastSelectedIndex, focusedIndex) + 1)];
1229
- this.setSelectionList(listType, selectedItems);
1230
- callback.emit({ items: selectedItems });
1231
- return;
1232
- }
1233
- }
1234
- this.onEnterKey(event, selectedItems, callback, listType);
1235
- }
1236
- onHomeKey(event, selectedItems, callback, listType) {
1237
- if (event.ctrlKey && event.shiftKey) {
1238
- let visibleList = this.getVisibleList(listType);
1239
- let focusedIndex = findIndexInList(this.focusedOption, visibleList);
1240
- selectedItems = [...visibleList.slice(0, focusedIndex + 1)];
1241
- this.setSelectionList(listType, selectedItems);
1242
- callback.emit({ items: selectedItems });
1243
- }
1244
- else {
1245
- this.changeFocusedOptionIndex(0, listType);
1246
- }
1247
- event.preventDefault();
1248
- }
1249
- onEndKey(event, selectedItems, callback, listType) {
1250
- let visibleList = this.getVisibleList(listType);
1251
- let lastIndex = visibleList && visibleList.length > 0 ? visibleList.length - 1 : null;
1252
- if (lastIndex === null)
1253
- return;
1254
- if (event.ctrlKey && event.shiftKey) {
1255
- let focusedIndex = findIndexInList(this.focusedOption, visibleList);
1256
- selectedItems = [...visibleList.slice(focusedIndex, lastIndex)];
1257
- this.setSelectionList(listType, selectedItems);
1258
- callback.emit({ items: selectedItems });
1259
- }
1260
- else {
1261
- this.changeFocusedOptionIndex(lastIndex, listType);
1262
- }
1263
- event.preventDefault();
1264
- }
1265
1145
  getDropIndexes(fromIndex, toIndex, droppedList, isTransfer, data) {
1266
1146
  let previousIndex, currentIndex;
1267
1147
  if (droppedList === this.SOURCE_LIST) {
@@ -1327,6 +1207,7 @@ class PickList extends BaseComponent {
1327
1207
  this.renderer.setAttribute(this.el.nativeElement.children[0], this.id, '');
1328
1208
  this.styleElement = this.renderer.createElement('style');
1329
1209
  this.renderer.setAttribute(this.styleElement, 'type', 'text/css');
1210
+ setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);
1330
1211
  this.renderer.appendChild(this.document.head, this.styleElement);
1331
1212
  let innerHTML = `
1332
1213
  @media screen and (max-width: ${this.breakpoint}) {
@@ -1377,8 +1258,8 @@ class PickList extends BaseComponent {
1377
1258
  this.destroyMedia();
1378
1259
  super.ngOnDestroy();
1379
1260
  }
1380
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickList, deps: null, target: i0.ɵɵFactoryTarget.Component });
1381
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.14", type: PickList, isStandalone: true, selector: "p-pickList, p-picklist, p-pick-list", inputs: { source: "source", target: "target", sourceHeader: "sourceHeader", tabindex: ["tabindex", "tabindex", numberAttribute], rightButtonAriaLabel: "rightButtonAriaLabel", leftButtonAriaLabel: "leftButtonAriaLabel", allRightButtonAriaLabel: "allRightButtonAriaLabel", allLeftButtonAriaLabel: "allLeftButtonAriaLabel", upButtonAriaLabel: "upButtonAriaLabel", downButtonAriaLabel: "downButtonAriaLabel", topButtonAriaLabel: "topButtonAriaLabel", bottomButtonAriaLabel: "bottomButtonAriaLabel", targetHeader: "targetHeader", responsive: ["responsive", "responsive", booleanAttribute], filterBy: "filterBy", filterLocale: "filterLocale", trackBy: "trackBy", sourceTrackBy: "sourceTrackBy", targetTrackBy: "targetTrackBy", showSourceFilter: ["showSourceFilter", "showSourceFilter", booleanAttribute], showTargetFilter: ["showTargetFilter", "showTargetFilter", booleanAttribute], metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], dragdrop: ["dragdrop", "dragdrop", booleanAttribute], style: "style", styleClass: "styleClass", sourceStyle: "sourceStyle", targetStyle: "targetStyle", showSourceControls: ["showSourceControls", "showSourceControls", booleanAttribute], showTargetControls: ["showTargetControls", "showTargetControls", booleanAttribute], sourceFilterPlaceholder: "sourceFilterPlaceholder", targetFilterPlaceholder: "targetFilterPlaceholder", disabled: ["disabled", "disabled", booleanAttribute], sourceOptionDisabled: "sourceOptionDisabled", targetOptionDisabled: "targetOptionDisabled", ariaSourceFilterLabel: "ariaSourceFilterLabel", ariaTargetFilterLabel: "ariaTargetFilterLabel", filterMatchMode: "filterMatchMode", stripedRows: ["stripedRows", "stripedRows", booleanAttribute], keepSelection: ["keepSelection", "keepSelection", booleanAttribute], scrollHeight: "scrollHeight", autoOptionFocus: ["autoOptionFocus", "autoOptionFocus", booleanAttribute], buttonProps: "buttonProps", moveUpButtonProps: "moveUpButtonProps", moveTopButtonProps: "moveTopButtonProps", moveDownButtonProps: "moveDownButtonProps", moveBottomButtonProps: "moveBottomButtonProps", moveToTargetProps: "moveToTargetProps", moveAllToTargetProps: "moveAllToTargetProps", moveToSourceProps: "moveToSourceProps", moveAllToSourceProps: "moveAllToSourceProps", breakpoint: "breakpoint" }, outputs: { onMoveToSource: "onMoveToSource", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onMoveToTarget: "onMoveToTarget", onSourceReorder: "onSourceReorder", onTargetReorder: "onTargetReorder", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect", onSourceFilter: "onSourceFilter", onTargetFilter: "onTargetFilter", onFocus: "onFocus", onBlur: "onBlur" }, providers: [PickListStyle], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "sourceHeaderTemplate", first: true, predicate: ["sourceHeader"] }, { propertyName: "targetHeaderTemplate", first: true, predicate: ["targetHeader"] }, { propertyName: "sourceFilterTemplate", first: true, predicate: ["sourceFilter"] }, { propertyName: "targetFilterTemplate", first: true, predicate: ["targetFilter"] }, { propertyName: "emptyMessageSourceTemplate", first: true, predicate: ["emptymessagesource"] }, { propertyName: "emptyFilterMessageSourceTemplate", first: true, predicate: ["emptyfiltermessagesource"] }, { propertyName: "emptyMessageTargetTemplate", first: true, predicate: ["emptymessagetarget"] }, { propertyName: "emptyFilterMessageTargetTemplate", first: true, predicate: ["emptyfiltermessagetarget"] }, { propertyName: "moveUpIconTemplate", first: true, predicate: ["moveupicon"] }, { propertyName: "moveTopIconTemplate", first: true, predicate: ["movetopicon"] }, { propertyName: "moveDownIconTemplate", first: true, predicate: ["movedownicon"] }, { propertyName: "moveBottomIconTemplate", first: true, predicate: ["movebottomicon"] }, { propertyName: "moveToTargetIconTemplate", first: true, predicate: ["movetotargeticon"] }, { propertyName: "moveAllToTargetIconTemplate", first: true, predicate: ["movealltotargeticon"] }, { propertyName: "moveToSourceIconTemplate", first: true, predicate: ["movetosourceicon"] }, { propertyName: "moveAllToSourceIconTemplate", first: true, predicate: ["movealltosourceicon"] }, { propertyName: "targetFilterIconTemplate", first: true, predicate: ["targetfiltericon"] }, { propertyName: "sourceFilterIconTemplate", first: true, predicate: ["sourcefiltericon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "listViewSourceChild", first: true, predicate: ["sourcelist"], descendants: true }, { propertyName: "listViewTargetChild", first: true, predicate: ["targetlist"], descendants: true }, { propertyName: "sourceFilterViewChild", first: true, predicate: ["sourceFilter"], descendants: true }, { propertyName: "targetFilterViewChild", first: true, predicate: ["targetFilter"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
1261
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickList, deps: null, target: i0.ɵɵFactoryTarget.Component });
1262
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: PickList, isStandalone: true, selector: "p-pickList, p-picklist, p-pick-list", inputs: { source: "source", target: "target", sourceHeader: "sourceHeader", tabindex: ["tabindex", "tabindex", numberAttribute], rightButtonAriaLabel: "rightButtonAriaLabel", leftButtonAriaLabel: "leftButtonAriaLabel", allRightButtonAriaLabel: "allRightButtonAriaLabel", allLeftButtonAriaLabel: "allLeftButtonAriaLabel", upButtonAriaLabel: "upButtonAriaLabel", downButtonAriaLabel: "downButtonAriaLabel", topButtonAriaLabel: "topButtonAriaLabel", bottomButtonAriaLabel: "bottomButtonAriaLabel", targetHeader: "targetHeader", responsive: ["responsive", "responsive", booleanAttribute], filterBy: "filterBy", filterLocale: "filterLocale", trackBy: "trackBy", sourceTrackBy: "sourceTrackBy", targetTrackBy: "targetTrackBy", showSourceFilter: ["showSourceFilter", "showSourceFilter", booleanAttribute], showTargetFilter: ["showTargetFilter", "showTargetFilter", booleanAttribute], metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], dragdrop: ["dragdrop", "dragdrop", booleanAttribute], style: "style", styleClass: "styleClass", sourceStyle: "sourceStyle", targetStyle: "targetStyle", showSourceControls: ["showSourceControls", "showSourceControls", booleanAttribute], showTargetControls: ["showTargetControls", "showTargetControls", booleanAttribute], sourceFilterPlaceholder: "sourceFilterPlaceholder", targetFilterPlaceholder: "targetFilterPlaceholder", disabled: ["disabled", "disabled", booleanAttribute], sourceOptionDisabled: "sourceOptionDisabled", targetOptionDisabled: "targetOptionDisabled", ariaSourceFilterLabel: "ariaSourceFilterLabel", ariaTargetFilterLabel: "ariaTargetFilterLabel", filterMatchMode: "filterMatchMode", stripedRows: ["stripedRows", "stripedRows", booleanAttribute], keepSelection: ["keepSelection", "keepSelection", booleanAttribute], scrollHeight: "scrollHeight", autoOptionFocus: ["autoOptionFocus", "autoOptionFocus", booleanAttribute], buttonProps: "buttonProps", moveUpButtonProps: "moveUpButtonProps", moveTopButtonProps: "moveTopButtonProps", moveDownButtonProps: "moveDownButtonProps", moveBottomButtonProps: "moveBottomButtonProps", moveToTargetProps: "moveToTargetProps", moveAllToTargetProps: "moveAllToTargetProps", moveToSourceProps: "moveToSourceProps", moveAllToSourceProps: "moveAllToSourceProps", breakpoint: "breakpoint" }, outputs: { onMoveToSource: "onMoveToSource", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onMoveToTarget: "onMoveToTarget", onSourceReorder: "onSourceReorder", onTargetReorder: "onTargetReorder", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect", onSourceFilter: "onSourceFilter", onTargetFilter: "onTargetFilter", onFocus: "onFocus", onBlur: "onBlur" }, providers: [PickListStyle], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "sourceHeaderTemplate", first: true, predicate: ["sourceHeader"] }, { propertyName: "targetHeaderTemplate", first: true, predicate: ["targetHeader"] }, { propertyName: "sourceFilterTemplate", first: true, predicate: ["sourceFilter"] }, { propertyName: "targetFilterTemplate", first: true, predicate: ["targetFilter"] }, { propertyName: "emptyMessageSourceTemplate", first: true, predicate: ["emptymessagesource"] }, { propertyName: "emptyFilterMessageSourceTemplate", first: true, predicate: ["emptyfiltermessagesource"] }, { propertyName: "emptyMessageTargetTemplate", first: true, predicate: ["emptymessagetarget"] }, { propertyName: "emptyFilterMessageTargetTemplate", first: true, predicate: ["emptyfiltermessagetarget"] }, { propertyName: "moveUpIconTemplate", first: true, predicate: ["moveupicon"] }, { propertyName: "moveTopIconTemplate", first: true, predicate: ["movetopicon"] }, { propertyName: "moveDownIconTemplate", first: true, predicate: ["movedownicon"] }, { propertyName: "moveBottomIconTemplate", first: true, predicate: ["movebottomicon"] }, { propertyName: "moveToTargetIconTemplate", first: true, predicate: ["movetotargeticon"] }, { propertyName: "moveAllToTargetIconTemplate", first: true, predicate: ["movealltotargeticon"] }, { propertyName: "moveToSourceIconTemplate", first: true, predicate: ["movetosourceicon"] }, { propertyName: "moveAllToSourceIconTemplate", first: true, predicate: ["movealltosourceicon"] }, { propertyName: "targetFilterIconTemplate", first: true, predicate: ["targetfiltericon"] }, { propertyName: "sourceFilterIconTemplate", first: true, predicate: ["sourcefiltericon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "listViewSourceChild", first: true, predicate: ["sourcelist"], descendants: true }, { propertyName: "listViewTargetChild", first: true, predicate: ["targetlist"], descendants: true }, { propertyName: "sourceFilterViewChild", first: true, predicate: ["sourceFilter"], descendants: true }, { propertyName: "targetFilterViewChild", first: true, predicate: ["targetFilter"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
1382
1263
  <div [class]="styleClass" [ngStyle]="style" [ngClass]="{ 'p-picklist p-component': true }" cdkDropListGroup [attr.data-pc-name]="'picklist'" [attr.data-pc-section]="'root'">
1383
1264
  <div class="p-picklist-controls p-picklist-source-controls" *ngIf="showSourceControls" [attr.data-pc-section]="'sourceControls'" [attr.data-pc-group-section]="'controls'">
1384
1265
  <button
@@ -1455,7 +1336,7 @@ class PickList extends BaseComponent {
1455
1336
  [tabindex]="tabindex"
1456
1337
  (onFocus)="onListFocus($event, SOURCE_LIST)"
1457
1338
  (onBlur)="onListBlur($event, SOURCE_LIST)"
1458
- (keydown)="onItemKeyDown($event, selectedItemsSource, onSourceSelect, SOURCE_LIST)"
1339
+ (onChange)="onChangeSelection($event, SOURCE_LIST)"
1459
1340
  (onDblClick)="onSourceItemDblClick()"
1460
1341
  [disabled]="disabled"
1461
1342
  [optionDisabled]="sourceOptionDisabled"
@@ -1468,6 +1349,7 @@ class PickList extends BaseComponent {
1468
1349
  [filterMatchMode]="filterMatchMode"
1469
1350
  [filterPlaceHolder]="sourceFilterPlaceholder"
1470
1351
  [dragdrop]="dragdrop"
1352
+ [dropListData]="source"
1471
1353
  (onDrop)="onDrop($event, SOURCE_LIST)"
1472
1354
  (onFilter)="onFilter($event.originalEvent, SOURCE_LIST)"
1473
1355
  >
@@ -1589,7 +1471,7 @@ class PickList extends BaseComponent {
1589
1471
  [tabindex]="tabindex"
1590
1472
  (onFocus)="onListFocus($event, TARGET_LIST)"
1591
1473
  (onBlur)="onListBlur($event, TARGET_LIST)"
1592
- (keydown)="onItemKeyDown($event, selectedItemsTarget, onTargetSelect, TARGET_LIST)"
1474
+ (onChange)="onChangeSelection($event, TARGET_LIST)"
1593
1475
  (onDblClick)="onTargetItemDblClick()"
1594
1476
  [disabled]="disabled"
1595
1477
  [optionDisabled]="targetOptionDisabled"
@@ -1602,6 +1484,7 @@ class PickList extends BaseComponent {
1602
1484
  [filterMatchMode]="filterMatchMode"
1603
1485
  [filterPlaceHolder]="targetFilterPlaceholder"
1604
1486
  [dragdrop]="dragdrop"
1487
+ [dropListData]="target"
1605
1488
  (onDrop)="onDrop($event, TARGET_LIST)"
1606
1489
  (onFilter)="onFilter($event.originalEvent, TARGET_LIST)"
1607
1490
  >
@@ -1699,9 +1582,9 @@ class PickList extends BaseComponent {
1699
1582
  </button>
1700
1583
  </div>
1701
1584
  </div>
1702
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "component", type: AngleDoubleDownIcon, selector: "AngleDoubleDownIcon" }, { kind: "component", type: AngleDoubleLeftIcon, selector: "AngleDoubleLeftIcon" }, { kind: "component", type: AngleDoubleRightIcon, selector: "AngleDoubleRightIcon" }, { kind: "component", type: AngleDoubleUpIcon, selector: "AngleDoubleUpIcon" }, { kind: "component", type: AngleDownIcon, selector: "AngleDownIcon" }, { kind: "component", type: AngleLeftIcon, selector: "AngleLeftIcon" }, { kind: "component", type: AngleRightIcon, selector: "AngleRightIcon" }, { kind: "component", type: AngleUpIcon, selector: "AngleUpIcon" }, { kind: "component", type: Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark", "dragdrop"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad", "onDrop"] }, { 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 }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1585
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "component", type: AngleDoubleDownIcon, selector: "AngleDoubleDownIcon" }, { kind: "component", type: AngleDoubleLeftIcon, selector: "AngleDoubleLeftIcon" }, { kind: "component", type: AngleDoubleRightIcon, selector: "AngleDoubleRightIcon" }, { kind: "component", type: AngleDoubleUpIcon, selector: "AngleDoubleUpIcon" }, { kind: "component", type: AngleDownIcon, selector: "AngleDownIcon" }, { kind: "component", type: AngleLeftIcon, selector: "AngleLeftIcon" }, { kind: "component", type: AngleRightIcon, selector: "AngleRightIcon" }, { kind: "component", type: AngleUpIcon, selector: "AngleUpIcon" }, { kind: "component", type: Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark", "dragdrop", "dropListData"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad", "onDrop"] }, { 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 }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1703
1586
  }
1704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickList, decorators: [{
1587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickList, decorators: [{
1705
1588
  type: Component,
1706
1589
  args: [{
1707
1590
  selector: 'p-pickList, p-picklist, p-pick-list',
@@ -1784,7 +1667,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1784
1667
  [tabindex]="tabindex"
1785
1668
  (onFocus)="onListFocus($event, SOURCE_LIST)"
1786
1669
  (onBlur)="onListBlur($event, SOURCE_LIST)"
1787
- (keydown)="onItemKeyDown($event, selectedItemsSource, onSourceSelect, SOURCE_LIST)"
1670
+ (onChange)="onChangeSelection($event, SOURCE_LIST)"
1788
1671
  (onDblClick)="onSourceItemDblClick()"
1789
1672
  [disabled]="disabled"
1790
1673
  [optionDisabled]="sourceOptionDisabled"
@@ -1797,6 +1680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1797
1680
  [filterMatchMode]="filterMatchMode"
1798
1681
  [filterPlaceHolder]="sourceFilterPlaceholder"
1799
1682
  [dragdrop]="dragdrop"
1683
+ [dropListData]="source"
1800
1684
  (onDrop)="onDrop($event, SOURCE_LIST)"
1801
1685
  (onFilter)="onFilter($event.originalEvent, SOURCE_LIST)"
1802
1686
  >
@@ -1918,7 +1802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1918
1802
  [tabindex]="tabindex"
1919
1803
  (onFocus)="onListFocus($event, TARGET_LIST)"
1920
1804
  (onBlur)="onListBlur($event, TARGET_LIST)"
1921
- (keydown)="onItemKeyDown($event, selectedItemsTarget, onTargetSelect, TARGET_LIST)"
1805
+ (onChange)="onChangeSelection($event, TARGET_LIST)"
1922
1806
  (onDblClick)="onTargetItemDblClick()"
1923
1807
  [disabled]="disabled"
1924
1808
  [optionDisabled]="targetOptionDisabled"
@@ -1931,6 +1815,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1931
1815
  [filterMatchMode]="filterMatchMode"
1932
1816
  [filterPlaceHolder]="targetFilterPlaceholder"
1933
1817
  [dragdrop]="dragdrop"
1818
+ [dropListData]="target"
1934
1819
  (onDrop)="onDrop($event, TARGET_LIST)"
1935
1820
  (onFilter)="onFilter($event.originalEvent, TARGET_LIST)"
1936
1821
  >
@@ -2245,11 +2130,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
2245
2130
  args: [PrimeTemplate]
2246
2131
  }] } });
2247
2132
  class PickListModule {
2248
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2249
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: PickListModule, imports: [PickList, SharedModule], exports: [PickList, SharedModule] });
2250
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickListModule, imports: [PickList, SharedModule, SharedModule] });
2133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2134
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: PickListModule, imports: [PickList, SharedModule], exports: [PickList, SharedModule] });
2135
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickListModule, imports: [PickList, SharedModule, SharedModule] });
2251
2136
  }
2252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PickListModule, decorators: [{
2137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PickListModule, decorators: [{
2253
2138
  type: NgModule,
2254
2139
  args: [{
2255
2140
  imports: [PickList, SharedModule],