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 +1 @@
1
- this.primereact=this.primereact||{},this.primereact.panelmenu=function(e,t,n,a,l){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var i=r(t);function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},o.apply(this,arguments)}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function u(e){if(Array.isArray(e))return s(e)}function m(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function c(e,t){if(e){if("string"==typeof e)return s(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)?s(e,t):void 0}}function p(){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 d(e){return u(e)||m(e)||c(e)||p()}function f(e){if(Array.isArray(e))return e}function b(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r=[],i=!0,o=!1;try{for(n=n.call(e);!(i=(a=n.next()).done)&&(r.push(a.value),!t||r.length!==t);i=!0);}catch(e){o=!0,l=e}finally{try{i||null==n.return||n.return()}finally{if(o)throw l}}return r}}function y(){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 N(e,t){return f(e)||b(e,t)||c(e,t)||y()}var v=i.memo((function(e){var t=N(i.useState(null),2),r=t[0],o=t[1],s=function(){if(e.model){if(e.multiple)return e.model.filter((function(e){return e.expanded}));var t=null;return e.model.forEach((function(e){e.expanded&&(t?e.expanded=!1:t=e)})),t}return null},u=function(t,n){if(n.disabled)t.preventDefault();else{n.url||t.preventDefault(),n.command&&n.command({originalEvent:t,item:n});var a=r;m(n)?(n.expanded=!1,o(e.multiple?a.filter((function(e){return e!==n})):null)):(!e.multiple&&a&&(a.expanded=!1),n.expanded=!0,o(e.multiple?[].concat(d(a||[]),[n]):n))}},m=function(t){return r&&(e.multiple?r.indexOf(t)>-1:r===t)};a.useMountEffect((function(){o(s())}));var c=function(e){return i.createElement("li",{key:"separator_"+e,className:"p-menu-separator"})},p=function(t,a){var r=l.classNames("p-toggleable-content",{"p-toggleable-content-collapsed":!a}),o=i.createRef();return t.items?i.createElement(n.CSSTransition,{nodeRef:o,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:a,unmountOnExit:!0},i.createElement("div",{ref:o,className:r},i.createElement(v,{menuProps:e.menuProps,model:t.items,multiple:e.multiple}))):null},f=function(t,n){var a=t.label+"_"+n,r=m(t),o=l.classNames("p-menuitem",t.className),s=l.classNames("p-menuitem-link",{"p-disabled":t.disabled}),c=l.classNames("p-menuitem-icon",t.icon),d=l.classNames("p-panelmenu-icon pi pi-fw",{"pi-angle-right":!r,"pi-angle-down":r}),f=l.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e.menuProps}),b=t.label&&i.createElement("span",{className:"p-menuitem-text"},t.label),y=t.items&&i.createElement("span",{className:d}),N=p(t,r),v=i.createElement("a",{href:t.url||"#",className:s,target:t.target,onClick:function(e){return u(e,t)},role:"menuitem","aria-disabled":t.disabled},y,f,b);t.template&&(v=l.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return u(e,t)},className:s,labelClassName:"p-menuitem-text",iconClassName:c,submenuIconClassName:d,element:v,props:e,leaf:!t.items,active:r}));return i.createElement("li",{key:a,className:o,style:t.style,role:"none"},v,N)},b=function(e,t){return e.separator?c(t):f(e,t)},y=l.classNames("p-submenu-list",e.className),g=e.model?e.model.map(b):null;return i.createElement("ul",{className:y,role:"tree"},g)}));v.displayName="PanelMenuSub";var g=i.memo(i.forwardRef((function(e,t){var r=N(i.useState(e.id),2),s=r[0],u=r[1],m=N(i.useState(null),2),c=m[0],p=m[1],f=N(i.useState(!1),2),b=f[0],y=f[1],h=s+"_header",E=s+"_content",x=function(){if(e.model){if(e.multiple)return e.model.filter((function(e){return e.expanded}));var t=null;return e.model.forEach((function(e){e.expanded&&(t?e.expanded=!1:t=e)})),t}return null},O=function(t,n){if(n.disabled)t.preventDefault();else{n.url||t.preventDefault(),n.command&&n.command({originalEvent:t,item:n});var a=c;S(n)?(n.expanded=!1,p(e.multiple?a.filter((function(e){return e!==n})):null)):(!e.multiple&&a&&(a.expanded=!1),n.expanded=!0,p(e.multiple?[].concat(d(a||[]),[n]):n))}},S=function(t){return c&&(e.multiple?c.indexOf(t)>-1:c===t)};a.useMountEffect((function(){s||u(l.UniqueComponentId()),p(x())})),a.useUpdateEffect((function(){y(!0),p(x())}),[e.model]);var j=function(){y(!1)},P=function(t,a){var r=t.label+"_"+a,o=S(t),s=l.classNames("p-panelmenu-panel",t.className),u=l.classNames("p-component p-panelmenu-header",{"p-highlight":o,"p-disabled":t.disabled}),m=l.classNames("p-panelmenu-icon pi",{"pi-chevron-right":!o," pi-chevron-down":o}),c=l.classNames("p-menuitem-icon",t.icon),p=l.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e}),d=t.items&&i.createElement("span",{className:m}),f=t.label&&i.createElement("span",{className:"p-menuitem-text"},t.label),y=l.classNames("p-toggleable-content",{"p-toggleable-content-collapsed":!o}),N=i.createRef(),g=i.createElement("a",{href:t.url||"#",className:"p-panelmenu-header-link",onClick:function(e){return O(e,t)},"aria-expanded":o,id:h,"aria-controls":E,"aria-disabled":t.disabled},d,p,f);t.template&&(g=l.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return O(e,t)},className:"p-panelmenu-header-link",labelClassName:"p-menuitem-text",submenuIconClassName:m,iconClassName:c,element:g,props:e,leaf:!t.items,active:o}));return i.createElement("div",{key:r,className:s,style:t.style},i.createElement("div",{className:u,style:t.style},g),i.createElement(n.CSSTransition,{nodeRef:N,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},onEnter:j,disabled:b,in:o,unmountOnExit:!0,options:e.transitionOptions},i.createElement("div",{ref:N,className:y,role:"region",id:E,"aria-labelledby":h},i.createElement("div",{className:"p-panelmenu-content"},i.createElement(v,{menuProps:e,model:t.items,className:"p-panelmenu-root-submenu",multiple:e.multiple})))))},C=l.ObjectUtils.findDiffKeys(e,g.defaultProps),k=l.classNames("p-panelmenu p-component",e.className),w=e.model?e.model.map(P):null;return i.createElement("div",o({id:e.id,className:k,style:e.style},C),w)})));return g.displayName="PanelMenu",g.defaultProps={__TYPE:"Panel",id:null,model:null,style:null,className:null,multiple:!1,transitionOptions:null},e.PanelMenu=g,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.csstransition,primereact.hooks,primereact.utils);
1
+ this.primereact=this.primereact||{},this.primereact.panelmenu=function(e,t,n,a,l){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var i=r(t);function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},o.apply(this,arguments)}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function u(e){if(Array.isArray(e))return s(e)}function m(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function c(e,t){if(e){if("string"==typeof e)return s(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)?s(e,t):void 0}}function p(){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 d(e){return u(e)||m(e)||c(e)||p()}function f(e){if(Array.isArray(e))return e}function b(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r=[],i=!0,o=!1;try{for(n=n.call(e);!(i=(a=n.next()).done)&&(r.push(a.value),!t||r.length!==t);i=!0);}catch(e){o=!0,l=e}finally{try{i||null==n.return||n.return()}finally{if(o)throw l}}return r}}function y(){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 N(e,t){return f(e)||b(e,t)||c(e,t)||y()}var v=i.memo((function(e){var t=N(i.useState(null),2),r=t[0],o=t[1],s=function(){if(e.model){if(e.multiple)return e.model.filter((function(e){return e.expanded}));var t=null;return e.model.forEach((function(e){e.expanded&&(t?e.expanded=!1:t=e)})),t}return null},u=function(t,n){if(n.disabled)t.preventDefault();else{n.url||t.preventDefault(),n.command&&n.command({originalEvent:t,item:n});var a=r;m(n)?(n.expanded=!1,o(e.multiple?a.filter((function(e){return e!==n})):null)):(!e.multiple&&a&&(a.expanded=!1),n.expanded=!0,o(e.multiple?[].concat(d(a||[]),[n]):n))}},m=function(t){return r&&(e.multiple?r.indexOf(t)>-1:r===t)};a.useMountEffect((function(){o(s())}));var c=function(e){return i.createElement("li",{key:"separator_"+e,className:"p-menu-separator"})},p=function(t,a){var r=l.classNames("p-toggleable-content",{"p-toggleable-content-collapsed":!a}),o=i.createRef();return t.items?i.createElement(n.CSSTransition,{nodeRef:o,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:a,unmountOnExit:!0},i.createElement("div",{ref:o,className:r},i.createElement(v,{menuProps:e.menuProps,model:t.items,multiple:e.multiple}))):null},f=function(t,n){var a=t.label+"_"+n,r=m(t),o=l.classNames("p-menuitem",t.className),s=l.classNames("p-menuitem-link",{"p-disabled":t.disabled}),c=l.classNames("p-menuitem-icon",t.icon),d=l.classNames("p-panelmenu-icon pi pi-fw",{"pi-angle-right":!r,"pi-angle-down":r}),f=l.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e.menuProps}),b=t.label&&i.createElement("span",{className:"p-menuitem-text"},t.label),y=t.items&&i.createElement("span",{className:d}),N=p(t,r),v=i.createElement("a",{href:t.url||"#",className:s,target:t.target,onClick:function(e){return u(e,t)},role:"menuitem","aria-disabled":t.disabled},y,f,b);t.template&&(v=l.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return u(e,t)},className:s,labelClassName:"p-menuitem-text",iconClassName:c,submenuIconClassName:d,element:v,props:e,leaf:!t.items,active:r}));return i.createElement("li",{key:a,id:t.id,className:o,style:t.style,role:"none"},v,N)},b=function(e,t){return e.separator?c(t):f(e,t)},y=l.classNames("p-submenu-list",e.className),g=e.model?e.model.map(b):null;return i.createElement("ul",{className:y,role:"tree"},g)}));v.displayName="PanelMenuSub";var g=i.memo(i.forwardRef((function(e,t){var r=N(i.useState(e.id),2),s=r[0],u=r[1],m=N(i.useState(null),2),c=m[0],p=m[1],f=N(i.useState(!1),2),b=f[0],y=f[1],h=s+"_header",E=s+"_content",x=function(){if(e.model){if(e.multiple)return e.model.filter((function(e){return e.expanded}));var t=null;return e.model.forEach((function(e){e.expanded&&(t?e.expanded=!1:t=e)})),t}return null},O=function(t,n){if(n.disabled)t.preventDefault();else{n.url||t.preventDefault(),n.command&&n.command({originalEvent:t,item:n});var a=c;S(n)?(n.expanded=!1,p(e.multiple?a.filter((function(e){return e!==n})):null)):(!e.multiple&&a&&(a.expanded=!1),n.expanded=!0,p(e.multiple?[].concat(d(a||[]),[n]):n))}},S=function(t){return c&&(e.multiple?c.indexOf(t)>-1:c===t)};a.useMountEffect((function(){s||u(l.UniqueComponentId()),p(x())})),a.useUpdateEffect((function(){y(!0),p(x())}),[e.model]);var j=function(){y(!1)},P=function(t,a){var r=t.label+"_"+a,o=S(t),s=l.classNames("p-panelmenu-panel",t.className),u=l.classNames("p-component p-panelmenu-header",{"p-highlight":o,"p-disabled":t.disabled}),m=l.classNames("p-panelmenu-icon pi",{"pi-chevron-right":!o," pi-chevron-down":o}),c=l.classNames("p-menuitem-icon",t.icon),p=l.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e}),d=t.items&&i.createElement("span",{className:m}),f=t.label&&i.createElement("span",{className:"p-menuitem-text"},t.label),y=l.classNames("p-toggleable-content",{"p-toggleable-content-collapsed":!o}),N=i.createRef(),g=i.createElement("a",{href:t.url||"#",className:"p-panelmenu-header-link",onClick:function(e){return O(e,t)},"aria-expanded":o,id:h,"aria-controls":E,"aria-disabled":t.disabled},d,p,f);t.template&&(g=l.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return O(e,t)},className:"p-panelmenu-header-link",labelClassName:"p-menuitem-text",submenuIconClassName:m,iconClassName:c,element:g,props:e,leaf:!t.items,active:o}));return i.createElement("div",{key:r,className:s,style:t.style},i.createElement("div",{className:u,style:t.style},g),i.createElement(n.CSSTransition,{nodeRef:N,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},onEnter:j,disabled:b,in:o,unmountOnExit:!0,options:e.transitionOptions},i.createElement("div",{ref:N,className:y,role:"region",id:E,"aria-labelledby":h},i.createElement("div",{className:"p-panelmenu-content"},i.createElement(v,{menuProps:e,model:t.items,className:"p-panelmenu-root-submenu",multiple:e.multiple})))))},C=l.ObjectUtils.findDiffKeys(e,g.defaultProps),k=l.classNames("p-panelmenu p-component",e.className),w=e.model?e.model.map(P):null;return i.createElement("div",o({id:e.id,className:k,style:e.style},C),w)})));return g.displayName="PanelMenu",g.defaultProps={__TYPE:"Panel",id:null,model:null,style:null,className:null,multiple:!1,transitionOptions:null},e.PanelMenu=g,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.csstransition,primereact.hooks,primereact.utils);
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var api = require('primereact/api');
6
7
  var hooks = require('primereact/hooks');
7
8
  var utils = require('primereact/utils');
8
9
  var button = require('primereact/button');
@@ -381,6 +382,23 @@ var PickListSubList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
381
382
  return utils.ObjectUtils.findIndexInList(item, props.selection, props.dataKey) !== -1;
382
383
  };
383
384
 
385
+ var onFilter = function onFilter(event) {
386
+ if (props.onFilter) {
387
+ props.onFilter({
388
+ originalEvent: event,
389
+ value: event.target.value,
390
+ type: props.type
391
+ });
392
+ }
393
+ };
394
+
395
+ var onFilterInputKeyDown = function onFilterInputKeyDown(event) {
396
+ //enter
397
+ if (event.which === 13) {
398
+ event.preventDefault();
399
+ }
400
+ };
401
+
384
402
  React__namespace.useImperativeHandle(ref, function () {
385
403
  return {
386
404
  listElementRef: listElementRef
@@ -417,6 +435,44 @@ var PickListSubList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
417
435
  return null;
418
436
  };
419
437
 
438
+ var createFilter = function createFilter() {
439
+ if (props.showFilter) {
440
+ var content = /*#__PURE__*/React__namespace.createElement("div", {
441
+ className: "p-picklist-filter"
442
+ }, /*#__PURE__*/React__namespace.createElement("input", {
443
+ type: "text",
444
+ value: props.filterValue,
445
+ onChange: onFilter,
446
+ onKeyDown: onFilterInputKeyDown,
447
+ placeholder: props.placeholder,
448
+ className: "p-picklist-filter-input p-inputtext p-component"
449
+ }), /*#__PURE__*/React__namespace.createElement("span", {
450
+ className: "p-picklist-filter-icon pi pi-search"
451
+ }));
452
+
453
+ if (props.filterTemplate) {
454
+ var defaultContentOptions = {
455
+ className: 'p-picklist-filter',
456
+ inputProps: {
457
+ className: 'p-picklist-filter-input p-inputtext p-component',
458
+ onChange: onFilter,
459
+ onKeyDown: onFilterInputKeyDown
460
+ },
461
+ iconClassName: 'p-picklist-filter-icon pi pi-search',
462
+ element: content,
463
+ props: props
464
+ };
465
+ content = utils.ObjectUtils.getJSXElement(props.filterTemplate, defaultContentOptions);
466
+ }
467
+
468
+ return /*#__PURE__*/React__namespace.createElement("div", {
469
+ className: "p-picklist-filter-container"
470
+ }, content);
471
+ }
472
+
473
+ return null;
474
+ };
475
+
420
476
  var createList = function createList() {
421
477
  var items = createItems();
422
478
  var className = utils.classNames('p-picklist-list', props.listClassName);
@@ -430,19 +486,20 @@ var PickListSubList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
430
486
 
431
487
  var className = utils.classNames('p-picklist-list-wrapper', props.className);
432
488
  var header = createHeader();
489
+ var filter = createFilter();
433
490
  var list = createList();
434
491
  return /*#__PURE__*/React__namespace.createElement("div", {
435
492
  ref: listElementRef,
436
493
  className: className
437
- }, header, list);
494
+ }, header, filter, list);
438
495
  }));
439
496
  PickListSubList.displayName = 'PickListSubList';
440
497
 
441
498
  var PickListTransferControls = /*#__PURE__*/React__namespace.memo(function (props) {
442
- var moveRightDisabled = utils.ObjectUtils.isEmpty(props.sourceSelection);
443
- var moveLeftDisabled = utils.ObjectUtils.isEmpty(props.targetSelection);
444
- var moveAllRightDisabled = utils.ObjectUtils.isEmpty(props.source);
445
- var moveAllLeftDisabled = utils.ObjectUtils.isEmpty(props.target);
499
+ var moveRightDisabled = utils.ObjectUtils.isEmpty(props.sourceSelection) || utils.ObjectUtils.isEmpty(props.visibleSourceList);
500
+ var moveLeftDisabled = utils.ObjectUtils.isEmpty(props.targetSelection) || utils.ObjectUtils.isEmpty(props.visibleTargetList);
501
+ var moveAllRightDisabled = utils.ObjectUtils.isEmpty(props.visibleSourceList);
502
+ var moveAllLeftDisabled = utils.ObjectUtils.isEmpty(props.visibleTargetList);
446
503
 
447
504
  var moveRight = function moveRight(event) {
448
505
  var selection = props.sourceSelection;
@@ -473,8 +530,12 @@ var PickListTransferControls = /*#__PURE__*/React__namespace.memo(function (prop
473
530
 
474
531
  var moveAllRight = function moveAllRight(event) {
475
532
  if (props.source) {
476
- var targetList = [].concat(_toConsumableArray(props.target), _toConsumableArray(props.source));
477
- var sourceList = [];
533
+ var targetList = [].concat(_toConsumableArray(props.target), _toConsumableArray(props.visibleSourceList));
534
+ var sourceList = props.source.filter(function (s) {
535
+ return !props.visibleSourceList.some(function (vs) {
536
+ return vs === s;
537
+ });
538
+ });
478
539
 
479
540
  if (props.onTransfer) {
480
541
  props.onTransfer({
@@ -516,8 +577,12 @@ var PickListTransferControls = /*#__PURE__*/React__namespace.memo(function (prop
516
577
 
517
578
  var moveAllLeft = function moveAllLeft(event) {
518
579
  if (props.source) {
519
- var sourceList = [].concat(_toConsumableArray(props.source), _toConsumableArray(props.target));
520
- var targetList = [];
580
+ var sourceList = [].concat(_toConsumableArray(props.source), _toConsumableArray(props.visibleTargetList));
581
+ var targetList = props.target.filter(function (t) {
582
+ return !props.visibleTargetList.some(function (vt) {
583
+ return vt === t;
584
+ });
585
+ });
521
586
 
522
587
  if (props.onTransfer) {
523
588
  props.onTransfer({
@@ -568,12 +633,27 @@ var PickList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
568
633
  targetSelectionState = _React$useState4[0],
569
634
  setTargetSelectionState = _React$useState4[1];
570
635
 
636
+ var _React$useState5 = React__namespace.useState(''),
637
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
638
+ sourceFilterValueState = _React$useState6[0],
639
+ setSourceFilterValueState = _React$useState6[1];
640
+
641
+ var _React$useState7 = React__namespace.useState(''),
642
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
643
+ targetFilterValueState = _React$useState8[0],
644
+ setTargetFilterValueState = _React$useState8[1];
645
+
571
646
  var sourceListElementRef = React__namespace.useRef(null);
572
647
  var targetListElementRef = React__namespace.useRef(null);
573
648
  var reorderedListElementRef = React__namespace.useRef(null);
574
649
  var reorderDirection = React__namespace.useRef(null);
575
650
  var sourceSelection = props.onSourceSelectionChange ? props.sourceSelection : sourceSelectionState;
576
651
  var targetSelection = props.onTargetSelectionChange ? props.targetSelection : targetSelectionState;
652
+ var sourceFilteredValue = props.onSourceFilterChange ? props.sourceFilterValue : sourceFilterValueState;
653
+ var targetFilteredValue = props.onTargetFilterChange ? props.targetFilterValue : targetFilterValueState;
654
+ var hasFilterBy = utils.ObjectUtils.isNotEmpty(props.filterBy);
655
+ var showSourceFilter = hasFilterBy && props.showSourceFilter;
656
+ var showTargetFilter = hasFilterBy && props.showTargetFilter;
577
657
 
578
658
  var onSourceReorder = function onSourceReorder(event) {
579
659
  handleChange(event, event.value, props.target);
@@ -708,6 +788,52 @@ var PickList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
708
788
  }
709
789
  };
710
790
 
791
+ var onFilter = function onFilter(event) {
792
+ var originalEvent = event.originalEvent,
793
+ value = event.value,
794
+ type = event.type;
795
+
796
+ var _ref = type === 'source' ? [setSourceFilterValueState, props.onSourceFilterChange] : [setTargetFilterValueState, props.onTargetFilterChange],
797
+ _ref2 = _slicedToArray(_ref, 2),
798
+ setFilterState = _ref2[0],
799
+ onFilterChange = _ref2[1];
800
+
801
+ if (onFilterChange) {
802
+ onFilterChange({
803
+ originalEvent: originalEvent,
804
+ value: value
805
+ });
806
+ } else {
807
+ setFilterState(value);
808
+ }
809
+ };
810
+
811
+ var getVisibleList = function getVisibleList(list, type) {
812
+ var _ref3 = type === 'source' ? [sourceFilteredValue, filterSource] : [targetFilteredValue, filterTarget],
813
+ _ref4 = _slicedToArray(_ref3, 2),
814
+ filteredValue = _ref4[0],
815
+ filterCallback = _ref4[1];
816
+
817
+ return hasFilterBy && utils.ObjectUtils.isNotEmpty(filteredValue) ? filterCallback(filteredValue) : list;
818
+ };
819
+
820
+ var filterSource = function filterSource() {
821
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
822
+ var filteredValue = value.trim().toLocaleLowerCase(props.filterLocale);
823
+ return filter(props.source, filteredValue);
824
+ };
825
+
826
+ var filterTarget = function filterTarget() {
827
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
828
+ var filteredValue = value.trim().toLocaleLowerCase(props.filterLocale);
829
+ return filter(props.target, filteredValue);
830
+ };
831
+
832
+ var filter = function filter(list, filterValue) {
833
+ var searchFields = hasFilterBy ? props.filterBy.split(',') : [];
834
+ return api.FilterService.filter(list, searchFields, filterValue, props.filterMatchMode, props.filterLocale);
835
+ };
836
+
711
837
  hooks.useUpdateEffect(function () {
712
838
  if (reorderedListElementRef.current) {
713
839
  handleScrollPosition(reorderedListElementRef.current, reorderDirection.current);
@@ -719,6 +845,8 @@ var PickList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
719
845
  var className = utils.classNames('p-picklist p-component', props.className);
720
846
  var sourceItemTemplate = props.sourceItemTemplate ? props.sourceItemTemplate : props.itemTemplate;
721
847
  var targetItemTemplate = props.targetItemTemplate ? props.targetItemTemplate : props.itemTemplate;
848
+ var sourceList = getVisibleList(props.source, 'source');
849
+ var targetList = getVisibleList(props.target, 'target');
722
850
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
723
851
  id: props.id,
724
852
  className: className,
@@ -731,7 +859,8 @@ var PickList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
731
859
  dataKey: props.dataKey
732
860
  }), /*#__PURE__*/React__namespace.createElement(PickListSubList, {
733
861
  ref: sourceListElementRef,
734
- list: props.source,
862
+ type: "source",
863
+ list: sourceList,
735
864
  selection: sourceSelection,
736
865
  onSelectionChange: function onSelectionChange(e) {
737
866
  return _onSelectionChange(e, 'sourceSelection', props.onSourceSelectionChange);
@@ -743,17 +872,25 @@ var PickList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
743
872
  listClassName: "p-picklist-source",
744
873
  metaKeySelection: props.metaKeySelection,
745
874
  tabIndex: props.tabIndex,
746
- dataKey: props.dataKey
875
+ dataKey: props.dataKey,
876
+ filterValue: sourceFilteredValue,
877
+ onFilter: onFilter,
878
+ showFilter: showSourceFilter,
879
+ placeholder: props.sourceFilterPlaceholder,
880
+ template: props.sourceFilterTemplate
747
881
  }), /*#__PURE__*/React__namespace.createElement(PickListTransferControls, {
748
882
  onTransfer: onTransfer,
749
883
  source: props.source,
884
+ visibleSourceList: sourceList,
750
885
  target: props.target,
886
+ visibleTargetList: targetList,
751
887
  sourceSelection: sourceSelection,
752
888
  targetSelection: targetSelection,
753
889
  dataKey: props.dataKey
754
890
  }), /*#__PURE__*/React__namespace.createElement(PickListSubList, {
755
891
  ref: targetListElementRef,
756
- list: props.target,
892
+ type: "target",
893
+ list: targetList,
757
894
  selection: targetSelection,
758
895
  onSelectionChange: function onSelectionChange(e) {
759
896
  return _onSelectionChange(e, 'targetSelection', props.onTargetSelectionChange);
@@ -765,7 +902,12 @@ var PickList = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
765
902
  listClassName: "p-picklist-target",
766
903
  metaKeySelection: props.metaKeySelection,
767
904
  tabIndex: props.tabIndex,
768
- dataKey: props.dataKey
905
+ dataKey: props.dataKey,
906
+ filterValue: targetFilteredValue,
907
+ onFilter: onFilter,
908
+ showFilter: showTargetFilter,
909
+ placeholder: props.targetFilterPlaceholder,
910
+ template: props.targetFilterTemplate
769
911
  }), props.showTargetControls && /*#__PURE__*/React__namespace.createElement(PickListControls, {
770
912
  list: props.target,
771
913
  selection: targetSelection,
@@ -791,6 +933,17 @@ PickList.defaultProps = {
791
933
  showSourceControls: true,
792
934
  showTargetControls: true,
793
935
  metaKeySelection: true,
936
+ filterBy: null,
937
+ filterMatchMode: 'contains',
938
+ filterLocale: undefined,
939
+ sourceFilterValue: null,
940
+ targetFilterValue: null,
941
+ showSourceFilter: true,
942
+ showTargetFilter: true,
943
+ sourceFilterPlaceholder: null,
944
+ targetFilterPlaceholder: null,
945
+ sourceFilterTemplate: null,
946
+ targetFilterTemplate: null,
794
947
  tabIndex: 0,
795
948
  dataKey: null,
796
949
  itemTemplate: null,
@@ -802,7 +955,9 @@ PickList.defaultProps = {
802
955
  onMoveToTarget: null,
803
956
  onMoveAllToTarget: null,
804
957
  onSourceSelectionChange: null,
805
- onTargetSelectionChange: null
958
+ onTargetSelectionChange: null,
959
+ onSourceFilterChange: null,
960
+ onTargetFilterChange: null
806
961
  };
807
962
 
808
963
  exports.PickList = PickList;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/hooks"),n=require("primereact/utils"),r=require("primereact/button"),a=require("primereact/ripple");function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=l(e);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,l=[],o=!0,i=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){i=!0,a=e}finally{try{o||null==n.return||n.return()}finally{if(i)throw a}}return l}}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 d(){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 m(e,t){return c(e)||s(e,t)||p(e,t)||d()}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 b=o.memo((function(e){var t=!e.selection.length,a=n.classNames("p-picklist-buttons",e.className);return o.createElement("div",{className:a},o.createElement(r.Button,{disabled:t,type:"button",icon:"pi pi-angle-up",onClick:function(t){var r=e.selection;if(r&&r.length){for(var a=y(e.list),l=0;l<r.length;l++){var o=n.ObjectUtils.findIndexInList(r[l],a,e.dataKey);if(0===o)break;var i=a[o-1];a[o-1]=a[o],a[o]=i}e.onReorder&&e.onReorder({originalEvent:t,value:a,direction:"up"})}}}),o.createElement(r.Button,{disabled:t,type:"button",icon:"pi pi-angle-double-up",onClick:function(t){var r=e.selection;if(r&&r.length){for(var a=y(e.list),l=0;l<r.length;l++){var o=n.ObjectUtils.findIndexInList(r[l],a,e.dataKey);if(0===o)break;var i=a.splice(o,1)[0];a.unshift(i)}e.onReorder&&e.onReorder({originalEvent:t,value:a,direction:"top"})}}}),o.createElement(r.Button,{disabled:t,type:"button",icon:"pi pi-angle-down",onClick:function(t){var r=e.selection;if(r&&r.length){for(var a=y(e.list),l=r.length-1;l>=0;l--){var o=n.ObjectUtils.findIndexInList(r[l],a,e.dataKey);if(o===a.length-1)break;var i=a[o+1];a[o+1]=a[o],a[o]=i}e.onReorder&&e.onReorder({originalEvent:t,value:a,direction:"down"})}}}),o.createElement(r.Button,{disabled:t,type:"button",icon:"pi pi-angle-double-down",onClick:function(t){var r=e.selection;if(r&&r.length){for(var a=y(e.list),l=r.length-1;l>=0;l--){var o=n.ObjectUtils.findIndexInList(r[l],a,e.dataKey);if(o===a.length-1)break;var i=a.splice(o,1)[0];a.push(i)}e.onReorder&&e.onReorder({originalEvent:t,value:a,direction:"bottom"})}}}))}));b.displayName="PickListControls";var h=o.memo((function(e){var t=e.template?e.template(e.value):e.value,r=n.classNames("p-picklist-item",{"p-highlight":e.selected},e.className);return o.createElement("li",{className:r,onClick:function(t){e.onClick&&e.onClick({originalEvent:t,value:e.value})},onKeyDown:function(t){e.onKeyDown&&e.onKeyDown({originalEvent:t,value:e.value})},tabIndex:e.tabIndex,role:"option","aria-selected":e.selected},t,o.createElement(a.Ripple,null))}));h.displayName="PickListItem";var S=o.memo(o.forwardRef((function(e,t){var r=o.useRef(null),a=function(t){var r=t.originalEvent,a=t.value,l=y(e.selection),o=n.ObjectUtils.findIndexInList(a,l,e.dataKey),i=-1!==o;if(e.metaKeySelection){var c=r.metaKey||r.ctrlKey;i&&c?l.splice(o,1):(c||(l.length=0),l.push(a))}else i?l.splice(o,1):l.push(a);e.onSelectionChange&&e.onSelectionChange({event:r,value:l})},l=function(e){var t=e.originalEvent,n=t.currentTarget;switch(t.which){case 40:var r=i(n);r&&r.focus(),t.preventDefault();break;case 38:var l=c(n);l&&l.focus(),t.preventDefault();break;case 13:a(e),t.preventDefault()}},i=function e(t){var r=t.nextElementSibling;return r?n.DomHandler.hasClass(r,"p-picklist-item")?r:e(r):null},c=function e(t){var r=t.previousElementSibling;return r?n.DomHandler.hasClass(r,"p-picklist-item")?r:e(r):null},s=function(t){return-1!==n.ObjectUtils.findIndexInList(t,e.selection,e.dataKey)};o.useImperativeHandle(t,(function(){return{listElementRef:r}}));var u=n.classNames("p-picklist-list-wrapper",e.className),p=e.header?o.createElement("div",{className:"p-picklist-header"},n.ObjectUtils.getJSXElement(e.header,e)):null,d=function(){var t=e.list?e.list.map((function(t){var n=JSON.stringify(t),r=s(t);return o.createElement(h,{key:n,value:t,template:e.itemTemplate,selected:r,onClick:a,onKeyDown:l,tabIndex:e.tabIndex})})):null,r=n.classNames("p-picklist-list",e.listClassName);return o.createElement("ul",{className:r,style:e.style,role:"listbox","aria-multiselectable":!0},t)}();return o.createElement("div",{ref:r,className:u},p,d)})));S.displayName="PickListSubList";var E=o.memo((function(e){var t=n.ObjectUtils.isEmpty(e.sourceSelection),a=n.ObjectUtils.isEmpty(e.targetSelection),l=n.ObjectUtils.isEmpty(e.source),i=n.ObjectUtils.isEmpty(e.target),c=n.classNames("p-picklist-buttons p-picklist-transfer-buttons",e.className);return o.createElement("div",{className:c},o.createElement(r.Button,{disabled:t,type:"button",icon:"pi pi-angle-right",onClick:function(t){var r=e.sourceSelection;if(n.ObjectUtils.isNotEmpty(r)){for(var a=y(e.target),l=y(e.source),o=0;o<r.length;o++){var i=r[o];-1===n.ObjectUtils.findIndexInList(i,a,e.dataKey)&&a.push(l.splice(n.ObjectUtils.findIndexInList(i,l,e.dataKey),1)[0])}e.onTransfer&&e.onTransfer({originalEvent:t,source:l,target:a,direction:"toTarget"})}}}),o.createElement(r.Button,{disabled:l,type:"button",icon:"pi pi-angle-double-right",onClick:function(t){if(e.source){var n=[].concat(y(e.target),y(e.source));e.onTransfer&&e.onTransfer({originalEvent:t,source:[],target:n,direction:"allToTarget"})}}}),o.createElement(r.Button,{disabled:a,type:"button",icon:"pi pi-angle-left",onClick:function(t){var r=e.targetSelection;if(n.ObjectUtils.isNotEmpty(r)){for(var a=y(e.target),l=y(e.source),o=0;o<r.length;o++){var i=r[o];-1===n.ObjectUtils.findIndexInList(i,l,e.dataKey)&&l.push(a.splice(n.ObjectUtils.findIndexInList(i,a,e.dataKey),1)[0])}e.onTransfer&&e.onTransfer({originalEvent:t,source:l,target:a,direction:"toSource"})}}}),o.createElement(r.Button,{disabled:i,type:"button",icon:"pi pi-angle-double-left",onClick:function(t){if(e.source){var n=[].concat(y(e.source),y(e.target));e.onTransfer&&e.onTransfer({originalEvent:t,source:n,target:[],direction:"allToSource"})}}}))}));E.displayName="PickListTransferControls";var T=o.memo(o.forwardRef((function(e,r){var a=m(o.useState([]),2),l=a[0],c=a[1],s=m(o.useState([]),2),u=s[0],p=s[1],d=o.useRef(null),f=o.useRef(null),g=o.useRef(null),v=o.useRef(null),y=e.onSourceSelectionChange?e.sourceSelection:l,h=e.onTargetSelectionChange?e.targetSelection:u,k=function(e,t){if(e){var r=n.DomHandler.findSingle(e,".p-picklist-list");switch(t){case"up":C(r,-1);break;case"top":r.scrollTop=0;break;case"down":C(r,1);break;case"bottom":setTimeout((function(){return r.scrollTop=r.scrollHeight}),100)}}},I=function(t,n,r){e.onChange&&e.onChange({originalEvent:t.originalEvent,source:n,target:r})},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=e.getElementsByClassName("p-highlight");n.ObjectUtils.isNotEmpty(r)&&n.DomHandler.scrollInView(e,-1===t?r[0]:r[r.length-1])},N=function(e,t,r){r?r(e):"sourceSelection"===t?c(e.value):p(e.value),n.ObjectUtils.isNotEmpty(y)&&"targetSelection"===t?c([]):n.ObjectUtils.isNotEmpty(h)&&"sourceSelection"===t&&p([])};t.useUpdateEffect((function(){g.current&&(k(g.current,v.current),g.current=null,v.current=null)}));var K=n.ObjectUtils.findDiffKeys(e,T.defaultProps),O=n.classNames("p-picklist p-component",e.className),j=e.sourceItemTemplate?e.sourceItemTemplate:e.itemTemplate,w=e.targetItemTemplate?e.targetItemTemplate:e.itemTemplate;return o.createElement("div",i({id:e.id,className:O,style:e.style},K),e.showSourceControls&&o.createElement(b,{list:e.source,selection:y,onReorder:function(t){I(t,t.value,e.target),g.current=d.current.listElementRef.current,v.current=t.direction},className:"p-picklist-source-controls",dataKey:e.dataKey}),o.createElement(S,{ref:d,list:e.source,selection:y,onSelectionChange:function(t){return N(t,"sourceSelection",e.onSourceSelectionChange)},itemTemplate:j,header:e.sourceHeader,style:e.sourceStyle,className:"p-picklist-source-wrapper",listClassName:"p-picklist-source",metaKeySelection:e.metaKeySelection,tabIndex:e.tabIndex,dataKey:e.dataKey}),o.createElement(E,{onTransfer:function(t){var n=t.originalEvent,r=t.source,a=t.target;switch(t.direction){case"toTarget":e.onMoveToTarget&&e.onMoveToTarget({originalEvent:n,value:y});break;case"allToTarget":e.onMoveAllToTarget&&e.onMoveAllToTarget({originalEvent:n,value:e.source});break;case"toSource":e.onMoveToSource&&e.onMoveToSource({originalEvent:n,value:h});break;case"allToSource":e.onMoveAllToSource&&e.onMoveAllToSource({originalEvent:n,value:e.target})}N({originalEvent:n,value:[]},"sourceSelection",e.onSourceSelectionChange),N({originalEvent:n,value:[]},"targetSelection",e.onTargetSelectionChange),I(t,r,a)},source:e.source,target:e.target,sourceSelection:y,targetSelection:h,dataKey:e.dataKey}),o.createElement(S,{ref:f,list:e.target,selection:h,onSelectionChange:function(t){return N(t,"targetSelection",e.onTargetSelectionChange)},itemTemplate:w,header:e.targetHeader,style:e.targetStyle,className:"p-picklist-target-wrapper",listClassName:"p-picklist-target",metaKeySelection:e.metaKeySelection,tabIndex:e.tabIndex,dataKey:e.dataKey}),e.showTargetControls&&o.createElement(b,{list:e.target,selection:h,onReorder:function(t){I(t,e.source,t.value),g.current=f.current.listElementRef.current,v.current=t.direction},className:"p-picklist-target-controls",dataKey:e.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},exports.PickList=T;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/hooks"),r=require("primereact/utils"),l=require("primereact/button"),i=require("primereact/ripple");function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=a(e);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 f(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 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 s(e)||u(e,t)||f(e,t)||m()}function g(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 b(e){return g(e)||v(e)||f(e)||y()}var h=o.memo((function(e){var t=!e.selection.length,n=r.classNames("p-picklist-buttons",e.className);return o.createElement("div",{className:n},o.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-up",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=b(e.list),i=0;i<n.length;i++){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(0===a)break;var o=l[a-1];l[a-1]=l[a],l[a]=o}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"up"})}}}),o.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-double-up",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=b(e.list),i=0;i<n.length;i++){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(0===a)break;var o=l.splice(a,1)[0];l.unshift(o)}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"top"})}}}),o.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-down",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=b(e.list),i=n.length-1;i>=0;i--){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(a===l.length-1)break;var o=l[a+1];l[a+1]=l[a],l[a]=o}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"down"})}}}),o.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-double-down",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=b(e.list),i=n.length-1;i>=0;i--){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(a===l.length-1)break;var o=l.splice(a,1)[0];l.push(o)}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"bottom"})}}}))}));h.displayName="PickListControls";var S=o.memo((function(e){var t=e.template?e.template(e.value):e.value,n=r.classNames("p-picklist-item",{"p-highlight":e.selected},e.className);return o.createElement("li",{className:n,onClick:function(t){e.onClick&&e.onClick({originalEvent:t,value:e.value})},onKeyDown:function(t){e.onKeyDown&&e.onKeyDown({originalEvent:t,value:e.value})},tabIndex:e.tabIndex,role:"option","aria-selected":e.selected},t,o.createElement(i.Ripple,null))}));S.displayName="PickListItem";var T=o.memo(o.forwardRef((function(e,t){var n=o.useRef(null),l=function(t){var n=t.originalEvent,l=t.value,i=b(e.selection),a=r.ObjectUtils.findIndexInList(l,i,e.dataKey),o=-1!==a;if(e.metaKeySelection){var c=n.metaKey||n.ctrlKey;o&&c?i.splice(a,1):(c||(i.length=0),i.push(l))}else o?i.splice(a,1):i.push(l);e.onSelectionChange&&e.onSelectionChange({event:n,value:i})},i=function(e){var t=e.originalEvent,n=t.currentTarget;switch(t.which){case 40:var r=a(n);r&&r.focus(),t.preventDefault();break;case 38:var i=c(n);i&&i.focus(),t.preventDefault();break;case 13:l(e),t.preventDefault()}},a=function e(t){var n=t.nextElementSibling;return n?r.DomHandler.hasClass(n,"p-picklist-item")?n:e(n):null},c=function e(t){var n=t.previousElementSibling;return n?r.DomHandler.hasClass(n,"p-picklist-item")?n:e(n):null},s=function(t){return-1!==r.ObjectUtils.findIndexInList(t,e.selection,e.dataKey)},u=function(t){e.onFilter&&e.onFilter({originalEvent:t,value:t.target.value,type:e.type})},p=function(e){13===e.which&&e.preventDefault()};o.useImperativeHandle(t,(function(){return{listElementRef:n}}));var f=r.classNames("p-picklist-list-wrapper",e.className),m=e.header?o.createElement("div",{className:"p-picklist-header"},r.ObjectUtils.getJSXElement(e.header,e)):null,d=function(){if(e.showFilter){var t=o.createElement("div",{className:"p-picklist-filter"},o.createElement("input",{type:"text",value:e.filterValue,onChange:u,onKeyDown:p,placeholder:e.placeholder,className:"p-picklist-filter-input p-inputtext p-component"}),o.createElement("span",{className:"p-picklist-filter-icon pi pi-search"}));if(e.filterTemplate)t=r.ObjectUtils.getJSXElement(e.filterTemplate,{className:"p-picklist-filter",inputProps:{className:"p-picklist-filter-input p-inputtext p-component",onChange:u,onKeyDown:p},iconClassName:"p-picklist-filter-icon pi pi-search",element:t,props:e});return o.createElement("div",{className:"p-picklist-filter-container"},t)}return null}(),g=function(){var t=e.list?e.list.map((function(t){var n=JSON.stringify(t),r=s(t);return o.createElement(S,{key:n,value:t,template:e.itemTemplate,selected:r,onClick:l,onKeyDown:i,tabIndex:e.tabIndex})})):null,n=r.classNames("p-picklist-list",e.listClassName);return o.createElement("ul",{className:n,style:e.style,role:"listbox","aria-multiselectable":!0},t)}();return o.createElement("div",{ref:n,className:f},m,d,g)})));T.displayName="PickListSubList";var E=o.memo((function(e){var t=r.ObjectUtils.isEmpty(e.sourceSelection)||r.ObjectUtils.isEmpty(e.visibleSourceList),n=r.ObjectUtils.isEmpty(e.targetSelection)||r.ObjectUtils.isEmpty(e.visibleTargetList),i=r.ObjectUtils.isEmpty(e.visibleSourceList),a=r.ObjectUtils.isEmpty(e.visibleTargetList),c=r.classNames("p-picklist-buttons p-picklist-transfer-buttons",e.className);return o.createElement("div",{className:c},o.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-right",onClick:function(t){var n=e.sourceSelection;if(r.ObjectUtils.isNotEmpty(n)){for(var l=b(e.target),i=b(e.source),a=0;a<n.length;a++){var o=n[a];-1===r.ObjectUtils.findIndexInList(o,l,e.dataKey)&&l.push(i.splice(r.ObjectUtils.findIndexInList(o,i,e.dataKey),1)[0])}e.onTransfer&&e.onTransfer({originalEvent:t,source:i,target:l,direction:"toTarget"})}}}),o.createElement(l.Button,{disabled:i,type:"button",icon:"pi pi-angle-double-right",onClick:function(t){if(e.source){var n=[].concat(b(e.target),b(e.visibleSourceList)),r=e.source.filter((function(t){return!e.visibleSourceList.some((function(e){return e===t}))}));e.onTransfer&&e.onTransfer({originalEvent:t,source:r,target:n,direction:"allToTarget"})}}}),o.createElement(l.Button,{disabled:n,type:"button",icon:"pi pi-angle-left",onClick:function(t){var n=e.targetSelection;if(r.ObjectUtils.isNotEmpty(n)){for(var l=b(e.target),i=b(e.source),a=0;a<n.length;a++){var o=n[a];-1===r.ObjectUtils.findIndexInList(o,i,e.dataKey)&&i.push(l.splice(r.ObjectUtils.findIndexInList(o,l,e.dataKey),1)[0])}e.onTransfer&&e.onTransfer({originalEvent:t,source:i,target:l,direction:"toSource"})}}}),o.createElement(l.Button,{disabled:a,type:"button",icon:"pi pi-angle-double-left",onClick:function(t){if(e.source){var n=[].concat(b(e.source),b(e.visibleTargetList)),r=e.target.filter((function(t){return!e.visibleTargetList.some((function(e){return e===t}))}));e.onTransfer&&e.onTransfer({originalEvent:t,source:n,target:r,direction:"allToSource"})}}}))}));E.displayName="PickListTransferControls";var k=o.memo(o.forwardRef((function(e,l){var i=d(o.useState([]),2),a=i[0],s=i[1],u=d(o.useState([]),2),p=u[0],f=u[1],m=d(o.useState(""),2),g=m[0],v=m[1],y=d(o.useState(""),2),b=y[0],S=y[1],C=o.useRef(null),N=o.useRef(null),I=o.useRef(null),w=o.useRef(null),O=e.onSourceSelectionChange?e.sourceSelection:a,j=e.onTargetSelectionChange?e.targetSelection:p,K=e.onSourceFilterChange?e.sourceFilterValue:g,L=e.onTargetFilterChange?e.targetFilterValue:b,F=r.ObjectUtils.isNotEmpty(e.filterBy),U=F&&e.showSourceFilter,x=F&&e.showTargetFilter,R=function(e,t){if(e){var n=r.DomHandler.findSingle(e,".p-picklist-list");switch(t){case"up":P(n,-1);break;case"top":n.scrollTop=0;break;case"down":P(n,1);break;case"bottom":setTimeout((function(){return n.scrollTop=n.scrollHeight}),100)}}},M=function(t,n,r){e.onChange&&e.onChange({originalEvent:t.originalEvent,source:n,target:r})},P=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e.getElementsByClassName("p-highlight");r.ObjectUtils.isNotEmpty(n)&&r.DomHandler.scrollInView(e,-1===t?n[0]:n[n.length-1])},D=function(e,t,n){n?n(e):"sourceSelection"===t?s(e.value):f(e.value),r.ObjectUtils.isNotEmpty(O)&&"targetSelection"===t?s([]):r.ObjectUtils.isNotEmpty(j)&&"sourceSelection"===t&&f([])},A=function(t){var n=t.originalEvent,r=t.value,l=d("source"===t.type?[v,e.onSourceFilterChange]:[S,e.onTargetFilterChange],2),i=l[0],a=l[1];a?a({originalEvent:n,value:r}):i(r)},B=function(e,t){var n=d("source"===t?[K,H]:[L,V],2),l=n[0],i=n[1];return F&&r.ObjectUtils.isNotEmpty(l)?i(l):e},H=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t.trim().toLocaleLowerCase(e.filterLocale);return q(e.source,n)},V=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t.trim().toLocaleLowerCase(e.filterLocale);return q(e.target,n)},q=function(n,r){var l=F?e.filterBy.split(","):[];return t.FilterService.filter(n,l,r,e.filterMatchMode,e.filterLocale)};n.useUpdateEffect((function(){I.current&&(R(I.current,w.current),I.current=null,w.current=null)}));var _=r.ObjectUtils.findDiffKeys(e,k.defaultProps),J=r.classNames("p-picklist p-component",e.className),X=e.sourceItemTemplate?e.sourceItemTemplate:e.itemTemplate,z=e.targetItemTemplate?e.targetItemTemplate:e.itemTemplate,Y=B(e.source,"source"),$=B(e.target,"target");return o.createElement("div",c({id:e.id,className:J,style:e.style},_),e.showSourceControls&&o.createElement(h,{list:e.source,selection:O,onReorder:function(t){M(t,t.value,e.target),I.current=C.current.listElementRef.current,w.current=t.direction},className:"p-picklist-source-controls",dataKey:e.dataKey}),o.createElement(T,{ref:C,type:"source",list:Y,selection:O,onSelectionChange:function(t){return D(t,"sourceSelection",e.onSourceSelectionChange)},itemTemplate:X,header:e.sourceHeader,style:e.sourceStyle,className:"p-picklist-source-wrapper",listClassName:"p-picklist-source",metaKeySelection:e.metaKeySelection,tabIndex:e.tabIndex,dataKey:e.dataKey,filterValue:K,onFilter:A,showFilter:U,placeholder:e.sourceFilterPlaceholder,template:e.sourceFilterTemplate}),o.createElement(E,{onTransfer:function(t){var n=t.originalEvent,r=t.source,l=t.target;switch(t.direction){case"toTarget":e.onMoveToTarget&&e.onMoveToTarget({originalEvent:n,value:O});break;case"allToTarget":e.onMoveAllToTarget&&e.onMoveAllToTarget({originalEvent:n,value:e.source});break;case"toSource":e.onMoveToSource&&e.onMoveToSource({originalEvent:n,value:j});break;case"allToSource":e.onMoveAllToSource&&e.onMoveAllToSource({originalEvent:n,value:e.target})}D({originalEvent:n,value:[]},"sourceSelection",e.onSourceSelectionChange),D({originalEvent:n,value:[]},"targetSelection",e.onTargetSelectionChange),M(t,r,l)},source:e.source,visibleSourceList:Y,target:e.target,visibleTargetList:$,sourceSelection:O,targetSelection:j,dataKey:e.dataKey}),o.createElement(T,{ref:N,type:"target",list:$,selection:j,onSelectionChange:function(t){return D(t,"targetSelection",e.onTargetSelectionChange)},itemTemplate:z,header:e.targetHeader,style:e.targetStyle,className:"p-picklist-target-wrapper",listClassName:"p-picklist-target",metaKeySelection:e.metaKeySelection,tabIndex:e.tabIndex,dataKey:e.dataKey,filterValue:L,onFilter:A,showFilter:x,placeholder:e.targetFilterPlaceholder,template:e.targetFilterTemplate}),e.showTargetControls&&o.createElement(h,{list:e.target,selection:j,onReorder:function(t){M(t,e.source,t.value),I.current=N.current.listElementRef.current,w.current=t.direction},className:"p-picklist-target-controls",dataKey:e.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},exports.PickList=k;
@@ -2,6 +2,8 @@ import * as React from 'react';
2
2
 
3
3
  type PickListItemTemplateType = React.ReactNode | ((item: any) => React.ReactNode);
4
4
 
5
+ type PickListFilterTemplateType = React.ReactNode | ((options: PickListFilterTemplateOptions) => React.ReactNode);
6
+
5
7
  interface PickListEventParams {
6
8
  originalEvent: React.SyntheticEvent;
7
9
  value: any;
@@ -13,6 +15,20 @@ interface PickListChangeParams {
13
15
  target: any;
14
16
  }
15
17
 
18
+ interface PickListFilterTemplateOptions {
19
+ className: string;
20
+ inputProps: PickListFilterInputProps;
21
+ iconClassName: string;
22
+ element: React.ReactNode;
23
+ props: PickListProps;
24
+ }
25
+
26
+ interface PickListFilterInputProps {
27
+ className: string;
28
+ onChange(event: React.SyntheticEvent): void;
29
+ onKeyDown(event: React.SyntheticEvent): void;
30
+ }
31
+
16
32
  export interface PickListProps {
17
33
  id?: string;
18
34
  source?: any[];
@@ -28,6 +44,17 @@ export interface PickListProps {
28
44
  showSourceControls?: boolean;
29
45
  showTargetControls?: boolean;
30
46
  metaKeySelection?: boolean;
47
+ filterBy?: string;
48
+ filterMatchMode?: string;
49
+ filterLocale?: string;
50
+ sourceFilterValue?: string;
51
+ targetFilterValue?: string;
52
+ showSourceFilter?: boolean;
53
+ showTargetFilter?: boolean;
54
+ sourceFilterPlaceholder?: string;
55
+ targetFilterPlaceholder?: string;
56
+ sourceFilterTemplate?: PickListFilterTemplateType;
57
+ targetFilterTemplate?: PickListFilterTemplateType;
31
58
  tabIndex?: number;
32
59
  dataKey?: string;
33
60
  itemTemplate?: PickListItemTemplateType;
@@ -40,6 +67,8 @@ export interface PickListProps {
40
67
  onMoveAllToTarget?(e: PickListEventParams): void;
41
68
  onSourceSelectionChange?(e: PickListEventParams): void;
42
69
  onTargetSelectionChange?(e: PickListEventParams): void;
70
+ onSourceFilterChange?(e: PickListEventParams): void;
71
+ onTargetFilterChange?(e: PickListEventParams): void;
43
72
  children?: React.ReactNode;
44
73
  }
45
74