primereact 10.0.0 → 10.0.1

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 (319) hide show
  1. package/README.md +1 -1
  2. package/componentbase/componentbase.cjs.js +12 -7
  3. package/componentbase/componentbase.cjs.min.js +1 -1
  4. package/componentbase/componentbase.esm.min.mjs +1 -1
  5. package/componentbase/componentbase.esm.mjs +12 -7
  6. package/componentbase/componentbase.js +12 -7
  7. package/componentbase/componentbase.min.js +1 -1
  8. package/core/core.js +12 -7
  9. package/core/core.min.js +1 -1
  10. package/package.json +1 -1
  11. package/primereact.all.cjs.js +12 -7
  12. package/primereact.all.cjs.min.js +1 -1
  13. package/primereact.all.esm.min.mjs +1 -1
  14. package/primereact.all.esm.mjs +12 -7
  15. package/primereact.all.js +12 -7
  16. package/primereact.all.min.js +1 -1
  17. package/web-types.json +1 -1
  18. package/accordion/accordion.esm.js +0 -421
  19. package/accordion/accordion.esm.min.js +0 -1
  20. package/api/api.esm.js +0 -944
  21. package/api/api.esm.min.js +0 -1
  22. package/autocomplete/autocomplete.esm.js +0 -1127
  23. package/autocomplete/autocomplete.esm.min.js +0 -1
  24. package/avatar/avatar.esm.js +0 -245
  25. package/avatar/avatar.esm.min.js +0 -1
  26. package/avatargroup/avatargroup.esm.js +0 -55
  27. package/avatargroup/avatargroup.esm.min.js +0 -1
  28. package/badge/badge.esm.js +0 -110
  29. package/badge/badge.esm.min.js +0 -1
  30. package/blockui/blockui.esm.js +0 -265
  31. package/blockui/blockui.esm.min.js +0 -1
  32. package/breadcrumb/breadcrumb.esm.js +0 -351
  33. package/breadcrumb/breadcrumb.esm.min.js +0 -1
  34. package/button/button.esm.js +0 -295
  35. package/button/button.esm.min.js +0 -1
  36. package/calendar/calendar.esm.js +0 -3473
  37. package/calendar/calendar.esm.min.js +0 -1
  38. package/card/card.esm.js +0 -98
  39. package/card/card.esm.min.js +0 -1
  40. package/carousel/carousel.esm.js +0 -801
  41. package/carousel/carousel.esm.min.js +0 -1
  42. package/cascadeselect/cascadeselect.esm.js +0 -819
  43. package/cascadeselect/cascadeselect.esm.min.js +0 -1
  44. package/chart/chart.esm.js +0 -155
  45. package/chart/chart.esm.min.js +0 -1
  46. package/checkbox/checkbox.esm.js +0 -357
  47. package/checkbox/checkbox.esm.min.js +0 -1
  48. package/chip/chip.esm.js +0 -248
  49. package/chip/chip.esm.min.js +0 -1
  50. package/chips/chips.esm.js +0 -501
  51. package/chips/chips.esm.min.js +0 -1
  52. package/colorpicker/colorpicker.esm.js +0 -788
  53. package/colorpicker/colorpicker.esm.min.js +0 -1
  54. package/column/column.esm.js +0 -8
  55. package/column/column.esm.min.js +0 -1
  56. package/columngroup/columngroup.esm.js +0 -6
  57. package/columngroup/columngroup.esm.min.js +0 -1
  58. package/componentbase/componentbase.esm.js +0 -323
  59. package/componentbase/componentbase.esm.min.js +0 -1
  60. package/confirmdialog/confirmdialog.esm.js +0 -376
  61. package/confirmdialog/confirmdialog.esm.min.js +0 -1
  62. package/confirmpopup/confirmpopup.esm.js +0 -610
  63. package/confirmpopup/confirmpopup.esm.min.js +0 -1
  64. package/contextmenu/contextmenu.esm.js +0 -664
  65. package/contextmenu/contextmenu.esm.min.js +0 -1
  66. package/csstransition/csstransition.esm.js +0 -138
  67. package/csstransition/csstransition.esm.min.js +0 -1
  68. package/datascroller/datascroller.esm.js +0 -320
  69. package/datascroller/datascroller.esm.min.js +0 -1
  70. package/datatable/datatable.esm.js +0 -6636
  71. package/datatable/datatable.esm.min.js +0 -1
  72. package/dataview/dataview.esm.js +0 -506
  73. package/dataview/dataview.esm.min.js +0 -1
  74. package/deferredcontent/deferredcontent.esm.js +0 -133
  75. package/deferredcontent/deferredcontent.esm.min.js +0 -1
  76. package/dialog/dialog.esm.js +0 -983
  77. package/dialog/dialog.esm.min.js +0 -1
  78. package/divider/divider.esm.js +0 -79
  79. package/divider/divider.esm.min.js +0 -1
  80. package/dock/dock.esm.js +0 -348
  81. package/dock/dock.esm.min.js +0 -1
  82. package/dropdown/dropdown.esm.js +0 -1380
  83. package/dropdown/dropdown.esm.min.js +0 -1
  84. package/editor/editor.esm.js +0 -338
  85. package/editor/editor.esm.min.js +0 -1
  86. package/fieldset/fieldset.esm.js +0 -270
  87. package/fieldset/fieldset.esm.min.js +0 -1
  88. package/fileupload/fileupload.esm.js +0 -1005
  89. package/fileupload/fileupload.esm.min.js +0 -1
  90. package/galleria/galleria.esm.js +0 -1090
  91. package/galleria/galleria.esm.min.js +0 -1
  92. package/hooks/hooks.esm.js +0 -1042
  93. package/hooks/hooks.esm.min.js +0 -1
  94. package/iconbase/iconbase.esm.js +0 -33
  95. package/iconbase/iconbase.esm.min.js +0 -1
  96. package/icons/angledoubledown/index.esm.js +0 -39
  97. package/icons/angledoubledown/index.esm.min.js +0 -1
  98. package/icons/angledoubleleft/index.esm.js +0 -39
  99. package/icons/angledoubleleft/index.esm.min.js +0 -1
  100. package/icons/angledoubleright/index.esm.js +0 -39
  101. package/icons/angledoubleright/index.esm.min.js +0 -1
  102. package/icons/angledoubleup/index.esm.js +0 -39
  103. package/icons/angledoubleup/index.esm.min.js +0 -1
  104. package/icons/angledown/index.esm.js +0 -37
  105. package/icons/angledown/index.esm.min.js +0 -1
  106. package/icons/angleleft/index.esm.js +0 -37
  107. package/icons/angleleft/index.esm.min.js +0 -1
  108. package/icons/angleright/index.esm.js +0 -37
  109. package/icons/angleright/index.esm.min.js +0 -1
  110. package/icons/angleup/index.esm.js +0 -37
  111. package/icons/angleup/index.esm.min.js +0 -1
  112. package/icons/arrowdown/index.esm.js +0 -661
  113. package/icons/arrowdown/index.esm.min.js +0 -1
  114. package/icons/arrowup/index.esm.js +0 -661
  115. package/icons/arrowup/index.esm.min.js +0 -1
  116. package/icons/ban/index.esm.js +0 -659
  117. package/icons/ban/index.esm.min.js +0 -1
  118. package/icons/bars/index.esm.js +0 -39
  119. package/icons/bars/index.esm.min.js +0 -1
  120. package/icons/calendar/index.esm.js +0 -37
  121. package/icons/calendar/index.esm.min.js +0 -1
  122. package/icons/check/index.esm.js +0 -37
  123. package/icons/check/index.esm.min.js +0 -1
  124. package/icons/chevrondown/index.esm.js +0 -37
  125. package/icons/chevrondown/index.esm.min.js +0 -1
  126. package/icons/chevronleft/index.esm.js +0 -37
  127. package/icons/chevronleft/index.esm.min.js +0 -1
  128. package/icons/chevronright/index.esm.js +0 -37
  129. package/icons/chevronright/index.esm.min.js +0 -1
  130. package/icons/chevronup/index.esm.js +0 -37
  131. package/icons/chevronup/index.esm.min.js +0 -1
  132. package/icons/download/index.esm.js +0 -661
  133. package/icons/download/index.esm.min.js +0 -1
  134. package/icons/exclamationtriangle/index.esm.js +0 -665
  135. package/icons/exclamationtriangle/index.esm.min.js +0 -1
  136. package/icons/eye/index.esm.js +0 -39
  137. package/icons/eye/index.esm.min.js +0 -1
  138. package/icons/eyeslash/index.esm.js +0 -661
  139. package/icons/eyeslash/index.esm.min.js +0 -1
  140. package/icons/filter/index.esm.js +0 -659
  141. package/icons/filter/index.esm.min.js +0 -1
  142. package/icons/filterslash/index.esm.js +0 -661
  143. package/icons/filterslash/index.esm.min.js +0 -1
  144. package/icons/infocircle/index.esm.js +0 -661
  145. package/icons/infocircle/index.esm.min.js +0 -1
  146. package/icons/minus/index.esm.js +0 -37
  147. package/icons/minus/index.esm.min.js +0 -1
  148. package/icons/pencil/index.esm.js +0 -659
  149. package/icons/pencil/index.esm.min.js +0 -1
  150. package/icons/plus/index.esm.js +0 -659
  151. package/icons/plus/index.esm.min.js +0 -1
  152. package/icons/refresh/index.esm.js +0 -661
  153. package/icons/refresh/index.esm.min.js +0 -1
  154. package/icons/search/index.esm.js +0 -661
  155. package/icons/search/index.esm.min.js +0 -1
  156. package/icons/searchminus/index.esm.js +0 -661
  157. package/icons/searchminus/index.esm.min.js +0 -1
  158. package/icons/searchplus/index.esm.js +0 -661
  159. package/icons/searchplus/index.esm.min.js +0 -1
  160. package/icons/sortalt/index.esm.js +0 -668
  161. package/icons/sortalt/index.esm.min.js +0 -1
  162. package/icons/sortamountdown/index.esm.js +0 -674
  163. package/icons/sortamountdown/index.esm.min.js +0 -1
  164. package/icons/sortamountupalt/index.esm.js +0 -674
  165. package/icons/sortamountupalt/index.esm.min.js +0 -1
  166. package/icons/spinner/index.esm.js +0 -659
  167. package/icons/spinner/index.esm.min.js +0 -1
  168. package/icons/star/index.esm.js +0 -659
  169. package/icons/star/index.esm.min.js +0 -1
  170. package/icons/starfill/index.esm.js +0 -659
  171. package/icons/starfill/index.esm.min.js +0 -1
  172. package/icons/thlarge/index.esm.js +0 -661
  173. package/icons/thlarge/index.esm.min.js +0 -1
  174. package/icons/times/index.esm.js +0 -37
  175. package/icons/times/index.esm.min.js +0 -1
  176. package/icons/timescircle/index.esm.js +0 -661
  177. package/icons/timescircle/index.esm.min.js +0 -1
  178. package/icons/trash/index.esm.js +0 -661
  179. package/icons/trash/index.esm.min.js +0 -1
  180. package/icons/undo/index.esm.js +0 -661
  181. package/icons/undo/index.esm.min.js +0 -1
  182. package/icons/upload/index.esm.js +0 -661
  183. package/icons/upload/index.esm.min.js +0 -1
  184. package/icons/windowmaximize/index.esm.js +0 -661
  185. package/icons/windowmaximize/index.esm.min.js +0 -1
  186. package/icons/windowminimize/index.esm.js +0 -661
  187. package/icons/windowminimize/index.esm.min.js +0 -1
  188. package/image/image.esm.js +0 -1162
  189. package/image/image.esm.min.js +0 -1
  190. package/inplace/inplace.esm.js +0 -243
  191. package/inplace/inplace.esm.min.js +0 -1
  192. package/inputmask/inputmask.esm.js +0 -560
  193. package/inputmask/inputmask.esm.min.js +0 -1
  194. package/inputnumber/inputnumber.esm.js +0 -1209
  195. package/inputnumber/inputnumber.esm.min.js +0 -1
  196. package/inputswitch/inputswitch.esm.js +0 -291
  197. package/inputswitch/inputswitch.esm.min.js +0 -1
  198. package/inputtext/inputtext.esm.js +0 -171
  199. package/inputtext/inputtext.esm.min.js +0 -1
  200. package/inputtextarea/inputtextarea.esm.js +0 -220
  201. package/inputtextarea/inputtextarea.esm.min.js +0 -1
  202. package/keyfilter/keyfilter.esm.js +0 -108
  203. package/keyfilter/keyfilter.esm.min.js +0 -1
  204. package/knob/knob.esm.js +0 -318
  205. package/knob/knob.esm.min.js +0 -1
  206. package/listbox/listbox.esm.js +0 -810
  207. package/listbox/listbox.esm.min.js +0 -1
  208. package/megamenu/megamenu.esm.js +0 -716
  209. package/megamenu/megamenu.esm.min.js +0 -1
  210. package/mention/mention.esm.js +0 -771
  211. package/mention/mention.esm.min.js +0 -1
  212. package/menu/menu.esm.js +0 -485
  213. package/menu/menu.esm.min.js +0 -1
  214. package/menubar/menubar.esm.js +0 -584
  215. package/menubar/menubar.esm.min.js +0 -1
  216. package/message/message.esm.js +0 -169
  217. package/message/message.esm.min.js +0 -1
  218. package/messages/messages.esm.js +0 -439
  219. package/messages/messages.esm.min.js +0 -1
  220. package/multiselect/multiselect.esm.js +0 -1724
  221. package/multiselect/multiselect.esm.min.js +0 -1
  222. package/multistatecheckbox/multistatecheckbox.esm.js +0 -352
  223. package/multistatecheckbox/multistatecheckbox.esm.min.js +0 -1
  224. package/orderlist/orderlist.esm.js +0 -816
  225. package/orderlist/orderlist.esm.min.js +0 -1
  226. package/organizationchart/organizationchart.esm.js +0 -480
  227. package/organizationchart/organizationchart.esm.min.js +0 -1
  228. package/overlaypanel/overlaypanel.esm.js +0 -516
  229. package/overlaypanel/overlaypanel.esm.min.js +0 -1
  230. package/overlayservice/overlayservice.esm.js +0 -7
  231. package/overlayservice/overlayservice.esm.min.js +0 -1
  232. package/paginator/paginator.esm.js +0 -933
  233. package/paginator/paginator.esm.min.js +0 -1
  234. package/panel/panel.esm.js +0 -316
  235. package/panel/panel.esm.min.js +0 -1
  236. package/panelmenu/panelmenu.esm.js +0 -645
  237. package/panelmenu/panelmenu.esm.min.js +0 -1
  238. package/passthrough/index.esm.js +0 -71
  239. package/passthrough/index.esm.min.js +0 -1
  240. package/passthrough/tailwind/index.esm.js +0 -3509
  241. package/passthrough/tailwind/index.esm.min.js +0 -1
  242. package/password/password.esm.js +0 -567
  243. package/password/password.esm.min.js +0 -1
  244. package/picklist/picklist.esm.js +0 -1119
  245. package/picklist/picklist.esm.min.js +0 -1
  246. package/portal/portal.esm.js +0 -110
  247. package/portal/portal.esm.min.js +0 -1
  248. package/primereact.all.esm.js +0 -51646
  249. package/primereact.all.esm.min.js +0 -1
  250. package/progressbar/progressbar.esm.js +0 -190
  251. package/progressbar/progressbar.esm.min.js +0 -1
  252. package/progressspinner/progressspinner.esm.js +0 -88
  253. package/progressspinner/progressspinner.esm.min.js +0 -1
  254. package/radiobutton/radiobutton.esm.js +0 -329
  255. package/radiobutton/radiobutton.esm.min.js +0 -1
  256. package/rating/rating.esm.js +0 -273
  257. package/rating/rating.esm.min.js +0 -1
  258. package/ripple/ripple.esm.js +0 -100
  259. package/ripple/ripple.esm.min.js +0 -1
  260. package/row/row.esm.js +0 -36
  261. package/row/row.esm.min.js +0 -1
  262. package/scrollpanel/scrollpanel.esm.js +0 -210
  263. package/scrollpanel/scrollpanel.esm.min.js +0 -1
  264. package/scrolltop/scrolltop.esm.js +0 -269
  265. package/scrolltop/scrolltop.esm.min.js +0 -1
  266. package/selectbutton/selectbutton.esm.js +0 -327
  267. package/selectbutton/selectbutton.esm.min.js +0 -1
  268. package/sidebar/sidebar.esm.js +0 -543
  269. package/sidebar/sidebar.esm.min.js +0 -1
  270. package/skeleton/skeleton.esm.js +0 -125
  271. package/skeleton/skeleton.esm.min.js +0 -1
  272. package/slidemenu/slidemenu.esm.js +0 -689
  273. package/slidemenu/slidemenu.esm.min.js +0 -1
  274. package/slider/slider.esm.js +0 -478
  275. package/slider/slider.esm.min.js +0 -1
  276. package/speeddial/speeddial.esm.js +0 -521
  277. package/speeddial/speeddial.esm.min.js +0 -1
  278. package/splitbutton/splitbutton.esm.js +0 -545
  279. package/splitbutton/splitbutton.esm.min.js +0 -1
  280. package/splitter/splitter.esm.js +0 -466
  281. package/splitter/splitter.esm.min.js +0 -1
  282. package/steps/steps.esm.js +0 -294
  283. package/steps/steps.esm.min.js +0 -1
  284. package/styleclass/styleclass.esm.js +0 -269
  285. package/styleclass/styleclass.esm.min.js +0 -1
  286. package/tabmenu/tabmenu.esm.js +0 -332
  287. package/tabmenu/tabmenu.esm.min.js +0 -1
  288. package/tabview/tabview.esm.js +0 -678
  289. package/tabview/tabview.esm.min.js +0 -1
  290. package/tag/tag.esm.js +0 -117
  291. package/tag/tag.esm.min.js +0 -1
  292. package/terminal/terminal.esm.js +0 -280
  293. package/terminal/terminal.esm.min.js +0 -1
  294. package/terminalservice/terminalservice.esm.js +0 -7
  295. package/terminalservice/terminalservice.esm.min.js +0 -1
  296. package/tieredmenu/tieredmenu.esm.js +0 -699
  297. package/tieredmenu/tieredmenu.esm.min.js +0 -1
  298. package/timeline/timeline.esm.js +0 -164
  299. package/timeline/timeline.esm.min.js +0 -1
  300. package/toast/toast.esm.js +0 -739
  301. package/toast/toast.esm.min.js +0 -1
  302. package/togglebutton/togglebutton.esm.js +0 -217
  303. package/togglebutton/togglebutton.esm.min.js +0 -1
  304. package/toolbar/toolbar.esm.js +0 -79
  305. package/toolbar/toolbar.esm.min.js +0 -1
  306. package/tooltip/tooltip.esm.js +0 -696
  307. package/tooltip/tooltip.esm.min.js +0 -1
  308. package/tree/tree.esm.js +0 -1403
  309. package/tree/tree.esm.min.js +0 -1
  310. package/treeselect/treeselect.esm.js +0 -930
  311. package/treeselect/treeselect.esm.min.js +0 -1
  312. package/treetable/treetable.esm.js +0 -3094
  313. package/treetable/treetable.esm.min.js +0 -1
  314. package/tristatecheckbox/tristatecheckbox.esm.js +0 -292
  315. package/tristatecheckbox/tristatecheckbox.esm.min.js +0 -1
  316. package/utils/utils.esm.js +0 -2383
  317. package/utils/utils.esm.min.js +0 -1
  318. package/virtualscroller/virtualscroller.esm.js +0 -972
  319. package/virtualscroller/virtualscroller.esm.min.js +0 -1
@@ -1,1724 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import PrimeReact, { PrimeReactContext, localeOption, FilterService } from 'primereact/api';
5
- import { ComponentBase, useHandleStyle } from 'primereact/componentbase';
6
- import { useUpdateEffect, useMountEffect, useOverlayListener, useUnmountEffect } from 'primereact/hooks';
7
- import { ChevronDownIcon } from 'primereact/icons/chevrondown';
8
- import { TimesIcon } from 'primereact/icons/times';
9
- import { TimesCircleIcon } from 'primereact/icons/timescircle';
10
- import { OverlayService } from 'primereact/overlayservice';
11
- import { Tooltip } from 'primereact/tooltip';
12
- import { classNames, ObjectUtils, DomHandler, mergeProps, IconUtils, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
13
- import { CSSTransition } from 'primereact/csstransition';
14
- import { Portal } from 'primereact/portal';
15
- import { VirtualScroller } from 'primereact/virtualscroller';
16
- import { CheckIcon } from 'primereact/icons/check';
17
- import { SearchIcon } from 'primereact/icons/search';
18
- import { InputText } from 'primereact/inputtext';
19
- import { Ripple } from 'primereact/ripple';
20
-
21
- function _extends() {
22
- _extends = Object.assign ? Object.assign.bind() : function (target) {
23
- for (var i = 1; i < arguments.length; i++) {
24
- var source = arguments[i];
25
- for (var key in source) {
26
- if (Object.prototype.hasOwnProperty.call(source, key)) {
27
- target[key] = source[key];
28
- }
29
- }
30
- }
31
- return target;
32
- };
33
- return _extends.apply(this, arguments);
34
- }
35
-
36
- function _typeof(o) {
37
- "@babel/helpers - typeof";
38
-
39
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
40
- return typeof o;
41
- } : function (o) {
42
- return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
43
- }, _typeof(o);
44
- }
45
-
46
- function _toPrimitive(input, hint) {
47
- if (_typeof(input) !== "object" || input === null) return input;
48
- var prim = input[Symbol.toPrimitive];
49
- if (prim !== undefined) {
50
- var res = prim.call(input, hint || "default");
51
- if (_typeof(res) !== "object") return res;
52
- throw new TypeError("@@toPrimitive must return a primitive value.");
53
- }
54
- return (hint === "string" ? String : Number)(input);
55
- }
56
-
57
- function _toPropertyKey(arg) {
58
- var key = _toPrimitive(arg, "string");
59
- return _typeof(key) === "symbol" ? key : String(key);
60
- }
61
-
62
- function _defineProperty(obj, key, value) {
63
- key = _toPropertyKey(key);
64
- if (key in obj) {
65
- Object.defineProperty(obj, key, {
66
- value: value,
67
- enumerable: true,
68
- configurable: true,
69
- writable: true
70
- });
71
- } else {
72
- obj[key] = value;
73
- }
74
- return obj;
75
- }
76
-
77
- function _arrayLikeToArray$1(arr, len) {
78
- if (len == null || len > arr.length) len = arr.length;
79
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
80
- return arr2;
81
- }
82
-
83
- function _arrayWithoutHoles(arr) {
84
- if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
85
- }
86
-
87
- function _iterableToArray(iter) {
88
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
89
- }
90
-
91
- function _unsupportedIterableToArray$1(o, minLen) {
92
- if (!o) return;
93
- if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
94
- var n = Object.prototype.toString.call(o).slice(8, -1);
95
- if (n === "Object" && o.constructor) n = o.constructor.name;
96
- if (n === "Map" || n === "Set") return Array.from(o);
97
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
98
- }
99
-
100
- function _nonIterableSpread() {
101
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
102
- }
103
-
104
- function _toConsumableArray(arr) {
105
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
106
- }
107
-
108
- function _arrayWithHoles(arr) {
109
- if (Array.isArray(arr)) return arr;
110
- }
111
-
112
- function _iterableToArrayLimit(r, l) {
113
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
114
- if (null != t) {
115
- var e,
116
- n,
117
- i,
118
- u,
119
- a = [],
120
- f = !0,
121
- o = !1;
122
- try {
123
- if (i = (t = t.call(r)).next, 0 === l) {
124
- if (Object(t) !== t) return;
125
- f = !1;
126
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
127
- } catch (r) {
128
- o = !0, n = r;
129
- } finally {
130
- try {
131
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
132
- } finally {
133
- if (o) throw n;
134
- }
135
- }
136
- return a;
137
- }
138
- }
139
-
140
- function _nonIterableRest() {
141
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
142
- }
143
-
144
- function _slicedToArray(arr, i) {
145
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
146
- }
147
-
148
- var classes$1 = {
149
- root: function root(_ref) {
150
- var props = _ref.props,
151
- focusedState = _ref.focusedState,
152
- overlayVisibleState = _ref.overlayVisibleState;
153
- return classNames('p-multiselect p-component p-inputwrapper', {
154
- 'p-multiselect-chip': props.display === 'chip',
155
- 'p-disabled': props.disabled,
156
- 'p-multiselect-clearable': props.showClear && !props.disabled,
157
- 'p-focus': focusedState,
158
- 'p-inputwrapper-filled': ObjectUtils.isNotEmpty(props.value),
159
- 'p-inputwrapper-focus': focusedState || overlayVisibleState
160
- });
161
- },
162
- label: function label(_ref2) {
163
- var props = _ref2.props,
164
- empty = _ref2.empty;
165
- return classNames('p-multiselect-label', {
166
- 'p-placeholder': empty && props.placeholder,
167
- 'p-multiselect-label-empty': empty && !props.placeholder && !props.selectedItemTemplate,
168
- 'p-multiselect-items-label': !empty && props.display !== 'chip' && props.value.length > props.maxSelectedLabels
169
- });
170
- },
171
- panel: function panel(_ref3) {
172
- var props = _ref3.panelProps,
173
- context = _ref3.context,
174
- allowOptionSelect = _ref3.allowOptionSelect;
175
- return classNames('p-multiselect-panel p-component', {
176
- 'p-multiselect-inline': props.inline,
177
- 'p-multiselect-flex': props.flex,
178
- 'p-multiselect-limited': !allowOptionSelect,
179
- 'p-input-filled': context && context.inputStyle === 'filled' || PrimeReact.inputStyle === 'filled',
180
- 'p-ripple-disabled': context && context.ripple === false || PrimeReact.ripple === false
181
- });
182
- },
183
- list: function list(_ref4) {
184
- var virtualScrollerOptions = _ref4.virtualScrollerOptions;
185
- return virtualScrollerOptions ? 'p-multiselect-items p-component' : 'p-multiselect-items p-component';
186
- },
187
- labelContainer: 'p-multiselect-label-container',
188
- triggerIcon: 'p-multiselect-trigger-icon p-c',
189
- trigger: 'p-multiselect-trigger',
190
- clearIcon: 'p-multiselect-clear-icon',
191
- tokenLabel: 'p-multiselect-token-label',
192
- token: 'p-multiselect-token',
193
- removeTokenIcon: 'p-multiselect-token-icon',
194
- wrapper: 'p-multiselect-items-wrapper',
195
- emptyMessage: 'p-multiselect-empty-message',
196
- itemGroup: 'p-multiselect-item-group',
197
- closeButton: 'p-multiselect-close p-link',
198
- header: 'p-multiselect-header',
199
- closeIcon: 'p-multiselect-close-icon',
200
- headerCheckboxContainer: 'p-multiselect-select-all',
201
- headerCheckboxIcon: 'p-multiselect-select-all p-checkbox-icon p-c',
202
- headerSelectAllLabel: 'p-multiselect-select-all-label',
203
- filterContainer: 'p-multiselect-filter-container',
204
- filterIcon: 'p-multiselect-filter-icon',
205
- item: function item(_ref5) {
206
- var props = _ref5.itemProps;
207
- return classNames('p-multiselect-item', {
208
- 'p-highlight': props.selected,
209
- 'p-disabled': props.disabled
210
- });
211
- },
212
- checkboxContainer: 'p-checkbox p-component',
213
- checkboxIcon: 'p-checkbox-icon p-c',
214
- checkbox: function checkbox(_ref6) {
215
- var props = _ref6.itemProps;
216
- return classNames('p-checkbox-box', {
217
- 'p-highlight': props.selected
218
- });
219
- },
220
- transition: 'p-connected-overlay'
221
- };
222
- var styles$1 = "\n@layer primereact {\n .p-multiselect {\n display: inline-flex;\n user-select: none;\n cursor: pointer;\n }\n \n .p-multiselect-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n }\n \n .p-multiselect-label-container {\n overflow: hidden;\n flex: 1 1 auto;\n cursor: pointer;\n }\n \n .p-multiselect-label {\n display: block;\n white-space: nowrap;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .p-multiselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n }\n \n .p-multiselect-token {\n cursor: default;\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n }\n \n .p-multiselect-token-icon {\n cursor: pointer;\n }\n \n .p-multiselect .p-multiselect-panel {\n min-width: 100%;\n }\n \n .p-multiselect-inline.p-multiselect-panel {\n border: none;\n position: initial;\n background: none;\n box-shadow: none;\n }\n \n .p-multiselect-inline.p-multiselect-panel .p-multiselect-items {\n padding: 0;\n }\n \n .p-multiselect-flex.p-multiselect-panel .p-multiselect-items {\n display: flex;\n flex-wrap: wrap;\n }\n \n .p-multiselect-items-wrapper {\n overflow: auto;\n }\n \n .p-multiselect-items {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n \n .p-multiselect-item {\n cursor: pointer;\n display: flex;\n align-items: center;\n font-weight: normal;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n }\n \n .p-multiselect-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n \n .p-multiselect-select-all-label {\n margin-left: 0.5rem;\n }\n \n .p-multiselect-filter-container {\n position: relative;\n flex: 1 1 auto;\n }\n \n .p-multiselect-filter-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-multiselect-filter-container .p-inputtext {\n width: 100%;\n }\n \n .p-multiselect-close {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n overflow: hidden;\n position: relative;\n margin-left: auto;\n }\n \n .p-multiselect-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-fluid .p-multiselect {\n display: flex;\n }\n}\n";
223
- var inlineStyles = {
224
- itemGroup: function itemGroup(_ref7) {
225
- var scrollerOptions = _ref7.scrollerOptions;
226
- return {
227
- height: scrollerOptions.props ? scrollerOptions.props.itemSize : undefined
228
- };
229
- }
230
- };
231
- var MultiSelectBase = ComponentBase.extend({
232
- defaultProps: {
233
- __TYPE: 'MultiSelect',
234
- appendTo: null,
235
- ariaLabelledBy: null,
236
- className: null,
237
- closeIcon: null,
238
- checkboxIcon: null,
239
- dataKey: null,
240
- disabled: false,
241
- display: 'comma',
242
- dropdownIcon: null,
243
- emptyFilterMessage: null,
244
- filter: false,
245
- filterBy: null,
246
- filterInputAutoFocus: true,
247
- filterLocale: undefined,
248
- filterMatchMode: 'contains',
249
- filterPlaceholder: null,
250
- filterTemplate: null,
251
- fixedPlaceholder: false,
252
- flex: false,
253
- id: null,
254
- itemCheckboxIcon: null,
255
- inline: false,
256
- inputId: null,
257
- inputRef: null,
258
- itemClassName: null,
259
- itemTemplate: null,
260
- maxSelectedLabels: null,
261
- name: null,
262
- onClick: null,
263
- onBlur: null,
264
- onChange: null,
265
- onFilter: null,
266
- onFocus: null,
267
- onHide: null,
268
- onSelectAll: null,
269
- onShow: null,
270
- optionDisabled: null,
271
- optionGroupChildren: null,
272
- optionGroupLabel: null,
273
- optionGroupTemplate: null,
274
- optionLabel: null,
275
- optionValue: null,
276
- options: null,
277
- overlayVisible: false,
278
- panelClassName: null,
279
- panelFooterTemplate: null,
280
- panelHeaderTemplate: null,
281
- panelStyle: null,
282
- placeholder: null,
283
- removeIcon: null,
284
- resetFilterOnHide: false,
285
- scrollHeight: '200px',
286
- selectAll: false,
287
- selectedItemTemplate: null,
288
- selectedItemsLabel: '{0} items selected',
289
- selectionLimit: null,
290
- showClear: false,
291
- showSelectAll: true,
292
- style: null,
293
- tabIndex: 0,
294
- tooltip: null,
295
- tooltipOptions: null,
296
- transitionOptions: null,
297
- useOptionAsValue: false,
298
- value: null,
299
- virtualScrollerOptions: null,
300
- children: undefined
301
- },
302
- css: {
303
- classes: classes$1,
304
- styles: styles$1,
305
- inlineStyles: inlineStyles
306
- }
307
- });
308
-
309
- var classes = {
310
- icon: 'p-checkbox-icon p-c',
311
- input: function input(_ref) {
312
- var props = _ref.props,
313
- checked = _ref.checked,
314
- focusedState = _ref.focusedState;
315
- return classNames('p-checkbox-box', {
316
- 'p-highlight': checked,
317
- 'p-disabled': props.disabled,
318
- 'p-focus': focusedState
319
- });
320
- },
321
- root: function root(_ref2) {
322
- var props = _ref2.props,
323
- checked = _ref2.checked,
324
- focusedState = _ref2.focusedState;
325
- return classNames('p-checkbox p-component', {
326
- 'p-checkbox-checked': checked,
327
- 'p-checkbox-disabled': props.disabled,
328
- 'p-checkbox-focused': focusedState
329
- });
330
- }
331
- };
332
- var styles = "\n.p-checkbox {\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n vertical-align: bottom;\n position: relative;\n}\n\n.p-checkbox.p-checkbox-disabled {\n cursor: auto;\n}\n\n.p-checkbox-box {\n display: flex;\n justify-content: center;\n align-items: center;\n} \n";
333
- var CheckboxBase = ComponentBase.extend({
334
- defaultProps: {
335
- __TYPE: 'Checkbox',
336
- autoFocus: false,
337
- checked: false,
338
- className: null,
339
- disabled: false,
340
- falseValue: false,
341
- icon: null,
342
- id: null,
343
- inputId: null,
344
- inputRef: null,
345
- name: null,
346
- onChange: null,
347
- onClick: null,
348
- onContextMenu: null,
349
- onMouseDown: null,
350
- readOnly: false,
351
- required: false,
352
- style: null,
353
- tabIndex: null,
354
- tooltip: null,
355
- tooltipOptions: null,
356
- trueValue: true,
357
- value: null,
358
- children: undefined
359
- },
360
- css: {
361
- classes: classes,
362
- styles: styles
363
- }
364
- });
365
-
366
- function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
367
- function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
368
- var Checkbox = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {
369
- var context = React.useContext(PrimeReactContext);
370
- var props = CheckboxBase.getProps(inProps, context);
371
- var _React$useState = React.useState(false),
372
- _React$useState2 = _slicedToArray(_React$useState, 2),
373
- focusedState = _React$useState2[0],
374
- setFocusedState = _React$useState2[1];
375
- var _CheckboxBase$setMeta = CheckboxBase.setMetaData({
376
- props: props,
377
- state: {
378
- focused: focusedState
379
- },
380
- context: {
381
- checked: props.checked === props.trueValue,
382
- disabled: props.disabled
383
- }
384
- }),
385
- ptm = _CheckboxBase$setMeta.ptm,
386
- cx = _CheckboxBase$setMeta.cx,
387
- isUnstyled = _CheckboxBase$setMeta.isUnstyled;
388
- useHandleStyle(CheckboxBase.css.styles, isUnstyled, {
389
- name: 'checkbox',
390
- styled: true
391
- });
392
- var elementRef = React.useRef(null);
393
- var inputRef = React.useRef(props.inputRef);
394
- var _onClick = function onClick(event) {
395
- if (props.disabled || props.readOnly) {
396
- return;
397
- }
398
- if (props.onChange || props.onClick) {
399
- var _checked = isChecked();
400
- var checkboxClicked = event.target instanceof HTMLDivElement || event.target instanceof HTMLSpanElement || event.target instanceof Object;
401
- var isInputToggled = event.target === inputRef.current;
402
- var isCheckboxToggled = checkboxClicked && event.target.checked !== _checked;
403
- if (isInputToggled || isCheckboxToggled) {
404
- var value = _checked ? props.falseValue : props.trueValue;
405
- var eventData = {
406
- originalEvent: event,
407
- value: props.value,
408
- checked: value,
409
- stopPropagation: function stopPropagation() {
410
- event.stopPropagation();
411
- },
412
- preventDefault: function preventDefault() {
413
- event.preventDefault();
414
- },
415
- target: {
416
- type: 'checkbox',
417
- name: props.name,
418
- id: props.id,
419
- value: props.value,
420
- checked: value
421
- }
422
- };
423
- props.onClick && props.onClick(eventData);
424
-
425
- // do not continue if the user defined click wants to prevent
426
- if (event.defaultPrevented) {
427
- return;
428
- }
429
- props.onChange && props.onChange(eventData);
430
- }
431
- DomHandler.focus(inputRef.current);
432
- event.preventDefault();
433
- }
434
- };
435
- var _onFocus = function onFocus() {
436
- setFocusedState(true);
437
- };
438
- var _onBlur = function onBlur() {
439
- setFocusedState(false);
440
- };
441
- var _onKeyDown = function onKeyDown(event) {
442
- if (event.code === 'Space' || event.key === ' ') {
443
- // event.key is for Android support
444
- _onClick(event);
445
- }
446
- };
447
- var isChecked = function isChecked() {
448
- return props.checked === props.trueValue;
449
- };
450
- React.useImperativeHandle(ref, function () {
451
- return {
452
- props: props,
453
- focus: function focus() {
454
- return DomHandler.focus(inputRef.current);
455
- },
456
- getElement: function getElement() {
457
- return elementRef.current;
458
- },
459
- getInput: function getInput() {
460
- return inputRef.current;
461
- }
462
- };
463
- });
464
- React.useEffect(function () {
465
- ObjectUtils.combinedRefs(inputRef, props.inputRef);
466
- }, [inputRef, props.inputRef]);
467
- useUpdateEffect(function () {
468
- inputRef.current.checked = isChecked();
469
- }, [props.checked, props.trueValue]);
470
- useMountEffect(function () {
471
- if (props.autoFocus) {
472
- DomHandler.focus(inputRef.current, props.autoFocus);
473
- }
474
- });
475
- var checked = isChecked();
476
- var hasTooltip = ObjectUtils.isNotEmpty(props.tooltip);
477
- var otherProps = CheckboxBase.getOtherProps(props);
478
- var ariaProps = ObjectUtils.reduceKeys(otherProps, DomHandler.ARIA_PROPS);
479
- var iconProps = mergeProps({
480
- className: cx('icon')
481
- }, ptm('icon'));
482
- var icon = checked ? props.icon || /*#__PURE__*/React.createElement(CheckIcon, iconProps) : null;
483
- var checkboxIcon = IconUtils.getJSXIcon(icon, _objectSpread$4({}, iconProps), {
484
- props: props,
485
- checked: checked
486
- });
487
- var rootProps = mergeProps({
488
- id: props.id,
489
- className: classNames(props.className, cx('root', {
490
- checked: checked,
491
- focusedState: focusedState
492
- })),
493
- style: props.style,
494
- onClick: function onClick(e) {
495
- return _onClick(e);
496
- },
497
- onContextMenu: props.onContextMenu,
498
- onMouseDown: props.onMouseDown
499
- }, otherProps, ptm('root'));
500
- var hiddenInputWrapperProps = mergeProps({
501
- className: 'p-hidden-accessible'
502
- }, ptm('hiddenInputWrapper'));
503
- var hiddenInputProps = mergeProps(_objectSpread$4({
504
- id: props.inputId,
505
- type: 'checkbox',
506
- name: props.name,
507
- tabIndex: props.tabIndex,
508
- defaultChecked: checked,
509
- onFocus: function onFocus(e) {
510
- return _onFocus();
511
- },
512
- onBlur: function onBlur(e) {
513
- return _onBlur();
514
- },
515
- onKeyDown: function onKeyDown(e) {
516
- return _onKeyDown(e);
517
- },
518
- disabled: props.disabled,
519
- readOnly: props.readOnly,
520
- required: props.required
521
- }, ariaProps), ptm('hiddenInput'));
522
- var inputProps = mergeProps({
523
- className: cx('input', {
524
- checked: checked,
525
- focusedState: focusedState
526
- }),
527
- 'data-p-highlight': checked,
528
- 'data-p-disabled': props.disabled,
529
- 'data-p-focus': focusedState
530
- }, ptm('input'));
531
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", _extends({
532
- ref: elementRef
533
- }, rootProps), /*#__PURE__*/React.createElement("div", hiddenInputWrapperProps, /*#__PURE__*/React.createElement("input", _extends({
534
- ref: inputRef
535
- }, hiddenInputProps))), /*#__PURE__*/React.createElement("div", inputProps, checkboxIcon)), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
536
- target: elementRef,
537
- content: props.tooltip
538
- }, props.tooltipOptions, {
539
- pt: ptm('tooltip')
540
- })));
541
- }));
542
- Checkbox.displayName = 'Checkbox';
543
-
544
- function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
545
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
546
- var MultiSelectHeader = /*#__PURE__*/React.memo(function (props) {
547
- var ptm = props.ptm,
548
- cx = props.cx,
549
- isUnstyled = props.isUnstyled;
550
- var filterOptions = {
551
- filter: function filter(e) {
552
- return onFilter(e);
553
- },
554
- reset: function reset() {
555
- return props.resetFilter();
556
- }
557
- };
558
- var getPTOptions = function getPTOptions(key, options) {
559
- return ptm(key, _objectSpread$3({
560
- hostName: props.hostName
561
- }, options));
562
- };
563
- var onFilter = function onFilter(event) {
564
- if (props.onFilter) {
565
- props.onFilter({
566
- originalEvent: event,
567
- query: event.target.value
568
- });
569
- }
570
- };
571
- var onSelectAll = function onSelectAll(event) {
572
- if (props.onSelectAll) {
573
- props.onSelectAll({
574
- originalEvent: event,
575
- checked: props.selectAll
576
- });
577
- }
578
- event.preventDefault();
579
- };
580
- var createFilterElement = function createFilterElement() {
581
- var filterIconProps = mergeProps({
582
- className: cx('filterIcon')
583
- }, getPTOptions('filterIcon'));
584
- var icon = props.filterIcon || /*#__PURE__*/React.createElement(SearchIcon, filterIconProps);
585
- var filterIcon = IconUtils.getJSXIcon(icon, _objectSpread$3({}, filterIconProps), {
586
- props: props
587
- });
588
- if (props.filter) {
589
- var filterContainerProps = mergeProps({
590
- className: cx('filterContainer')
591
- }, getPTOptions('filterContainer'));
592
- var content = /*#__PURE__*/React.createElement("div", filterContainerProps, /*#__PURE__*/React.createElement(InputText, {
593
- ref: props.filterRef,
594
- type: "text",
595
- role: "textbox",
596
- value: props.filterValue,
597
- onChange: onFilter,
598
- className: "p-multiselect-filter",
599
- placeholder: props.filterPlaceholder,
600
- pt: ptm('filterInput'),
601
- __parentMetadata: {
602
- parent: props.metaData
603
- }
604
- }), filterIcon);
605
- if (props.filterTemplate) {
606
- var defaultContentOptions = {
607
- className: containerClassName,
608
- element: content,
609
- filterOptions: filterOptions,
610
- onFilter: onFilter,
611
- filterIconClassName: filterIconClassName,
612
- props: props
613
- };
614
- content = ObjectUtils.getJSXElement(props.filterTemplate, defaultContentOptions);
615
- }
616
- return /*#__PURE__*/React.createElement(React.Fragment, null, content);
617
- }
618
- return null;
619
- };
620
- var filterElement = createFilterElement();
621
- var selectAllId = props.id ? props.id + '_selectall' : UniqueComponentId();
622
- var headerSelectAllLabelProps = mergeProps({
623
- htmlFor: selectAllId,
624
- className: cx('headerSelectAllLabel')
625
- }, getPTOptions('headerSelectAllLabel'));
626
- var headerCheckboxIconProps = mergeProps({
627
- className: cx('headerCheckboxIcon')
628
- }, getPTOptions('headerCheckboxIcon'));
629
- var checkedIcon = props.itemCheckboxIcon || /*#__PURE__*/React.createElement(CheckIcon, headerCheckboxIconProps);
630
- var itemCheckboxIcon = IconUtils.getJSXIcon(checkedIcon, _objectSpread$3({}, headerCheckboxIconProps), {
631
- selected: props.selected
632
- });
633
- var checkboxElement = props.showSelectAll && /*#__PURE__*/React.createElement("div", {
634
- className: "p-multiselect-select-all"
635
- }, /*#__PURE__*/React.createElement(Checkbox, {
636
- id: selectAllId,
637
- checked: props.selectAll,
638
- onChange: onSelectAll,
639
- role: "checkbox",
640
- "aria-checked": props.selectAll,
641
- icon: itemCheckboxIcon,
642
- pt: ptm('headercheckbox'),
643
- unstyled: isUnstyled()
644
- }), !props.filter && /*#__PURE__*/React.createElement("label", headerSelectAllLabelProps, props.selectAllLabel));
645
- var iconProps = mergeProps({
646
- className: cx('closeIcon'),
647
- 'aria-hidden': true
648
- }, getPTOptions('closeIcon'));
649
- var icon = props.closeIcon || /*#__PURE__*/React.createElement(TimesIcon, iconProps);
650
- var closeIcon = IconUtils.getJSXIcon(icon, _objectSpread$3({}, iconProps), {
651
- props: props
652
- });
653
- var headerProps = mergeProps({
654
- className: cx('header')
655
- }, getPTOptions('header'));
656
- var closeButtonProps = mergeProps({
657
- type: 'button',
658
- className: cx('closeButton'),
659
- 'aria-label': localeOption('close'),
660
- onClick: props.onClose
661
- }, getPTOptions('closeButton'));
662
- var closeElement = /*#__PURE__*/React.createElement("button", closeButtonProps, closeIcon, /*#__PURE__*/React.createElement(Ripple, null));
663
- var element = /*#__PURE__*/React.createElement("div", headerProps, checkboxElement, filterElement, closeElement);
664
- if (props.template) {
665
- var defaultOptions = {
666
- className: 'p-multiselect-header',
667
- checkboxElement: checkboxElement,
668
- checked: props.selectAll,
669
- onChange: onSelectAll,
670
- filterElement: filterElement,
671
- closeElement: closeElement,
672
- closeElementClassName: 'p-multiselect-close p-link',
673
- closeIconClassName: 'p-multiselect-close-icon',
674
- onCloseClick: props.onClose,
675
- element: element,
676
- itemCheckboxIcon: itemCheckboxIcon,
677
- props: props
678
- };
679
- return ObjectUtils.getJSXElement(props.template, defaultOptions);
680
- }
681
- return element;
682
- });
683
- MultiSelectHeader.displayName = 'MultiSelectHeader';
684
-
685
- function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
686
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
687
- var MultiSelectItem = /*#__PURE__*/React.memo(function (props) {
688
- var ptm = props.ptm,
689
- cx = props.cx;
690
- var getPTOptions = function getPTOptions(key) {
691
- return ptm(key, {
692
- hostName: props.hostName,
693
- context: {
694
- selected: props.selected
695
- }
696
- });
697
- };
698
- var onClick = function onClick(event) {
699
- if (props.onClick) {
700
- props.onClick({
701
- originalEvent: event,
702
- option: props.option
703
- });
704
- }
705
- event.preventDefault();
706
- };
707
- var onKeyDown = function onKeyDown(event) {
708
- if (props.onKeyDown) {
709
- props.onKeyDown({
710
- originalEvent: event,
711
- option: props.option
712
- });
713
- }
714
- };
715
- var checkboxIconProps = mergeProps({
716
- className: cx('checkboxIcon')
717
- }, getPTOptions('checkboxIcon'));
718
- var icon = props.checkboxIcon || /*#__PURE__*/React.createElement(CheckIcon, checkboxIconProps);
719
- var checkboxIcon = props.selected ? IconUtils.getJSXIcon(icon, _objectSpread$2({}, checkboxIconProps), {
720
- selected: props.selected
721
- }) : null;
722
- var content = props.template ? ObjectUtils.getJSXElement(props.template, props.option) : props.label;
723
- var tabIndex = props.disabled ? null : props.tabIndex || 0;
724
- var checkboxContainerProps = mergeProps({
725
- className: cx('checkboxContainer')
726
- }, getPTOptions('checkboxContainer'));
727
- var checkboxProps = mergeProps({
728
- className: cx('checkbox', {
729
- itemProps: props
730
- }),
731
- 'data-p-highlight': props.selected
732
- }, getPTOptions('checkbox'));
733
- var itemProps = mergeProps({
734
- className: classNames(props.className, props.option.className, cx('item', {
735
- itemProps: props
736
- })),
737
- style: props.style,
738
- onClick: onClick,
739
- tabIndex: tabIndex,
740
- onKeyDown: onKeyDown,
741
- role: 'option',
742
- 'aria-selected': props.selected,
743
- 'data-p-highlight': props.selected,
744
- 'data-p-disabled': props.disabled
745
- }, getPTOptions('item'));
746
- return /*#__PURE__*/React.createElement("li", itemProps, /*#__PURE__*/React.createElement("div", checkboxContainerProps, /*#__PURE__*/React.createElement("div", checkboxProps, checkboxIcon)), /*#__PURE__*/React.createElement("span", null, content), /*#__PURE__*/React.createElement(Ripple, null));
747
- });
748
- MultiSelectItem.displayName = 'MultiSelectItem';
749
-
750
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
751
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
752
- var MultiSelectPanel = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
753
- var virtualScrollerRef = React.useRef(null);
754
- var filterInputRef = React.useRef(null);
755
- var context = React.useContext(PrimeReactContext);
756
- var ptm = props.ptm,
757
- cx = props.cx,
758
- sx = props.sx,
759
- isUnstyled = props.isUnstyled;
760
- var getPTOptions = function getPTOptions(key, options) {
761
- return ptm(key, _objectSpread$1({
762
- hostName: props.hostName
763
- }, options));
764
- };
765
- var onEnter = function onEnter() {
766
- props.onEnter(function () {
767
- if (virtualScrollerRef.current) {
768
- var selectedIndex = props.getSelectedOptionIndex();
769
- if (selectedIndex !== -1) {
770
- setTimeout(function () {
771
- return virtualScrollerRef.current.scrollToIndex(selectedIndex);
772
- }, 0);
773
- }
774
- }
775
- });
776
- };
777
- var onEntered = function onEntered() {
778
- props.onEntered(function () {
779
- if (props.filter && props.filterInputAutoFocus && filterInputRef.current) {
780
- DomHandler.focus(filterInputRef.current, false);
781
- }
782
- });
783
- };
784
- var onFilterInputChange = function onFilterInputChange(event) {
785
- if (virtualScrollerRef.current) {
786
- virtualScrollerRef.current.scrollToIndex(0);
787
- }
788
- props.onFilterInputChange && props.onFilterInputChange(event);
789
- };
790
- var isEmptyFilter = function isEmptyFilter() {
791
- return !(props.visibleOptions && props.visibleOptions.length) && props.hasFilter;
792
- };
793
- var createHeader = function createHeader() {
794
- return /*#__PURE__*/React.createElement(MultiSelectHeader, {
795
- hostName: props.hostName,
796
- id: props.id,
797
- filter: props.filter,
798
- filterRef: filterInputRef,
799
- filterValue: props.filterValue,
800
- filterTemplate: props.filterTemplate,
801
- onFilter: onFilterInputChange,
802
- filterPlaceholder: props.filterPlaceholder,
803
- onClose: props.onCloseClick,
804
- showSelectAll: props.showSelectAll,
805
- selectAll: props.isAllSelected(),
806
- selectAllLabel: props.selectAllLabel,
807
- onSelectAll: props.onSelectAll,
808
- template: props.panelHeaderTemplate,
809
- resetFilter: props.resetFilter,
810
- closeIcon: props.closeIcon,
811
- filterIcon: props.filterIcon,
812
- itemCheckboxIcon: props.itemCheckboxIcon,
813
- ptm: ptm,
814
- cx: cx,
815
- isUnstyled: isUnstyled,
816
- metaData: props.metaData
817
- });
818
- };
819
- var createFooter = function createFooter() {
820
- if (props.panelFooterTemplate) {
821
- var content = ObjectUtils.getJSXElement(props.panelFooterTemplate, props, props.onOverlayHide);
822
- return /*#__PURE__*/React.createElement("div", {
823
- className: "p-multiselect-footer"
824
- }, content);
825
- }
826
- return null;
827
- };
828
- var createGroupChildren = function createGroupChildren(optionGroup, style) {
829
- var groupChildren = props.getOptionGroupChildren(optionGroup);
830
- return groupChildren.map(function (option, j) {
831
- var optionLabel = props.getOptionLabel(option);
832
- var optionKey = j + '_' + props.getOptionRenderKey(option);
833
- var disabled = props.isOptionDisabled(option);
834
- var tabIndex = disabled ? null : props.tabIndex || 0;
835
- var selected = props.isSelected(option);
836
- return /*#__PURE__*/React.createElement(MultiSelectItem, {
837
- hostName: props.hostName,
838
- key: optionKey,
839
- label: optionLabel,
840
- option: option,
841
- style: style,
842
- template: props.itemTemplate,
843
- selected: selected,
844
- onClick: props.onOptionSelect,
845
- onKeyDown: props.onOptionKeyDown,
846
- tabIndex: tabIndex,
847
- disabled: disabled,
848
- className: props.itemClassName,
849
- checkboxIcon: props.checkboxIcon,
850
- ptm: ptm,
851
- cx: cx
852
- });
853
- });
854
- };
855
- var createEmptyFilter = function createEmptyFilter() {
856
- var emptyFilterMessage = ObjectUtils.getJSXElement(props.emptyFilterMessage, props) || localeOption('emptyFilterMessage');
857
- var emptyMessageProps = mergeProps({
858
- className: cx('emptyMessage')
859
- }, getPTOptions('emptyMessage'));
860
- return /*#__PURE__*/React.createElement("li", emptyMessageProps, emptyFilterMessage);
861
- };
862
- var createEmptyContent = function createEmptyContent() {
863
- var emptyMessage = ObjectUtils.getJSXElement(props.emptyMessage, props) || localeOption('emptyMessage');
864
- var emptyMessageProps = mergeProps({
865
- className: cx('emptyMessage')
866
- }, getPTOptions('emptyMessage'));
867
- return /*#__PURE__*/React.createElement("li", emptyMessageProps, emptyMessage);
868
- };
869
- var createItem = function createItem(option, index) {
870
- var scrollerOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
871
- var style = {
872
- height: scrollerOptions.props ? scrollerOptions.props.itemSize : undefined
873
- };
874
- if (props.optionGroupLabel) {
875
- var groupContent = props.optionGroupTemplate ? ObjectUtils.getJSXElement(props.optionGroupTemplate, option, index) : props.getOptionGroupLabel(option);
876
- var groupChildrenContent = createGroupChildren(option, style);
877
- var key = index + '_' + props.getOptionGroupRenderKey(option);
878
- var itemGroupProps = mergeProps({
879
- className: cx('itemGroup'),
880
- style: sx('itemGroup', {
881
- scrollerOptions: scrollerOptions
882
- })
883
- }, getPTOptions('itemGroup'));
884
- return /*#__PURE__*/React.createElement(React.Fragment, {
885
- key: key
886
- }, /*#__PURE__*/React.createElement("li", itemGroupProps, groupContent), groupChildrenContent);
887
- } else {
888
- var optionLabel = props.getOptionLabel(option);
889
- var optionKey = index + '_' + props.getOptionRenderKey(option);
890
- var disabled = props.isOptionDisabled(option);
891
- var tabIndex = disabled ? null : props.tabIndex || 0;
892
- var selected = props.isSelected(option);
893
- return /*#__PURE__*/React.createElement(MultiSelectItem, {
894
- hostName: props.hostName,
895
- key: optionKey,
896
- label: optionLabel,
897
- option: option,
898
- style: style,
899
- template: props.itemTemplate,
900
- selected: selected,
901
- onClick: props.onOptionSelect,
902
- onKeyDown: props.onOptionKeyDown,
903
- tabIndex: tabIndex,
904
- disabled: disabled,
905
- className: props.itemClassName,
906
- checkboxIcon: props.checkboxIcon,
907
- ptm: ptm,
908
- cx: cx
909
- });
910
- }
911
- };
912
- var createItems = function createItems() {
913
- if (ObjectUtils.isNotEmpty(props.visibleOptions)) {
914
- return props.visibleOptions.map(createItem);
915
- } else {
916
- return props.hasFilter ? createEmptyFilter() : createEmptyContent();
917
- }
918
- };
919
- var createContent = function createContent() {
920
- if (props.virtualScrollerOptions) {
921
- var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, props.virtualScrollerOptions), {
922
- style: _objectSpread$1(_objectSpread$1({}, props.virtualScrollerOptions.style), {
923
- height: props.scrollHeight
924
- }),
925
- className: classNames('p-multiselect-items-wrapper', props.virtualScrollerOptions.className),
926
- items: props.visibleOptions,
927
- autoSize: true,
928
- onLazyLoad: function onLazyLoad(event) {
929
- return props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {
930
- filter: props.filterValue
931
- }));
932
- },
933
- itemTemplate: function itemTemplate(item, options) {
934
- return item && createItem(item, options.index, options);
935
- },
936
- contentTemplate: function contentTemplate(options) {
937
- var content = isEmptyFilter() ? createEmptyFilter() : options.children;
938
- var listProps = mergeProps({
939
- ref: options.contentRef,
940
- style: options.style,
941
- className: classNames(options.className, cx('list', {
942
- virtualScrollerProps: props.virtualScrollerOptions
943
- })),
944
- role: 'listbox',
945
- 'aria-multiselectable': true
946
- }, getPTOptions('list'));
947
- return /*#__PURE__*/React.createElement("ul", listProps, content);
948
- }
949
- });
950
- return /*#__PURE__*/React.createElement(VirtualScroller, _extends({
951
- ref: virtualScrollerRef
952
- }, virtualScrollerProps, {
953
- pt: ptm('virtualScroller'),
954
- __parentMetadata: {
955
- parent: props.metaData
956
- }
957
- }));
958
- } else {
959
- var items = createItems();
960
- var wrapperProps = mergeProps({
961
- className: cx('wrapper'),
962
- style: {
963
- maxHeight: props.scrollHeight
964
- }
965
- }, getPTOptions('wrapper'));
966
- var listProps = mergeProps({
967
- className: cx('list'),
968
- role: 'listbox',
969
- 'aria-multiselectable': true
970
- }, getPTOptions('list'));
971
- return /*#__PURE__*/React.createElement("div", wrapperProps, /*#__PURE__*/React.createElement("ul", listProps, items));
972
- }
973
- };
974
- var createElement = function createElement() {
975
- var allowOptionSelect = props.allowOptionSelect();
976
- var header = createHeader();
977
- var content = createContent();
978
- var footer = createFooter();
979
- var panelProps = mergeProps({
980
- className: classNames(props.panelClassName, cx('panel', {
981
- panelProps: props,
982
- context: context,
983
- allowOptionSelect: allowOptionSelect
984
- })),
985
- style: props.panelStyle,
986
- onClick: props.onClick
987
- }, getPTOptions('panel'));
988
- if (props.inline) {
989
- return /*#__PURE__*/React.createElement("div", _extends({
990
- ref: ref
991
- }, panelProps), content, footer);
992
- }
993
- var transitionProps = mergeProps({
994
- classNames: cx('transition'),
995
- "in": props["in"],
996
- timeout: {
997
- enter: 120,
998
- exit: 100
999
- },
1000
- options: props.transitionOptions,
1001
- unmountOnExit: true,
1002
- onEnter: onEnter,
1003
- onEntered: onEntered,
1004
- onExit: props.onExit,
1005
- onExited: props.onExited
1006
- }, getPTOptions('transition'));
1007
- return /*#__PURE__*/React.createElement(CSSTransition, _extends({
1008
- nodeRef: ref
1009
- }, transitionProps), /*#__PURE__*/React.createElement("div", _extends({
1010
- ref: ref
1011
- }, panelProps), header, content, footer));
1012
- };
1013
- var element = createElement();
1014
- if (props.inline) return element;
1015
- return /*#__PURE__*/React.createElement(Portal, {
1016
- element: element,
1017
- appendTo: props.appendTo
1018
- });
1019
- }));
1020
- MultiSelectPanel.displayName = 'MultiSelectPanel';
1021
-
1022
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1023
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1024
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
1025
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1026
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
1027
- var MultiSelect = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {
1028
- var context = React.useContext(PrimeReactContext);
1029
- var props = MultiSelectBase.getProps(inProps, context);
1030
- var _React$useState = React.useState(''),
1031
- _React$useState2 = _slicedToArray(_React$useState, 2),
1032
- filterState = _React$useState2[0],
1033
- setFilterState = _React$useState2[1];
1034
- var _React$useState3 = React.useState(false),
1035
- _React$useState4 = _slicedToArray(_React$useState3, 2),
1036
- focusedState = _React$useState4[0],
1037
- setFocusedState = _React$useState4[1];
1038
- var _React$useState5 = React.useState(props.inline),
1039
- _React$useState6 = _slicedToArray(_React$useState5, 2),
1040
- overlayVisibleState = _React$useState6[0],
1041
- setOverlayVisibleState = _React$useState6[1];
1042
- var elementRef = React.useRef(null);
1043
- var inputRef = React.useRef(props.inputRef);
1044
- var labelRef = React.useRef(null);
1045
- var overlayRef = React.useRef(null);
1046
- var hasFilter = filterState && filterState.trim().length > 0;
1047
- var empty = ObjectUtils.isEmpty(props.value);
1048
- var equalityKey = props.optionValue ? null : props.dataKey;
1049
- var metaData = {
1050
- props: props,
1051
- state: {
1052
- filterState: filterState,
1053
- focused: focusedState,
1054
- overlayVisible: overlayVisibleState
1055
- }
1056
- };
1057
- var _MultiSelectBase$setM = MultiSelectBase.setMetaData(metaData),
1058
- ptm = _MultiSelectBase$setM.ptm,
1059
- cx = _MultiSelectBase$setM.cx,
1060
- sx = _MultiSelectBase$setM.sx,
1061
- isUnstyled = _MultiSelectBase$setM.isUnstyled;
1062
- useHandleStyle(MultiSelectBase.css.styles, isUnstyled, {
1063
- name: 'multiselect'
1064
- });
1065
- var _useOverlayListener = useOverlayListener({
1066
- target: elementRef,
1067
- overlay: overlayRef,
1068
- listener: function listener(event, _ref) {
1069
- var type = _ref.type,
1070
- valid = _ref.valid;
1071
- if (valid) {
1072
- if (type === 'outside') {
1073
- !isClearClicked(event) && !isSelectAllClicked(event) && hide();
1074
- } else {
1075
- hide();
1076
- }
1077
- }
1078
- },
1079
- when: overlayVisibleState
1080
- }),
1081
- _useOverlayListener2 = _slicedToArray(_useOverlayListener, 2),
1082
- bindOverlayListener = _useOverlayListener2[0],
1083
- unbindOverlayListener = _useOverlayListener2[1];
1084
- var onPanelClick = function onPanelClick(event) {
1085
- OverlayService.emit('overlay-click', {
1086
- originalEvent: event,
1087
- target: elementRef.current
1088
- });
1089
- };
1090
- var allowOptionSelect = function allowOptionSelect() {
1091
- return !props.selectionLimit || !props.value || props.value && props.value.length < props.selectionLimit;
1092
- };
1093
- var onOptionSelect = function onOptionSelect(event) {
1094
- var originalEvent = event.originalEvent,
1095
- option = event.option;
1096
- if (props.disabled || isOptionDisabled(option)) {
1097
- return;
1098
- }
1099
- var optionValue = getOptionValue(option);
1100
- var isUsed = isOptionValueUsed(option);
1101
- var selected = isSelected(option);
1102
- var allowSelect = allowOptionSelect();
1103
- if (selected) {
1104
- updateModel(originalEvent, props.value.filter(function (val) {
1105
- return !ObjectUtils.equals(isUsed ? val : getOptionValue(val), optionValue, equalityKey);
1106
- }), option);
1107
- } else if (allowSelect) {
1108
- updateModel(originalEvent, [].concat(_toConsumableArray(props.value || []), [optionValue]), option);
1109
- }
1110
- };
1111
- var onOptionKeyDown = function onOptionKeyDown(event) {
1112
- var originalEvent = event.originalEvent;
1113
- var listItem = originalEvent.currentTarget;
1114
- switch (originalEvent.which) {
1115
- //down
1116
- case 40:
1117
- var nextItem = findNextItem(listItem);
1118
- nextItem && nextItem.focus();
1119
- originalEvent.preventDefault();
1120
- break;
1121
-
1122
- //up
1123
- case 38:
1124
- var prevItem = findPrevItem(listItem);
1125
- prevItem && prevItem.focus();
1126
- originalEvent.preventDefault();
1127
- break;
1128
-
1129
- //enter and space
1130
- case 13:
1131
- case 32:
1132
- onOptionSelect(event);
1133
- originalEvent.preventDefault();
1134
- break;
1135
-
1136
- //escape
1137
- case 27:
1138
- hide();
1139
- DomHandler.focus(inputRef.current);
1140
- break;
1141
- }
1142
- };
1143
- var findNextItem = function findNextItem(item) {
1144
- var nextItem = item.nextElementSibling;
1145
- return nextItem ? DomHandler.getAttribute(nextItem, 'data-p-disabled') === true || DomHandler.getAttribute(nextItem, 'data-pc-section') === 'itemgroup' ? findNextItem(nextItem) : nextItem : null;
1146
- };
1147
- var findPrevItem = function findPrevItem(item) {
1148
- var prevItem = item.previousElementSibling;
1149
- return prevItem ? DomHandler.getAttribute(prevItem, 'data-p-disabled') === true || DomHandler.getAttribute(prevItem, 'data-pc-section') === 'itemgroup' ? findPrevItem(prevItem) : prevItem : null;
1150
- };
1151
- var onClick = function onClick(event) {
1152
- if (!props.inline && !props.disabled && !isPanelClicked(event) && DomHandler.getAttribute(event.target, 'data-pc-section') !== 'removetokenicon' && !isClearClicked(event)) {
1153
- overlayVisibleState ? hide() : show();
1154
- DomHandler.focus(inputRef.current);
1155
- event.preventDefault();
1156
- }
1157
- };
1158
- var onKeyDown = function onKeyDown(event) {
1159
- switch (event.which) {
1160
- //down
1161
- case 40:
1162
- if (props.inline) break;
1163
- if (!overlayVisibleState && event.altKey) {
1164
- show();
1165
- event.preventDefault();
1166
- }
1167
- break;
1168
-
1169
- //space
1170
- case 32:
1171
- if (props.inline) break;
1172
- overlayVisibleState ? hide() : show();
1173
- event.preventDefault();
1174
- break;
1175
-
1176
- //escape
1177
- case 27:
1178
- if (props.inline) break;
1179
- hide();
1180
- break;
1181
-
1182
- //tab
1183
- case 9:
1184
- if (overlayVisibleState) {
1185
- var firstFocusableElement = DomHandler.getFirstFocusableElement(overlayRef.current);
1186
- if (firstFocusableElement) {
1187
- firstFocusableElement.focus();
1188
- event.preventDefault();
1189
- }
1190
- }
1191
- break;
1192
- }
1193
- };
1194
- var onSelectAll = function onSelectAll(event) {
1195
- if (props.onSelectAll) {
1196
- props.onSelectAll(event);
1197
- } else {
1198
- var value = null;
1199
- if (event.checked) {
1200
- value = [];
1201
- if (visibleOptions) {
1202
- var selectedOptions = visibleOptions.filter(function (option) {
1203
- return isOptionDisabled(option) && isSelected(option);
1204
- });
1205
- value = selectedOptions.map(function (option) {
1206
- return getOptionValue(option);
1207
- });
1208
- }
1209
- } else if (visibleOptions) {
1210
- var options = visibleOptions.filter(function (option) {
1211
- return !isOptionDisabled(option) || isSelected(option);
1212
- });
1213
- if (props.optionGroupLabel) {
1214
- value = [];
1215
- options.forEach(function (optionGroup) {
1216
- return value = [].concat(_toConsumableArray(value), _toConsumableArray(getOptionGroupChildren(optionGroup).filter(function (option) {
1217
- return !isOptionDisabled(option);
1218
- }).map(function (option) {
1219
- return getOptionValue(option);
1220
- })));
1221
- });
1222
- } else {
1223
- value = options.map(function (option) {
1224
- return getOptionValue(option);
1225
- });
1226
- }
1227
- }
1228
- updateModel(event.originalEvent, value, value);
1229
- }
1230
- };
1231
- var updateModel = function updateModel(event, value, selectedOption) {
1232
- if (props.onChange) {
1233
- props.onChange({
1234
- originalEvent: event,
1235
- value: value,
1236
- selectedOption: selectedOption,
1237
- stopPropagation: function stopPropagation() {
1238
- event.stopPropagation();
1239
- },
1240
- preventDefault: function preventDefault() {
1241
- event.preventDefault();
1242
- },
1243
- target: {
1244
- name: props.name,
1245
- id: props.id,
1246
- value: value
1247
- }
1248
- });
1249
- }
1250
- };
1251
- var onFilterInputChange = function onFilterInputChange(event) {
1252
- var filter = event.query;
1253
- setFilterState(filter);
1254
- if (props.onFilter) {
1255
- props.onFilter({
1256
- originalEvent: event,
1257
- filter: filter
1258
- });
1259
- }
1260
- };
1261
- var resetFilter = function resetFilter() {
1262
- setFilterState('');
1263
- props.onFilter && props.onFilter({
1264
- filter: ''
1265
- });
1266
- };
1267
- var scrollInView = function scrollInView() {
1268
- var highlightItem = DomHandler.findSingle(overlayRef.current, 'li.p-highlight');
1269
- if (highlightItem && highlightItem.scrollIntoView) {
1270
- highlightItem.scrollIntoView({
1271
- block: 'nearest',
1272
- inline: 'nearest'
1273
- });
1274
- }
1275
- };
1276
- var show = function show() {
1277
- setOverlayVisibleState(true);
1278
- };
1279
- var hide = function hide() {
1280
- setOverlayVisibleState(false);
1281
- };
1282
- var onOverlayEnter = function onOverlayEnter(callback) {
1283
- ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['overlay'] || PrimeReact.zIndex['overlay']);
1284
- DomHandler.addStyles(overlayRef.current, {
1285
- position: 'absolute',
1286
- top: '0',
1287
- left: '0'
1288
- });
1289
- alignOverlay();
1290
- scrollInView();
1291
- callback && callback();
1292
- };
1293
- var onOverlayEntered = function onOverlayEntered(callback) {
1294
- callback && callback();
1295
- bindOverlayListener();
1296
- props.onShow && props.onShow();
1297
- };
1298
- var onOverlayExit = function onOverlayExit() {
1299
- unbindOverlayListener();
1300
- };
1301
- var onOverlayExited = function onOverlayExited() {
1302
- if (props.filter && props.resetFilterOnHide) {
1303
- resetFilter();
1304
- }
1305
- ZIndexUtils.clear(overlayRef.current);
1306
- props.onHide && props.onHide();
1307
- };
1308
- var alignOverlay = function alignOverlay() {
1309
- DomHandler.alignOverlay(overlayRef.current, labelRef.current.parentElement, props.appendTo || context && context.appendTo || PrimeReact.appendTo);
1310
- };
1311
- var isClearClicked = function isClearClicked(event) {
1312
- return DomHandler.getAttribute(event.target, 'data-pc-section') === 'clearicon';
1313
- };
1314
- var isSelectAllClicked = function isSelectAllClicked(event) {
1315
- return DomHandler.getAttribute(event.target, 'data-pc-section') === 'headercheckboxcontainer';
1316
- };
1317
- var isPanelClicked = function isPanelClicked(event) {
1318
- return overlayRef.current && overlayRef.current.contains(event.target);
1319
- };
1320
- var onCloseClick = function onCloseClick(event) {
1321
- hide();
1322
- DomHandler.focus(inputRef.current);
1323
- event.preventDefault();
1324
- event.stopPropagation();
1325
- };
1326
- var getSelectedOptionIndex = function getSelectedOptionIndex() {
1327
- if (props.value != null && props.options) {
1328
- if (props.optionGroupLabel) {
1329
- var groupIndex = 0;
1330
- var optionIndex = props.options.findIndex(function (optionGroup, i) {
1331
- return (groupIndex = i) && findOptionIndexInList(props.value, getOptionGroupChildren(optionGroup)) !== -1;
1332
- });
1333
- return optionIndex !== -1 ? {
1334
- group: groupIndex,
1335
- option: optionIndex
1336
- } : -1;
1337
- } else {
1338
- return findOptionIndexInList(props.value, props.options);
1339
- }
1340
- }
1341
- return -1;
1342
- };
1343
- var findOptionIndexInList = function findOptionIndexInList(value, list) {
1344
- return list.findIndex(function (item) {
1345
- return value.some(function (val) {
1346
- return ObjectUtils.equals(val, getOptionValue(item), equalityKey);
1347
- });
1348
- });
1349
- };
1350
- var isSelected = function isSelected(option) {
1351
- if (props.value) {
1352
- var optionValue = getOptionValue(option);
1353
- var isUsed = isOptionValueUsed(option);
1354
- return props.value.some(function (val) {
1355
- return ObjectUtils.equals(isUsed ? val : getOptionValue(val), optionValue, equalityKey);
1356
- });
1357
- }
1358
- return false;
1359
- };
1360
- var getLabelByValue = function getLabelByValue(val) {
1361
- var option;
1362
- if (props.options) {
1363
- if (props.optionGroupLabel) {
1364
- var _iterator = _createForOfIteratorHelper(props.options),
1365
- _step;
1366
- try {
1367
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
1368
- var optionGroup = _step.value;
1369
- option = findOptionByValue(val, getOptionGroupChildren(optionGroup));
1370
- if (option) {
1371
- break;
1372
- }
1373
- }
1374
- } catch (err) {
1375
- _iterator.e(err);
1376
- } finally {
1377
- _iterator.f();
1378
- }
1379
- } else {
1380
- option = findOptionByValue(val, props.value);
1381
- }
1382
- }
1383
- return option ? getOptionLabel(option) : null;
1384
- };
1385
- var findOptionByValue = function findOptionByValue(val, list) {
1386
- return list.find(function (option) {
1387
- return ObjectUtils.equals(getOptionValue(option), val, equalityKey);
1388
- });
1389
- };
1390
- var onFocus = function onFocus(event) {
1391
- setFocusedState(true);
1392
- props.onFocus && props.onFocus(event);
1393
- };
1394
- var onBlur = function onBlur(event) {
1395
- setFocusedState(false);
1396
- props.onBlur && props.onBlur(event);
1397
- };
1398
- var isAllSelected = function isAllSelected() {
1399
- if (props.onSelectAll) {
1400
- return props.selectAll;
1401
- } else {
1402
- if (ObjectUtils.isEmpty(visibleOptions)) {
1403
- return false;
1404
- }
1405
- var options = visibleOptions.filter(function (option) {
1406
- return !isOptionDisabled(option);
1407
- });
1408
- if (props.optionGroupLabel) {
1409
- var areAllSelected = true;
1410
- var _iterator2 = _createForOfIteratorHelper(options),
1411
- _step2;
1412
- try {
1413
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1414
- var optionGroup = _step2.value;
1415
- var visibleOptionsGroupChildren = getOptionGroupChildren(optionGroup).filter(function (option) {
1416
- return !isOptionDisabled(option);
1417
- });
1418
- if (visibleOptionsGroupChildren.some(function (option) {
1419
- return !isSelected(option);
1420
- }) === true) {
1421
- areAllSelected = false;
1422
- }
1423
- }
1424
- } catch (err) {
1425
- _iterator2.e(err);
1426
- } finally {
1427
- _iterator2.f();
1428
- }
1429
- return areAllSelected;
1430
- } else {
1431
- return !options.some(function (option) {
1432
- return !isSelected(option);
1433
- });
1434
- }
1435
- }
1436
- };
1437
- var getOptionLabel = function getOptionLabel(option) {
1438
- return props.optionLabel ? ObjectUtils.resolveFieldData(option, props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;
1439
- };
1440
- var getOptionValue = function getOptionValue(option) {
1441
- if (props.useOptionAsValue) {
1442
- return option;
1443
- }
1444
- if (props.optionValue) {
1445
- var data = ObjectUtils.resolveFieldData(option, props.optionValue);
1446
- return data !== null ? data : option;
1447
- }
1448
- return option && option['value'] !== undefined ? option['value'] : option;
1449
- };
1450
- var getOptionRenderKey = function getOptionRenderKey(option) {
1451
- return props.dataKey ? ObjectUtils.resolveFieldData(option, props.dataKey) : getOptionLabel(option);
1452
- };
1453
- var getOptionGroupRenderKey = function getOptionGroupRenderKey(optionGroup) {
1454
- return ObjectUtils.resolveFieldData(optionGroup, props.optionGroupLabel);
1455
- };
1456
- var getOptionGroupLabel = function getOptionGroupLabel(optionGroup) {
1457
- return ObjectUtils.resolveFieldData(optionGroup, props.optionGroupLabel);
1458
- };
1459
- var getOptionGroupChildren = function getOptionGroupChildren(optionGroup) {
1460
- return ObjectUtils.resolveFieldData(optionGroup, props.optionGroupChildren);
1461
- };
1462
- var isOptionDisabled = function isOptionDisabled(option) {
1463
- if (props.optionDisabled) {
1464
- return ObjectUtils.isFunction(props.optionDisabled) ? props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, props.optionDisabled);
1465
- }
1466
- return option && option['disabled'] !== undefined ? option['disabled'] : false;
1467
- };
1468
- var isOptionValueUsed = function isOptionValueUsed(option) {
1469
- return !props.useOptionAsValue && props.optionValue || option && option['value'] !== undefined;
1470
- };
1471
- var removeChip = function removeChip(event, item) {
1472
- var value = props.value.filter(function (val) {
1473
- return !ObjectUtils.equals(val, item, equalityKey);
1474
- });
1475
- updateModel(event, value, item);
1476
- };
1477
- var getSelectedItemsLabel = function getSelectedItemsLabel() {
1478
- var pattern = /{(.*?)}/;
1479
- if (pattern.test(props.selectedItemsLabel)) {
1480
- return props.selectedItemsLabel.replace(props.selectedItemsLabel.match(pattern)[0], props.value.length + '');
1481
- }
1482
- return props.selectedItemsLabel;
1483
- };
1484
- var getLabel = function getLabel() {
1485
- var label;
1486
- if (!empty && !props.fixedPlaceholder) {
1487
- if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && props.value.length > props.maxSelectedLabels) {
1488
- return getSelectedItemsLabel();
1489
- } else {
1490
- return props.value.reduce(function (acc, value, index) {
1491
- return acc + (index !== 0 ? ',' : '') + getLabelByValue(value);
1492
- }, '');
1493
- }
1494
- }
1495
- return label;
1496
- };
1497
- var getLabelContent = function getLabelContent() {
1498
- if (props.selectedItemTemplate) {
1499
- if (!empty) {
1500
- if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && props.value.length > props.maxSelectedLabels) {
1501
- return getSelectedItemsLabel();
1502
- } else {
1503
- return props.value.map(function (val, index) {
1504
- var item = ObjectUtils.getJSXElement(props.selectedItemTemplate, val);
1505
- return /*#__PURE__*/React.createElement(React.Fragment, {
1506
- key: index
1507
- }, item);
1508
- });
1509
- }
1510
- } else {
1511
- return ObjectUtils.getJSXElement(props.selectedItemTemplate);
1512
- }
1513
- } else {
1514
- if (props.display === 'chip' && !empty) {
1515
- var value = props.value.slice(0, props.maxSelectedLabels || props.value.length);
1516
- return value.map(function (val, i) {
1517
- var label = getLabelByValue(val);
1518
- var iconProps = mergeProps({
1519
- key: i,
1520
- className: cx('removeTokenIcon'),
1521
- onClick: function onClick(e) {
1522
- return removeChip(e, val);
1523
- }
1524
- }, ptm('removeTokenIcon'));
1525
- var icon = !props.disabled && (props.removeIcon ? IconUtils.getJSXIcon(props.removeIcon, _objectSpread({}, iconProps), {
1526
- props: props
1527
- }) : /*#__PURE__*/React.createElement(TimesCircleIcon, iconProps));
1528
- var tokenProps = mergeProps({
1529
- className: cx('token')
1530
- }, ptm('token'));
1531
- var tokenLabelProps = mergeProps({
1532
- key: label + i,
1533
- className: cx('tokenLabel')
1534
- }, ptm('tokenLabel'));
1535
- return /*#__PURE__*/React.createElement("div", _extends({}, tokenProps, {
1536
- key: label
1537
- }), /*#__PURE__*/React.createElement("span", tokenLabelProps, label), icon);
1538
- });
1539
- }
1540
- return getLabel();
1541
- }
1542
- };
1543
- var getVisibleOptions = function getVisibleOptions() {
1544
- if (hasFilter) {
1545
- var filterValue = filterState.trim().toLocaleLowerCase(props.filterLocale);
1546
- var searchFields = props.filterBy ? props.filterBy.split(',') : [props.optionLabel || 'label'];
1547
- if (props.optionGroupLabel) {
1548
- var filteredGroups = [];
1549
- var _iterator3 = _createForOfIteratorHelper(props.options),
1550
- _step3;
1551
- try {
1552
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
1553
- var optgroup = _step3.value;
1554
- var filteredSubOptions = FilterService.filter(getOptionGroupChildren(optgroup), searchFields, filterValue, props.filterMatchMode, props.filterLocale);
1555
- if (filteredSubOptions && filteredSubOptions.length) {
1556
- filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), _defineProperty({}, props.optionGroupChildren, filteredSubOptions)));
1557
- }
1558
- }
1559
- } catch (err) {
1560
- _iterator3.e(err);
1561
- } finally {
1562
- _iterator3.f();
1563
- }
1564
- return filteredGroups;
1565
- } else {
1566
- return FilterService.filter(props.options, searchFields, filterValue, props.filterMatchMode, props.filterLocale);
1567
- }
1568
- } else {
1569
- return props.options;
1570
- }
1571
- };
1572
- React.useImperativeHandle(ref, function () {
1573
- return {
1574
- props: props,
1575
- show: show,
1576
- hide: hide,
1577
- focus: function focus() {
1578
- return DomHandler.focus(inputRef.current);
1579
- },
1580
- getElement: function getElement() {
1581
- return elementRef.current;
1582
- },
1583
- getOverlay: function getOverlay() {
1584
- return overlayRef.current;
1585
- },
1586
- getInput: function getInput() {
1587
- return inputRef.current;
1588
- }
1589
- };
1590
- });
1591
- React.useEffect(function () {
1592
- ObjectUtils.combinedRefs(inputRef, props.inputRef);
1593
- }, [inputRef, props.inputRef]);
1594
- React.useEffect(function () {
1595
- setTimeout(function () {
1596
- props.overlayVisible ? show() : hide();
1597
- }, 100);
1598
- }, [props.overlayVisible]);
1599
- useUpdateEffect(function () {
1600
- if (overlayVisibleState && hasFilter) {
1601
- alignOverlay();
1602
- }
1603
- }, [overlayVisibleState, hasFilter]);
1604
- useUnmountEffect(function () {
1605
- ZIndexUtils.clear(overlayRef.current);
1606
- });
1607
- var createClearIcon = function createClearIcon() {
1608
- var clearIconProps = mergeProps({
1609
- className: cx('clearIcon'),
1610
- onClick: function onClick(e) {
1611
- return updateModel(e, null, null);
1612
- }
1613
- }, ptm('clearIcon'));
1614
- var icon = props.clearIcon || /*#__PURE__*/React.createElement(TimesIcon, clearIconProps);
1615
- var clearIcon = IconUtils.getJSXIcon(icon, _objectSpread({}, clearIconProps), {
1616
- props: props
1617
- });
1618
- if (!empty && props.showClear && !props.disabled) {
1619
- return clearIcon;
1620
- }
1621
- return null;
1622
- };
1623
- var createLabel = function createLabel() {
1624
- var content = getLabelContent();
1625
- var labelContainerProps = mergeProps({
1626
- ref: labelRef,
1627
- className: cx('labelContainer')
1628
- }, ptm('labelContainer'));
1629
- var labelProps = mergeProps({
1630
- className: cx('label', {
1631
- empty: empty
1632
- })
1633
- }, ptm('label'));
1634
- return /*#__PURE__*/React.createElement("div", labelContainerProps, /*#__PURE__*/React.createElement("div", labelProps, content || props.placeholder || 'empty'));
1635
- };
1636
- var visibleOptions = getVisibleOptions();
1637
- var hasTooltip = ObjectUtils.isNotEmpty(props.tooltip);
1638
- var otherProps = MultiSelectBase.getOtherProps(props);
1639
- var ariaProps = ObjectUtils.reduceKeys(otherProps, DomHandler.ARIA_PROPS);
1640
- var triggerIconProps = mergeProps({
1641
- className: cx('triggerIcon')
1642
- }, ptm('triggerIcon'));
1643
- var triggerProps = mergeProps({
1644
- className: cx('trigger')
1645
- }, ptm('trigger'));
1646
- var dropdownIcon = /*#__PURE__*/React.createElement("div", triggerProps, props.dropdownIcon ? IconUtils.getJSXIcon(props.dropdownIcon, _objectSpread({}, triggerIconProps), {
1647
- props: props
1648
- }) : /*#__PURE__*/React.createElement(ChevronDownIcon, triggerIconProps));
1649
- var label = !props.inline && createLabel();
1650
- var clearIcon = !props.inline && createClearIcon();
1651
- var rootProps = mergeProps(_objectSpread(_objectSpread({
1652
- ref: elementRef,
1653
- id: props.id,
1654
- style: props.style,
1655
- className: classNames(props.className, cx('root', {
1656
- focusedState: focusedState,
1657
- overlayVisibleState: overlayVisibleState
1658
- }))
1659
- }, otherProps), {}, {
1660
- onClick: onClick
1661
- }), MultiSelectBase.getOtherProps(props), ptm('root'));
1662
- var hiddenInputWrapperProps = mergeProps({
1663
- className: 'p-hidden-accessible'
1664
- }, ptm('hiddenInputWrapper'));
1665
- var inputProps = mergeProps(_objectSpread({
1666
- ref: inputRef,
1667
- id: props.inputId,
1668
- name: props.name,
1669
- type: 'text',
1670
- onFocus: onFocus,
1671
- onBlur: onBlur,
1672
- onKeyDown: onKeyDown,
1673
- role: 'listbox',
1674
- 'aria-expanded': overlayVisibleState,
1675
- disabled: props.disabled,
1676
- tabIndex: props.tabIndex
1677
- }, ariaProps), ptm('input'));
1678
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", rootProps, /*#__PURE__*/React.createElement("div", hiddenInputWrapperProps, /*#__PURE__*/React.createElement("input", _extends({}, inputProps, {
1679
- readOnly: true
1680
- }))), !props.inline && /*#__PURE__*/React.createElement(React.Fragment, null, label, clearIcon, dropdownIcon), /*#__PURE__*/React.createElement(MultiSelectPanel, _extends({
1681
- hostName: "MultiSelect",
1682
- ref: overlayRef,
1683
- visibleOptions: visibleOptions
1684
- }, props, {
1685
- onClick: onPanelClick,
1686
- onOverlayHide: hide,
1687
- filterValue: filterState,
1688
- hasFilter: hasFilter,
1689
- onFilterInputChange: onFilterInputChange,
1690
- resetFilter: resetFilter,
1691
- onCloseClick: onCloseClick,
1692
- onSelectAll: onSelectAll,
1693
- getOptionLabel: getOptionLabel,
1694
- getOptionRenderKey: getOptionRenderKey,
1695
- isOptionDisabled: isOptionDisabled,
1696
- getOptionGroupChildren: getOptionGroupChildren,
1697
- getOptionGroupLabel: getOptionGroupLabel,
1698
- getOptionGroupRenderKey: getOptionGroupRenderKey,
1699
- isSelected: isSelected,
1700
- getSelectedOptionIndex: getSelectedOptionIndex,
1701
- isAllSelected: isAllSelected,
1702
- onOptionSelect: onOptionSelect,
1703
- allowOptionSelect: allowOptionSelect,
1704
- onOptionKeyDown: onOptionKeyDown,
1705
- "in": overlayVisibleState,
1706
- onEnter: onOverlayEnter,
1707
- onEntered: onOverlayEntered,
1708
- onExit: onOverlayExit,
1709
- onExited: onOverlayExited,
1710
- ptm: ptm,
1711
- cx: cx,
1712
- sx: sx,
1713
- isUnstyled: isUnstyled,
1714
- metaData: metaData
1715
- }))), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
1716
- target: elementRef,
1717
- content: props.tooltip
1718
- }, props.tooltipOptions, {
1719
- pt: ptm('tooltip')
1720
- })));
1721
- }));
1722
- MultiSelect.displayName = 'MultiSelect';
1723
-
1724
- export { MultiSelect };