primereact 8.1.1 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/autocomplete/autocomplete.cjs.js +19 -10
  2. package/autocomplete/autocomplete.cjs.min.js +1 -1
  3. package/autocomplete/autocomplete.esm.js +20 -11
  4. package/autocomplete/autocomplete.esm.min.js +1 -1
  5. package/autocomplete/autocomplete.js +19 -10
  6. package/autocomplete/autocomplete.min.js +1 -1
  7. package/avatar/avatar.cjs.js +7 -7
  8. package/avatar/avatar.cjs.min.js +1 -1
  9. package/avatar/avatar.d.ts +1 -3
  10. package/avatar/avatar.esm.js +7 -7
  11. package/avatar/avatar.esm.min.js +1 -1
  12. package/avatar/avatar.js +7 -7
  13. package/avatar/avatar.min.js +1 -1
  14. package/badge/badge.cjs.js +2 -2
  15. package/badge/badge.cjs.min.js +1 -1
  16. package/badge/badge.d.ts +2 -4
  17. package/badge/badge.esm.js +2 -2
  18. package/badge/badge.esm.min.js +1 -1
  19. package/badge/badge.js +2 -2
  20. package/badge/badge.min.js +1 -1
  21. package/calendar/calendar.cjs.js +77 -4
  22. package/calendar/calendar.cjs.min.js +1 -1
  23. package/calendar/calendar.d.ts +1 -0
  24. package/calendar/calendar.esm.js +77 -4
  25. package/calendar/calendar.esm.min.js +1 -1
  26. package/calendar/calendar.js +77 -4
  27. package/calendar/calendar.min.js +1 -1
  28. package/card/card.d.ts +1 -4
  29. package/cascadeselect/cascadeselect.cjs.js +3 -3
  30. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  31. package/cascadeselect/cascadeselect.d.ts +1 -1
  32. package/cascadeselect/cascadeselect.esm.js +3 -3
  33. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  34. package/cascadeselect/cascadeselect.js +3 -3
  35. package/cascadeselect/cascadeselect.min.js +1 -1
  36. package/chart/chart.cjs.js +13 -7
  37. package/chart/chart.cjs.min.js +1 -1
  38. package/chart/chart.esm.js +13 -7
  39. package/chart/chart.esm.min.js +1 -1
  40. package/chart/chart.js +13 -7
  41. package/chart/chart.min.js +1 -1
  42. package/checkbox/checkbox.cjs.js +1 -1
  43. package/checkbox/checkbox.cjs.min.js +1 -1
  44. package/checkbox/checkbox.esm.js +2 -2
  45. package/checkbox/checkbox.esm.min.js +1 -1
  46. package/checkbox/checkbox.js +1 -1
  47. package/checkbox/checkbox.min.js +1 -1
  48. package/chip/chip.d.ts +1 -3
  49. package/chips/chips.cjs.js +18 -2
  50. package/chips/chips.cjs.min.js +1 -1
  51. package/chips/chips.d.ts +3 -0
  52. package/chips/chips.esm.js +19 -3
  53. package/chips/chips.esm.min.js +1 -1
  54. package/chips/chips.js +19 -4
  55. package/chips/chips.min.js +1 -1
  56. package/column/column.d.ts +1 -0
  57. package/confirmdialog/confirmdialog.d.ts +1 -6
  58. package/contextmenu/contextmenu.cjs.js +1 -0
  59. package/contextmenu/contextmenu.cjs.min.js +1 -1
  60. package/contextmenu/contextmenu.esm.js +1 -0
  61. package/contextmenu/contextmenu.esm.min.js +1 -1
  62. package/contextmenu/contextmenu.js +1 -0
  63. package/contextmenu/contextmenu.min.js +1 -1
  64. package/core/core.js +249 -117
  65. package/core/core.min.js +9 -9
  66. package/datatable/datatable.cjs.js +63 -25
  67. package/datatable/datatable.cjs.min.js +1 -1
  68. package/datatable/datatable.esm.js +64 -26
  69. package/datatable/datatable.esm.min.js +1 -1
  70. package/datatable/datatable.js +63 -25
  71. package/datatable/datatable.min.js +1 -1
  72. package/dialog/dialog.cjs.js +2 -2
  73. package/dialog/dialog.cjs.min.js +1 -1
  74. package/dialog/dialog.esm.js +2 -2
  75. package/dialog/dialog.esm.min.js +1 -1
  76. package/dialog/dialog.js +2 -2
  77. package/dialog/dialog.min.js +1 -1
  78. package/dropdown/dropdown.cjs.js +29 -17
  79. package/dropdown/dropdown.cjs.min.js +1 -1
  80. package/dropdown/dropdown.d.ts +1 -1
  81. package/dropdown/dropdown.esm.js +29 -17
  82. package/dropdown/dropdown.esm.min.js +1 -1
  83. package/dropdown/dropdown.js +29 -17
  84. package/dropdown/dropdown.min.js +1 -1
  85. package/editor/editor.cjs.js +11 -3
  86. package/editor/editor.cjs.min.js +1 -1
  87. package/editor/editor.esm.js +11 -3
  88. package/editor/editor.esm.min.js +1 -1
  89. package/editor/editor.js +11 -3
  90. package/editor/editor.min.js +1 -1
  91. package/image/image.cjs.js +5 -5
  92. package/image/image.cjs.min.js +1 -1
  93. package/image/image.d.ts +1 -3
  94. package/image/image.esm.js +5 -5
  95. package/image/image.esm.min.js +1 -1
  96. package/image/image.js +5 -5
  97. package/image/image.min.css +1 -1
  98. package/image/image.min.js +1 -1
  99. package/inplace/inplace.cjs.js +1 -1
  100. package/inplace/inplace.cjs.min.js +1 -1
  101. package/inplace/inplace.esm.js +1 -1
  102. package/inplace/inplace.esm.min.js +1 -1
  103. package/inplace/inplace.js +1 -1
  104. package/inplace/inplace.min.js +1 -1
  105. package/inputmask/inputmask.cjs.js +7 -5
  106. package/inputmask/inputmask.cjs.min.js +1 -1
  107. package/inputmask/inputmask.d.ts +0 -1
  108. package/inputmask/inputmask.esm.js +7 -5
  109. package/inputmask/inputmask.esm.min.js +1 -1
  110. package/inputmask/inputmask.js +7 -5
  111. package/inputmask/inputmask.min.js +1 -1
  112. package/inputnumber/inputnumber.cjs.js +2 -2
  113. package/inputnumber/inputnumber.cjs.min.js +1 -1
  114. package/inputnumber/inputnumber.esm.js +2 -2
  115. package/inputnumber/inputnumber.esm.min.js +1 -1
  116. package/inputnumber/inputnumber.js +2 -2
  117. package/inputnumber/inputnumber.min.js +1 -1
  118. package/inputswitch/inputswitch.cjs.js +1 -1
  119. package/inputswitch/inputswitch.cjs.min.js +1 -1
  120. package/inputswitch/inputswitch.esm.js +2 -2
  121. package/inputswitch/inputswitch.esm.min.js +1 -1
  122. package/inputswitch/inputswitch.js +1 -1
  123. package/inputswitch/inputswitch.min.css +1 -1
  124. package/inputswitch/inputswitch.min.js +1 -1
  125. package/inputtext/inputtext.min.css +1 -1
  126. package/listbox/listbox.cjs.js +66 -6
  127. package/listbox/listbox.cjs.min.js +1 -1
  128. package/listbox/listbox.d.ts +1 -1
  129. package/listbox/listbox.esm.js +66 -6
  130. package/listbox/listbox.esm.min.js +1 -1
  131. package/listbox/listbox.js +67 -8
  132. package/listbox/listbox.min.js +1 -1
  133. package/megamenu/megamenu.cjs.js +32 -12
  134. package/megamenu/megamenu.cjs.min.js +1 -1
  135. package/megamenu/megamenu.d.ts +7 -0
  136. package/megamenu/megamenu.esm.js +32 -12
  137. package/megamenu/megamenu.esm.min.js +1 -1
  138. package/megamenu/megamenu.js +32 -12
  139. package/megamenu/megamenu.min.css +1 -1
  140. package/megamenu/megamenu.min.js +1 -1
  141. package/mention/mention.cjs.js +1 -1
  142. package/mention/mention.cjs.min.js +1 -1
  143. package/mention/mention.esm.js +1 -1
  144. package/mention/mention.esm.min.js +1 -1
  145. package/mention/mention.js +1 -1
  146. package/mention/mention.min.js +1 -1
  147. package/menubar/menubar.cjs.js +1 -0
  148. package/menubar/menubar.cjs.min.js +1 -1
  149. package/menubar/menubar.esm.js +1 -0
  150. package/menubar/menubar.esm.min.js +1 -1
  151. package/menubar/menubar.js +1 -0
  152. package/menubar/menubar.min.js +1 -1
  153. package/menuitem/menuitem.d.ts +2 -0
  154. package/message/message.d.ts +1 -1
  155. package/messages/messages.cjs.js +3 -2
  156. package/messages/messages.cjs.min.js +1 -1
  157. package/messages/messages.d.ts +1 -1
  158. package/messages/messages.esm.js +3 -2
  159. package/messages/messages.esm.min.js +1 -1
  160. package/messages/messages.js +3 -2
  161. package/messages/messages.min.js +1 -1
  162. package/multiselect/multiselect.cjs.js +20 -10
  163. package/multiselect/multiselect.cjs.min.js +1 -1
  164. package/multiselect/multiselect.d.ts +1 -1
  165. package/multiselect/multiselect.esm.js +20 -10
  166. package/multiselect/multiselect.esm.min.js +1 -1
  167. package/multiselect/multiselect.js +20 -10
  168. package/multiselect/multiselect.min.js +1 -1
  169. package/overlaypanel/overlaypanel.cjs.js +1 -1
  170. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  171. package/overlaypanel/overlaypanel.esm.js +1 -1
  172. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  173. package/overlaypanel/overlaypanel.js +1 -1
  174. package/overlaypanel/overlaypanel.min.js +1 -1
  175. package/package.json +1 -1
  176. package/panelmenu/panelmenu.cjs.js +1 -0
  177. package/panelmenu/panelmenu.cjs.min.js +1 -1
  178. package/panelmenu/panelmenu.esm.js +1 -0
  179. package/panelmenu/panelmenu.esm.min.js +1 -1
  180. package/panelmenu/panelmenu.js +1 -0
  181. package/panelmenu/panelmenu.min.js +1 -1
  182. package/picklist/picklist.cjs.js +169 -14
  183. package/picklist/picklist.cjs.min.js +1 -1
  184. package/picklist/picklist.d.ts +29 -0
  185. package/picklist/picklist.esm.js +169 -14
  186. package/picklist/picklist.esm.min.js +1 -1
  187. package/picklist/picklist.js +170 -16
  188. package/picklist/picklist.min.css +1 -1
  189. package/picklist/picklist.min.js +1 -1
  190. package/primereact.all.cjs.js +924 -387
  191. package/primereact.all.cjs.min.js +1 -1
  192. package/primereact.all.esm.js +924 -387
  193. package/primereact.all.esm.min.js +1 -1
  194. package/primereact.all.js +924 -387
  195. package/primereact.all.min.js +1 -1
  196. package/radiobutton/radiobutton.cjs.js +1 -1
  197. package/radiobutton/radiobutton.cjs.min.js +1 -1
  198. package/radiobutton/radiobutton.esm.js +2 -2
  199. package/radiobutton/radiobutton.esm.min.js +1 -1
  200. package/radiobutton/radiobutton.js +1 -1
  201. package/radiobutton/radiobutton.min.js +1 -1
  202. package/resources/primereact.css +248 -194
  203. package/resources/primereact.min.css +1 -1
  204. package/resources/themes/arya-blue/theme.css +20 -6
  205. package/resources/themes/arya-green/theme.css +20 -6
  206. package/resources/themes/arya-orange/theme.css +20 -6
  207. package/resources/themes/arya-purple/theme.css +20 -6
  208. package/resources/themes/bootstrap4-dark-blue/theme.css +20 -6
  209. package/resources/themes/bootstrap4-dark-purple/theme.css +20 -6
  210. package/resources/themes/bootstrap4-light-blue/theme.css +19 -5
  211. package/resources/themes/bootstrap4-light-purple/theme.css +19 -5
  212. package/resources/themes/fluent-light/theme.css +20 -6
  213. package/resources/themes/lara-dark-blue/theme.css +20 -6
  214. package/resources/themes/lara-dark-indigo/theme.css +20 -6
  215. package/resources/themes/lara-dark-purple/theme.css +20 -6
  216. package/resources/themes/lara-dark-teal/theme.css +20 -6
  217. package/resources/themes/lara-light-blue/theme.css +20 -6
  218. package/resources/themes/lara-light-indigo/theme.css +20 -6
  219. package/resources/themes/lara-light-purple/theme.css +20 -6
  220. package/resources/themes/lara-light-teal/theme.css +20 -6
  221. package/resources/themes/luna-amber/theme.css +20 -6
  222. package/resources/themes/luna-blue/theme.css +20 -6
  223. package/resources/themes/luna-green/theme.css +20 -6
  224. package/resources/themes/luna-pink/theme.css +20 -6
  225. package/resources/themes/md-dark-deeppurple/theme.css +20 -6
  226. package/resources/themes/md-dark-indigo/theme.css +20 -6
  227. package/resources/themes/md-light-deeppurple/theme.css +20 -6
  228. package/resources/themes/md-light-indigo/theme.css +20 -6
  229. package/resources/themes/mdc-dark-deeppurple/theme.css +20 -6
  230. package/resources/themes/mdc-dark-indigo/theme.css +20 -6
  231. package/resources/themes/mdc-light-deeppurple/theme.css +20 -6
  232. package/resources/themes/mdc-light-indigo/theme.css +20 -6
  233. package/resources/themes/nova/theme.css +20 -6
  234. package/resources/themes/nova-accent/theme.css +20 -6
  235. package/resources/themes/nova-alt/theme.css +20 -6
  236. package/resources/themes/rhea/theme.css +20 -6
  237. package/resources/themes/saga-blue/theme.css +20 -6
  238. package/resources/themes/saga-green/theme.css +20 -6
  239. package/resources/themes/saga-orange/theme.css +20 -6
  240. package/resources/themes/saga-purple/theme.css +20 -6
  241. package/resources/themes/tailwind-light/theme.css +20 -6
  242. package/resources/themes/vela-blue/theme.css +20 -6
  243. package/resources/themes/vela-green/theme.css +20 -6
  244. package/resources/themes/vela-orange/theme.css +20 -6
  245. package/resources/themes/vela-purple/theme.css +20 -6
  246. package/selectbutton/selectbutton.d.ts +1 -1
  247. package/slidemenu/slidemenu.cjs.js +1 -0
  248. package/slidemenu/slidemenu.cjs.min.js +1 -1
  249. package/slidemenu/slidemenu.esm.js +1 -0
  250. package/slidemenu/slidemenu.esm.min.js +1 -1
  251. package/slidemenu/slidemenu.js +1 -0
  252. package/slidemenu/slidemenu.min.js +1 -1
  253. package/slider/slider.d.ts +1 -1
  254. package/splitbutton/splitbutton.cjs.js +4 -0
  255. package/splitbutton/splitbutton.cjs.min.js +1 -1
  256. package/splitbutton/splitbutton.d.ts +2 -0
  257. package/splitbutton/splitbutton.esm.js +4 -0
  258. package/splitbutton/splitbutton.esm.min.js +1 -1
  259. package/splitbutton/splitbutton.js +4 -0
  260. package/splitbutton/splitbutton.min.js +1 -1
  261. package/splitter/splitter.cjs.js +9 -5
  262. package/splitter/splitter.cjs.min.js +1 -1
  263. package/splitter/splitter.esm.js +10 -6
  264. package/splitter/splitter.esm.min.js +1 -1
  265. package/splitter/splitter.js +9 -5
  266. package/splitter/splitter.min.js +1 -1
  267. package/steps/steps.cjs.js +1 -0
  268. package/steps/steps.cjs.min.js +1 -1
  269. package/steps/steps.esm.js +1 -0
  270. package/steps/steps.esm.min.js +1 -1
  271. package/steps/steps.js +1 -0
  272. package/steps/steps.min.js +1 -1
  273. package/styleclass/styleclass.d.ts +1 -1
  274. package/tag/tag.d.ts +1 -1
  275. package/terminal/terminal.cjs.js +1 -1
  276. package/terminal/terminal.cjs.min.js +1 -1
  277. package/terminal/terminal.esm.js +2 -2
  278. package/terminal/terminal.esm.min.js +1 -1
  279. package/terminal/terminal.js +1 -1
  280. package/terminal/terminal.min.js +1 -1
  281. package/tieredmenu/tieredmenu.cjs.js +3 -1
  282. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  283. package/tieredmenu/tieredmenu.esm.js +3 -1
  284. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  285. package/tieredmenu/tieredmenu.js +3 -1
  286. package/tieredmenu/tieredmenu.min.js +1 -1
  287. package/toast/toast.cjs.js +30 -35
  288. package/toast/toast.cjs.min.js +1 -1
  289. package/toast/toast.d.ts +2 -1
  290. package/toast/toast.esm.js +30 -35
  291. package/toast/toast.esm.min.js +1 -1
  292. package/toast/toast.js +30 -35
  293. package/toast/toast.min.css +1 -1
  294. package/toast/toast.min.js +1 -1
  295. package/tooltip/tooltip.cjs.js +28 -22
  296. package/tooltip/tooltip.cjs.min.js +1 -1
  297. package/tooltip/tooltip.esm.js +28 -22
  298. package/tooltip/tooltip.esm.min.js +1 -1
  299. package/tooltip/tooltip.js +28 -22
  300. package/tooltip/tooltip.min.js +1 -1
  301. package/tree/tree.cjs.js +9 -1
  302. package/tree/tree.cjs.min.js +1 -1
  303. package/tree/tree.esm.js +9 -1
  304. package/tree/tree.esm.min.js +1 -1
  305. package/tree/tree.js +9 -1
  306. package/tree/tree.min.js +1 -1
  307. package/treeselect/treeselect.cjs.js +2 -2
  308. package/treeselect/treeselect.cjs.min.js +1 -1
  309. package/treeselect/treeselect.esm.js +2 -2
  310. package/treeselect/treeselect.esm.min.js +1 -1
  311. package/treeselect/treeselect.js +2 -2
  312. package/treeselect/treeselect.min.js +1 -1
  313. package/treetable/treetable.cjs.js +1 -0
  314. package/treetable/treetable.cjs.min.js +1 -1
  315. package/treetable/treetable.d.ts +2 -2
  316. package/treetable/treetable.esm.js +1 -0
  317. package/treetable/treetable.esm.min.js +1 -1
  318. package/treetable/treetable.js +1 -0
  319. package/treetable/treetable.min.js +1 -1
  320. package/utils/utils.cjs.js +21 -5
  321. package/utils/utils.cjs.min.js +1 -1
  322. package/utils/utils.d.ts +1 -0
  323. package/utils/utils.esm.js +21 -5
  324. package/utils/utils.esm.min.js +1 -1
  325. package/utils/utils.js +21 -5
  326. package/utils/utils.min.js +1 -1
  327. package/virtualscroller/virtualscroller.cjs.js +154 -65
  328. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  329. package/virtualscroller/virtualscroller.d.ts +12 -0
  330. package/virtualscroller/virtualscroller.esm.js +156 -67
  331. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  332. package/virtualscroller/virtualscroller.js +154 -65
  333. package/virtualscroller/virtualscroller.min.css +1 -1
  334. package/virtualscroller/virtualscroller.min.js +1 -1
  335. package/web-types.json +167 -4
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { FilterService } from 'primereact/api';
2
3
  import { useUpdateEffect } from 'primereact/hooks';
3
4
  import { classNames, ObjectUtils, DomHandler } from 'primereact/utils';
4
5
  import { Button } from 'primereact/button';
@@ -357,6 +358,23 @@ var PickListSubList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
357
358
  return ObjectUtils.findIndexInList(item, props.selection, props.dataKey) !== -1;
358
359
  };
359
360
 
361
+ var onFilter = function onFilter(event) {
362
+ if (props.onFilter) {
363
+ props.onFilter({
364
+ originalEvent: event,
365
+ value: event.target.value,
366
+ type: props.type
367
+ });
368
+ }
369
+ };
370
+
371
+ var onFilterInputKeyDown = function onFilterInputKeyDown(event) {
372
+ //enter
373
+ if (event.which === 13) {
374
+ event.preventDefault();
375
+ }
376
+ };
377
+
360
378
  React.useImperativeHandle(ref, function () {
361
379
  return {
362
380
  listElementRef: listElementRef
@@ -393,6 +411,44 @@ var PickListSubList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
393
411
  return null;
394
412
  };
395
413
 
414
+ var createFilter = function createFilter() {
415
+ if (props.showFilter) {
416
+ var content = /*#__PURE__*/React.createElement("div", {
417
+ className: "p-picklist-filter"
418
+ }, /*#__PURE__*/React.createElement("input", {
419
+ type: "text",
420
+ value: props.filterValue,
421
+ onChange: onFilter,
422
+ onKeyDown: onFilterInputKeyDown,
423
+ placeholder: props.placeholder,
424
+ className: "p-picklist-filter-input p-inputtext p-component"
425
+ }), /*#__PURE__*/React.createElement("span", {
426
+ className: "p-picklist-filter-icon pi pi-search"
427
+ }));
428
+
429
+ if (props.filterTemplate) {
430
+ var defaultContentOptions = {
431
+ className: 'p-picklist-filter',
432
+ inputProps: {
433
+ className: 'p-picklist-filter-input p-inputtext p-component',
434
+ onChange: onFilter,
435
+ onKeyDown: onFilterInputKeyDown
436
+ },
437
+ iconClassName: 'p-picklist-filter-icon pi pi-search',
438
+ element: content,
439
+ props: props
440
+ };
441
+ content = ObjectUtils.getJSXElement(props.filterTemplate, defaultContentOptions);
442
+ }
443
+
444
+ return /*#__PURE__*/React.createElement("div", {
445
+ className: "p-picklist-filter-container"
446
+ }, content);
447
+ }
448
+
449
+ return null;
450
+ };
451
+
396
452
  var createList = function createList() {
397
453
  var items = createItems();
398
454
  var className = classNames('p-picklist-list', props.listClassName);
@@ -406,19 +462,20 @@ var PickListSubList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(fun
406
462
 
407
463
  var className = classNames('p-picklist-list-wrapper', props.className);
408
464
  var header = createHeader();
465
+ var filter = createFilter();
409
466
  var list = createList();
410
467
  return /*#__PURE__*/React.createElement("div", {
411
468
  ref: listElementRef,
412
469
  className: className
413
- }, header, list);
470
+ }, header, filter, list);
414
471
  }));
415
472
  PickListSubList.displayName = 'PickListSubList';
416
473
 
417
474
  var PickListTransferControls = /*#__PURE__*/React.memo(function (props) {
418
- var moveRightDisabled = ObjectUtils.isEmpty(props.sourceSelection);
419
- var moveLeftDisabled = ObjectUtils.isEmpty(props.targetSelection);
420
- var moveAllRightDisabled = ObjectUtils.isEmpty(props.source);
421
- var moveAllLeftDisabled = ObjectUtils.isEmpty(props.target);
475
+ var moveRightDisabled = ObjectUtils.isEmpty(props.sourceSelection) || ObjectUtils.isEmpty(props.visibleSourceList);
476
+ var moveLeftDisabled = ObjectUtils.isEmpty(props.targetSelection) || ObjectUtils.isEmpty(props.visibleTargetList);
477
+ var moveAllRightDisabled = ObjectUtils.isEmpty(props.visibleSourceList);
478
+ var moveAllLeftDisabled = ObjectUtils.isEmpty(props.visibleTargetList);
422
479
 
423
480
  var moveRight = function moveRight(event) {
424
481
  var selection = props.sourceSelection;
@@ -449,8 +506,12 @@ var PickListTransferControls = /*#__PURE__*/React.memo(function (props) {
449
506
 
450
507
  var moveAllRight = function moveAllRight(event) {
451
508
  if (props.source) {
452
- var targetList = [].concat(_toConsumableArray(props.target), _toConsumableArray(props.source));
453
- var sourceList = [];
509
+ var targetList = [].concat(_toConsumableArray(props.target), _toConsumableArray(props.visibleSourceList));
510
+ var sourceList = props.source.filter(function (s) {
511
+ return !props.visibleSourceList.some(function (vs) {
512
+ return vs === s;
513
+ });
514
+ });
454
515
 
455
516
  if (props.onTransfer) {
456
517
  props.onTransfer({
@@ -492,8 +553,12 @@ var PickListTransferControls = /*#__PURE__*/React.memo(function (props) {
492
553
 
493
554
  var moveAllLeft = function moveAllLeft(event) {
494
555
  if (props.source) {
495
- var sourceList = [].concat(_toConsumableArray(props.source), _toConsumableArray(props.target));
496
- var targetList = [];
556
+ var sourceList = [].concat(_toConsumableArray(props.source), _toConsumableArray(props.visibleTargetList));
557
+ var targetList = props.target.filter(function (t) {
558
+ return !props.visibleTargetList.some(function (vt) {
559
+ return vt === t;
560
+ });
561
+ });
497
562
 
498
563
  if (props.onTransfer) {
499
564
  props.onTransfer({
@@ -544,12 +609,27 @@ var PickList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
544
609
  targetSelectionState = _React$useState4[0],
545
610
  setTargetSelectionState = _React$useState4[1];
546
611
 
612
+ var _React$useState5 = React.useState(''),
613
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
614
+ sourceFilterValueState = _React$useState6[0],
615
+ setSourceFilterValueState = _React$useState6[1];
616
+
617
+ var _React$useState7 = React.useState(''),
618
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
619
+ targetFilterValueState = _React$useState8[0],
620
+ setTargetFilterValueState = _React$useState8[1];
621
+
547
622
  var sourceListElementRef = React.useRef(null);
548
623
  var targetListElementRef = React.useRef(null);
549
624
  var reorderedListElementRef = React.useRef(null);
550
625
  var reorderDirection = React.useRef(null);
551
626
  var sourceSelection = props.onSourceSelectionChange ? props.sourceSelection : sourceSelectionState;
552
627
  var targetSelection = props.onTargetSelectionChange ? props.targetSelection : targetSelectionState;
628
+ var sourceFilteredValue = props.onSourceFilterChange ? props.sourceFilterValue : sourceFilterValueState;
629
+ var targetFilteredValue = props.onTargetFilterChange ? props.targetFilterValue : targetFilterValueState;
630
+ var hasFilterBy = ObjectUtils.isNotEmpty(props.filterBy);
631
+ var showSourceFilter = hasFilterBy && props.showSourceFilter;
632
+ var showTargetFilter = hasFilterBy && props.showTargetFilter;
553
633
 
554
634
  var onSourceReorder = function onSourceReorder(event) {
555
635
  handleChange(event, event.value, props.target);
@@ -684,6 +764,52 @@ var PickList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
684
764
  }
685
765
  };
686
766
 
767
+ var onFilter = function onFilter(event) {
768
+ var originalEvent = event.originalEvent,
769
+ value = event.value,
770
+ type = event.type;
771
+
772
+ var _ref = type === 'source' ? [setSourceFilterValueState, props.onSourceFilterChange] : [setTargetFilterValueState, props.onTargetFilterChange],
773
+ _ref2 = _slicedToArray(_ref, 2),
774
+ setFilterState = _ref2[0],
775
+ onFilterChange = _ref2[1];
776
+
777
+ if (onFilterChange) {
778
+ onFilterChange({
779
+ originalEvent: originalEvent,
780
+ value: value
781
+ });
782
+ } else {
783
+ setFilterState(value);
784
+ }
785
+ };
786
+
787
+ var getVisibleList = function getVisibleList(list, type) {
788
+ var _ref3 = type === 'source' ? [sourceFilteredValue, filterSource] : [targetFilteredValue, filterTarget],
789
+ _ref4 = _slicedToArray(_ref3, 2),
790
+ filteredValue = _ref4[0],
791
+ filterCallback = _ref4[1];
792
+
793
+ return hasFilterBy && ObjectUtils.isNotEmpty(filteredValue) ? filterCallback(filteredValue) : list;
794
+ };
795
+
796
+ var filterSource = function filterSource() {
797
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
798
+ var filteredValue = value.trim().toLocaleLowerCase(props.filterLocale);
799
+ return filter(props.source, filteredValue);
800
+ };
801
+
802
+ var filterTarget = function filterTarget() {
803
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
804
+ var filteredValue = value.trim().toLocaleLowerCase(props.filterLocale);
805
+ return filter(props.target, filteredValue);
806
+ };
807
+
808
+ var filter = function filter(list, filterValue) {
809
+ var searchFields = hasFilterBy ? props.filterBy.split(',') : [];
810
+ return FilterService.filter(list, searchFields, filterValue, props.filterMatchMode, props.filterLocale);
811
+ };
812
+
687
813
  useUpdateEffect(function () {
688
814
  if (reorderedListElementRef.current) {
689
815
  handleScrollPosition(reorderedListElementRef.current, reorderDirection.current);
@@ -695,6 +821,8 @@ var PickList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
695
821
  var className = classNames('p-picklist p-component', props.className);
696
822
  var sourceItemTemplate = props.sourceItemTemplate ? props.sourceItemTemplate : props.itemTemplate;
697
823
  var targetItemTemplate = props.targetItemTemplate ? props.targetItemTemplate : props.itemTemplate;
824
+ var sourceList = getVisibleList(props.source, 'source');
825
+ var targetList = getVisibleList(props.target, 'target');
698
826
  return /*#__PURE__*/React.createElement("div", _extends({
699
827
  id: props.id,
700
828
  className: className,
@@ -707,7 +835,8 @@ var PickList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
707
835
  dataKey: props.dataKey
708
836
  }), /*#__PURE__*/React.createElement(PickListSubList, {
709
837
  ref: sourceListElementRef,
710
- list: props.source,
838
+ type: "source",
839
+ list: sourceList,
711
840
  selection: sourceSelection,
712
841
  onSelectionChange: function onSelectionChange(e) {
713
842
  return _onSelectionChange(e, 'sourceSelection', props.onSourceSelectionChange);
@@ -719,17 +848,25 @@ var PickList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
719
848
  listClassName: "p-picklist-source",
720
849
  metaKeySelection: props.metaKeySelection,
721
850
  tabIndex: props.tabIndex,
722
- dataKey: props.dataKey
851
+ dataKey: props.dataKey,
852
+ filterValue: sourceFilteredValue,
853
+ onFilter: onFilter,
854
+ showFilter: showSourceFilter,
855
+ placeholder: props.sourceFilterPlaceholder,
856
+ template: props.sourceFilterTemplate
723
857
  }), /*#__PURE__*/React.createElement(PickListTransferControls, {
724
858
  onTransfer: onTransfer,
725
859
  source: props.source,
860
+ visibleSourceList: sourceList,
726
861
  target: props.target,
862
+ visibleTargetList: targetList,
727
863
  sourceSelection: sourceSelection,
728
864
  targetSelection: targetSelection,
729
865
  dataKey: props.dataKey
730
866
  }), /*#__PURE__*/React.createElement(PickListSubList, {
731
867
  ref: targetListElementRef,
732
- list: props.target,
868
+ type: "target",
869
+ list: targetList,
733
870
  selection: targetSelection,
734
871
  onSelectionChange: function onSelectionChange(e) {
735
872
  return _onSelectionChange(e, 'targetSelection', props.onTargetSelectionChange);
@@ -741,7 +878,12 @@ var PickList = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
741
878
  listClassName: "p-picklist-target",
742
879
  metaKeySelection: props.metaKeySelection,
743
880
  tabIndex: props.tabIndex,
744
- dataKey: props.dataKey
881
+ dataKey: props.dataKey,
882
+ filterValue: targetFilteredValue,
883
+ onFilter: onFilter,
884
+ showFilter: showTargetFilter,
885
+ placeholder: props.targetFilterPlaceholder,
886
+ template: props.targetFilterTemplate
745
887
  }), props.showTargetControls && /*#__PURE__*/React.createElement(PickListControls, {
746
888
  list: props.target,
747
889
  selection: targetSelection,
@@ -767,6 +909,17 @@ PickList.defaultProps = {
767
909
  showSourceControls: true,
768
910
  showTargetControls: true,
769
911
  metaKeySelection: true,
912
+ filterBy: null,
913
+ filterMatchMode: 'contains',
914
+ filterLocale: undefined,
915
+ sourceFilterValue: null,
916
+ targetFilterValue: null,
917
+ showSourceFilter: true,
918
+ showTargetFilter: true,
919
+ sourceFilterPlaceholder: null,
920
+ targetFilterPlaceholder: null,
921
+ sourceFilterTemplate: null,
922
+ targetFilterTemplate: null,
770
923
  tabIndex: 0,
771
924
  dataKey: null,
772
925
  itemTemplate: null,
@@ -778,7 +931,9 @@ PickList.defaultProps = {
778
931
  onMoveToTarget: null,
779
932
  onMoveAllToTarget: null,
780
933
  onSourceSelectionChange: null,
781
- onTargetSelectionChange: null
934
+ onTargetSelectionChange: null,
935
+ onSourceFilterChange: null,
936
+ onTargetFilterChange: null
782
937
  };
783
938
 
784
939
  export { PickList };
@@ -1 +1 @@
1
- import*as e from"react";import{useUpdateEffect as t}from"primereact/hooks";import{classNames as n,ObjectUtils as r,DomHandler as a}from"primereact/utils";import{Button as o}from"primereact/button";import{Ripple as l}from"primereact/ripple";function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function c(e){if(Array.isArray(e))return e}function s(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){i=!0,a=e}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function m(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(e,t){return c(e)||s(e,t)||p(e,t)||m()}function f(e){if(Array.isArray(e))return u(e)}function g(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function v(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(e){return f(e)||g(e)||p(e)||v()}var h=e.memo((function(t){var a=!t.selection.length,l=n("p-picklist-buttons",t.className);return e.createElement("div",{className:l},e.createElement(o,{disabled:a,type:"button",icon:"pi pi-angle-up",onClick:function(e){var n=t.selection;if(n&&n.length){for(var a=y(t.list),o=0;o<n.length;o++){var l=r.findIndexInList(n[o],a,t.dataKey);if(0===l)break;var i=a[l-1];a[l-1]=a[l],a[l]=i}t.onReorder&&t.onReorder({originalEvent:e,value:a,direction:"up"})}}}),e.createElement(o,{disabled:a,type:"button",icon:"pi pi-angle-double-up",onClick:function(e){var n=t.selection;if(n&&n.length){for(var a=y(t.list),o=0;o<n.length;o++){var l=r.findIndexInList(n[o],a,t.dataKey);if(0===l)break;var i=a.splice(l,1)[0];a.unshift(i)}t.onReorder&&t.onReorder({originalEvent:e,value:a,direction:"top"})}}}),e.createElement(o,{disabled:a,type:"button",icon:"pi pi-angle-down",onClick:function(e){var n=t.selection;if(n&&n.length){for(var a=y(t.list),o=n.length-1;o>=0;o--){var l=r.findIndexInList(n[o],a,t.dataKey);if(l===a.length-1)break;var i=a[l+1];a[l+1]=a[l],a[l]=i}t.onReorder&&t.onReorder({originalEvent:e,value:a,direction:"down"})}}}),e.createElement(o,{disabled:a,type:"button",icon:"pi pi-angle-double-down",onClick:function(e){var n=t.selection;if(n&&n.length){for(var a=y(t.list),o=n.length-1;o>=0;o--){var l=r.findIndexInList(n[o],a,t.dataKey);if(l===a.length-1)break;var i=a.splice(l,1)[0];a.push(i)}t.onReorder&&t.onReorder({originalEvent:e,value:a,direction:"bottom"})}}}))}));h.displayName="PickListControls";var S=e.memo((function(t){var r=t.template?t.template(t.value):t.value,a=n("p-picklist-item",{"p-highlight":t.selected},t.className);return e.createElement("li",{className:a,onClick:function(e){t.onClick&&t.onClick({originalEvent:e,value:t.value})},onKeyDown:function(e){t.onKeyDown&&t.onKeyDown({originalEvent:e,value:t.value})},tabIndex:t.tabIndex,role:"option","aria-selected":t.selected},r,e.createElement(l,null))}));S.displayName="PickListItem";var b=e.memo(e.forwardRef((function(t,o){var l=e.useRef(null),i=function(e){var n=e.originalEvent,a=e.value,o=y(t.selection),l=r.findIndexInList(a,o,t.dataKey),i=-1!==l;if(t.metaKeySelection){var c=n.metaKey||n.ctrlKey;i&&c?o.splice(l,1):(c||(o.length=0),o.push(a))}else i?o.splice(l,1):o.push(a);t.onSelectionChange&&t.onSelectionChange({event:n,value:o})},c=function(e){var t=e.originalEvent,n=t.currentTarget;switch(t.which){case 40:var r=s(n);r&&r.focus(),t.preventDefault();break;case 38:var a=u(n);a&&a.focus(),t.preventDefault();break;case 13:i(e),t.preventDefault()}},s=function e(t){var n=t.nextElementSibling;return n?a.hasClass(n,"p-picklist-item")?n:e(n):null},u=function e(t){var n=t.previousElementSibling;return n?a.hasClass(n,"p-picklist-item")?n:e(n):null},p=function(e){return-1!==r.findIndexInList(e,t.selection,t.dataKey)};e.useImperativeHandle(o,(function(){return{listElementRef:l}}));var m=n("p-picklist-list-wrapper",t.className),d=t.header?e.createElement("div",{className:"p-picklist-header"},r.getJSXElement(t.header,t)):null,f=function(){var r=t.list?t.list.map((function(n){var r=JSON.stringify(n),a=p(n);return e.createElement(S,{key:r,value:n,template:t.itemTemplate,selected:a,onClick:i,onKeyDown:c,tabIndex:t.tabIndex})})):null,a=n("p-picklist-list",t.listClassName);return e.createElement("ul",{className:a,style:t.style,role:"listbox","aria-multiselectable":!0},r)}();return e.createElement("div",{ref:l,className:m},d,f)})));b.displayName="PickListSubList";var E=e.memo((function(t){var a=r.isEmpty(t.sourceSelection),l=r.isEmpty(t.targetSelection),i=r.isEmpty(t.source),c=r.isEmpty(t.target),s=n("p-picklist-buttons p-picklist-transfer-buttons",t.className);return e.createElement("div",{className:s},e.createElement(o,{disabled:a,type:"button",icon:"pi pi-angle-right",onClick:function(e){var n=t.sourceSelection;if(r.isNotEmpty(n)){for(var a=y(t.target),o=y(t.source),l=0;l<n.length;l++){var i=n[l];-1===r.findIndexInList(i,a,t.dataKey)&&a.push(o.splice(r.findIndexInList(i,o,t.dataKey),1)[0])}t.onTransfer&&t.onTransfer({originalEvent:e,source:o,target:a,direction:"toTarget"})}}}),e.createElement(o,{disabled:i,type:"button",icon:"pi pi-angle-double-right",onClick:function(e){if(t.source){var n=[].concat(y(t.target),y(t.source));t.onTransfer&&t.onTransfer({originalEvent:e,source:[],target:n,direction:"allToTarget"})}}}),e.createElement(o,{disabled:l,type:"button",icon:"pi pi-angle-left",onClick:function(e){var n=t.targetSelection;if(r.isNotEmpty(n)){for(var a=y(t.target),o=y(t.source),l=0;l<n.length;l++){var i=n[l];-1===r.findIndexInList(i,o,t.dataKey)&&o.push(a.splice(r.findIndexInList(i,a,t.dataKey),1)[0])}t.onTransfer&&t.onTransfer({originalEvent:e,source:o,target:a,direction:"toSource"})}}}),e.createElement(o,{disabled:c,type:"button",icon:"pi pi-angle-double-left",onClick:function(e){if(t.source){var n=[].concat(y(t.source),y(t.target));t.onTransfer&&t.onTransfer({originalEvent:e,source:n,target:[],direction:"allToSource"})}}}))}));E.displayName="PickListTransferControls";var T=e.memo(e.forwardRef((function(o,l){var c=d(e.useState([]),2),s=c[0],u=c[1],p=d(e.useState([]),2),m=p[0],f=p[1],g=e.useRef(null),v=e.useRef(null),y=e.useRef(null),S=e.useRef(null),k=o.onSourceSelectionChange?o.sourceSelection:s,I=o.onTargetSelectionChange?o.targetSelection:m,C=function(e,t){if(e){var n=a.findSingle(e,".p-picklist-list");switch(t){case"up":N(n,-1);break;case"top":n.scrollTop=0;break;case"down":N(n,1);break;case"bottom":setTimeout((function(){return n.scrollTop=n.scrollHeight}),100)}}},K=function(e,t,n){o.onChange&&o.onChange({originalEvent:e.originalEvent,source:t,target:n})},N=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e.getElementsByClassName("p-highlight");r.isNotEmpty(n)&&a.scrollInView(e,-1===t?n[0]:n[n.length-1])},w=function(e,t,n){n?n(e):"sourceSelection"===t?u(e.value):f(e.value),r.isNotEmpty(k)&&"targetSelection"===t?u([]):r.isNotEmpty(I)&&"sourceSelection"===t&&f([])};t((function(){y.current&&(C(y.current,S.current),y.current=null,S.current=null)}));var x=r.findDiffKeys(o,T.defaultProps),R=n("p-picklist p-component",o.className),L=o.sourceItemTemplate?o.sourceItemTemplate:o.itemTemplate,A=o.targetItemTemplate?o.targetItemTemplate:o.itemTemplate;return e.createElement("div",i({id:o.id,className:R,style:o.style},x),o.showSourceControls&&e.createElement(h,{list:o.source,selection:k,onReorder:function(e){K(e,e.value,o.target),y.current=g.current.listElementRef.current,S.current=e.direction},className:"p-picklist-source-controls",dataKey:o.dataKey}),e.createElement(b,{ref:g,list:o.source,selection:k,onSelectionChange:function(e){return w(e,"sourceSelection",o.onSourceSelectionChange)},itemTemplate:L,header:o.sourceHeader,style:o.sourceStyle,className:"p-picklist-source-wrapper",listClassName:"p-picklist-source",metaKeySelection:o.metaKeySelection,tabIndex:o.tabIndex,dataKey:o.dataKey}),e.createElement(E,{onTransfer:function(e){var t=e.originalEvent,n=e.source,r=e.target;switch(e.direction){case"toTarget":o.onMoveToTarget&&o.onMoveToTarget({originalEvent:t,value:k});break;case"allToTarget":o.onMoveAllToTarget&&o.onMoveAllToTarget({originalEvent:t,value:o.source});break;case"toSource":o.onMoveToSource&&o.onMoveToSource({originalEvent:t,value:I});break;case"allToSource":o.onMoveAllToSource&&o.onMoveAllToSource({originalEvent:t,value:o.target})}w({originalEvent:t,value:[]},"sourceSelection",o.onSourceSelectionChange),w({originalEvent:t,value:[]},"targetSelection",o.onTargetSelectionChange),K(e,n,r)},source:o.source,target:o.target,sourceSelection:k,targetSelection:I,dataKey:o.dataKey}),e.createElement(b,{ref:v,list:o.target,selection:I,onSelectionChange:function(e){return w(e,"targetSelection",o.onTargetSelectionChange)},itemTemplate:A,header:o.targetHeader,style:o.targetStyle,className:"p-picklist-target-wrapper",listClassName:"p-picklist-target",metaKeySelection:o.metaKeySelection,tabIndex:o.tabIndex,dataKey:o.dataKey}),o.showTargetControls&&e.createElement(h,{list:o.target,selection:I,onReorder:function(e){K(e,o.source,e.value),y.current=v.current.listElementRef.current,S.current=e.direction},className:"p-picklist-target-controls",dataKey:o.dataKey}))})));T.displayName="PickList",T.defaultProps={__TYPE:"PickList",id:null,source:null,target:null,sourceHeader:null,targetHeader:null,style:null,className:null,sourceStyle:null,targetStyle:null,sourceSelection:null,targetSelection:null,showSourceControls:!0,showTargetControls:!0,metaKeySelection:!0,tabIndex:0,dataKey:null,itemTemplate:null,sourceItemTemplate:null,targetItemTemplate:null,onChange:null,onMoveToSource:null,onMoveAllToSource:null,onMoveToTarget:null,onMoveAllToTarget:null,onSourceSelectionChange:null,onTargetSelectionChange:null};export{T as PickList};
1
+ import*as e from"react";import{FilterService as t}from"primereact/api";import{useUpdateEffect as n}from"primereact/hooks";import{classNames as r,ObjectUtils as l,DomHandler as i}from"primereact/utils";import{Button as a}from"primereact/button";import{Ripple as o}from"primereact/ripple";function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function s(e){if(Array.isArray(e))return e}function u(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,i=[],a=!0,o=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){o=!0,l=e}finally{try{a||null==n.return||n.return()}finally{if(o)throw l}}return i}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}function f(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e,t){return s(e)||u(e,t)||m(e,t)||f()}function d(e){if(Array.isArray(e))return p(e)}function v(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function y(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e){return d(e)||v(e)||m(e)||y()}var S=e.memo((function(t){var n=!t.selection.length,i=r("p-picklist-buttons",t.className);return e.createElement("div",{className:i},e.createElement(a,{disabled:n,type:"button",icon:"pi pi-angle-up",onClick:function(e){var n=t.selection;if(n&&n.length){for(var r=h(t.list),i=0;i<n.length;i++){var a=l.findIndexInList(n[i],r,t.dataKey);if(0===a)break;var o=r[a-1];r[a-1]=r[a],r[a]=o}t.onReorder&&t.onReorder({originalEvent:e,value:r,direction:"up"})}}}),e.createElement(a,{disabled:n,type:"button",icon:"pi pi-angle-double-up",onClick:function(e){var n=t.selection;if(n&&n.length){for(var r=h(t.list),i=0;i<n.length;i++){var a=l.findIndexInList(n[i],r,t.dataKey);if(0===a)break;var o=r.splice(a,1)[0];r.unshift(o)}t.onReorder&&t.onReorder({originalEvent:e,value:r,direction:"top"})}}}),e.createElement(a,{disabled:n,type:"button",icon:"pi pi-angle-down",onClick:function(e){var n=t.selection;if(n&&n.length){for(var r=h(t.list),i=n.length-1;i>=0;i--){var a=l.findIndexInList(n[i],r,t.dataKey);if(a===r.length-1)break;var o=r[a+1];r[a+1]=r[a],r[a]=o}t.onReorder&&t.onReorder({originalEvent:e,value:r,direction:"down"})}}}),e.createElement(a,{disabled:n,type:"button",icon:"pi pi-angle-double-down",onClick:function(e){var n=t.selection;if(n&&n.length){for(var r=h(t.list),i=n.length-1;i>=0;i--){var a=l.findIndexInList(n[i],r,t.dataKey);if(a===r.length-1)break;var o=r.splice(a,1)[0];r.push(o)}t.onReorder&&t.onReorder({originalEvent:e,value:r,direction:"bottom"})}}}))}));S.displayName="PickListControls";var b=e.memo((function(t){var n=t.template?t.template(t.value):t.value,l=r("p-picklist-item",{"p-highlight":t.selected},t.className);return e.createElement("li",{className:l,onClick:function(e){t.onClick&&t.onClick({originalEvent:e,value:t.value})},onKeyDown:function(e){t.onKeyDown&&t.onKeyDown({originalEvent:e,value:t.value})},tabIndex:t.tabIndex,role:"option","aria-selected":t.selected},n,e.createElement(o,null))}));b.displayName="PickListItem";var T=e.memo(e.forwardRef((function(t,n){var a=e.useRef(null),o=function(e){var n=e.originalEvent,r=e.value,i=h(t.selection),a=l.findIndexInList(r,i,t.dataKey),o=-1!==a;if(t.metaKeySelection){var c=n.metaKey||n.ctrlKey;o&&c?i.splice(a,1):(c||(i.length=0),i.push(r))}else o?i.splice(a,1):i.push(r);t.onSelectionChange&&t.onSelectionChange({event:n,value:i})},c=function(e){var t=e.originalEvent,n=t.currentTarget;switch(t.which){case 40:var r=s(n);r&&r.focus(),t.preventDefault();break;case 38:var l=u(n);l&&l.focus(),t.preventDefault();break;case 13:o(e),t.preventDefault()}},s=function e(t){var n=t.nextElementSibling;return n?i.hasClass(n,"p-picklist-item")?n:e(n):null},u=function e(t){var n=t.previousElementSibling;return n?i.hasClass(n,"p-picklist-item")?n:e(n):null},p=function(e){return-1!==l.findIndexInList(e,t.selection,t.dataKey)},m=function(e){t.onFilter&&t.onFilter({originalEvent:e,value:e.target.value,type:t.type})},f=function(e){13===e.which&&e.preventDefault()};e.useImperativeHandle(n,(function(){return{listElementRef:a}}));var g=r("p-picklist-list-wrapper",t.className),d=t.header?e.createElement("div",{className:"p-picklist-header"},l.getJSXElement(t.header,t)):null,v=function(){if(t.showFilter){var n=e.createElement("div",{className:"p-picklist-filter"},e.createElement("input",{type:"text",value:t.filterValue,onChange:m,onKeyDown:f,placeholder:t.placeholder,className:"p-picklist-filter-input p-inputtext p-component"}),e.createElement("span",{className:"p-picklist-filter-icon pi pi-search"}));if(t.filterTemplate)n=l.getJSXElement(t.filterTemplate,{className:"p-picklist-filter",inputProps:{className:"p-picklist-filter-input p-inputtext p-component",onChange:m,onKeyDown:f},iconClassName:"p-picklist-filter-icon pi pi-search",element:n,props:t});return e.createElement("div",{className:"p-picklist-filter-container"},n)}return null}(),y=function(){var n=t.list?t.list.map((function(n){var r=JSON.stringify(n),l=p(n);return e.createElement(b,{key:r,value:n,template:t.itemTemplate,selected:l,onClick:o,onKeyDown:c,tabIndex:t.tabIndex})})):null,l=r("p-picklist-list",t.listClassName);return e.createElement("ul",{className:l,style:t.style,role:"listbox","aria-multiselectable":!0},n)}();return e.createElement("div",{ref:a,className:g},d,v,y)})));T.displayName="PickListSubList";var E=e.memo((function(t){var n=l.isEmpty(t.sourceSelection)||l.isEmpty(t.visibleSourceList),i=l.isEmpty(t.targetSelection)||l.isEmpty(t.visibleTargetList),o=l.isEmpty(t.visibleSourceList),c=l.isEmpty(t.visibleTargetList),s=r("p-picklist-buttons p-picklist-transfer-buttons",t.className);return e.createElement("div",{className:s},e.createElement(a,{disabled:n,type:"button",icon:"pi pi-angle-right",onClick:function(e){var n=t.sourceSelection;if(l.isNotEmpty(n)){for(var r=h(t.target),i=h(t.source),a=0;a<n.length;a++){var o=n[a];-1===l.findIndexInList(o,r,t.dataKey)&&r.push(i.splice(l.findIndexInList(o,i,t.dataKey),1)[0])}t.onTransfer&&t.onTransfer({originalEvent:e,source:i,target:r,direction:"toTarget"})}}}),e.createElement(a,{disabled:o,type:"button",icon:"pi pi-angle-double-right",onClick:function(e){if(t.source){var n=[].concat(h(t.target),h(t.visibleSourceList)),r=t.source.filter((function(e){return!t.visibleSourceList.some((function(t){return t===e}))}));t.onTransfer&&t.onTransfer({originalEvent:e,source:r,target:n,direction:"allToTarget"})}}}),e.createElement(a,{disabled:i,type:"button",icon:"pi pi-angle-left",onClick:function(e){var n=t.targetSelection;if(l.isNotEmpty(n)){for(var r=h(t.target),i=h(t.source),a=0;a<n.length;a++){var o=n[a];-1===l.findIndexInList(o,i,t.dataKey)&&i.push(r.splice(l.findIndexInList(o,r,t.dataKey),1)[0])}t.onTransfer&&t.onTransfer({originalEvent:e,source:i,target:r,direction:"toSource"})}}}),e.createElement(a,{disabled:c,type:"button",icon:"pi pi-angle-double-left",onClick:function(e){if(t.source){var n=[].concat(h(t.source),h(t.visibleTargetList)),r=t.target.filter((function(e){return!t.visibleTargetList.some((function(t){return t===e}))}));t.onTransfer&&t.onTransfer({originalEvent:e,source:n,target:r,direction:"allToSource"})}}}))}));E.displayName="PickListTransferControls";var k=e.memo(e.forwardRef((function(a,o){var s=g(e.useState([]),2),u=s[0],p=s[1],m=g(e.useState([]),2),f=m[0],d=m[1],v=g(e.useState(""),2),y=v[0],h=v[1],b=g(e.useState(""),2),C=b[0],I=b[1],w=e.useRef(null),N=e.useRef(null),K=e.useRef(null),L=e.useRef(null),F=a.onSourceSelectionChange?a.sourceSelection:u,x=a.onTargetSelectionChange?a.targetSelection:f,R=a.onSourceFilterChange?a.sourceFilterValue:y,M=a.onTargetFilterChange?a.targetFilterValue:C,A=l.isNotEmpty(a.filterBy),P=A&&a.showSourceFilter,D=A&&a.showTargetFilter,V=function(e,t){if(e){var n=i.findSingle(e,".p-picklist-list");switch(t){case"up":H(n,-1);break;case"top":n.scrollTop=0;break;case"down":H(n,1);break;case"bottom":setTimeout((function(){return n.scrollTop=n.scrollHeight}),100)}}},j=function(e,t,n){a.onChange&&a.onChange({originalEvent:e.originalEvent,source:t,target:n})},H=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e.getElementsByClassName("p-highlight");l.isNotEmpty(n)&&i.scrollInView(e,-1===t?n[0]:n[n.length-1])},O=function(e,t,n){n?n(e):"sourceSelection"===t?p(e.value):d(e.value),l.isNotEmpty(F)&&"targetSelection"===t?p([]):l.isNotEmpty(x)&&"sourceSelection"===t&&d([])},B=function(e){var t=e.originalEvent,n=e.value,r=g("source"===e.type?[h,a.onSourceFilterChange]:[I,a.onTargetFilterChange],2),l=r[0],i=r[1];i?i({originalEvent:t,value:n}):l(n)},J=function(e,t){var n=g("source"===t?[R,X]:[M,_],2),r=n[0],i=n[1];return A&&l.isNotEmpty(r)?i(r):e},X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.trim().toLocaleLowerCase(a.filterLocale);return U(a.source,t)},_=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.trim().toLocaleLowerCase(a.filterLocale);return U(a.target,t)},U=function(e,n){var r=A?a.filterBy.split(","):[];return t.filter(e,r,n,a.filterMatchMode,a.filterLocale)};n((function(){K.current&&(V(K.current,L.current),K.current=null,L.current=null)}));var Y=l.findDiffKeys(a,k.defaultProps),$=r("p-picklist p-component",a.className),q=a.sourceItemTemplate?a.sourceItemTemplate:a.itemTemplate,z=a.targetItemTemplate?a.targetItemTemplate:a.itemTemplate,G=J(a.source,"source"),Q=J(a.target,"target");return e.createElement("div",c({id:a.id,className:$,style:a.style},Y),a.showSourceControls&&e.createElement(S,{list:a.source,selection:F,onReorder:function(e){j(e,e.value,a.target),K.current=w.current.listElementRef.current,L.current=e.direction},className:"p-picklist-source-controls",dataKey:a.dataKey}),e.createElement(T,{ref:w,type:"source",list:G,selection:F,onSelectionChange:function(e){return O(e,"sourceSelection",a.onSourceSelectionChange)},itemTemplate:q,header:a.sourceHeader,style:a.sourceStyle,className:"p-picklist-source-wrapper",listClassName:"p-picklist-source",metaKeySelection:a.metaKeySelection,tabIndex:a.tabIndex,dataKey:a.dataKey,filterValue:R,onFilter:B,showFilter:P,placeholder:a.sourceFilterPlaceholder,template:a.sourceFilterTemplate}),e.createElement(E,{onTransfer:function(e){var t=e.originalEvent,n=e.source,r=e.target;switch(e.direction){case"toTarget":a.onMoveToTarget&&a.onMoveToTarget({originalEvent:t,value:F});break;case"allToTarget":a.onMoveAllToTarget&&a.onMoveAllToTarget({originalEvent:t,value:a.source});break;case"toSource":a.onMoveToSource&&a.onMoveToSource({originalEvent:t,value:x});break;case"allToSource":a.onMoveAllToSource&&a.onMoveAllToSource({originalEvent:t,value:a.target})}O({originalEvent:t,value:[]},"sourceSelection",a.onSourceSelectionChange),O({originalEvent:t,value:[]},"targetSelection",a.onTargetSelectionChange),j(e,n,r)},source:a.source,visibleSourceList:G,target:a.target,visibleTargetList:Q,sourceSelection:F,targetSelection:x,dataKey:a.dataKey}),e.createElement(T,{ref:N,type:"target",list:Q,selection:x,onSelectionChange:function(e){return O(e,"targetSelection",a.onTargetSelectionChange)},itemTemplate:z,header:a.targetHeader,style:a.targetStyle,className:"p-picklist-target-wrapper",listClassName:"p-picklist-target",metaKeySelection:a.metaKeySelection,tabIndex:a.tabIndex,dataKey:a.dataKey,filterValue:M,onFilter:B,showFilter:D,placeholder:a.targetFilterPlaceholder,template:a.targetFilterTemplate}),a.showTargetControls&&e.createElement(S,{list:a.target,selection:x,onReorder:function(e){j(e,a.source,e.value),K.current=N.current.listElementRef.current,L.current=e.direction},className:"p-picklist-target-controls",dataKey:a.dataKey}))})));k.displayName="PickList",k.defaultProps={__TYPE:"PickList",id:null,source:null,target:null,sourceHeader:null,targetHeader:null,style:null,className:null,sourceStyle:null,targetStyle:null,sourceSelection:null,targetSelection:null,showSourceControls:!0,showTargetControls:!0,metaKeySelection:!0,filterBy:null,filterMatchMode:"contains",filterLocale:void 0,sourceFilterValue:null,targetFilterValue:null,showSourceFilter:!0,showTargetFilter:!0,sourceFilterPlaceholder:null,targetFilterPlaceholder:null,sourceFilterTemplate:null,targetFilterTemplate:null,tabIndex:0,dataKey:null,itemTemplate:null,sourceItemTemplate:null,targetItemTemplate:null,onChange:null,onMoveToSource:null,onMoveAllToSource:null,onMoveToTarget:null,onMoveAllToTarget:null,onSourceSelectionChange:null,onTargetSelectionChange:null,onSourceFilterChange:null,onTargetFilterChange:null};export{k as PickList};
@@ -1,5 +1,5 @@
1
1
  this.primereact = this.primereact || {};
2
- this.primereact.picklist = (function (exports, React, hooks, utils, button, ripple) {
2
+ this.primereact.picklist = (function (exports, React, api, hooks, utils, button, ripple) {
3
3
  'use strict';
4
4
 
5
5
  function _interopNamespace(e) {
@@ -375,6 +375,23 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
375
375
  return utils.ObjectUtils.findIndexInList(item, props.selection, props.dataKey) !== -1;
376
376
  };
377
377
 
378
+ var onFilter = function onFilter(event) {
379
+ if (props.onFilter) {
380
+ props.onFilter({
381
+ originalEvent: event,
382
+ value: event.target.value,
383
+ type: props.type
384
+ });
385
+ }
386
+ };
387
+
388
+ var onFilterInputKeyDown = function onFilterInputKeyDown(event) {
389
+ //enter
390
+ if (event.which === 13) {
391
+ event.preventDefault();
392
+ }
393
+ };
394
+
378
395
  React__namespace.useImperativeHandle(ref, function () {
379
396
  return {
380
397
  listElementRef: listElementRef
@@ -411,6 +428,44 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
411
428
  return null;
412
429
  };
413
430
 
431
+ var createFilter = function createFilter() {
432
+ if (props.showFilter) {
433
+ var content = /*#__PURE__*/React__namespace.createElement("div", {
434
+ className: "p-picklist-filter"
435
+ }, /*#__PURE__*/React__namespace.createElement("input", {
436
+ type: "text",
437
+ value: props.filterValue,
438
+ onChange: onFilter,
439
+ onKeyDown: onFilterInputKeyDown,
440
+ placeholder: props.placeholder,
441
+ className: "p-picklist-filter-input p-inputtext p-component"
442
+ }), /*#__PURE__*/React__namespace.createElement("span", {
443
+ className: "p-picklist-filter-icon pi pi-search"
444
+ }));
445
+
446
+ if (props.filterTemplate) {
447
+ var defaultContentOptions = {
448
+ className: 'p-picklist-filter',
449
+ inputProps: {
450
+ className: 'p-picklist-filter-input p-inputtext p-component',
451
+ onChange: onFilter,
452
+ onKeyDown: onFilterInputKeyDown
453
+ },
454
+ iconClassName: 'p-picklist-filter-icon pi pi-search',
455
+ element: content,
456
+ props: props
457
+ };
458
+ content = utils.ObjectUtils.getJSXElement(props.filterTemplate, defaultContentOptions);
459
+ }
460
+
461
+ return /*#__PURE__*/React__namespace.createElement("div", {
462
+ className: "p-picklist-filter-container"
463
+ }, content);
464
+ }
465
+
466
+ return null;
467
+ };
468
+
414
469
  var createList = function createList() {
415
470
  var items = createItems();
416
471
  var className = utils.classNames('p-picklist-list', props.listClassName);
@@ -424,19 +479,20 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
424
479
 
425
480
  var className = utils.classNames('p-picklist-list-wrapper', props.className);
426
481
  var header = createHeader();
482
+ var filter = createFilter();
427
483
  var list = createList();
428
484
  return /*#__PURE__*/React__namespace.createElement("div", {
429
485
  ref: listElementRef,
430
486
  className: className
431
- }, header, list);
487
+ }, header, filter, list);
432
488
  }));
433
489
  PickListSubList.displayName = 'PickListSubList';
434
490
 
435
491
  var PickListTransferControls = /*#__PURE__*/React__namespace.memo(function (props) {
436
- var moveRightDisabled = utils.ObjectUtils.isEmpty(props.sourceSelection);
437
- var moveLeftDisabled = utils.ObjectUtils.isEmpty(props.targetSelection);
438
- var moveAllRightDisabled = utils.ObjectUtils.isEmpty(props.source);
439
- var moveAllLeftDisabled = utils.ObjectUtils.isEmpty(props.target);
492
+ var moveRightDisabled = utils.ObjectUtils.isEmpty(props.sourceSelection) || utils.ObjectUtils.isEmpty(props.visibleSourceList);
493
+ var moveLeftDisabled = utils.ObjectUtils.isEmpty(props.targetSelection) || utils.ObjectUtils.isEmpty(props.visibleTargetList);
494
+ var moveAllRightDisabled = utils.ObjectUtils.isEmpty(props.visibleSourceList);
495
+ var moveAllLeftDisabled = utils.ObjectUtils.isEmpty(props.visibleTargetList);
440
496
 
441
497
  var moveRight = function moveRight(event) {
442
498
  var selection = props.sourceSelection;
@@ -467,8 +523,12 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
467
523
 
468
524
  var moveAllRight = function moveAllRight(event) {
469
525
  if (props.source) {
470
- var targetList = [].concat(_toConsumableArray(props.target), _toConsumableArray(props.source));
471
- var sourceList = [];
526
+ var targetList = [].concat(_toConsumableArray(props.target), _toConsumableArray(props.visibleSourceList));
527
+ var sourceList = props.source.filter(function (s) {
528
+ return !props.visibleSourceList.some(function (vs) {
529
+ return vs === s;
530
+ });
531
+ });
472
532
 
473
533
  if (props.onTransfer) {
474
534
  props.onTransfer({
@@ -510,8 +570,12 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
510
570
 
511
571
  var moveAllLeft = function moveAllLeft(event) {
512
572
  if (props.source) {
513
- var sourceList = [].concat(_toConsumableArray(props.source), _toConsumableArray(props.target));
514
- var targetList = [];
573
+ var sourceList = [].concat(_toConsumableArray(props.source), _toConsumableArray(props.visibleTargetList));
574
+ var targetList = props.target.filter(function (t) {
575
+ return !props.visibleTargetList.some(function (vt) {
576
+ return vt === t;
577
+ });
578
+ });
515
579
 
516
580
  if (props.onTransfer) {
517
581
  props.onTransfer({
@@ -562,12 +626,27 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
562
626
  targetSelectionState = _React$useState4[0],
563
627
  setTargetSelectionState = _React$useState4[1];
564
628
 
629
+ var _React$useState5 = React__namespace.useState(''),
630
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
631
+ sourceFilterValueState = _React$useState6[0],
632
+ setSourceFilterValueState = _React$useState6[1];
633
+
634
+ var _React$useState7 = React__namespace.useState(''),
635
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
636
+ targetFilterValueState = _React$useState8[0],
637
+ setTargetFilterValueState = _React$useState8[1];
638
+
565
639
  var sourceListElementRef = React__namespace.useRef(null);
566
640
  var targetListElementRef = React__namespace.useRef(null);
567
641
  var reorderedListElementRef = React__namespace.useRef(null);
568
642
  var reorderDirection = React__namespace.useRef(null);
569
643
  var sourceSelection = props.onSourceSelectionChange ? props.sourceSelection : sourceSelectionState;
570
644
  var targetSelection = props.onTargetSelectionChange ? props.targetSelection : targetSelectionState;
645
+ var sourceFilteredValue = props.onSourceFilterChange ? props.sourceFilterValue : sourceFilterValueState;
646
+ var targetFilteredValue = props.onTargetFilterChange ? props.targetFilterValue : targetFilterValueState;
647
+ var hasFilterBy = utils.ObjectUtils.isNotEmpty(props.filterBy);
648
+ var showSourceFilter = hasFilterBy && props.showSourceFilter;
649
+ var showTargetFilter = hasFilterBy && props.showTargetFilter;
571
650
 
572
651
  var onSourceReorder = function onSourceReorder(event) {
573
652
  handleChange(event, event.value, props.target);
@@ -702,6 +781,52 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
702
781
  }
703
782
  };
704
783
 
784
+ var onFilter = function onFilter(event) {
785
+ var originalEvent = event.originalEvent,
786
+ value = event.value,
787
+ type = event.type;
788
+
789
+ var _ref = type === 'source' ? [setSourceFilterValueState, props.onSourceFilterChange] : [setTargetFilterValueState, props.onTargetFilterChange],
790
+ _ref2 = _slicedToArray(_ref, 2),
791
+ setFilterState = _ref2[0],
792
+ onFilterChange = _ref2[1];
793
+
794
+ if (onFilterChange) {
795
+ onFilterChange({
796
+ originalEvent: originalEvent,
797
+ value: value
798
+ });
799
+ } else {
800
+ setFilterState(value);
801
+ }
802
+ };
803
+
804
+ var getVisibleList = function getVisibleList(list, type) {
805
+ var _ref3 = type === 'source' ? [sourceFilteredValue, filterSource] : [targetFilteredValue, filterTarget],
806
+ _ref4 = _slicedToArray(_ref3, 2),
807
+ filteredValue = _ref4[0],
808
+ filterCallback = _ref4[1];
809
+
810
+ return hasFilterBy && utils.ObjectUtils.isNotEmpty(filteredValue) ? filterCallback(filteredValue) : list;
811
+ };
812
+
813
+ var filterSource = function filterSource() {
814
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
815
+ var filteredValue = value.trim().toLocaleLowerCase(props.filterLocale);
816
+ return filter(props.source, filteredValue);
817
+ };
818
+
819
+ var filterTarget = function filterTarget() {
820
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
821
+ var filteredValue = value.trim().toLocaleLowerCase(props.filterLocale);
822
+ return filter(props.target, filteredValue);
823
+ };
824
+
825
+ var filter = function filter(list, filterValue) {
826
+ var searchFields = hasFilterBy ? props.filterBy.split(',') : [];
827
+ return api.FilterService.filter(list, searchFields, filterValue, props.filterMatchMode, props.filterLocale);
828
+ };
829
+
705
830
  hooks.useUpdateEffect(function () {
706
831
  if (reorderedListElementRef.current) {
707
832
  handleScrollPosition(reorderedListElementRef.current, reorderDirection.current);
@@ -713,6 +838,8 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
713
838
  var className = utils.classNames('p-picklist p-component', props.className);
714
839
  var sourceItemTemplate = props.sourceItemTemplate ? props.sourceItemTemplate : props.itemTemplate;
715
840
  var targetItemTemplate = props.targetItemTemplate ? props.targetItemTemplate : props.itemTemplate;
841
+ var sourceList = getVisibleList(props.source, 'source');
842
+ var targetList = getVisibleList(props.target, 'target');
716
843
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
717
844
  id: props.id,
718
845
  className: className,
@@ -725,7 +852,8 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
725
852
  dataKey: props.dataKey
726
853
  }), /*#__PURE__*/React__namespace.createElement(PickListSubList, {
727
854
  ref: sourceListElementRef,
728
- list: props.source,
855
+ type: "source",
856
+ list: sourceList,
729
857
  selection: sourceSelection,
730
858
  onSelectionChange: function onSelectionChange(e) {
731
859
  return _onSelectionChange(e, 'sourceSelection', props.onSourceSelectionChange);
@@ -737,17 +865,25 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
737
865
  listClassName: "p-picklist-source",
738
866
  metaKeySelection: props.metaKeySelection,
739
867
  tabIndex: props.tabIndex,
740
- dataKey: props.dataKey
868
+ dataKey: props.dataKey,
869
+ filterValue: sourceFilteredValue,
870
+ onFilter: onFilter,
871
+ showFilter: showSourceFilter,
872
+ placeholder: props.sourceFilterPlaceholder,
873
+ template: props.sourceFilterTemplate
741
874
  }), /*#__PURE__*/React__namespace.createElement(PickListTransferControls, {
742
875
  onTransfer: onTransfer,
743
876
  source: props.source,
877
+ visibleSourceList: sourceList,
744
878
  target: props.target,
879
+ visibleTargetList: targetList,
745
880
  sourceSelection: sourceSelection,
746
881
  targetSelection: targetSelection,
747
882
  dataKey: props.dataKey
748
883
  }), /*#__PURE__*/React__namespace.createElement(PickListSubList, {
749
884
  ref: targetListElementRef,
750
- list: props.target,
885
+ type: "target",
886
+ list: targetList,
751
887
  selection: targetSelection,
752
888
  onSelectionChange: function onSelectionChange(e) {
753
889
  return _onSelectionChange(e, 'targetSelection', props.onTargetSelectionChange);
@@ -759,7 +895,12 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
759
895
  listClassName: "p-picklist-target",
760
896
  metaKeySelection: props.metaKeySelection,
761
897
  tabIndex: props.tabIndex,
762
- dataKey: props.dataKey
898
+ dataKey: props.dataKey,
899
+ filterValue: targetFilteredValue,
900
+ onFilter: onFilter,
901
+ showFilter: showTargetFilter,
902
+ placeholder: props.targetFilterPlaceholder,
903
+ template: props.targetFilterTemplate
763
904
  }), props.showTargetControls && /*#__PURE__*/React__namespace.createElement(PickListControls, {
764
905
  list: props.target,
765
906
  selection: targetSelection,
@@ -785,6 +926,17 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
785
926
  showSourceControls: true,
786
927
  showTargetControls: true,
787
928
  metaKeySelection: true,
929
+ filterBy: null,
930
+ filterMatchMode: 'contains',
931
+ filterLocale: undefined,
932
+ sourceFilterValue: null,
933
+ targetFilterValue: null,
934
+ showSourceFilter: true,
935
+ showTargetFilter: true,
936
+ sourceFilterPlaceholder: null,
937
+ targetFilterPlaceholder: null,
938
+ sourceFilterTemplate: null,
939
+ targetFilterTemplate: null,
788
940
  tabIndex: 0,
789
941
  dataKey: null,
790
942
  itemTemplate: null,
@@ -796,7 +948,9 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
796
948
  onMoveToTarget: null,
797
949
  onMoveAllToTarget: null,
798
950
  onSourceSelectionChange: null,
799
- onTargetSelectionChange: null
951
+ onTargetSelectionChange: null,
952
+ onSourceFilterChange: null,
953
+ onTargetFilterChange: null
800
954
  };
801
955
 
802
956
  exports.PickList = PickList;
@@ -805,4 +959,4 @@ this.primereact.picklist = (function (exports, React, hooks, utils, button, ripp
805
959
 
806
960
  return exports;
807
961
 
808
- })({}, React, primereact.hooks, primereact.utils, primereact.button, primereact.ripple);
962
+ })({}, React, primereact.api, primereact.hooks, primereact.utils, primereact.button, primereact.ripple);
@@ -1 +1 @@
1
- .p-picklist{display:flex}.p-picklist-buttons{display:flex;flex-direction:column;justify-content:center}.p-picklist-list-wrapper{flex:1 1 50%}.p-picklist-list{list-style-type:none;margin:0;padding:0;overflow:auto;min-height:12rem;max-height:24rem}.p-picklist-item{cursor:pointer;overflow:hidden;position:relative}
1
+ .p-picklist{display:flex}.p-picklist-buttons{display:flex;flex-direction:column;justify-content:center}.p-picklist-list-wrapper{flex:1 1 50%}.p-picklist-list{list-style-type:none;margin:0;padding:0;overflow:auto;min-height:12rem;max-height:24rem}.p-picklist-item{cursor:pointer;overflow:hidden;position:relative}.p-picklist-filter{position:relative}.p-picklist-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-picklist-filter-input{width:100%}