primeng 11.3.1 → 11.4.2

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 (375) hide show
  1. package/README.md +3 -2
  2. package/api/primeng-api.metadata.json +1 -1
  3. package/api/translation.d.ts +2 -0
  4. package/api/translationkeys.d.ts +2 -0
  5. package/autocomplete/autocomplete.d.ts +15 -2
  6. package/autocomplete/primeng-autocomplete.metadata.json +1 -1
  7. package/bundles/primeng-api.umd.js +19 -12
  8. package/bundles/primeng-api.umd.js.map +1 -1
  9. package/bundles/primeng-api.umd.min.js +1 -1
  10. package/bundles/primeng-api.umd.min.js.map +1 -1
  11. package/bundles/primeng-autocomplete.umd.js +65 -30
  12. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  13. package/bundles/primeng-autocomplete.umd.min.js +2 -2
  14. package/bundles/primeng-autocomplete.umd.min.js.map +1 -1
  15. package/bundles/primeng-button.umd.js +71 -15
  16. package/bundles/primeng-button.umd.js.map +1 -1
  17. package/bundles/primeng-button.umd.min.js +1 -1
  18. package/bundles/primeng-button.umd.min.js.map +1 -1
  19. package/bundles/primeng-calendar.umd.js +25 -14
  20. package/bundles/primeng-calendar.umd.js.map +1 -1
  21. package/bundles/primeng-calendar.umd.min.js +2 -2
  22. package/bundles/primeng-calendar.umd.min.js.map +1 -1
  23. package/bundles/primeng-carousel.umd.js +24 -13
  24. package/bundles/primeng-carousel.umd.js.map +1 -1
  25. package/bundles/primeng-carousel.umd.min.js +1 -1
  26. package/bundles/primeng-carousel.umd.min.js.map +1 -1
  27. package/bundles/primeng-cascadeselect.umd.js +14 -12
  28. package/bundles/primeng-cascadeselect.umd.js.map +1 -1
  29. package/bundles/primeng-cascadeselect.umd.min.js +1 -1
  30. package/bundles/primeng-cascadeselect.umd.min.js.map +1 -1
  31. package/bundles/primeng-checkbox.umd.js +14 -11
  32. package/bundles/primeng-checkbox.umd.js.map +1 -1
  33. package/bundles/primeng-checkbox.umd.min.js.map +1 -1
  34. package/bundles/primeng-chips.umd.js +14 -11
  35. package/bundles/primeng-chips.umd.js.map +1 -1
  36. package/bundles/primeng-chips.umd.min.js.map +1 -1
  37. package/bundles/primeng-confirmdialog.umd.js +19 -7
  38. package/bundles/primeng-confirmdialog.umd.js.map +1 -1
  39. package/bundles/primeng-confirmdialog.umd.min.js +1 -1
  40. package/bundles/primeng-confirmdialog.umd.min.js.map +1 -1
  41. package/bundles/primeng-contextmenu.umd.js +15 -12
  42. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  43. package/bundles/primeng-contextmenu.umd.min.js +1 -1
  44. package/bundles/primeng-contextmenu.umd.min.js.map +1 -1
  45. package/bundles/primeng-dataview.umd.js +25 -4
  46. package/bundles/primeng-dataview.umd.js.map +1 -1
  47. package/bundles/primeng-dataview.umd.min.js +1 -1
  48. package/bundles/primeng-dataview.umd.min.js.map +1 -1
  49. package/bundles/primeng-dom.umd.js +14 -11
  50. package/bundles/primeng-dom.umd.js.map +1 -1
  51. package/bundles/primeng-dom.umd.min.js.map +1 -1
  52. package/bundles/primeng-dropdown.umd.js +78 -46
  53. package/bundles/primeng-dropdown.umd.js.map +1 -1
  54. package/bundles/primeng-dropdown.umd.min.js +1 -1
  55. package/bundles/primeng-dropdown.umd.min.js.map +1 -1
  56. package/bundles/primeng-editor.umd.js +1 -1
  57. package/bundles/primeng-editor.umd.js.map +1 -1
  58. package/bundles/primeng-editor.umd.min.js +1 -1
  59. package/bundles/primeng-editor.umd.min.js.map +1 -1
  60. package/bundles/primeng-fileupload.umd.js +23 -11
  61. package/bundles/primeng-fileupload.umd.js.map +1 -1
  62. package/bundles/primeng-fileupload.umd.min.js +1 -1
  63. package/bundles/primeng-fileupload.umd.min.js.map +1 -1
  64. package/bundles/primeng-galleria.umd.js +17 -12
  65. package/bundles/primeng-galleria.umd.js.map +1 -1
  66. package/bundles/primeng-galleria.umd.min.js +1 -1
  67. package/bundles/primeng-galleria.umd.min.js.map +1 -1
  68. package/bundles/primeng-gmap.umd.js +14 -11
  69. package/bundles/primeng-gmap.umd.js.map +1 -1
  70. package/bundles/primeng-gmap.umd.min.js.map +1 -1
  71. package/bundles/primeng-inputnumber.umd.js +15 -12
  72. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  73. package/bundles/primeng-inputnumber.umd.min.js +1 -1
  74. package/bundles/primeng-inputnumber.umd.min.js.map +1 -1
  75. package/bundles/primeng-keyfilter.umd.js +14 -11
  76. package/bundles/primeng-keyfilter.umd.js.map +1 -1
  77. package/bundles/primeng-keyfilter.umd.min.js.map +1 -1
  78. package/bundles/primeng-listbox.umd.js +69 -28
  79. package/bundles/primeng-listbox.umd.js.map +1 -1
  80. package/bundles/primeng-listbox.umd.min.js +1 -1
  81. package/bundles/primeng-listbox.umd.min.js.map +1 -1
  82. package/bundles/primeng-menu.umd.js +14 -11
  83. package/bundles/primeng-menu.umd.js.map +1 -1
  84. package/bundles/primeng-menu.umd.min.js.map +1 -1
  85. package/bundles/primeng-menubar.umd.js +1 -1
  86. package/bundles/primeng-menubar.umd.js.map +1 -1
  87. package/bundles/primeng-menubar.umd.min.js +1 -1
  88. package/bundles/primeng-menubar.umd.min.js.map +1 -1
  89. package/bundles/primeng-messages.umd.js +14 -11
  90. package/bundles/primeng-messages.umd.js.map +1 -1
  91. package/bundles/primeng-messages.umd.min.js.map +1 -1
  92. package/bundles/primeng-multiselect.umd.js +62 -32
  93. package/bundles/primeng-multiselect.umd.js.map +1 -1
  94. package/bundles/primeng-multiselect.umd.min.js +1 -1
  95. package/bundles/primeng-multiselect.umd.min.js.map +1 -1
  96. package/bundles/primeng-orderlist.umd.js +49 -16
  97. package/bundles/primeng-orderlist.umd.js.map +1 -1
  98. package/bundles/primeng-orderlist.umd.min.js +2 -2
  99. package/bundles/primeng-orderlist.umd.min.js.map +1 -1
  100. package/bundles/primeng-organizationchart.umd.js +14 -11
  101. package/bundles/primeng-organizationchart.umd.js.map +1 -1
  102. package/bundles/primeng-organizationchart.umd.min.js.map +1 -1
  103. package/bundles/primeng-paginator.umd.js +14 -11
  104. package/bundles/primeng-paginator.umd.js.map +1 -1
  105. package/bundles/primeng-paginator.umd.min.js.map +1 -1
  106. package/bundles/primeng-panelmenu.umd.js +14 -11
  107. package/bundles/primeng-panelmenu.umd.js.map +1 -1
  108. package/bundles/primeng-panelmenu.umd.min.js.map +1 -1
  109. package/bundles/primeng-password.umd.js +48 -38
  110. package/bundles/primeng-password.umd.js.map +1 -1
  111. package/bundles/primeng-password.umd.min.js +1 -1
  112. package/bundles/primeng-password.umd.min.js.map +1 -1
  113. package/bundles/primeng-picklist.umd.js +109 -48
  114. package/bundles/primeng-picklist.umd.js.map +1 -1
  115. package/bundles/primeng-picklist.umd.min.js +1 -1
  116. package/bundles/primeng-picklist.umd.min.js.map +1 -1
  117. package/bundles/primeng-radiobutton.umd.js +5 -11
  118. package/bundles/primeng-radiobutton.umd.js.map +1 -1
  119. package/bundles/primeng-radiobutton.umd.min.js +1 -1
  120. package/bundles/primeng-radiobutton.umd.min.js.map +1 -1
  121. package/bundles/primeng-scrollpanel.umd.js +1 -0
  122. package/bundles/primeng-scrollpanel.umd.js.map +1 -1
  123. package/bundles/primeng-scrollpanel.umd.min.js +1 -1
  124. package/bundles/primeng-scrollpanel.umd.min.js.map +1 -1
  125. package/bundles/primeng-selectbutton.umd.js +16 -13
  126. package/bundles/primeng-selectbutton.umd.js.map +1 -1
  127. package/bundles/primeng-selectbutton.umd.min.js +1 -1
  128. package/bundles/primeng-selectbutton.umd.min.js.map +1 -1
  129. package/bundles/primeng-sidebar.umd.js +77 -46
  130. package/bundles/primeng-sidebar.umd.js.map +1 -1
  131. package/bundles/primeng-sidebar.umd.min.js +1 -1
  132. package/bundles/primeng-sidebar.umd.min.js.map +1 -1
  133. package/bundles/primeng-skeleton.umd.js +1 -1
  134. package/bundles/primeng-skeleton.umd.js.map +1 -1
  135. package/bundles/primeng-skeleton.umd.min.js +1 -1
  136. package/bundles/primeng-skeleton.umd.min.js.map +1 -1
  137. package/bundles/primeng-splitter.umd.js +53 -22
  138. package/bundles/primeng-splitter.umd.js.map +1 -1
  139. package/bundles/primeng-splitter.umd.min.js +1 -1
  140. package/bundles/primeng-splitter.umd.min.js.map +1 -1
  141. package/bundles/primeng-table.umd.js +30 -17
  142. package/bundles/primeng-table.umd.js.map +1 -1
  143. package/bundles/primeng-table.umd.min.js +2 -2
  144. package/bundles/primeng-table.umd.min.js.map +1 -1
  145. package/bundles/primeng-tabmenu.umd.js +1 -1
  146. package/bundles/primeng-tabmenu.umd.js.map +1 -1
  147. package/bundles/primeng-tabmenu.umd.min.js +1 -1
  148. package/bundles/primeng-tabmenu.umd.min.js.map +1 -1
  149. package/bundles/primeng-tabview.umd.js +1 -0
  150. package/bundles/primeng-tabview.umd.js.map +1 -1
  151. package/bundles/primeng-tabview.umd.min.js +1 -1
  152. package/bundles/primeng-tabview.umd.min.js.map +1 -1
  153. package/bundles/primeng-tieredmenu.umd.js +1 -1
  154. package/bundles/primeng-tieredmenu.umd.js.map +1 -1
  155. package/bundles/primeng-tieredmenu.umd.min.js +1 -1
  156. package/bundles/primeng-tieredmenu.umd.min.js.map +1 -1
  157. package/bundles/primeng-timeline.umd.js +1 -1
  158. package/bundles/primeng-timeline.umd.js.map +1 -1
  159. package/bundles/primeng-timeline.umd.min.js +1 -1
  160. package/bundles/primeng-timeline.umd.min.js.map +1 -1
  161. package/bundles/primeng-toast.umd.js +14 -11
  162. package/bundles/primeng-toast.umd.js.map +1 -1
  163. package/bundles/primeng-toast.umd.min.js.map +1 -1
  164. package/bundles/primeng-togglebutton.umd.js +1 -1
  165. package/bundles/primeng-togglebutton.umd.min.js +1 -1
  166. package/bundles/primeng-togglebutton.umd.min.js.map +1 -1
  167. package/bundles/primeng-tree.umd.js +85 -30
  168. package/bundles/primeng-tree.umd.js.map +1 -1
  169. package/bundles/primeng-tree.umd.min.js +1 -1
  170. package/bundles/primeng-tree.umd.min.js.map +1 -1
  171. package/bundles/primeng-treetable.umd.js +18 -11
  172. package/bundles/primeng-treetable.umd.js.map +1 -1
  173. package/bundles/primeng-treetable.umd.min.js +1 -1
  174. package/bundles/primeng-treetable.umd.min.js.map +1 -1
  175. package/bundles/primeng-tristatecheckbox.umd.js +5 -1
  176. package/bundles/primeng-tristatecheckbox.umd.js.map +1 -1
  177. package/bundles/primeng-tristatecheckbox.umd.min.js +1 -1
  178. package/bundles/primeng-tristatecheckbox.umd.min.js.map +1 -1
  179. package/button/button.d.ts +10 -0
  180. package/button/primeng-button.metadata.json +1 -1
  181. package/calendar/calendar.d.ts +3 -1
  182. package/calendar/primeng-calendar.metadata.json +1 -1
  183. package/carousel/carousel.d.ts +7 -2
  184. package/carousel/primeng-carousel.metadata.json +1 -1
  185. package/cascadeselect/primeng-cascadeselect.metadata.json +1 -1
  186. package/confirmdialog/confirmdialog.d.ts +2 -0
  187. package/confirmdialog/primeng-confirmdialog.metadata.json +1 -1
  188. package/contextmenu/primeng-contextmenu.metadata.json +1 -1
  189. package/dataview/dataview.d.ts +10 -4
  190. package/dataview/primeng-dataview.metadata.json +1 -1
  191. package/dropdown/dropdown.d.ts +15 -7
  192. package/dropdown/primeng-dropdown.metadata.json +1 -1
  193. package/esm2015/api/primengconfig.js +4 -2
  194. package/esm2015/api/translation.js +1 -1
  195. package/esm2015/api/translationkeys.js +3 -1
  196. package/esm2015/autocomplete/autocomplete.js +70 -22
  197. package/esm2015/button/button.js +75 -20
  198. package/esm2015/calendar/calendar.js +18 -11
  199. package/esm2015/carousel/carousel.js +14 -6
  200. package/esm2015/cascadeselect/cascadeselect.js +1 -2
  201. package/esm2015/confirmdialog/confirmdialog.js +22 -7
  202. package/esm2015/contextmenu/contextmenu.js +5 -6
  203. package/esm2015/dataview/dataview.js +27 -6
  204. package/esm2015/dropdown/dropdown.js +69 -34
  205. package/esm2015/editor/editor.js +2 -2
  206. package/esm2015/fileupload/fileupload.js +9 -1
  207. package/esm2015/galleria/galleria.js +4 -2
  208. package/esm2015/inputnumber/inputnumber.js +2 -2
  209. package/esm2015/listbox/listbox.js +55 -14
  210. package/esm2015/menubar/menubar.js +4 -5
  211. package/esm2015/multiselect/multiselect.js +51 -21
  212. package/esm2015/orderlist/orderlist.js +48 -9
  213. package/esm2015/password/password.js +50 -40
  214. package/esm2015/picklist/picklist.js +140 -70
  215. package/esm2015/radiobutton/radiobutton.js +6 -12
  216. package/esm2015/scrollpanel/scrollpanel.js +2 -1
  217. package/esm2015/selectbutton/selectbutton.js +3 -3
  218. package/esm2015/sidebar/sidebar.js +77 -53
  219. package/esm2015/skeleton/skeleton.js +2 -2
  220. package/esm2015/splitter/splitter.js +40 -13
  221. package/esm2015/table/table.js +18 -8
  222. package/esm2015/tabmenu/tabmenu.js +2 -2
  223. package/esm2015/tabview/tabview.js +2 -1
  224. package/esm2015/tieredmenu/tieredmenu.js +4 -4
  225. package/esm2015/timeline/timeline.js +3 -3
  226. package/esm2015/togglebutton/togglebutton.js +1 -1
  227. package/esm2015/tree/tree.js +82 -20
  228. package/esm2015/treetable/treetable.js +5 -1
  229. package/esm2015/tristatecheckbox/tristatecheckbox.js +6 -2
  230. package/fesm2015/primeng-api.js +5 -1
  231. package/fesm2015/primeng-api.js.map +1 -1
  232. package/fesm2015/primeng-autocomplete.js +69 -21
  233. package/fesm2015/primeng-autocomplete.js.map +1 -1
  234. package/fesm2015/primeng-button.js +74 -19
  235. package/fesm2015/primeng-button.js.map +1 -1
  236. package/fesm2015/primeng-calendar.js +17 -10
  237. package/fesm2015/primeng-calendar.js.map +1 -1
  238. package/fesm2015/primeng-carousel.js +13 -5
  239. package/fesm2015/primeng-carousel.js.map +1 -1
  240. package/fesm2015/primeng-cascadeselect.js +0 -1
  241. package/fesm2015/primeng-cascadeselect.js.map +1 -1
  242. package/fesm2015/primeng-confirmdialog.js +21 -6
  243. package/fesm2015/primeng-confirmdialog.js.map +1 -1
  244. package/fesm2015/primeng-contextmenu.js +4 -5
  245. package/fesm2015/primeng-contextmenu.js.map +1 -1
  246. package/fesm2015/primeng-dataview.js +26 -5
  247. package/fesm2015/primeng-dataview.js.map +1 -1
  248. package/fesm2015/primeng-dropdown.js +68 -34
  249. package/fesm2015/primeng-dropdown.js.map +1 -1
  250. package/fesm2015/primeng-editor.js +1 -1
  251. package/fesm2015/primeng-editor.js.map +1 -1
  252. package/fesm2015/primeng-fileupload.js +8 -0
  253. package/fesm2015/primeng-fileupload.js.map +1 -1
  254. package/fesm2015/primeng-galleria.js +3 -1
  255. package/fesm2015/primeng-galleria.js.map +1 -1
  256. package/fesm2015/primeng-inputnumber.js +1 -1
  257. package/fesm2015/primeng-inputnumber.js.map +1 -1
  258. package/fesm2015/primeng-listbox.js +54 -13
  259. package/fesm2015/primeng-listbox.js.map +1 -1
  260. package/fesm2015/primeng-menubar.js +3 -4
  261. package/fesm2015/primeng-menubar.js.map +1 -1
  262. package/fesm2015/primeng-multiselect.js +50 -20
  263. package/fesm2015/primeng-multiselect.js.map +1 -1
  264. package/fesm2015/primeng-orderlist.js +47 -8
  265. package/fesm2015/primeng-orderlist.js.map +1 -1
  266. package/fesm2015/primeng-password.js +49 -39
  267. package/fesm2015/primeng-password.js.map +1 -1
  268. package/fesm2015/primeng-picklist.js +140 -70
  269. package/fesm2015/primeng-picklist.js.map +1 -1
  270. package/fesm2015/primeng-radiobutton.js +5 -11
  271. package/fesm2015/primeng-radiobutton.js.map +1 -1
  272. package/fesm2015/primeng-scrollpanel.js +1 -0
  273. package/fesm2015/primeng-scrollpanel.js.map +1 -1
  274. package/fesm2015/primeng-selectbutton.js +2 -2
  275. package/fesm2015/primeng-selectbutton.js.map +1 -1
  276. package/fesm2015/primeng-sidebar.js +76 -52
  277. package/fesm2015/primeng-sidebar.js.map +1 -1
  278. package/fesm2015/primeng-skeleton.js +1 -1
  279. package/fesm2015/primeng-skeleton.js.map +1 -1
  280. package/fesm2015/primeng-splitter.js +39 -12
  281. package/fesm2015/primeng-splitter.js.map +1 -1
  282. package/fesm2015/primeng-table.js +17 -7
  283. package/fesm2015/primeng-table.js.map +1 -1
  284. package/fesm2015/primeng-tabmenu.js +1 -1
  285. package/fesm2015/primeng-tabmenu.js.map +1 -1
  286. package/fesm2015/primeng-tabview.js +1 -0
  287. package/fesm2015/primeng-tabview.js.map +1 -1
  288. package/fesm2015/primeng-tieredmenu.js +3 -3
  289. package/fesm2015/primeng-tieredmenu.js.map +1 -1
  290. package/fesm2015/primeng-timeline.js +2 -2
  291. package/fesm2015/primeng-timeline.js.map +1 -1
  292. package/fesm2015/primeng-togglebutton.js +1 -1
  293. package/fesm2015/primeng-tree.js +81 -20
  294. package/fesm2015/primeng-tree.js.map +1 -1
  295. package/fesm2015/primeng-treetable.js +4 -0
  296. package/fesm2015/primeng-treetable.js.map +1 -1
  297. package/fesm2015/primeng-tristatecheckbox.js +5 -1
  298. package/fesm2015/primeng-tristatecheckbox.js.map +1 -1
  299. package/fileupload/fileupload.d.ts +5 -2
  300. package/fileupload/primeng-fileupload.metadata.json +1 -1
  301. package/galleria/galleria.d.ts +3 -2
  302. package/galleria/primeng-galleria.metadata.json +1 -1
  303. package/inputnumber/primeng-inputnumber.metadata.json +1 -1
  304. package/listbox/listbox.d.ts +16 -4
  305. package/listbox/primeng-listbox.metadata.json +1 -1
  306. package/menubar/primeng-menubar.metadata.json +1 -1
  307. package/multiselect/multiselect.d.ts +10 -3
  308. package/multiselect/primeng-multiselect.metadata.json +1 -1
  309. package/orderlist/orderlist.d.ts +5 -1
  310. package/orderlist/primeng-orderlist.metadata.json +1 -1
  311. package/package.json +1 -1
  312. package/password/password.d.ts +5 -4
  313. package/password/primeng-password.metadata.json +1 -1
  314. package/picklist/picklist.d.ts +16 -7
  315. package/picklist/primeng-picklist.metadata.json +1 -1
  316. package/radiobutton/primeng-radiobutton.metadata.json +1 -1
  317. package/resources/components/button/button.css +4 -0
  318. package/resources/components/calendar/calendar.css +0 -1
  319. package/resources/components/orderlist/orderlist.css +1 -0
  320. package/resources/components/picklist/picklist.css +1 -0
  321. package/resources/components/sidebar/sidebar.css +12 -26
  322. package/resources/primeng.css +4 -0
  323. package/resources/primeng.min.css +1 -1
  324. package/resources/themes/arya-blue/theme.css +49 -9
  325. package/resources/themes/arya-green/theme.css +49 -9
  326. package/resources/themes/arya-orange/theme.css +49 -9
  327. package/resources/themes/arya-purple/theme.css +49 -9
  328. package/resources/themes/bootstrap4-dark-blue/theme.css +49 -9
  329. package/resources/themes/bootstrap4-dark-purple/theme.css +49 -9
  330. package/resources/themes/bootstrap4-light-blue/theme.css +49 -9
  331. package/resources/themes/bootstrap4-light-purple/theme.css +49 -9
  332. package/resources/themes/fluent-light/theme.css +47 -7
  333. package/resources/themes/luna-amber/theme.css +49 -9
  334. package/resources/themes/luna-blue/theme.css +49 -9
  335. package/resources/themes/luna-green/theme.css +49 -9
  336. package/resources/themes/luna-pink/theme.css +49 -9
  337. package/resources/themes/md-dark-deeppurple/theme.css +60 -14
  338. package/resources/themes/md-dark-indigo/theme.css +60 -14
  339. package/resources/themes/md-light-deeppurple/theme.css +60 -14
  340. package/resources/themes/md-light-indigo/theme.css +60 -14
  341. package/resources/themes/mdc-dark-deeppurple/theme.css +60 -14
  342. package/resources/themes/mdc-dark-indigo/theme.css +60 -14
  343. package/resources/themes/mdc-light-deeppurple/theme.css +60 -14
  344. package/resources/themes/mdc-light-indigo/theme.css +60 -14
  345. package/resources/themes/nova/theme.css +49 -9
  346. package/resources/themes/nova-accent/theme.css +49 -9
  347. package/resources/themes/nova-alt/theme.css +49 -9
  348. package/resources/themes/rhea/theme.css +49 -9
  349. package/resources/themes/saga-blue/theme.css +49 -9
  350. package/resources/themes/saga-green/theme.css +49 -9
  351. package/resources/themes/saga-orange/theme.css +49 -9
  352. package/resources/themes/saga-purple/theme.css +49 -9
  353. package/resources/themes/vela-blue/theme.css +49 -9
  354. package/resources/themes/vela-green/theme.css +49 -9
  355. package/resources/themes/vela-orange/theme.css +49 -9
  356. package/resources/themes/vela-purple/theme.css +49 -9
  357. package/scrollpanel/primeng-scrollpanel.metadata.json +1 -1
  358. package/selectbutton/primeng-selectbutton.metadata.json +1 -1
  359. package/sidebar/primeng-sidebar.metadata.json +1 -1
  360. package/sidebar/sidebar.d.ts +12 -8
  361. package/skeleton/skeleton.d.ts +1 -1
  362. package/splitter/primeng-splitter.metadata.json +1 -1
  363. package/splitter/splitter.d.ts +5 -1
  364. package/table/primeng-table.metadata.json +1 -1
  365. package/table/table.d.ts +3 -0
  366. package/tabmenu/primeng-tabmenu.metadata.json +1 -1
  367. package/tabview/primeng-tabview.metadata.json +1 -1
  368. package/tieredmenu/primeng-tieredmenu.metadata.json +1 -1
  369. package/timeline/primeng-timeline.metadata.json +1 -1
  370. package/togglebutton/primeng-togglebutton.metadata.json +1 -1
  371. package/tree/primeng-tree.metadata.json +1 -1
  372. package/tree/tree.d.ts +12 -4
  373. package/treetable/primeng-treetable.metadata.json +1 -1
  374. package/tristatecheckbox/primeng-tristatecheckbox.metadata.json +1 -1
  375. package/tristatecheckbox/tristatecheckbox.d.ts +2 -0
@@ -12,5 +12,5 @@
12
12
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */Object.create;function u(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],n=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function h(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,l,o=i.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){l={error:e}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(l)throw l.error}}return s}Object.create;var d={provide:r.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return y})),multi:!0},m=function(){function e(){this.onClick=new t.EventEmitter,this.onKeydown=new t.EventEmitter}return e.prototype.onOptionClick=function(e){this.onClick.emit({originalEvent:e,option:this.option})},e.prototype.onOptionKeydown=function(e){this.onKeydown.emit({originalEvent:e,option:this.option})},e}();m.decorators=[{type:t.Component,args:[{selector:"p-multiSelectItem",template:'\n <li class="p-multiselect-item" (click)="onOptionClick($event)" (keydown)="onOptionKeydown($event)" [attr.aria-label]="label" \n [attr.tabindex]="disabled ? null : \'0\'" [ngStyle]="{\'height\': itemSize + \'px\'}"\n [ngClass]="{\'p-highlight\': selected, \'p-disabled\': disabled}" pRipple>\n <div class="p-checkbox p-component">\n <div class="p-checkbox-box" [ngClass]="{\'p-highlight\': selected}">\n <span class="p-checkbox-icon" [ngClass]="{\'pi pi-check\': selected}"></span>\n </div>\n </div>\n <span *ngIf="!template">{{label}}</span>\n <ng-container *ngTemplateOutlet="template; context: {$implicit: option}"></ng-container>\n </li>\n ',encapsulation:t.ViewEncapsulation.None}]}],m.propDecorators={option:[{type:t.Input}],selected:[{type:t.Input}],label:[{type:t.Input}],disabled:[{type:t.Input}],itemSize:[{type:t.Input}],template:[{type:t.Input}],onClick:[{type:t.Output}],onKeydown:[{type:t.Output}]};var y=function(){function e(e,i,n,l){this.el=e,this.renderer=i,this.cd=n,this.filterService=l,this.filter=!0,this.displaySelectedLabel=!0,this.maxSelectedLabels=3,this.selectedItemsLabel="ellipsis",this.showToggleAll=!0,this.emptyFilterMessage="No results found",this.resetFilterOnHide=!1,this.dropdownIcon="pi pi-chevron-down",this.showHeader=!0,this.autoZIndex=!0,this.baseZIndex=0,this.showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)",this.hideTransitionOptions=".1s linear",this.filterMatchMode="contains",this.tooltip="",this.tooltipPosition="right",this.tooltipPositionStyle="absolute",this.autofocusFilter=!0,this.display="comma",this.onChange=new t.EventEmitter,this.onFocus=new t.EventEmitter,this.onBlur=new t.EventEmitter,this.onClick=new t.EventEmitter,this.onPanelShow=new t.EventEmitter,this.onPanelHide=new t.EventEmitter,this.scrollHeight="200px",this.onModelChange=function(){},this.onModelTouched=function(){}}return Object.defineProperty(e.prototype,"defaultLabel",{get:function(){return this._defaultLabel},set:function(e){this._defaultLabel=e,this.updateLabel()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"placeholder",{get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.updateLabel()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"options",{get:function(){return this._options},set:function(e){this._options=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"filterValue",{get:function(){return this._filterValue},set:function(e){this._filterValue=e,this.activateFilter()},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.updateLabel()},e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"item":e.itemTemplate=t.template;break;case"group":e.groupTemplate=t.template;break;case"selectedItems":e.selectedItemsTemplate=t.template;break;case"header":e.headerTemplate=t.template;break;case"footer":e.footerTemplate=t.template;break;default:e.itemTemplate=t.template}}))},e.prototype.ngAfterViewInit=function(){this.overlayVisible&&this.show()},e.prototype.ngAfterViewChecked=function(){this.filtered&&(this.alignOverlay(),this.filtered=!1)},e.prototype.getOptionLabel=function(e){return this.optionLabel?o.ObjectUtils.resolveFieldData(e,this.optionLabel):null!=e.label?e.label:e},e.prototype.getOptionValue=function(e){return this.optionValue?o.ObjectUtils.resolveFieldData(e,this.optionValue):this.optionLabel?e:e.value},e.prototype.getOptionGroupLabel=function(e){return this.optionGroupLabel?o.ObjectUtils.resolveFieldData(e,this.optionGroupLabel):null!=e.label?e.label:e},e.prototype.getOptionGroupChildren=function(e){return this.optionGroupChildren?o.ObjectUtils.resolveFieldData(e,this.optionGroupChildren):e.items},e.prototype.isOptionDisabled=function(e){return(this.optionDisabled?o.ObjectUtils.resolveFieldData(e,this.optionDisabled):void 0!==e.disabled&&e.disabled)||this.maxSelectionLimitReached&&!this.isSelected(e)},e.prototype.writeValue=function(e){this.value=e,this.updateLabel(),this.updateFilledState(),this.checkSelectionLimit(),this.cd.markForCheck()},e.prototype.checkSelectionLimit=function(){this.selectionLimit&&this.value&&this.value.length===this.selectionLimit?this.maxSelectionLimitReached=!0:this.maxSelectionLimitReached=!1},e.prototype.updateFilledState=function(){this.filled=this.value&&this.value.length>0},e.prototype.registerOnChange=function(e){this.onModelChange=e},e.prototype.registerOnTouched=function(e){this.onModelTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e,this.cd.markForCheck()},e.prototype.onOptionClick=function(e){var t=e.option;if(!this.isOptionDisabled(t)){var i=this.getOptionValue(t),n=this.findSelectionIndex(i);-1!=n?(this.value=this.value.filter((function(e,t){return t!=n})),this.selectionLimit&&(this.maxSelectionLimitReached=!1)):((!this.selectionLimit||!this.value||this.value.length<this.selectionLimit)&&(this.value=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(h(arguments[t]));return e}(this.value||[],[i])),this.checkSelectionLimit()),this.onModelChange(this.value),this.onChange.emit({originalEvent:e.originalEvent,value:this.value,itemValue:i}),this.updateLabel(),this.updateFilledState()}},e.prototype.isSelected=function(e){return-1!=this.findSelectionIndex(this.getOptionValue(e))},e.prototype.findSelectionIndex=function(e){var t=-1;if(this.value)for(var i=0;i<this.value.length;i++)if(o.ObjectUtils.equals(this.value[i],e,this.dataKey)){t=i;break}return t},Object.defineProperty(e.prototype,"toggleAllDisabled",{get:function(){var e,t,i=this.optionsToRender;if(i&&0!==i.length){try{for(var n=u(i),l=n.next();!l.done;l=n.next()){var o=l.value;if(!this.isOptionDisabled(o))return!1}}catch(t){e={error:t}}finally{try{l&&!l.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return!0}return!0},enumerable:!1,configurable:!0}),e.prototype.toggleAll=function(e){this.disabled||this.toggleAllDisabled||this.readonly||(this.allChecked?this.uncheckAll():this.checkAll(),this.onModelChange(this.value),this.onChange.emit({originalEvent:e,value:this.value}),this.updateFilledState(),this.updateLabel(),e.preventDefault())},e.prototype.checkAll=function(){var e=this,t=this.optionsToRender,i=[];t.forEach((function(t){if(e.group)t.items&&t.items.forEach((function(t){var n=e.isOptionDisabled(t);(!n||n&&e.isSelected(t))&&i.push(e.getOptionValue(t))}));else{var n=e.isOptionDisabled(t);(!n||n&&e.isSelected(t))&&i.push(e.getOptionValue(t))}})),this.value=i},e.prototype.uncheckAll=function(){var e=this,t=this.optionsToRender,i=[];t.forEach((function(t){e.group?t.items&&t.items.forEach((function(t){e.isOptionDisabled(t)&&e.isSelected(t)&&i.push(e.getOptionValue(t))})):e.isOptionDisabled(t)&&e.isSelected(t)&&i.push(e.getOptionValue(t))})),this.value=i},e.prototype.show=function(){this.overlayVisible||(this.overlayVisible=!0)},e.prototype.onOverlayAnimationStart=function(e){switch(e.toState){case"visible":this.overlay=e.element,this.appendOverlay(),this.autoZIndex&&(this.overlay.style.zIndex=String(this.baseZIndex+ ++l.DomHandler.zindex)),this.alignOverlay(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindScrollListener(),this.filterInputChild&&this.filterInputChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&this.filterInputChild.nativeElement.focus()),this.onPanelShow.emit();break;case"void":this.onOverlayHide()}},e.prototype.appendOverlay=function(){this.appendTo&&("body"===this.appendTo?document.body.appendChild(this.overlay):l.DomHandler.appendChild(this.overlay,this.appendTo),this.overlay.style.minWidth||(this.overlay.style.minWidth=l.DomHandler.getWidth(this.containerViewChild.nativeElement)+"px"))},e.prototype.restoreOverlayAppend=function(){this.overlay&&this.appendTo&&this.el.nativeElement.appendChild(this.overlay)},e.prototype.alignOverlay=function(){this.overlay&&(this.appendTo?l.DomHandler.absolutePosition(this.overlay,this.containerViewChild.nativeElement):l.DomHandler.relativePosition(this.overlay,this.containerViewChild.nativeElement))},e.prototype.hide=function(){this.overlayVisible=!1,this.unbindDocumentClickListener(),this.resetFilterOnHide&&(this.filterInputChild.nativeElement.value="",this._filterValue=null,this._filteredOptions=null),this.onPanelHide.emit(),this.cd.markForCheck()},e.prototype.close=function(e){this.hide(),e.preventDefault(),e.stopPropagation()},e.prototype.onMouseclick=function(e,t){this.disabled||this.readonly||e.target.isSameNode(this.accessibleViewChild.nativeElement)||(this.onClick.emit(e),this.isOverlayClick(e)||l.DomHandler.hasClass(e.target,"p-multiselect-token-icon")||(this.overlayVisible?this.hide():(t.focus(),this.show())))},e.prototype.removeChip=function(e,t){var i=this;this.value=this.value.filter((function(t){return!o.ObjectUtils.equals(t,e,i.dataKey)})),this.onModelChange(this.value),this.onChange.emit({originalEvent:t,value:this.value}),this.updateLabel(),this.updateFilledState()},e.prototype.isOverlayClick=function(e){var t=e.target;return!!this.overlay&&(this.overlay.isSameNode(t)||this.overlay.contains(t))},e.prototype.isOutsideClicked=function(e){return!(this.el.nativeElement.isSameNode(e.target)||this.el.nativeElement.contains(e.target)||this.isOverlayClick(e))},e.prototype.onInputFocus=function(e){this.focus=!0,this.onFocus.emit({originalEvent:e})},e.prototype.onInputBlur=function(e){this.focus=!1,this.onBlur.emit({originalEvent:e}),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1},e.prototype.onOptionKeydown=function(e){if(!this.readonly)switch(e.originalEvent.which){case 40:var t=this.findNextItem(e.originalEvent.target.parentElement);t&&t.focus(),e.originalEvent.preventDefault();break;case 38:var i=this.findPrevItem(e.originalEvent.target.parentElement);i&&i.focus(),e.originalEvent.preventDefault();break;case 13:this.onOptionClick(e),e.originalEvent.preventDefault()}},e.prototype.findNextItem=function(e){var t=e.nextElementSibling;return t?l.DomHandler.hasClass(t.children[0],"p-disabled")||l.DomHandler.isHidden(t.children[0])||l.DomHandler.hasClass(t,"p-multiselect-item-group")?this.findNextItem(t):t.children[0]:null},e.prototype.findPrevItem=function(e){var t=e.previousElementSibling;return t?l.DomHandler.hasClass(t.children[0],"p-disabled")||l.DomHandler.isHidden(t.children[0])||l.DomHandler.hasClass(t,"p-multiselect-item-group")?this.findPrevItem(t):t.children[0]:null},e.prototype.onKeydown=function(e){switch(e.which){case 40:!this.overlayVisible&&e.altKey&&(this.show(),e.preventDefault());break;case 32:this.overlayVisible||(this.show(),e.preventDefault());break;case 27:this.hide()}},e.prototype.updateLabel=function(){if(this.value&&this.options&&this.value.length&&this.displaySelectedLabel){for(var e="",t=0;t<this.value.length;t++){var i=this.findLabelByValue(this.value[t]);i&&(e.length>0&&(e+=", "),e+=i)}if(this.value.length<=this.maxSelectedLabels||"ellipsis"===this.selectedItemsLabel)this.valuesAsString=e;else{var n=/{(.*?)}/;n.test(this.selectedItemsLabel)?this.valuesAsString=this.selectedItemsLabel.replace(this.selectedItemsLabel.match(n)[0],this.value.length+""):this.valuesAsString=this.selectedItemsLabel}}else this.valuesAsString=this.placeholder||this.defaultLabel},e.prototype.findLabelByValue=function(e){if(this.group){for(var t=null,i=0;i<this.options.length&&(!this.options[i].items||!(t=this.searchLabelByValue(e,this.options[i].items)));i++);return t}return this.searchLabelByValue(e,this.options)},e.prototype.searchLabelByValue=function(e,t){for(var i=null,n=0;n<t.length;n++){var l=t[n],s=this.getOptionValue(l);if(null==e&&null==s||o.ObjectUtils.equals(e,s,this.dataKey)){i=this.getOptionLabel(l);break}}return i},Object.defineProperty(e.prototype,"allChecked",{get:function(){var e,t,i,n,l=this.optionsToRender;if(l&&0!==l.length){var o=0,s=0,r=0,a=this.group?0:this.optionsToRender.length;try{for(var p=u(l),c=p.next();!c.done;c=p.next()){var h=c.value;if(this.group){if(h.items)try{for(var d=(i=void 0,u(h.items)),m=d.next();!m.done;m=d.next()){var y=m.value;f=this.isOptionDisabled(y),g=this.isSelected(y);if(f)g?o++:s++;else{if(!g)return!1;r++}a++}}catch(e){i={error:e}}finally{try{m&&!m.done&&(n=d.return)&&n.call(d)}finally{if(i)throw i.error}}}else{var f=this.isOptionDisabled(h),g=this.isSelected(h);if(f)g?o++:s++;else{if(!g)return!1;r++}}}}catch(t){e={error:t}}finally{try{c&&!c.done&&(t=p.return)&&t.call(p)}finally{if(e)throw e.error}}return a===o||a===r||r&&a===r+s+o}return!1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"optionsToRender",{get:function(){return this._filteredOptions||this.options},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"emptyOptions",{get:function(){var e=this.optionsToRender;return!e||0===e.length},enumerable:!1,configurable:!0}),e.prototype.hasFilter=function(){return this._filterValue&&this._filterValue.trim().length>0},e.prototype.onFilter=function(e){this._filterValue=e.target.value,this.activateFilter()},e.prototype.activateFilter=function(){var e,t;if(this.hasFilter()&&this._options){var i=(this.filterBy||this.optionLabel||"label").split(",");if(this.group){var n=(this.optionLabel||"label").split(","),l=[];try{for(var o=u(this.options),s=o.next();!s.done;s=o.next()){var r=s.value,a=this.filterService.filter(this.getOptionGroupChildren(r),n,this.filterValue,this.filterMatchMode,this.filterLocale);a&&a.length&&l.push({label:r.label,value:r.value,items:a})}}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}this._filteredOptions=l}else this._filteredOptions=this.filterService.filter(this.options,i,this._filterValue,this.filterMatchMode,this.filterLocale)}else this._filteredOptions=null},e.prototype.onHeaderCheckboxFocus=function(){this.headerCheckboxFocus=!0},e.prototype.onHeaderCheckboxBlur=function(){this.headerCheckboxFocus=!1},e.prototype.bindDocumentClickListener=function(){var e=this;if(!this.documentClickListener){var t=this.el?this.el.nativeElement.ownerDocument:"document";this.documentClickListener=this.renderer.listen(t,"click",(function(t){e.isOutsideClicked(t)&&e.hide()}))}},e.prototype.unbindDocumentClickListener=function(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)},e.prototype.bindDocumentResizeListener=function(){this.documentResizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.documentResizeListener)},e.prototype.unbindDocumentResizeListener=function(){this.documentResizeListener&&(window.removeEventListener("resize",this.documentResizeListener),this.documentResizeListener=null)},e.prototype.onWindowResize=function(){l.DomHandler.isAndroid()||this.hide()},e.prototype.bindScrollListener=function(){var e=this;this.scrollHandler||(this.scrollHandler=new l.ConnectedOverlayScrollHandler(this.containerViewChild.nativeElement,(function(){e.overlayVisible&&e.hide()}))),this.scrollHandler.bindScrollListener()},e.prototype.unbindScrollListener=function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},e.prototype.onOverlayHide=function(){this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null,this.onModelTouched()},e.prototype.ngOnDestroy=function(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.restoreOverlayAppend(),this.onOverlayHide()},e}();y.decorators=[{type:t.Component,args:[{selector:"p-multiSelect",template:'\n <div #container [ngClass]="{\'p-multiselect p-component\':true,\n \'p-multiselect-open\':overlayVisible,\n \'p-multiselect-chip\': display === \'chip\',\n \'p-focus\':focus,\n \'p-disabled\': disabled}" [ngStyle]="style" [class]="styleClass"\n (click)="onMouseclick($event,in)">\n <div class="p-hidden-accessible">\n <input #in type="text" readonly="readonly" [attr.id]="inputId" [attr.name]="name" (focus)="onInputFocus($event)" (blur)="onInputBlur($event)"\n [disabled]="disabled" [attr.tabindex]="tabindex" (keydown)="onKeydown($event)" aria-haspopup="listbox" [attr.aria-expanded]="overlayVisible"\n [attr.aria-labelledby]="ariaLabelledBy" role="listbox">\n </div>\n <div class="p-multiselect-label-container" [pTooltip]="tooltip" [tooltipPosition]="tooltipPosition" [positionStyle]="tooltipPositionStyle" [tooltipStyleClass]="tooltipStyleClass">\n <div class="p-multiselect-label" [ngClass]="{\'p-placeholder\': valuesAsString === (defaultLabel || placeholder), \'p-multiselect-label-empty\': ((valuesAsString == null || valuesAsString.length === 0) && (placeholder == null || placeholder.length === 0))}">\n <ng-container *ngIf="!selectedItemsTemplate">\n <ng-container *ngIf="display === \'comma\'">{{valuesAsString || \'empty\'}}</ng-container>\n <ng-container *ngIf="display === \'chip\'">\n <div #token *ngFor="let item of value; let i = index;" class="p-multiselect-token">\n <span class="p-multiselect-token-label">{{findLabelByValue(item)}}</span>\n <span *ngIf="!disabled" class="p-multiselect-token-icon pi pi-times-circle" (click)="removeChip(item, $event)"></span>\n </div>\n <ng-container *ngIf="!value || value.length === 0">{{placeholder || defaultLabel || \'empty\'}}</ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet="selectedItemsTemplate; context: {$implicit: value}"></ng-container>\n </div>\n </div>\n <div [ngClass]="{\'p-multiselect-trigger\':true}">\n <span class="p-multiselect-trigger-icon" [ngClass]="dropdownIcon"></span>\n </div>\n <div *ngIf="overlayVisible" [ngClass]="[\'p-multiselect-panel p-component\']" [@overlayAnimation]="{value: \'visible\', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}" (@overlayAnimation.start)="onOverlayAnimationStart($event)"\n [ngStyle]="panelStyle" [class]="panelStyleClass" (keydown)="onKeydown($event)">\n <div class="p-multiselect-header" *ngIf="showHeader">\n <ng-content select="p-header"></ng-content>\n <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>\n <div class="p-checkbox p-component" *ngIf="showToggleAll && !selectionLimit" [ngClass]="{\'p-checkbox-disabled\': disabled || toggleAllDisabled}">\n <div class="p-hidden-accessible">\n <input type="checkbox" readonly="readonly" [checked]="allChecked" (focus)="onHeaderCheckboxFocus()" (blur)="onHeaderCheckboxBlur()" (keydown.space)="toggleAll($event)" [attr.disabled]="disabled || toggleAllDisabled">\n </div>\n <div class="p-checkbox-box" role="checkbox" [attr.aria-checked]="allChecked" [ngClass]="{\'p-highlight\':allChecked, \'p-focus\': headerCheckboxFocus, \'p-disabled\': disabled || toggleAllDisabled}" (click)="toggleAll($event)">\n <span class="p-checkbox-icon" [ngClass]="{\'pi pi-check\':allChecked}"></span>\n </div>\n </div>\n <div class="p-multiselect-filter-container" *ngIf="filter">\n <input #filterInput type="text" role="textbox" [value]="filterValue||\'\'" (input)="onFilter($event)" class="p-multiselect-filter p-inputtext p-component" [disabled]="disabled" [attr.placeholder]="filterPlaceHolder" [attr.aria-label]="ariaFilterLabel">\n <span class="p-multiselect-filter-icon pi pi-search"></span>\n </div>\n <button class="p-multiselect-close p-link" type="button" (click)="close($event)" pRipple>\n <span class="p-multiselect-close-icon pi pi-times"></span>\n </button>\n </div>\n <div class="p-multiselect-items-wrapper" [style.max-height]="virtualScroll ? \'auto\' : (scrollHeight||\'auto\')">\n <ul class="p-multiselect-items p-component" role="listbox" aria-multiselectable="true">\n <ng-container *ngIf="group">\n <ng-template ngFor let-optgroup [ngForOf]="optionsToRender">\n <li class="p-multiselect-item-group">\n <span *ngIf="!groupTemplate">{{getOptionGroupLabel(optgroup)||\'empty\'}}</span>\n <ng-container *ngTemplateOutlet="groupTemplate; context: {$implicit: optgroup}"></ng-container>\n </li>\n <ng-container *ngTemplateOutlet="itemslist; context: {$implicit: getOptionGroupChildren(optgroup)}"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf="!group">\n <ng-container *ngTemplateOutlet="itemslist; context: {$implicit: optionsToRender}"></ng-container>\n </ng-container>\n <ng-template #itemslist let-optionsToDisplay let-selectedOption="selectedOption">\n <ng-container *ngIf="!virtualScroll; else virtualScrollList">\n <ng-template ngFor let-option let-i="index" [ngForOf]="optionsToDisplay">\n <p-multiSelectItem [option]="option" [selected]="isSelected(option)" [label]="getOptionLabel(option)" [disabled]="isOptionDisabled(option)" (onClick)="onOptionClick($event)" (onKeydown)="onOptionKeydown($event)"\n [template]="itemTemplate"></p-multiSelectItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport [ngStyle]="{\'height\': scrollHeight}" [itemSize]="itemSize" *ngIf="virtualScroll && !emptyOptions">\n <ng-container *cdkVirtualFor="let option of optionsToDisplay; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd">\n <p-multiSelectItem [option]="option" [selected]="isSelected(option)" [label]="getOptionLabel(option)" [disabled]="isOptionDisabled(option)" (onClick)="onOptionClick($event)" (onKeydown)="onOptionKeydown($event)"\n [template]="itemTemplate" [itemSize]="itemSize"></p-multiSelectItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <li *ngIf="emptyOptions" class="p-multiselect-empty-message">{{emptyFilterMessage}}</li>\n </ng-template>\n </ul>\n </div>\n <div class="p-multiselect-footer" *ngIf="footerFacet || footerTemplate">\n <ng-content select="p-footer"></ng-content>\n <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>\n </div>\n </div>\n </div>\n ',animations:[i.trigger("overlayAnimation",[i.transition(":enter",[i.style({opacity:0,transform:"scaleY(0.8)"}),i.animate("{{showTransitionParams}}")]),i.transition(":leave",[i.animate("{{hideTransitionParams}}",i.style({opacity:0}))])])],host:{"[class.p-inputwrapper-filled]":"filled","[class.p-inputwrapper-focus]":"focus || overlayVisible"},providers:[d],changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,styles:[".p-multiselect{-ms-user-select:none;-webkit-user-select:none;cursor:pointer;display:inline-flex;position:relative;user-select:none}.p-multiselect-trigger{align-items:center;display:flex;flex-shrink:0;justify-content:center}.p-multiselect-label-container{cursor:pointer;flex:1 1 auto;overflow:hidden}.p-multiselect-label{cursor:pointer;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-multiselect-label-empty{overflow:hidden;visibility:hidden}.p-multiselect-token{align-items:center;cursor:default;display:inline-flex;flex:0 0 auto}.p-multiselect-token-icon{cursor:pointer}.p-multiselect .p-multiselect-panel{min-width:100%}.p-multiselect-panel{position:absolute}.p-multiselect-items-wrapper{overflow:auto}.p-multiselect-items{list-style-type:none;margin:0;padding:0}.p-multiselect-item{align-items:center;cursor:pointer;display:flex;font-weight:400;overflow:hidden;position:relative;white-space:nowrap}.p-multiselect-header{align-items:center;display:flex;justify-content:space-between}.p-multiselect-filter-container{flex:1 1 auto;position:relative}.p-multiselect-filter-icon{margin-top:-.5rem;position:absolute;top:50%}.p-multiselect-filter-container .p-inputtext{width:100%}.p-multiselect-close{align-items:center;display:flex;flex-shrink:0;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-multiselect{display:flex}"]}]}],y.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:t.ChangeDetectorRef},{type:s.FilterService}]},y.propDecorators={style:[{type:t.Input}],styleClass:[{type:t.Input}],panelStyle:[{type:t.Input}],panelStyleClass:[{type:t.Input}],inputId:[{type:t.Input}],disabled:[{type:t.Input}],readonly:[{type:t.Input}],group:[{type:t.Input}],filter:[{type:t.Input}],filterPlaceHolder:[{type:t.Input}],filterLocale:[{type:t.Input}],overlayVisible:[{type:t.Input}],tabindex:[{type:t.Input}],appendTo:[{type:t.Input}],dataKey:[{type:t.Input}],name:[{type:t.Input}],ariaLabelledBy:[{type:t.Input}],displaySelectedLabel:[{type:t.Input}],maxSelectedLabels:[{type:t.Input}],selectionLimit:[{type:t.Input}],selectedItemsLabel:[{type:t.Input}],showToggleAll:[{type:t.Input}],emptyFilterMessage:[{type:t.Input}],resetFilterOnHide:[{type:t.Input}],dropdownIcon:[{type:t.Input}],optionLabel:[{type:t.Input}],optionValue:[{type:t.Input}],optionDisabled:[{type:t.Input}],optionGroupLabel:[{type:t.Input}],optionGroupChildren:[{type:t.Input}],showHeader:[{type:t.Input}],autoZIndex:[{type:t.Input}],baseZIndex:[{type:t.Input}],filterBy:[{type:t.Input}],virtualScroll:[{type:t.Input}],itemSize:[{type:t.Input}],showTransitionOptions:[{type:t.Input}],hideTransitionOptions:[{type:t.Input}],ariaFilterLabel:[{type:t.Input}],filterMatchMode:[{type:t.Input}],tooltip:[{type:t.Input}],tooltipPosition:[{type:t.Input}],tooltipPositionStyle:[{type:t.Input}],tooltipStyleClass:[{type:t.Input}],autofocusFilter:[{type:t.Input}],display:[{type:t.Input}],containerViewChild:[{type:t.ViewChild,args:["container"]}],filterInputChild:[{type:t.ViewChild,args:["filterInput"]}],accessibleViewChild:[{type:t.ViewChild,args:["in"]}],footerFacet:[{type:t.ContentChild,args:[s.Footer]}],headerFacet:[{type:t.ContentChild,args:[s.Header]}],templates:[{type:t.ContentChildren,args:[s.PrimeTemplate]}],onChange:[{type:t.Output}],onFocus:[{type:t.Output}],onBlur:[{type:t.Output}],onClick:[{type:t.Output}],onPanelShow:[{type:t.Output}],onPanelHide:[{type:t.Output}],scrollHeight:[{type:t.Input}],defaultLabel:[{type:t.Input}],placeholder:[{type:t.Input}],options:[{type:t.Input}],filterValue:[{type:t.Input}]};var f=function(){};f.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,s.SharedModule,a.ScrollingModule,p.TooltipModule,c.RippleModule],exports:[y,s.SharedModule,a.ScrollingModule],declarations:[y,m]}]}],e.MULTISELECT_VALUE_ACCESSOR=d,e.MultiSelect=y,e.MultiSelectItem=m,e.MultiSelectModule=f,Object.defineProperty(e,"__esModule",{value:!0})}));
15
+ ***************************************************************************** */Object.create;function u(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],n=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function h(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,l,o=i.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){l={error:e}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(l)throw l.error}}return s}Object.create;var d={provide:r.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return y})),multi:!0},m=function(){function e(){this.onClick=new t.EventEmitter,this.onKeydown=new t.EventEmitter}return e.prototype.onOptionClick=function(e){this.onClick.emit({originalEvent:e,option:this.option})},e.prototype.onOptionKeydown=function(e){this.onKeydown.emit({originalEvent:e,option:this.option})},e}();m.decorators=[{type:t.Component,args:[{selector:"p-multiSelectItem",template:'\n <li class="p-multiselect-item" (click)="onOptionClick($event)" (keydown)="onOptionKeydown($event)" [attr.aria-label]="label" \n [attr.tabindex]="disabled ? null : \'0\'" [ngStyle]="{\'height\': itemSize + \'px\'}"\n [ngClass]="{\'p-highlight\': selected, \'p-disabled\': disabled}" pRipple>\n <div class="p-checkbox p-component">\n <div class="p-checkbox-box" [ngClass]="{\'p-highlight\': selected}">\n <span class="p-checkbox-icon" [ngClass]="{\'pi pi-check\': selected}"></span>\n </div>\n </div>\n <span *ngIf="!template">{{label}}</span>\n <ng-container *ngTemplateOutlet="template; context: {$implicit: option}"></ng-container>\n </li>\n ',encapsulation:t.ViewEncapsulation.None}]}],m.propDecorators={option:[{type:t.Input}],selected:[{type:t.Input}],label:[{type:t.Input}],disabled:[{type:t.Input}],itemSize:[{type:t.Input}],template:[{type:t.Input}],onClick:[{type:t.Output}],onKeydown:[{type:t.Output}]};var y=function(){function e(e,i,n,l,o){this.el=e,this.renderer=i,this.cd=n,this.filterService=l,this.config=o,this.filter=!0,this.displaySelectedLabel=!0,this.maxSelectedLabels=3,this.selectedItemsLabel="ellipsis",this.showToggleAll=!0,this.emptyFilterMessage="",this.emptyMessage="",this.resetFilterOnHide=!1,this.dropdownIcon="pi pi-chevron-down",this.optionGroupChildren="items",this.showHeader=!0,this.autoZIndex=!0,this.baseZIndex=0,this.showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)",this.hideTransitionOptions=".1s linear",this.filterMatchMode="contains",this.tooltip="",this.tooltipPosition="right",this.tooltipPositionStyle="absolute",this.autofocusFilter=!0,this.display="comma",this.onChange=new t.EventEmitter,this.onFilter=new t.EventEmitter,this.onFocus=new t.EventEmitter,this.onBlur=new t.EventEmitter,this.onClick=new t.EventEmitter,this.onPanelShow=new t.EventEmitter,this.onPanelHide=new t.EventEmitter,this.scrollHeight="200px",this.onModelChange=function(){},this.onModelTouched=function(){}}return Object.defineProperty(e.prototype,"defaultLabel",{get:function(){return this._defaultLabel},set:function(e){this._defaultLabel=e,this.updateLabel()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"placeholder",{get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.updateLabel()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"options",{get:function(){return this._options},set:function(e){this._options=e,this.updateLabel()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"filterValue",{get:function(){return this._filterValue},set:function(e){this._filterValue=e,this.activateFilter()},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.updateLabel()},e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"item":e.itemTemplate=t.template;break;case"group":e.groupTemplate=t.template;break;case"selectedItems":e.selectedItemsTemplate=t.template;break;case"header":e.headerTemplate=t.template;break;case"emptyfilter":e.emptyFilterTemplate=t.template;break;case"empty":e.emptyTemplate=t.template;break;case"footer":e.footerTemplate=t.template;break;default:e.itemTemplate=t.template}}))},e.prototype.ngAfterViewInit=function(){this.overlayVisible&&this.show()},e.prototype.ngAfterViewChecked=function(){this.filtered&&(this.alignOverlay(),this.filtered=!1)},e.prototype.getOptionLabel=function(e){return this.optionLabel?o.ObjectUtils.resolveFieldData(e,this.optionLabel):null!=e.label?e.label:e},e.prototype.getOptionValue=function(e){return this.optionValue?o.ObjectUtils.resolveFieldData(e,this.optionValue):this.optionLabel||void 0===e.value?e:e.value},e.prototype.getOptionGroupLabel=function(e){return this.optionGroupLabel?o.ObjectUtils.resolveFieldData(e,this.optionGroupLabel):null!=e.label?e.label:e},e.prototype.getOptionGroupChildren=function(e){return this.optionGroupChildren?o.ObjectUtils.resolveFieldData(e,this.optionGroupChildren):e.items},e.prototype.isOptionDisabled=function(e){return(this.optionDisabled?o.ObjectUtils.resolveFieldData(e,this.optionDisabled):void 0!==e.disabled&&e.disabled)||this.maxSelectionLimitReached&&!this.isSelected(e)},e.prototype.writeValue=function(e){this.value=e,this.updateLabel(),this.updateFilledState(),this.checkSelectionLimit(),this.cd.markForCheck()},e.prototype.checkSelectionLimit=function(){this.selectionLimit&&this.value&&this.value.length===this.selectionLimit?this.maxSelectionLimitReached=!0:this.maxSelectionLimitReached=!1},e.prototype.updateFilledState=function(){this.filled=this.value&&this.value.length>0},e.prototype.registerOnChange=function(e){this.onModelChange=e},e.prototype.registerOnTouched=function(e){this.onModelTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e,this.cd.markForCheck()},e.prototype.onOptionClick=function(e){var t=e.option;if(!this.isOptionDisabled(t)){var i=this.getOptionValue(t),n=this.findSelectionIndex(i);-1!=n?(this.value=this.value.filter((function(e,t){return t!=n})),this.selectionLimit&&(this.maxSelectionLimitReached=!1)):((!this.selectionLimit||!this.value||this.value.length<this.selectionLimit)&&(this.value=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(h(arguments[t]));return e}(this.value||[],[i])),this.checkSelectionLimit()),this.onModelChange(this.value),this.onChange.emit({originalEvent:e.originalEvent,value:this.value,itemValue:i}),this.updateLabel(),this.updateFilledState()}},e.prototype.isSelected=function(e){return-1!=this.findSelectionIndex(this.getOptionValue(e))},e.prototype.findSelectionIndex=function(e){var t=-1;if(this.value)for(var i=0;i<this.value.length;i++)if(o.ObjectUtils.equals(this.value[i],e,this.dataKey)){t=i;break}return t},Object.defineProperty(e.prototype,"toggleAllDisabled",{get:function(){var e,t,i=this.optionsToRender;if(i&&0!==i.length){try{for(var n=u(i),l=n.next();!l.done;l=n.next()){var o=l.value;if(!this.isOptionDisabled(o))return!1}}catch(t){e={error:t}}finally{try{l&&!l.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return!0}return!0},enumerable:!1,configurable:!0}),e.prototype.toggleAll=function(e){this.disabled||this.toggleAllDisabled||this.readonly||(this.allChecked?this.uncheckAll():this.checkAll(),this.onModelChange(this.value),this.onChange.emit({originalEvent:e,value:this.value}),this.updateFilledState(),this.updateLabel(),e.preventDefault())},e.prototype.checkAll=function(){var e=this,t=this.optionsToRender,i=[];t.forEach((function(t){if(e.group){var n=e.getOptionGroupChildren(t);n&&n.forEach((function(t){var n=e.isOptionDisabled(t);(!n||n&&e.isSelected(t))&&i.push(e.getOptionValue(t))}))}else{var l=e.isOptionDisabled(t);(!l||l&&e.isSelected(t))&&i.push(e.getOptionValue(t))}})),this.value=i},e.prototype.uncheckAll=function(){var e=this,t=this.optionsToRender,i=[];t.forEach((function(t){e.group?t.items&&t.items.forEach((function(t){e.isOptionDisabled(t)&&e.isSelected(t)&&i.push(e.getOptionValue(t))})):e.isOptionDisabled(t)&&e.isSelected(t)&&i.push(e.getOptionValue(t))})),this.value=i},e.prototype.show=function(){this.overlayVisible||(this.overlayVisible=!0)},e.prototype.onOverlayAnimationStart=function(e){switch(e.toState){case"visible":this.overlay=e.element,this.appendOverlay(),this.autoZIndex&&(this.overlay.style.zIndex=String(this.baseZIndex+ ++l.DomHandler.zindex)),this.alignOverlay(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindScrollListener(),this.filterInputChild&&this.filterInputChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&this.filterInputChild.nativeElement.focus()),this.onPanelShow.emit();break;case"void":this.onOverlayHide()}},e.prototype.appendOverlay=function(){this.appendTo&&("body"===this.appendTo?document.body.appendChild(this.overlay):l.DomHandler.appendChild(this.overlay,this.appendTo),this.overlay.style.minWidth||(this.overlay.style.minWidth=l.DomHandler.getWidth(this.containerViewChild.nativeElement)+"px"))},e.prototype.restoreOverlayAppend=function(){this.overlay&&this.appendTo&&this.el.nativeElement.appendChild(this.overlay)},e.prototype.alignOverlay=function(){this.overlay&&(this.appendTo?l.DomHandler.absolutePosition(this.overlay,this.containerViewChild.nativeElement):l.DomHandler.relativePosition(this.overlay,this.containerViewChild.nativeElement))},e.prototype.hide=function(){this.overlayVisible=!1,this.unbindDocumentClickListener(),this.resetFilterOnHide&&(this.filterInputChild.nativeElement.value="",this._filterValue=null,this._filteredOptions=null),this.onPanelHide.emit(),this.cd.markForCheck()},e.prototype.close=function(e){this.hide(),e.preventDefault(),e.stopPropagation()},e.prototype.onMouseclick=function(e,t){this.disabled||this.readonly||e.target.isSameNode(this.accessibleViewChild.nativeElement)||(this.onClick.emit(e),this.isOverlayClick(e)||l.DomHandler.hasClass(e.target,"p-multiselect-token-icon")||(this.overlayVisible?this.hide():(t.focus(),this.show())))},e.prototype.removeChip=function(e,t){var i=this;this.value=this.value.filter((function(t){return!o.ObjectUtils.equals(t,e,i.dataKey)})),this.onModelChange(this.value),this.onChange.emit({originalEvent:t,value:this.value}),this.updateLabel(),this.updateFilledState()},e.prototype.isOverlayClick=function(e){var t=e.target;return!!this.overlay&&(this.overlay.isSameNode(t)||this.overlay.contains(t))},e.prototype.isOutsideClicked=function(e){return!(this.el.nativeElement.isSameNode(e.target)||this.el.nativeElement.contains(e.target)||this.isOverlayClick(e))},e.prototype.onInputFocus=function(e){this.focus=!0,this.onFocus.emit({originalEvent:e})},e.prototype.onInputBlur=function(e){this.focus=!1,this.onBlur.emit({originalEvent:e}),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1},e.prototype.onOptionKeydown=function(e){if(!this.readonly)switch(e.originalEvent.which){case 40:var t=this.findNextItem(e.originalEvent.target.parentElement);t&&t.focus(),e.originalEvent.preventDefault();break;case 38:var i=this.findPrevItem(e.originalEvent.target.parentElement);i&&i.focus(),e.originalEvent.preventDefault();break;case 13:this.onOptionClick(e),e.originalEvent.preventDefault()}},e.prototype.findNextItem=function(e){var t=e.nextElementSibling;return t?l.DomHandler.hasClass(t.children[0],"p-disabled")||l.DomHandler.isHidden(t.children[0])||l.DomHandler.hasClass(t,"p-multiselect-item-group")?this.findNextItem(t):t.children[0]:null},e.prototype.findPrevItem=function(e){var t=e.previousElementSibling;return t?l.DomHandler.hasClass(t.children[0],"p-disabled")||l.DomHandler.isHidden(t.children[0])||l.DomHandler.hasClass(t,"p-multiselect-item-group")?this.findPrevItem(t):t.children[0]:null},e.prototype.onKeydown=function(e){switch(e.which){case 40:!this.overlayVisible&&e.altKey&&(this.show(),e.preventDefault());break;case 32:this.overlayVisible||(this.show(),e.preventDefault());break;case 27:this.hide()}},e.prototype.updateLabel=function(){if(this.value&&this.options&&this.value.length&&this.displaySelectedLabel){for(var e="",t=0;t<this.value.length;t++){var i=this.findLabelByValue(this.value[t]);i&&(e.length>0&&(e+=", "),e+=i)}if(this.value.length<=this.maxSelectedLabels||"ellipsis"===this.selectedItemsLabel)this.valuesAsString=e;else{var n=/{(.*?)}/;n.test(this.selectedItemsLabel)?this.valuesAsString=this.selectedItemsLabel.replace(this.selectedItemsLabel.match(n)[0],this.value.length+""):this.valuesAsString=this.selectedItemsLabel}}else this.valuesAsString=this.placeholder||this.defaultLabel},e.prototype.findLabelByValue=function(e){if(this.group){for(var t=null,i=0;i<this.options.length;i++){var n=this.getOptionGroupChildren(this.options[i]);if(n&&(t=this.searchLabelByValue(e,n)))break}return t}return this.searchLabelByValue(e,this.options)},e.prototype.searchLabelByValue=function(e,t){for(var i=null,n=0;n<t.length;n++){var l=t[n],s=this.getOptionValue(l);if(null==e&&null==s||o.ObjectUtils.equals(e,s,this.dataKey)){i=this.getOptionLabel(l);break}}return i},Object.defineProperty(e.prototype,"allChecked",{get:function(){var e,t,i,n,l=this.optionsToRender;if(l&&0!==l.length){var o=0,s=0,r=0,a=this.group?0:this.optionsToRender.length;try{for(var p=u(l),c=p.next();!c.done;c=p.next()){var h=c.value;if(this.group)try{for(var d=(i=void 0,u(this.getOptionGroupChildren(h))),m=d.next();!m.done;m=d.next()){var y=m.value;g=this.isOptionDisabled(y),f=this.isSelected(y);if(g)f?o++:s++;else{if(!f)return!1;r++}a++}}catch(e){i={error:e}}finally{try{m&&!m.done&&(n=d.return)&&n.call(d)}finally{if(i)throw i.error}}else{var g=this.isOptionDisabled(h),f=this.isSelected(h);if(g)f?o++:s++;else{if(!f)return!1;r++}}}}catch(t){e={error:t}}finally{try{c&&!c.done&&(t=p.return)&&t.call(p)}finally{if(e)throw e.error}}return a===o||a===r||r&&a===r+s+o}return!1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"optionsToRender",{get:function(){return this._filteredOptions||this.options},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"emptyOptions",{get:function(){var e=this.optionsToRender;return!e||0===e.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"emptyMessageLabel",{get:function(){return this.emptyMessage||this.config.getTranslation(s.TranslationKeys.EMPTY_MESSAGE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"emptyFilterMessageLabel",{get:function(){return this.emptyFilterMessage||this.config.getTranslation(s.TranslationKeys.EMPTY_FILTER_MESSAGE)},enumerable:!1,configurable:!0}),e.prototype.hasFilter=function(){return this._filterValue&&this._filterValue.trim().length>0},e.prototype.onFilterInputChange=function(e){this._filterValue=e.target.value,this.activateFilter(),this.onFilter.emit({originalEvent:e,filter:this._filterValue})},e.prototype.activateFilter=function(){var e,t,i;if(this.hasFilter()&&this._options){var n=(this.filterBy||this.optionLabel||"label").split(",");if(this.group){var l=(this.optionLabel||"label").split(","),o=[];try{for(var s=u(this.options),r=s.next();!r.done;r=s.next()){var a=r.value,p=this.filterService.filter(this.getOptionGroupChildren(a),l,this.filterValue,this.filterMatchMode,this.filterLocale);p&&p.length&&o.push(Object.assign(Object.assign({},a),((i={})[this.optionGroupChildren]=p,i)))}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}this._filteredOptions=o}else this._filteredOptions=this.filterService.filter(this.options,n,this._filterValue,this.filterMatchMode,this.filterLocale)}else this._filteredOptions=null},e.prototype.onHeaderCheckboxFocus=function(){this.headerCheckboxFocus=!0},e.prototype.onHeaderCheckboxBlur=function(){this.headerCheckboxFocus=!1},e.prototype.bindDocumentClickListener=function(){var e=this;if(!this.documentClickListener){var t=this.el?this.el.nativeElement.ownerDocument:"document";this.documentClickListener=this.renderer.listen(t,"click",(function(t){e.isOutsideClicked(t)&&e.hide()}))}},e.prototype.unbindDocumentClickListener=function(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)},e.prototype.bindDocumentResizeListener=function(){this.documentResizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.documentResizeListener)},e.prototype.unbindDocumentResizeListener=function(){this.documentResizeListener&&(window.removeEventListener("resize",this.documentResizeListener),this.documentResizeListener=null)},e.prototype.onWindowResize=function(){l.DomHandler.isAndroid()||this.hide()},e.prototype.bindScrollListener=function(){var e=this;this.scrollHandler||(this.scrollHandler=new l.ConnectedOverlayScrollHandler(this.containerViewChild.nativeElement,(function(){e.overlayVisible&&e.hide()}))),this.scrollHandler.bindScrollListener()},e.prototype.unbindScrollListener=function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},e.prototype.onOverlayHide=function(){this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null,this.onModelTouched()},e.prototype.ngOnDestroy=function(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.restoreOverlayAppend(),this.onOverlayHide()},e}();y.decorators=[{type:t.Component,args:[{selector:"p-multiSelect",template:'\n <div #container [ngClass]="{\'p-multiselect p-component\':true,\n \'p-multiselect-open\':overlayVisible,\n \'p-multiselect-chip\': display === \'chip\',\n \'p-focus\':focus,\n \'p-disabled\': disabled}" [ngStyle]="style" [class]="styleClass"\n (click)="onMouseclick($event,in)">\n <div class="p-hidden-accessible">\n <input #in type="text" readonly="readonly" [attr.id]="inputId" [attr.name]="name" (focus)="onInputFocus($event)" (blur)="onInputBlur($event)"\n [disabled]="disabled" [attr.tabindex]="tabindex" (keydown)="onKeydown($event)" aria-haspopup="listbox" [attr.aria-expanded]="overlayVisible"\n [attr.aria-labelledby]="ariaLabelledBy" role="listbox">\n </div>\n <div class="p-multiselect-label-container" [pTooltip]="tooltip" [tooltipPosition]="tooltipPosition" [positionStyle]="tooltipPositionStyle" [tooltipStyleClass]="tooltipStyleClass">\n <div class="p-multiselect-label" [ngClass]="{\'p-placeholder\': valuesAsString === (defaultLabel || placeholder), \'p-multiselect-label-empty\': ((valuesAsString == null || valuesAsString.length === 0) && (placeholder == null || placeholder.length === 0))}">\n <ng-container *ngIf="!selectedItemsTemplate">\n <ng-container *ngIf="display === \'comma\'">{{valuesAsString || \'empty\'}}</ng-container>\n <ng-container *ngIf="display === \'chip\'">\n <div #token *ngFor="let item of value; let i = index;" class="p-multiselect-token">\n <span class="p-multiselect-token-label">{{findLabelByValue(item)}}</span>\n <span *ngIf="!disabled" class="p-multiselect-token-icon pi pi-times-circle" (click)="removeChip(item, $event)"></span>\n </div>\n <ng-container *ngIf="!value || value.length === 0">{{placeholder || defaultLabel || \'empty\'}}</ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet="selectedItemsTemplate; context: {$implicit: value}"></ng-container>\n </div>\n </div>\n <div [ngClass]="{\'p-multiselect-trigger\':true}">\n <span class="p-multiselect-trigger-icon" [ngClass]="dropdownIcon"></span>\n </div>\n <div *ngIf="overlayVisible" [ngClass]="[\'p-multiselect-panel p-component\']" [@overlayAnimation]="{value: \'visible\', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}" (@overlayAnimation.start)="onOverlayAnimationStart($event)"\n [ngStyle]="panelStyle" [class]="panelStyleClass" (keydown)="onKeydown($event)">\n <div class="p-multiselect-header" *ngIf="showHeader">\n <ng-content select="p-header"></ng-content>\n <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>\n <div class="p-checkbox p-component" *ngIf="showToggleAll && !selectionLimit" [ngClass]="{\'p-checkbox-disabled\': disabled || toggleAllDisabled}">\n <div class="p-hidden-accessible">\n <input type="checkbox" readonly="readonly" [checked]="allChecked" (focus)="onHeaderCheckboxFocus()" (blur)="onHeaderCheckboxBlur()" (keydown.space)="toggleAll($event)" [attr.disabled]="disabled || toggleAllDisabled">\n </div>\n <div class="p-checkbox-box" role="checkbox" [attr.aria-checked]="allChecked" [ngClass]="{\'p-highlight\':allChecked, \'p-focus\': headerCheckboxFocus, \'p-disabled\': disabled || toggleAllDisabled}" (click)="toggleAll($event)">\n <span class="p-checkbox-icon" [ngClass]="{\'pi pi-check\':allChecked}"></span>\n </div>\n </div>\n <div class="p-multiselect-filter-container" *ngIf="filter">\n <input #filterInput type="text" role="textbox" [value]="filterValue||\'\'" (input)="onFilterInputChange($event)" class="p-multiselect-filter p-inputtext p-component" [disabled]="disabled" [attr.placeholder]="filterPlaceHolder" [attr.aria-label]="ariaFilterLabel">\n <span class="p-multiselect-filter-icon pi pi-search"></span>\n </div>\n <button class="p-multiselect-close p-link" type="button" (click)="close($event)" pRipple>\n <span class="p-multiselect-close-icon pi pi-times"></span>\n </button>\n </div>\n <div class="p-multiselect-items-wrapper" [style.max-height]="virtualScroll ? \'auto\' : (scrollHeight||\'auto\')">\n <ul class="p-multiselect-items p-component" [ngClass]="{\'p-multiselect-virtualscroll\': virtualScroll}" role="listbox" aria-multiselectable="true">\n <ng-container *ngIf="group">\n <ng-template ngFor let-optgroup [ngForOf]="optionsToRender">\n <li class="p-multiselect-item-group">\n <span *ngIf="!groupTemplate">{{getOptionGroupLabel(optgroup)||\'empty\'}}</span>\n <ng-container *ngTemplateOutlet="groupTemplate; context: {$implicit: optgroup}"></ng-container>\n </li>\n <ng-container *ngTemplateOutlet="itemslist; context: {$implicit: getOptionGroupChildren(optgroup)}"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf="!group">\n <ng-container *ngTemplateOutlet="itemslist; context: {$implicit: optionsToRender}"></ng-container>\n </ng-container>\n <ng-template #itemslist let-optionsToDisplay let-selectedOption="selectedOption">\n <ng-container *ngIf="!virtualScroll; else virtualScrollList">\n <ng-template ngFor let-option let-i="index" [ngForOf]="optionsToDisplay">\n <p-multiSelectItem [option]="option" [selected]="isSelected(option)" [label]="getOptionLabel(option)" [disabled]="isOptionDisabled(option)" (onClick)="onOptionClick($event)" (onKeydown)="onOptionKeydown($event)"\n [template]="itemTemplate"></p-multiSelectItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport [ngStyle]="{\'height\': scrollHeight}" [itemSize]="itemSize" *ngIf="virtualScroll && !emptyOptions">\n <ng-container *cdkVirtualFor="let option of optionsToDisplay; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd">\n <p-multiSelectItem [option]="option" [selected]="isSelected(option)" [label]="getOptionLabel(option)" [disabled]="isOptionDisabled(option)" (onClick)="onOptionClick($event)" (onKeydown)="onOptionKeydown($event)"\n [template]="itemTemplate" [itemSize]="itemSize"></p-multiSelectItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <li *ngIf="hasFilter() && emptyOptions" class="p-multiselect-empty-message">\n <ng-container *ngIf="!emptyFilterTemplate && !emptyTemplate; else emptyFilter">\n {{emptyFilterMessageLabel}}\n </ng-container>\n <ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || emptyTemplate"></ng-container>\n </li>\n <li *ngIf="!hasFilter() && emptyOptions" class="p-multiselect-empty-message">\n <ng-container *ngIf="!emptyTemplate; else empty">\n {{emptyMessageLabel}}\n </ng-container>\n <ng-container #empty *ngTemplateOutlet="emptyTemplate"></ng-container>\n </li>\n </ng-template>\n </ul>\n </div>\n <div class="p-multiselect-footer" *ngIf="footerFacet || footerTemplate">\n <ng-content select="p-footer"></ng-content>\n <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>\n </div>\n </div>\n </div>\n ',animations:[i.trigger("overlayAnimation",[i.transition(":enter",[i.style({opacity:0,transform:"scaleY(0.8)"}),i.animate("{{showTransitionParams}}")]),i.transition(":leave",[i.animate("{{hideTransitionParams}}",i.style({opacity:0}))])])],host:{"[class.p-inputwrapper-filled]":"filled","[class.p-inputwrapper-focus]":"focus || overlayVisible"},providers:[d],changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,styles:[".p-multiselect{-ms-user-select:none;-webkit-user-select:none;cursor:pointer;display:inline-flex;position:relative;user-select:none}.p-multiselect-trigger{align-items:center;display:flex;flex-shrink:0;justify-content:center}.p-multiselect-label-container{cursor:pointer;flex:1 1 auto;overflow:hidden}.p-multiselect-label{cursor:pointer;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-multiselect-label-empty{overflow:hidden;visibility:hidden}.p-multiselect-token{align-items:center;cursor:default;display:inline-flex;flex:0 0 auto}.p-multiselect-token-icon{cursor:pointer}.p-multiselect .p-multiselect-panel{min-width:100%}.p-multiselect-panel{position:absolute}.p-multiselect-items-wrapper{overflow:auto}.p-multiselect-items{list-style-type:none;margin:0;padding:0}.p-multiselect-item{align-items:center;cursor:pointer;display:flex;font-weight:400;overflow:hidden;position:relative;white-space:nowrap}.p-multiselect-header{align-items:center;display:flex;justify-content:space-between}.p-multiselect-filter-container{flex:1 1 auto;position:relative}.p-multiselect-filter-icon{margin-top:-.5rem;position:absolute;top:50%}.p-multiselect-filter-container .p-inputtext{width:100%}.p-multiselect-close{align-items:center;display:flex;flex-shrink:0;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-multiselect{display:flex}"]}]}],y.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:t.ChangeDetectorRef},{type:s.FilterService},{type:s.PrimeNGConfig}]},y.propDecorators={style:[{type:t.Input}],styleClass:[{type:t.Input}],panelStyle:[{type:t.Input}],panelStyleClass:[{type:t.Input}],inputId:[{type:t.Input}],disabled:[{type:t.Input}],readonly:[{type:t.Input}],group:[{type:t.Input}],filter:[{type:t.Input}],filterPlaceHolder:[{type:t.Input}],filterLocale:[{type:t.Input}],overlayVisible:[{type:t.Input}],tabindex:[{type:t.Input}],appendTo:[{type:t.Input}],dataKey:[{type:t.Input}],name:[{type:t.Input}],ariaLabelledBy:[{type:t.Input}],displaySelectedLabel:[{type:t.Input}],maxSelectedLabels:[{type:t.Input}],selectionLimit:[{type:t.Input}],selectedItemsLabel:[{type:t.Input}],showToggleAll:[{type:t.Input}],emptyFilterMessage:[{type:t.Input}],emptyMessage:[{type:t.Input}],resetFilterOnHide:[{type:t.Input}],dropdownIcon:[{type:t.Input}],optionLabel:[{type:t.Input}],optionValue:[{type:t.Input}],optionDisabled:[{type:t.Input}],optionGroupLabel:[{type:t.Input}],optionGroupChildren:[{type:t.Input}],showHeader:[{type:t.Input}],autoZIndex:[{type:t.Input}],baseZIndex:[{type:t.Input}],filterBy:[{type:t.Input}],virtualScroll:[{type:t.Input}],itemSize:[{type:t.Input}],showTransitionOptions:[{type:t.Input}],hideTransitionOptions:[{type:t.Input}],ariaFilterLabel:[{type:t.Input}],filterMatchMode:[{type:t.Input}],tooltip:[{type:t.Input}],tooltipPosition:[{type:t.Input}],tooltipPositionStyle:[{type:t.Input}],tooltipStyleClass:[{type:t.Input}],autofocusFilter:[{type:t.Input}],display:[{type:t.Input}],containerViewChild:[{type:t.ViewChild,args:["container"]}],filterInputChild:[{type:t.ViewChild,args:["filterInput"]}],accessibleViewChild:[{type:t.ViewChild,args:["in"]}],footerFacet:[{type:t.ContentChild,args:[s.Footer]}],headerFacet:[{type:t.ContentChild,args:[s.Header]}],templates:[{type:t.ContentChildren,args:[s.PrimeTemplate]}],onChange:[{type:t.Output}],onFilter:[{type:t.Output}],onFocus:[{type:t.Output}],onBlur:[{type:t.Output}],onClick:[{type:t.Output}],onPanelShow:[{type:t.Output}],onPanelHide:[{type:t.Output}],scrollHeight:[{type:t.Input}],defaultLabel:[{type:t.Input}],placeholder:[{type:t.Input}],options:[{type:t.Input}],filterValue:[{type:t.Input}]};var g=function(){};g.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,s.SharedModule,a.ScrollingModule,p.TooltipModule,c.RippleModule],exports:[y,s.SharedModule,a.ScrollingModule],declarations:[y,m]}]}],e.MULTISELECT_VALUE_ACCESSOR=d,e.MultiSelect=y,e.MultiSelectItem=m,e.MultiSelectModule=g,Object.defineProperty(e,"__esModule",{value:!0})}));
16
16
  //# sourceMappingURL=primeng-multiselect.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/components/multiselect/multiselect.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","MULTISELECT_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","MultiSelect","multi","MultiSelectItem","this","onClick","EventEmitter","onKeydown","prototype","onOptionClick","event","emit","originalEvent","option","onOptionKeydown","Component","args","selector","template","encapsulation","ViewEncapsulation","None","Input","Output","el","renderer","cd","filterService","filter","displaySelectedLabel","maxSelectedLabels","selectedItemsLabel","showToggleAll","emptyFilterMessage","resetFilterOnHide","dropdownIcon","showHeader","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions","filterMatchMode","tooltip","tooltipPosition","tooltipPositionStyle","autofocusFilter","display","onChange","onFocus","onBlur","onPanelShow","onPanelHide","scrollHeight","onModelChange","onModelTouched","defineProperty","_defaultLabel","val","updateLabel","_placeholder","_options","_filterValue","activateFilter","ngOnInit","ngAfterContentInit","_this","templates","forEach","item","getType","itemTemplate","groupTemplate","selectedItemsTemplate","headerTemplate","footerTemplate","ngAfterViewInit","overlayVisible","show","ngAfterViewChecked","filtered","alignOverlay","getOptionLabel","optionLabel","ObjectUtils","resolveFieldData","undefined","label","getOptionValue","optionValue","getOptionGroupLabel","optionGroup","optionGroupLabel","getOptionGroupChildren","optionGroupChildren","items","isOptionDisabled","optionDisabled","disabled","maxSelectionLimitReached","isSelected","writeValue","updateFilledState","checkSelectionLimit","markForCheck","selectionLimit","filled","registerOnChange","fn","registerOnTouched","setDisabledState","selectionIndex","findSelectionIndex","arguments","concat","__spread","itemValue","index","equals","dataKey","optionsToRender","optionsToRender_1","optionsToRender_1_1","toggleAll","toggleAllDisabled","readonly","allChecked","uncheckAll","checkAll","preventDefault","opt","group","onOverlayAnimationStart","toState","overlay","element","appendOverlay","style","zIndex","String","DomHandler","zindex","bindDocumentClickListener","bindDocumentResizeListener","bindScrollListener","filterInputChild","nativeElement","preventModelTouched","focus","onOverlayHide","appendTo","document","body","appendChild","minWidth","getWidth","containerViewChild","restoreOverlayAppend","absolutePosition","relativePosition","hide","unbindDocumentClickListener","_filteredOptions","close","stopPropagation","onMouseclick","input","target","isSameNode","accessibleViewChild","isOverlayClick","hasClass","removeChip","chip","targetNode","contains","isOutsideClicked","onInputFocus","onInputBlur","which","nextItem","findNextItem","parentElement","prevItem","findPrevItem","nextElementSibling","children","isHidden","previousElementSibling","altKey","options","itemLabel","findLabelByValue","valuesAsString","pattern","test","replace","match","placeholder","defaultLabel","searchLabelByValue","selectedDisabledItemsLength","unselectedDisabledItemsLength","selectedEnabledItemsLength","visibleOptionsLength","optionsToRender_2","optionsToRender_2_1","_c","e_3","_d","selected","hasFilter","trim","onFilter","searchFields","filterBy","split","searchFields_1","filteredGroups","_b","optgroup","filteredSubOptions","filterValue","filterLocale","onHeaderCheckboxFocus","headerCheckboxFocus","onHeaderCheckboxBlur","documentClickListener","documentTarget","ownerDocument","listen","documentResizeListener","onWindowResize","bind","window","addEventListener","unbindDocumentResizeListener","removeEventListener","isAndroid","scrollHandler","ConnectedOverlayScrollHandler","unbindScrollListener","ngOnDestroy","destroy","animations","trigger","transition","opacity","transform","animate","host","[class.p-inputwrapper-filled]","[class.p-inputwrapper-focus]","providers","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","Renderer2","ChangeDetectorRef","FilterService","ViewChild","ContentChild","Footer","Header","ContentChildren","PrimeTemplate","NgModule","imports","CommonModule","SharedModule","ScrollingModule","TooltipModule","RippleModule","exports","declarations"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { NgModule, Component, ElementRef, OnInit, AfterViewInit, AfterContentInit, AfterViewChecked, OnDestroy, Input, Output, Renderer2, EventEmitter,\n forwardRef, ViewChild, ChangeDetectorRef, TemplateRef, ContentChildren, QueryList, ContentChild, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\nimport { trigger,style,transition,animate,AnimationEvent} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { SharedModule, PrimeTemplate, Footer, Header, FilterService } from 'primeng/api';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { RippleModule } from 'primeng/ripple';\n\nexport const MULTISELECT_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelect),\n multi: true\n};\n\n@Component({\n selector: 'p-multiSelectItem',\n template: `\n <li class=\"p-multiselect-item\" (click)=\"onOptionClick($event)\" (keydown)=\"onOptionKeydown($event)\" [attr.aria-label]=\"label\" \n [attr.tabindex]=\"disabled ? null : '0'\" [ngStyle]=\"{'height': itemSize + 'px'}\"\n [ngClass]=\"{'p-highlight': selected, 'p-disabled': disabled}\" pRipple>\n <div class=\"p-checkbox p-component\">\n <div class=\"p-checkbox-box\" [ngClass]=\"{'p-highlight': selected}\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check': selected}\"></span>\n </div>\n </div>\n <span *ngIf=\"!template\">{{label}}</span>\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: option}\"></ng-container>\n </li>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class MultiSelectItem {\n\n @Input() option: any;\n\n @Input() selected: boolean;\n\n @Input() label: any;\n\n @Input() disabled: boolean;\n\n @Input() itemSize: number;\n\n @Input() template: TemplateRef<any>;\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onKeydown: EventEmitter<any> = new EventEmitter();\n\n onOptionClick(event: Event) {\n this.onClick.emit({\n originalEvent: event,\n option: this.option\n });\n }\n\n onOptionKeydown(event: Event) {\n this.onKeydown.emit({\n originalEvent: event,\n option: this.option\n });\n }\n}\n\n@Component({\n selector: 'p-multiSelect',\n template: `\n <div #container [ngClass]=\"{'p-multiselect p-component':true,\n 'p-multiselect-open':overlayVisible,\n 'p-multiselect-chip': display === 'chip',\n 'p-focus':focus,\n 'p-disabled': disabled}\" [ngStyle]=\"style\" [class]=\"styleClass\"\n (click)=\"onMouseclick($event,in)\">\n <div class=\"p-hidden-accessible\">\n <input #in type=\"text\" readonly=\"readonly\" [attr.id]=\"inputId\" [attr.name]=\"name\" (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\"\n [disabled]=\"disabled\" [attr.tabindex]=\"tabindex\" (keydown)=\"onKeydown($event)\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible\"\n [attr.aria-labelledby]=\"ariaLabelledBy\" role=\"listbox\">\n </div>\n <div class=\"p-multiselect-label-container\" [pTooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [positionStyle]=\"tooltipPositionStyle\" [tooltipStyleClass]=\"tooltipStyleClass\">\n <div class=\"p-multiselect-label\" [ngClass]=\"{'p-placeholder': valuesAsString === (defaultLabel || placeholder), 'p-multiselect-label-empty': ((valuesAsString == null || valuesAsString.length === 0) && (placeholder == null || placeholder.length === 0))}\">\n <ng-container *ngIf=\"!selectedItemsTemplate\">\n <ng-container *ngIf=\"display === 'comma'\">{{valuesAsString || 'empty'}}</ng-container>\n <ng-container *ngIf=\"display === 'chip'\">\n <div #token *ngFor=\"let item of value; let i = index;\" class=\"p-multiselect-token\">\n <span class=\"p-multiselect-token-label\">{{findLabelByValue(item)}}</span>\n <span *ngIf=\"!disabled\" class=\"p-multiselect-token-icon pi pi-times-circle\" (click)=\"removeChip(item, $event)\"></span>\n </div>\n <ng-container *ngIf=\"!value || value.length === 0\">{{placeholder || defaultLabel || 'empty'}}</ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemsTemplate; context: {$implicit: value}\"></ng-container>\n </div>\n </div>\n <div [ngClass]=\"{'p-multiselect-trigger':true}\">\n <span class=\"p-multiselect-trigger-icon\" [ngClass]=\"dropdownIcon\"></span>\n </div>\n <div *ngIf=\"overlayVisible\" [ngClass]=\"['p-multiselect-panel p-component']\" [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\n [ngStyle]=\"panelStyle\" [class]=\"panelStyleClass\" (keydown)=\"onKeydown($event)\">\n <div class=\"p-multiselect-header\" *ngIf=\"showHeader\">\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <div class=\"p-checkbox p-component\" *ngIf=\"showToggleAll && !selectionLimit\" [ngClass]=\"{'p-checkbox-disabled': disabled || toggleAllDisabled}\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" readonly=\"readonly\" [checked]=\"allChecked\" (focus)=\"onHeaderCheckboxFocus()\" (blur)=\"onHeaderCheckboxBlur()\" (keydown.space)=\"toggleAll($event)\" [attr.disabled]=\"disabled || toggleAllDisabled\">\n </div>\n <div class=\"p-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"allChecked\" [ngClass]=\"{'p-highlight':allChecked, 'p-focus': headerCheckboxFocus, 'p-disabled': disabled || toggleAllDisabled}\" (click)=\"toggleAll($event)\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':allChecked}\"></span>\n </div>\n </div>\n <div class=\"p-multiselect-filter-container\" *ngIf=\"filter\">\n <input #filterInput type=\"text\" role=\"textbox\" [value]=\"filterValue||''\" (input)=\"onFilter($event)\" class=\"p-multiselect-filter p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"filterPlaceHolder\" [attr.aria-label]=\"ariaFilterLabel\">\n <span class=\"p-multiselect-filter-icon pi pi-search\"></span>\n </div>\n <button class=\"p-multiselect-close p-link\" type=\"button\" (click)=\"close($event)\" pRipple>\n <span class=\"p-multiselect-close-icon pi pi-times\"></span>\n </button>\n </div>\n <div class=\"p-multiselect-items-wrapper\" [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\">\n <ul class=\"p-multiselect-items p-component\" role=\"listbox\" aria-multiselectable=\"true\">\n <ng-container *ngIf=\"group\">\n <ng-template ngFor let-optgroup [ngForOf]=\"optionsToRender\">\n <li class=\"p-multiselect-item-group\">\n <span *ngIf=\"!groupTemplate\">{{getOptionGroupLabel(optgroup)||'empty'}}</span>\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container *ngTemplateOutlet=\"itemslist; context: {$implicit: getOptionGroupChildren(optgroup)}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToRender}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-optionsToDisplay let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template ngFor let-option let-i=\"index\" [ngForOf]=\"optionsToDisplay\">\n <p-multiSelectItem [option]=\"option\" [selected]=\"isSelected(option)\" [label]=\"getOptionLabel(option)\" [disabled]=\"isOptionDisabled(option)\" (onClick)=\"onOptionClick($event)\" (onKeydown)=\"onOptionKeydown($event)\"\n [template]=\"itemTemplate\"></p-multiSelectItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport [ngStyle]=\"{'height': scrollHeight}\" [itemSize]=\"itemSize\" *ngIf=\"virtualScroll && !emptyOptions\">\n <ng-container *cdkVirtualFor=\"let option of optionsToDisplay; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-multiSelectItem [option]=\"option\" [selected]=\"isSelected(option)\" [label]=\"getOptionLabel(option)\" [disabled]=\"isOptionDisabled(option)\" (onClick)=\"onOptionClick($event)\" (onKeydown)=\"onOptionKeydown($event)\"\n [template]=\"itemTemplate\" [itemSize]=\"itemSize\"></p-multiSelectItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <li *ngIf=\"emptyOptions\" class=\"p-multiselect-empty-message\">{{emptyFilterMessage}}</li>\n </ng-template>\n </ul>\n </div>\n <div class=\"p-multiselect-footer\" *ngIf=\"footerFacet || footerTemplate\">\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n ])\n ])\n ],\n host: {\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-inputwrapper-focus]': 'focus || overlayVisible'\n },\n providers: [MULTISELECT_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./multiselect.css']\n})\nexport class MultiSelect implements OnInit,AfterViewInit,AfterContentInit,AfterViewChecked,OnDestroy,ControlValueAccessor {\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() panelStyle: any;\n\n @Input() panelStyleClass: string;\n\n @Input() inputId: string;\n\n @Input() disabled: boolean;\n\n @Input() readonly: boolean;\n\n @Input() group: boolean;\n\n @Input() filter: boolean = true;\n\n @Input() filterPlaceHolder: string;\n\n @Input() filterLocale: string;\n\n @Input() overlayVisible: boolean;\n\n @Input() tabindex: number;\n\n @Input() appendTo: any;\n\n @Input() dataKey: string;\n\n @Input() name: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() displaySelectedLabel: boolean = true;\n\n @Input() maxSelectedLabels: number = 3;\n\n @Input() selectionLimit: number;\n\n @Input() selectedItemsLabel: string = 'ellipsis';\n\n @Input() showToggleAll: boolean = true;\n\n @Input() emptyFilterMessage: string = 'No results found';\n\n @Input() resetFilterOnHide: boolean = false;\n\n @Input() dropdownIcon: string = 'pi pi-chevron-down';\n\n @Input() optionLabel: string;\n\n @Input() optionValue: string;\n\n @Input() optionDisabled: string;\n\n @Input() optionGroupLabel: string;\n\n @Input() optionGroupChildren: string;\n\n @Input() showHeader: boolean = true;\n\n @Input() autoZIndex: boolean = true;\n\n @Input() baseZIndex: number = 0;\n\n @Input() filterBy: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() itemSize: number;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @Input() ariaFilterLabel: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Input() tooltip: string = '';\n\n @Input() tooltipPosition: string = 'right';\n\n @Input() tooltipPositionStyle: string = 'absolute';\n\n @Input() tooltipStyleClass: string;\n\n @Input() autofocusFilter: boolean = true;\n\n @Input() display: string = 'comma';\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('filterInput') filterInputChild: ElementRef;\n\n @ViewChild('in') accessibleViewChild: ElementRef;\n\n @ContentChild(Footer) footerFacet;\n\n @ContentChild(Header) headerFacet;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onPanelShow: EventEmitter<any> = new EventEmitter();\n\n @Output() onPanelHide: EventEmitter<any> = new EventEmitter();\n\n @Input() scrollHeight: string = '200px';\n\n _defaultLabel: string;\n\n @Input() set defaultLabel(val: string) {\n this._defaultLabel = val;\n this.updateLabel();\n }\n\n get defaultLabel(): string {\n return this._defaultLabel;\n }\n\n _placeholder: string;\n\n @Input() set placeholder(val: string) {\n this._placeholder = val;\n this.updateLabel();\n }\n\n get placeholder(): string {\n return this._placeholder;\n }\n\n @Input() get options(): any[] {\n return this._options;\n }\n\n set options(val: any[]) {\n this._options = val;\n }\n\n @Input() get filterValue(): string {\n return this._filterValue;\n }\n\n set filterValue(val: string) {\n this._filterValue = val;\n this.activateFilter();\n }\n\n public value: any[];\n\n public _filteredOptions: any[];\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n overlay: HTMLDivElement;\n\n public valuesAsString: string;\n\n public focus: boolean;\n\n filled: boolean;\n\n public documentClickListener: any;\n\n public _filterValue: string;\n\n public filtered: boolean;\n\n public itemTemplate: TemplateRef<any>;\n\n public groupTemplate: TemplateRef<any>;\n\n public headerTemplate: TemplateRef<any>;\n\n public footerTemplate: TemplateRef<any>;\n\n public selectedItemsTemplate: TemplateRef<any>;\n\n public headerCheckboxFocus: boolean;\n\n _options: any[];\n\n maxSelectionLimitReached: boolean;\n\n scrollHandler: any;\n\n documentResizeListener: any;\n\n preventModelTouched: boolean;\n\n constructor(public el: ElementRef, public renderer: Renderer2, public cd: ChangeDetectorRef, public filterService: FilterService) {}\n\n ngOnInit() {\n this.updateLabel();\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'group':\n this.groupTemplate = item.template;\n break;\n\n case 'selectedItems':\n this.selectedItemsTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.overlayVisible) {\n this.show();\n }\n }\n\n ngAfterViewChecked() {\n if (this.filtered) {\n this.alignOverlay();\n\n this.filtered = false;\n }\n }\n\n getOptionLabel(option: any) {\n return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : (option.label != undefined ? option.label : option);\n }\n\n getOptionValue(option: any) {\n return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : (this.optionLabel ? option : option.value);\n }\n\n getOptionGroupLabel(optionGroup: any) {\n return this.optionGroupLabel ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel) : (optionGroup.label != undefined ? optionGroup.label : optionGroup);\n }\n\n getOptionGroupChildren(optionGroup: any) {\n return this.optionGroupChildren ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;\n }\n\n isOptionDisabled(option: any) {\n let disabled = this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : (option.disabled !== undefined ? option.disabled : false);\n return (disabled || (this.maxSelectionLimitReached && !this.isSelected(option)));\n }\n\n writeValue(value: any) : void {\n this.value = value;\n this.updateLabel();\n this.updateFilledState();\n this.checkSelectionLimit();\n\n this.cd.markForCheck();\n }\n\n checkSelectionLimit() {\n if (this.selectionLimit && (this.value && this.value.length === this.selectionLimit)) {\n this.maxSelectionLimitReached = true;\n }\n else {\n this.maxSelectionLimitReached = false;\n }\n }\n\n updateFilledState() {\n this.filled = (this.value && this.value.length > 0);\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n onOptionClick(event) {\n let option = event.option;\n if (this.isOptionDisabled(option)) {\n return;\n }\n\n let optionValue = this.getOptionValue(option);\n let selectionIndex = this.findSelectionIndex(optionValue);\n if (selectionIndex != -1) {\n this.value = this.value.filter((val,i) => i != selectionIndex);\n\n if (this.selectionLimit) {\n this.maxSelectionLimitReached = false;\n }\n }\n else {\n if (!this.selectionLimit || (!this.value || this.value.length < this.selectionLimit)) {\n this.value = [...this.value || [], optionValue];\n }\n\n this.checkSelectionLimit();\n }\n\n this.onModelChange(this.value);\n this.onChange.emit({originalEvent: event.originalEvent, value: this.value, itemValue: optionValue});\n this.updateLabel();\n this.updateFilledState();\n }\n\n isSelected(option) {\n return this.findSelectionIndex(this.getOptionValue(option)) != -1;\n }\n\n findSelectionIndex(val: any): number {\n let index = -1;\n\n if (this.value) {\n for (let i = 0; i < this.value.length; i++) {\n if (ObjectUtils.equals(this.value[i], val, this.dataKey)) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n get toggleAllDisabled(): boolean {\n let optionsToRender = this.optionsToRender;\n if (!optionsToRender || optionsToRender.length === 0) {\n return true;\n }\n else {\n for (let option of optionsToRender) {\n if (!this.isOptionDisabled(option))\n return false;\n }\n\n return true;\n }\n }\n\n toggleAll(event) {\n if (this.disabled || this.toggleAllDisabled || this.readonly) {\n return;\n }\n \n let allChecked = this.allChecked; \n\n if (allChecked)\n this.uncheckAll();\n else\n this.checkAll();\n\n this.onModelChange(this.value);\n this.onChange.emit({ originalEvent: event, value: this.value }); \n this.updateFilledState();\n this.updateLabel();\n event.preventDefault();\n }\n\n checkAll() {\n let optionsToRender = this.optionsToRender;\n let val: any[] = [];\n\n optionsToRender.forEach(opt => {\n if (!this.group) {\n let optionDisabled = this.isOptionDisabled(opt); \n if (!optionDisabled || (optionDisabled && this.isSelected(opt))) {\n val.push(this.getOptionValue(opt));\n }\n }\n else {\n if (opt.items) {\n opt.items.forEach(option => {\n let optionDisabled = this.isOptionDisabled(option); \n if (!optionDisabled || (optionDisabled && this.isSelected(option))) {\n val.push(this.getOptionValue(option));\n }\n });\n }\n }\n });\n\n this.value = val;\n }\n\n uncheckAll() {\n let optionsToRender = this.optionsToRender;\n let val: any[] = [];\n\n optionsToRender.forEach(opt => {\n if (!this.group) {\n let optionDisabled = this.isOptionDisabled(opt); \n if (optionDisabled && this.isSelected(opt)) {\n val.push(this.getOptionValue(opt));\n }\n }\n else {\n if (opt.items) {\n opt.items.forEach(option => {\n let optionDisabled = this.isOptionDisabled(option); \n if (optionDisabled && this.isSelected(option)) {\n val.push(this.getOptionValue(option));\n }\n });\n }\n }\n });\n\n this.value = val;\n }\n\n show() {\n if (!this.overlayVisible){\n this.overlayVisible = true;\n }\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.appendOverlay();\n if (this.autoZIndex) {\n this.overlay.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n this.alignOverlay();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n\n if (this.filterInputChild && this.filterInputChild.nativeElement) {\n this.preventModelTouched = true;\n\n if (this.autofocusFilter) {\n this.filterInputChild.nativeElement.focus();\n }\n }\n\n this.onPanelShow.emit();\n break;\n\n case 'void':\n this.onOverlayHide();\n break;\n }\n }\n\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n DomHandler.appendChild(this.overlay, this.appendTo);\n\n if (!this.overlay.style.minWidth) {\n this.overlay.style.minWidth = DomHandler.getWidth(this.containerViewChild.nativeElement) + 'px';\n }\n }\n }\n\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.el.nativeElement.appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.overlay) {\n if (this.appendTo)\n DomHandler.absolutePosition(this.overlay, this.containerViewChild.nativeElement);\n else\n DomHandler.relativePosition(this.overlay, this.containerViewChild.nativeElement);\n }\n }\n\n hide() {\n this.overlayVisible = false;\n this.unbindDocumentClickListener();\n if (this.resetFilterOnHide){\n this.filterInputChild.nativeElement.value = '';\n this._filterValue = null;\n this._filteredOptions = null;\n }\n this.onPanelHide.emit();\n this.cd.markForCheck();\n }\n\n close(event) {\n this.hide();\n event.preventDefault();\n event.stopPropagation();\n }\n\n onMouseclick(event: MouseEvent, input) {\n if (this.disabled || this.readonly || (<Node> event.target).isSameNode(this.accessibleViewChild.nativeElement)) {\n return;\n }\n\n this.onClick.emit(event);\n\n if (!this.isOverlayClick(event) && !DomHandler.hasClass(event.target, 'p-multiselect-token-icon')) {\n if (this.overlayVisible) {\n this.hide();\n }\n else {\n input.focus();\n this.show();\n }\n }\n }\n\n removeChip(chip: any, event: MouseEvent) {\n this.value = this.value.filter(val => !ObjectUtils.equals(val, chip, this.dataKey));\n this.onModelChange(this.value);\n this.onChange.emit({ originalEvent: event, value: this.value });\n this.updateLabel();\n this.updateFilledState();\n }\n\n isOverlayClick(event: MouseEvent) {\n let targetNode = <Node> event.target;\n return this.overlay ? (this.overlay.isSameNode(targetNode) || this.overlay.contains(targetNode)) : false;\n }\n\n isOutsideClicked(event: MouseEvent): boolean {\n return !(this.el.nativeElement.isSameNode(event.target) || this.el.nativeElement.contains(event.target) || this.isOverlayClick(event));\n }\n\n onInputFocus(event) {\n this.focus = true;\n this.onFocus.emit({originalEvent: event});\n }\n\n onInputBlur(event) {\n this.focus = false;\n this.onBlur.emit({originalEvent: event});\n\n if (!this.preventModelTouched) {\n this.onModelTouched();\n }\n this.preventModelTouched = false;\n }\n\n onOptionKeydown(event) {\n if (this.readonly) {\n return;\n }\n\n switch(event.originalEvent.which) {\n\n //down\n case 40:\n var nextItem = this.findNextItem(event.originalEvent.target.parentElement);\n if (nextItem) {\n nextItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n\n //up\n case 38:\n var prevItem = this.findPrevItem(event.originalEvent.target.parentElement);\n if (prevItem) {\n prevItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n\n //enter\n case 13:\n this.onOptionClick(event);\n event.originalEvent.preventDefault();\n break;\n }\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem)\n return DomHandler.hasClass(nextItem.children[0], 'p-disabled') || DomHandler.isHidden(nextItem.children[0]) || DomHandler.hasClass(nextItem, 'p-multiselect-item-group') ? this.findNextItem(nextItem) : nextItem.children[0];\n else\n return null;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem)\n return DomHandler.hasClass(prevItem.children[0], 'p-disabled') || DomHandler.isHidden(prevItem.children[0]) || DomHandler.hasClass(prevItem, 'p-multiselect-item-group') ? this.findPrevItem(prevItem) : prevItem.children[0];\n else\n return null;\n }\n\n onKeydown(event: KeyboardEvent){\n switch(event.which) {\n //down\n case 40:\n if (!this.overlayVisible && event.altKey) {\n this.show();\n event.preventDefault();\n }\n break;\n\n //space\n case 32:\n if (!this.overlayVisible){\n this.show();\n event.preventDefault();\n }\n break;\n\n //escape\n case 27:\n this.hide();\n break;\n }\n }\n\n updateLabel() {\n if (this.value && this.options && this.value.length && this.displaySelectedLabel) {\n let label = '';\n for (let i = 0; i < this.value.length; i++) {\n let itemLabel = this.findLabelByValue(this.value[i]);\n if (itemLabel) {\n if (label.length > 0) {\n label = label + ', ';\n }\n label = label + itemLabel;\n }\n }\n\n if (this.value.length <= this.maxSelectedLabels || this.selectedItemsLabel === 'ellipsis') {\n this.valuesAsString = label;\n }\n else {\n let pattern = /{(.*?)}/;\n if (pattern.test(this.selectedItemsLabel)) {\n this.valuesAsString = this.selectedItemsLabel.replace(this.selectedItemsLabel.match(pattern)[0], this.value.length + '');\n } else {\n this.valuesAsString = this.selectedItemsLabel;\n }\n }\n }\n else {\n this.valuesAsString = this.placeholder || this.defaultLabel;\n }\n }\n\n findLabelByValue(val: any): string {\n if (this.group) {\n let label = null;\n\n for (let i = 0; i < this.options.length; i++) {\n if (this.options[i].items) {\n label = this.searchLabelByValue(val, this.options[i].items);\n\n if (label) {\n break;\n }\n }\n }\n\n return label;\n }\n else {\n return this.searchLabelByValue(val, this.options)\n }\n }\n\n searchLabelByValue(val: any, options: any[]): string {\n let label = null;\n\n for (let i = 0; i < options.length; i++) {\n let option = options[i];\n let optionValue = this.getOptionValue(option);\n\n if (val == null && optionValue == null || ObjectUtils.equals(val, optionValue, this.dataKey)) {\n label = this.getOptionLabel(option);\n break;\n }\n }\n\n return label;\n }\n\n get allChecked(): boolean {\n let optionsToRender = this.optionsToRender;\n if (!optionsToRender || optionsToRender.length === 0) {\n return false;\n }\n else {\n let selectedDisabledItemsLength = 0;\n let unselectedDisabledItemsLength = 0;\n let selectedEnabledItemsLength = 0;\n let visibleOptionsLength = this.group ? 0 : this.optionsToRender.length;\n \n for (let option of optionsToRender) {\n if (!this.group) {\n let disabled = this.isOptionDisabled(option);\n let selected = this.isSelected(option);\n \n if (disabled) {\n if (selected)\n selectedDisabledItemsLength++;\n else \n unselectedDisabledItemsLength++;\n }\n else {\n if (selected)\n selectedEnabledItemsLength++;\n else\n return false;\n }\n }\n else if (option.items) {\n for (let opt of option.items) {\n let disabled = this.isOptionDisabled(opt);\n let selected = this.isSelected(opt);\n \n if (disabled) {\n if (selected)\n selectedDisabledItemsLength++;\n else \n unselectedDisabledItemsLength++;\n }\n else {\n if (selected)\n selectedEnabledItemsLength++;\n else {\n return false;\n }\n }\n\n visibleOptionsLength++;\n }\n }\n }\n\n return (visibleOptionsLength === selectedDisabledItemsLength \n || visibleOptionsLength === selectedEnabledItemsLength \n || selectedEnabledItemsLength && visibleOptionsLength === (selectedEnabledItemsLength + unselectedDisabledItemsLength + selectedDisabledItemsLength));\n }\n }\n\n get optionsToRender(): any[] {\n return this._filteredOptions || this.options;\n }\n\n get emptyOptions(): boolean {\n let optionsToRender = this.optionsToRender;\n return !optionsToRender || optionsToRender.length === 0;\n }\n\n hasFilter() {\n return this._filterValue && this._filterValue.trim().length > 0; \n }\n\n onFilter(event: KeyboardEvent) {\n this._filterValue = (<HTMLInputElement> event.target).value;\n this.activateFilter();\n }\n\n activateFilter() {\n if (this.hasFilter() && this._options) {\n let searchFields: string[] = (this.filterBy || this.optionLabel || 'label').split(',');\n if (this.group) {\n let searchFields: string[] = (this.optionLabel || 'label').split(',');\n\n let filteredGroups = [];\n for (let optgroup of this.options) {\n let filteredSubOptions = this.filterService.filter(this.getOptionGroupChildren(optgroup), searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push({\n label: optgroup.label,\n value: optgroup.value,\n items: filteredSubOptions\n });\n }\n }\n\n this._filteredOptions = filteredGroups;\n }\n else {\n this._filteredOptions = this.filterService.filter(this.options, searchFields, this._filterValue, this.filterMatchMode, this.filterLocale); \n }\n }\n else {\n this._filteredOptions = null;\n }\n }\n\n onHeaderCheckboxFocus() {\n this.headerCheckboxFocus = true;\n }\n\n onHeaderCheckboxBlur() {\n this.headerCheckboxFocus = false;\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n this.documentClickListener = this.renderer.listen(documentTarget, 'click', (event) => {\n if (this.isOutsideClicked(event)) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (!DomHandler.isAndroid()) {\n this.hide();\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n this.onModelTouched();\n }\n\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n\n}\n\n@NgModule({\n imports: [CommonModule,SharedModule,ScrollingModule,TooltipModule,RippleModule],\n exports: [MultiSelect,SharedModule,ScrollingModule],\n declarations: [MultiSelect,MultiSelectItem]\n})\nexport class MultiSelectModule { }\n"]}
1
+ {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/components/multiselect/multiselect.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","MULTISELECT_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","MultiSelect","multi","MultiSelectItem","this","onClick","EventEmitter","onKeydown","prototype","onOptionClick","event","emit","originalEvent","option","onOptionKeydown","Component","args","selector","template","encapsulation","ViewEncapsulation","None","Input","Output","el","renderer","cd","filterService","config","filter","displaySelectedLabel","maxSelectedLabels","selectedItemsLabel","showToggleAll","emptyFilterMessage","emptyMessage","resetFilterOnHide","dropdownIcon","optionGroupChildren","showHeader","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions","filterMatchMode","tooltip","tooltipPosition","tooltipPositionStyle","autofocusFilter","display","onChange","onFilter","onFocus","onBlur","onPanelShow","onPanelHide","scrollHeight","onModelChange","onModelTouched","defineProperty","_defaultLabel","val","updateLabel","_placeholder","_options","_filterValue","activateFilter","ngOnInit","ngAfterContentInit","_this","templates","forEach","item","getType","itemTemplate","groupTemplate","selectedItemsTemplate","headerTemplate","emptyFilterTemplate","emptyTemplate","footerTemplate","ngAfterViewInit","overlayVisible","show","ngAfterViewChecked","filtered","alignOverlay","getOptionLabel","optionLabel","ObjectUtils","resolveFieldData","undefined","label","getOptionValue","optionValue","getOptionGroupLabel","optionGroup","optionGroupLabel","getOptionGroupChildren","items","isOptionDisabled","optionDisabled","disabled","maxSelectionLimitReached","isSelected","writeValue","updateFilledState","checkSelectionLimit","markForCheck","selectionLimit","filled","registerOnChange","fn","registerOnTouched","setDisabledState","selectionIndex","findSelectionIndex","arguments","concat","__spread","itemValue","index","equals","dataKey","optionsToRender","optionsToRender_1","optionsToRender_1_1","toggleAll","toggleAllDisabled","readonly","allChecked","uncheckAll","checkAll","preventDefault","opt","group","subOptions","onOverlayAnimationStart","toState","overlay","element","appendOverlay","style","zIndex","String","DomHandler","zindex","bindDocumentClickListener","bindDocumentResizeListener","bindScrollListener","filterInputChild","nativeElement","preventModelTouched","focus","onOverlayHide","appendTo","document","body","appendChild","minWidth","getWidth","containerViewChild","restoreOverlayAppend","absolutePosition","relativePosition","hide","unbindDocumentClickListener","_filteredOptions","close","stopPropagation","onMouseclick","input","target","isSameNode","accessibleViewChild","isOverlayClick","hasClass","removeChip","chip","targetNode","contains","isOutsideClicked","onInputFocus","onInputBlur","which","nextItem","findNextItem","parentElement","prevItem","findPrevItem","nextElementSibling","children","isHidden","previousElementSibling","altKey","options","itemLabel","findLabelByValue","valuesAsString","pattern","test","replace","match","placeholder","defaultLabel","searchLabelByValue","selectedDisabledItemsLength","unselectedDisabledItemsLength","selectedEnabledItemsLength","visibleOptionsLength","optionsToRender_2","optionsToRender_2_1","_c","e_3","_d","selected","getTranslation","TranslationKeys","EMPTY_MESSAGE","EMPTY_FILTER_MESSAGE","hasFilter","trim","onFilterInputChange","searchFields","filterBy","split","searchFields_1","filteredGroups","optgroup","filteredSubOptions","filterValue","filterLocale","assign","_b","onHeaderCheckboxFocus","headerCheckboxFocus","onHeaderCheckboxBlur","documentClickListener","documentTarget","ownerDocument","listen","documentResizeListener","onWindowResize","bind","window","addEventListener","unbindDocumentResizeListener","removeEventListener","isAndroid","scrollHandler","ConnectedOverlayScrollHandler","unbindScrollListener","ngOnDestroy","destroy","animations","trigger","transition","opacity","transform","animate","host","[class.p-inputwrapper-filled]","[class.p-inputwrapper-focus]","providers","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","Renderer2","ChangeDetectorRef","FilterService","PrimeNGConfig","ViewChild","ContentChild","Footer","Header","ContentChildren","PrimeTemplate","NgModule","imports","CommonModule","SharedModule","ScrollingModule","TooltipModule","RippleModule","exports","declarations"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { NgModule, Component, ElementRef, OnInit, AfterViewInit, AfterContentInit, AfterViewChecked, OnDestroy, Input, Output, Renderer2, EventEmitter,\n forwardRef, ViewChild, ChangeDetectorRef, TemplateRef, ContentChildren, QueryList, ContentChild, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\nimport { trigger,style,transition,animate,AnimationEvent} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { SharedModule, PrimeTemplate, Footer, Header, FilterService, PrimeNGConfig, TranslationKeys } from 'primeng/api';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { RippleModule } from 'primeng/ripple';\n\nexport const MULTISELECT_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelect),\n multi: true\n};\n\n@Component({\n selector: 'p-multiSelectItem',\n template: `\n <li class=\"p-multiselect-item\" (click)=\"onOptionClick($event)\" (keydown)=\"onOptionKeydown($event)\" [attr.aria-label]=\"label\" \n [attr.tabindex]=\"disabled ? null : '0'\" [ngStyle]=\"{'height': itemSize + 'px'}\"\n [ngClass]=\"{'p-highlight': selected, 'p-disabled': disabled}\" pRipple>\n <div class=\"p-checkbox p-component\">\n <div class=\"p-checkbox-box\" [ngClass]=\"{'p-highlight': selected}\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check': selected}\"></span>\n </div>\n </div>\n <span *ngIf=\"!template\">{{label}}</span>\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: option}\"></ng-container>\n </li>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class MultiSelectItem {\n\n @Input() option: any;\n\n @Input() selected: boolean;\n\n @Input() label: any;\n\n @Input() disabled: boolean;\n\n @Input() itemSize: number;\n\n @Input() template: TemplateRef<any>;\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onKeydown: EventEmitter<any> = new EventEmitter();\n\n onOptionClick(event: Event) {\n this.onClick.emit({\n originalEvent: event,\n option: this.option\n });\n }\n\n onOptionKeydown(event: Event) {\n this.onKeydown.emit({\n originalEvent: event,\n option: this.option\n });\n }\n}\n\n@Component({\n selector: 'p-multiSelect',\n template: `\n <div #container [ngClass]=\"{'p-multiselect p-component':true,\n 'p-multiselect-open':overlayVisible,\n 'p-multiselect-chip': display === 'chip',\n 'p-focus':focus,\n 'p-disabled': disabled}\" [ngStyle]=\"style\" [class]=\"styleClass\"\n (click)=\"onMouseclick($event,in)\">\n <div class=\"p-hidden-accessible\">\n <input #in type=\"text\" readonly=\"readonly\" [attr.id]=\"inputId\" [attr.name]=\"name\" (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\"\n [disabled]=\"disabled\" [attr.tabindex]=\"tabindex\" (keydown)=\"onKeydown($event)\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible\"\n [attr.aria-labelledby]=\"ariaLabelledBy\" role=\"listbox\">\n </div>\n <div class=\"p-multiselect-label-container\" [pTooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [positionStyle]=\"tooltipPositionStyle\" [tooltipStyleClass]=\"tooltipStyleClass\">\n <div class=\"p-multiselect-label\" [ngClass]=\"{'p-placeholder': valuesAsString === (defaultLabel || placeholder), 'p-multiselect-label-empty': ((valuesAsString == null || valuesAsString.length === 0) && (placeholder == null || placeholder.length === 0))}\">\n <ng-container *ngIf=\"!selectedItemsTemplate\">\n <ng-container *ngIf=\"display === 'comma'\">{{valuesAsString || 'empty'}}</ng-container>\n <ng-container *ngIf=\"display === 'chip'\">\n <div #token *ngFor=\"let item of value; let i = index;\" class=\"p-multiselect-token\">\n <span class=\"p-multiselect-token-label\">{{findLabelByValue(item)}}</span>\n <span *ngIf=\"!disabled\" class=\"p-multiselect-token-icon pi pi-times-circle\" (click)=\"removeChip(item, $event)\"></span>\n </div>\n <ng-container *ngIf=\"!value || value.length === 0\">{{placeholder || defaultLabel || 'empty'}}</ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemsTemplate; context: {$implicit: value}\"></ng-container>\n </div>\n </div>\n <div [ngClass]=\"{'p-multiselect-trigger':true}\">\n <span class=\"p-multiselect-trigger-icon\" [ngClass]=\"dropdownIcon\"></span>\n </div>\n <div *ngIf=\"overlayVisible\" [ngClass]=\"['p-multiselect-panel p-component']\" [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\n [ngStyle]=\"panelStyle\" [class]=\"panelStyleClass\" (keydown)=\"onKeydown($event)\">\n <div class=\"p-multiselect-header\" *ngIf=\"showHeader\">\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <div class=\"p-checkbox p-component\" *ngIf=\"showToggleAll && !selectionLimit\" [ngClass]=\"{'p-checkbox-disabled': disabled || toggleAllDisabled}\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" readonly=\"readonly\" [checked]=\"allChecked\" (focus)=\"onHeaderCheckboxFocus()\" (blur)=\"onHeaderCheckboxBlur()\" (keydown.space)=\"toggleAll($event)\" [attr.disabled]=\"disabled || toggleAllDisabled\">\n </div>\n <div class=\"p-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"allChecked\" [ngClass]=\"{'p-highlight':allChecked, 'p-focus': headerCheckboxFocus, 'p-disabled': disabled || toggleAllDisabled}\" (click)=\"toggleAll($event)\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':allChecked}\"></span>\n </div>\n </div>\n <div class=\"p-multiselect-filter-container\" *ngIf=\"filter\">\n <input #filterInput type=\"text\" role=\"textbox\" [value]=\"filterValue||''\" (input)=\"onFilterInputChange($event)\" class=\"p-multiselect-filter p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"filterPlaceHolder\" [attr.aria-label]=\"ariaFilterLabel\">\n <span class=\"p-multiselect-filter-icon pi pi-search\"></span>\n </div>\n <button class=\"p-multiselect-close p-link\" type=\"button\" (click)=\"close($event)\" pRipple>\n <span class=\"p-multiselect-close-icon pi pi-times\"></span>\n </button>\n </div>\n <div class=\"p-multiselect-items-wrapper\" [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\">\n <ul class=\"p-multiselect-items p-component\" [ngClass]=\"{'p-multiselect-virtualscroll': virtualScroll}\" role=\"listbox\" aria-multiselectable=\"true\">\n <ng-container *ngIf=\"group\">\n <ng-template ngFor let-optgroup [ngForOf]=\"optionsToRender\">\n <li class=\"p-multiselect-item-group\">\n <span *ngIf=\"!groupTemplate\">{{getOptionGroupLabel(optgroup)||'empty'}}</span>\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container *ngTemplateOutlet=\"itemslist; context: {$implicit: getOptionGroupChildren(optgroup)}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToRender}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-optionsToDisplay let-selectedOption=\"selectedOption\">\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template ngFor let-option let-i=\"index\" [ngForOf]=\"optionsToDisplay\">\n <p-multiSelectItem [option]=\"option\" [selected]=\"isSelected(option)\" [label]=\"getOptionLabel(option)\" [disabled]=\"isOptionDisabled(option)\" (onClick)=\"onOptionClick($event)\" (onKeydown)=\"onOptionKeydown($event)\"\n [template]=\"itemTemplate\"></p-multiSelectItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport #viewport [ngStyle]=\"{'height': scrollHeight}\" [itemSize]=\"itemSize\" *ngIf=\"virtualScroll && !emptyOptions\">\n <ng-container *cdkVirtualFor=\"let option of optionsToDisplay; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-multiSelectItem [option]=\"option\" [selected]=\"isSelected(option)\" [label]=\"getOptionLabel(option)\" [disabled]=\"isOptionDisabled(option)\" (onClick)=\"onOptionClick($event)\" (onKeydown)=\"onOptionKeydown($event)\"\n [template]=\"itemTemplate\" [itemSize]=\"itemSize\"></p-multiSelectItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <li *ngIf=\"hasFilter() && emptyOptions\" class=\"p-multiselect-empty-message\">\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate; else emptyFilter\">\n {{emptyFilterMessageLabel}}\n </ng-container>\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\n </li>\n <li *ngIf=\"!hasFilter() && emptyOptions\" class=\"p-multiselect-empty-message\">\n <ng-container *ngIf=\"!emptyTemplate; else empty\">\n {{emptyMessageLabel}}\n </ng-container>\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </li>\n </ng-template>\n </ul>\n </div>\n <div class=\"p-multiselect-footer\" *ngIf=\"footerFacet || footerTemplate\">\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n ])\n ])\n ],\n host: {\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-inputwrapper-focus]': 'focus || overlayVisible'\n },\n providers: [MULTISELECT_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./multiselect.css']\n})\nexport class MultiSelect implements OnInit,AfterViewInit,AfterContentInit,AfterViewChecked,OnDestroy,ControlValueAccessor {\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() panelStyle: any;\n\n @Input() panelStyleClass: string;\n\n @Input() inputId: string;\n\n @Input() disabled: boolean;\n\n @Input() readonly: boolean;\n\n @Input() group: boolean;\n\n @Input() filter: boolean = true;\n\n @Input() filterPlaceHolder: string;\n\n @Input() filterLocale: string;\n\n @Input() overlayVisible: boolean;\n\n @Input() tabindex: number;\n\n @Input() appendTo: any;\n\n @Input() dataKey: string;\n\n @Input() name: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() displaySelectedLabel: boolean = true;\n\n @Input() maxSelectedLabels: number = 3;\n\n @Input() selectionLimit: number;\n\n @Input() selectedItemsLabel: string = 'ellipsis';\n\n @Input() showToggleAll: boolean = true;\n\n @Input() emptyFilterMessage: string = '';\n\n @Input() emptyMessage: string = '';\n\n @Input() resetFilterOnHide: boolean = false;\n\n @Input() dropdownIcon: string = 'pi pi-chevron-down';\n\n @Input() optionLabel: string;\n\n @Input() optionValue: string;\n\n @Input() optionDisabled: string;\n\n @Input() optionGroupLabel: string;\n\n @Input() optionGroupChildren: string = \"items\";\n\n @Input() showHeader: boolean = true;\n\n @Input() autoZIndex: boolean = true;\n\n @Input() baseZIndex: number = 0;\n\n @Input() filterBy: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() itemSize: number;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @Input() ariaFilterLabel: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Input() tooltip: string = '';\n\n @Input() tooltipPosition: string = 'right';\n\n @Input() tooltipPositionStyle: string = 'absolute';\n\n @Input() tooltipStyleClass: string;\n\n @Input() autofocusFilter: boolean = true;\n\n @Input() display: string = 'comma';\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('filterInput') filterInputChild: ElementRef;\n\n @ViewChild('in') accessibleViewChild: ElementRef;\n\n @ContentChild(Footer) footerFacet;\n\n @ContentChild(Header) headerFacet;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onPanelShow: EventEmitter<any> = new EventEmitter();\n\n @Output() onPanelHide: EventEmitter<any> = new EventEmitter();\n\n @Input() scrollHeight: string = '200px';\n\n _defaultLabel: string;\n\n @Input() set defaultLabel(val: string) {\n this._defaultLabel = val;\n this.updateLabel();\n }\n\n get defaultLabel(): string {\n return this._defaultLabel;\n }\n\n _placeholder: string;\n\n @Input() set placeholder(val: string) {\n this._placeholder = val;\n this.updateLabel();\n }\n\n get placeholder(): string {\n return this._placeholder;\n }\n\n @Input() get options(): any[] {\n return this._options;\n }\n\n set options(val: any[]) {\n this._options = val;\n this.updateLabel();\n }\n\n @Input() get filterValue(): string {\n return this._filterValue;\n }\n\n set filterValue(val: string) {\n this._filterValue = val;\n this.activateFilter();\n }\n\n public value: any[];\n\n public _filteredOptions: any[];\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n overlay: HTMLDivElement;\n\n public valuesAsString: string;\n\n public focus: boolean;\n\n filled: boolean;\n\n public documentClickListener: any;\n\n public _filterValue: string;\n\n public filtered: boolean;\n\n public itemTemplate: TemplateRef<any>;\n\n public groupTemplate: TemplateRef<any>;\n\n public headerTemplate: TemplateRef<any>;\n\n public footerTemplate: TemplateRef<any>;\n\n public emptyFilterTemplate: TemplateRef<any>;\n\n public emptyTemplate: TemplateRef<any>;\n\n public selectedItemsTemplate: TemplateRef<any>;\n\n public headerCheckboxFocus: boolean;\n\n _options: any[];\n\n maxSelectionLimitReached: boolean;\n\n scrollHandler: any;\n\n documentResizeListener: any;\n\n preventModelTouched: boolean;\n\n constructor(public el: ElementRef, public renderer: Renderer2, public cd: ChangeDetectorRef, public filterService: FilterService, public config: PrimeNGConfig) {}\n\n ngOnInit() {\n this.updateLabel();\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'group':\n this.groupTemplate = item.template;\n break;\n\n case 'selectedItems':\n this.selectedItemsTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'emptyfilter':\n this.emptyFilterTemplate = item.template;\n break;\n\n case 'empty':\n this.emptyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.overlayVisible) {\n this.show();\n }\n }\n\n ngAfterViewChecked() {\n if (this.filtered) {\n this.alignOverlay();\n\n this.filtered = false;\n }\n }\n\n getOptionLabel(option: any) {\n return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : (option.label != undefined ? option.label : option);\n }\n\n getOptionValue(option: any) {\n return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : (this.optionLabel || option.value === undefined ? option : option.value);\n }\n\n getOptionGroupLabel(optionGroup: any) {\n return this.optionGroupLabel ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel) : (optionGroup.label != undefined ? optionGroup.label : optionGroup);\n }\n\n getOptionGroupChildren(optionGroup: any) {\n return this.optionGroupChildren ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;\n }\n\n isOptionDisabled(option: any) {\n let disabled = this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : (option.disabled !== undefined ? option.disabled : false);\n return (disabled || (this.maxSelectionLimitReached && !this.isSelected(option)));\n }\n\n writeValue(value: any) : void {\n this.value = value;\n this.updateLabel();\n this.updateFilledState();\n this.checkSelectionLimit();\n\n this.cd.markForCheck();\n }\n\n checkSelectionLimit() {\n if (this.selectionLimit && (this.value && this.value.length === this.selectionLimit)) {\n this.maxSelectionLimitReached = true;\n }\n else {\n this.maxSelectionLimitReached = false;\n }\n }\n\n updateFilledState() {\n this.filled = (this.value && this.value.length > 0);\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n onOptionClick(event) {\n let option = event.option;\n if (this.isOptionDisabled(option)) {\n return;\n }\n\n let optionValue = this.getOptionValue(option);\n let selectionIndex = this.findSelectionIndex(optionValue);\n if (selectionIndex != -1) {\n this.value = this.value.filter((val,i) => i != selectionIndex);\n\n if (this.selectionLimit) {\n this.maxSelectionLimitReached = false;\n }\n }\n else {\n if (!this.selectionLimit || (!this.value || this.value.length < this.selectionLimit)) {\n this.value = [...this.value || [], optionValue];\n }\n\n this.checkSelectionLimit();\n }\n\n this.onModelChange(this.value);\n this.onChange.emit({originalEvent: event.originalEvent, value: this.value, itemValue: optionValue});\n this.updateLabel();\n this.updateFilledState();\n }\n\n isSelected(option) {\n return this.findSelectionIndex(this.getOptionValue(option)) != -1;\n }\n\n findSelectionIndex(val: any): number {\n let index = -1;\n\n if (this.value) {\n for (let i = 0; i < this.value.length; i++) {\n if (ObjectUtils.equals(this.value[i], val, this.dataKey)) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n get toggleAllDisabled(): boolean {\n let optionsToRender = this.optionsToRender;\n if (!optionsToRender || optionsToRender.length === 0) {\n return true;\n }\n else {\n for (let option of optionsToRender) {\n if (!this.isOptionDisabled(option))\n return false;\n }\n\n return true;\n }\n }\n\n toggleAll(event) {\n if (this.disabled || this.toggleAllDisabled || this.readonly) {\n return;\n }\n \n let allChecked = this.allChecked; \n\n if (allChecked)\n this.uncheckAll();\n else\n this.checkAll();\n\n this.onModelChange(this.value);\n this.onChange.emit({ originalEvent: event, value: this.value }); \n this.updateFilledState();\n this.updateLabel();\n event.preventDefault();\n }\n\n checkAll() {\n let optionsToRender = this.optionsToRender;\n let val: any[] = [];\n\n optionsToRender.forEach(opt => {\n if (!this.group) {\n let optionDisabled = this.isOptionDisabled(opt); \n if (!optionDisabled || (optionDisabled && this.isSelected(opt))) {\n val.push(this.getOptionValue(opt));\n }\n }\n else {\n let subOptions = this.getOptionGroupChildren(opt);\n\n if (subOptions) {\n subOptions.forEach(option => {\n let optionDisabled = this.isOptionDisabled(option); \n if (!optionDisabled || (optionDisabled && this.isSelected(option))) {\n val.push(this.getOptionValue(option));\n }\n });\n }\n }\n });\n\n this.value = val;\n }\n\n uncheckAll() {\n let optionsToRender = this.optionsToRender;\n let val: any[] = [];\n\n optionsToRender.forEach(opt => {\n if (!this.group) {\n let optionDisabled = this.isOptionDisabled(opt); \n if (optionDisabled && this.isSelected(opt)) {\n val.push(this.getOptionValue(opt));\n }\n }\n else {\n if (opt.items) {\n opt.items.forEach(option => {\n let optionDisabled = this.isOptionDisabled(option); \n if (optionDisabled && this.isSelected(option)) {\n val.push(this.getOptionValue(option));\n }\n });\n }\n }\n });\n\n this.value = val;\n }\n\n show() {\n if (!this.overlayVisible){\n this.overlayVisible = true;\n }\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.appendOverlay();\n if (this.autoZIndex) {\n this.overlay.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n this.alignOverlay();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n\n if (this.filterInputChild && this.filterInputChild.nativeElement) {\n this.preventModelTouched = true;\n\n if (this.autofocusFilter) {\n this.filterInputChild.nativeElement.focus();\n }\n }\n\n this.onPanelShow.emit();\n break;\n\n case 'void':\n this.onOverlayHide();\n break;\n }\n }\n\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n DomHandler.appendChild(this.overlay, this.appendTo);\n\n if (!this.overlay.style.minWidth) {\n this.overlay.style.minWidth = DomHandler.getWidth(this.containerViewChild.nativeElement) + 'px';\n }\n }\n }\n\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.el.nativeElement.appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.overlay) {\n if (this.appendTo)\n DomHandler.absolutePosition(this.overlay, this.containerViewChild.nativeElement);\n else\n DomHandler.relativePosition(this.overlay, this.containerViewChild.nativeElement);\n }\n }\n\n hide() {\n this.overlayVisible = false;\n this.unbindDocumentClickListener();\n if (this.resetFilterOnHide){\n this.filterInputChild.nativeElement.value = '';\n this._filterValue = null;\n this._filteredOptions = null;\n }\n this.onPanelHide.emit();\n this.cd.markForCheck();\n }\n\n close(event) {\n this.hide();\n event.preventDefault();\n event.stopPropagation();\n }\n\n onMouseclick(event: MouseEvent, input) {\n if (this.disabled || this.readonly || (<Node> event.target).isSameNode(this.accessibleViewChild.nativeElement)) {\n return;\n }\n\n this.onClick.emit(event);\n\n if (!this.isOverlayClick(event) && !DomHandler.hasClass(event.target, 'p-multiselect-token-icon')) {\n if (this.overlayVisible) {\n this.hide();\n }\n else {\n input.focus();\n this.show();\n }\n }\n }\n\n removeChip(chip: any, event: MouseEvent) {\n this.value = this.value.filter(val => !ObjectUtils.equals(val, chip, this.dataKey));\n this.onModelChange(this.value);\n this.onChange.emit({ originalEvent: event, value: this.value });\n this.updateLabel();\n this.updateFilledState();\n }\n\n isOverlayClick(event: MouseEvent) {\n let targetNode = <Node> event.target;\n return this.overlay ? (this.overlay.isSameNode(targetNode) || this.overlay.contains(targetNode)) : false;\n }\n\n isOutsideClicked(event: MouseEvent): boolean {\n return !(this.el.nativeElement.isSameNode(event.target) || this.el.nativeElement.contains(event.target) || this.isOverlayClick(event));\n }\n\n onInputFocus(event) {\n this.focus = true;\n this.onFocus.emit({originalEvent: event});\n }\n\n onInputBlur(event) {\n this.focus = false;\n this.onBlur.emit({originalEvent: event});\n\n if (!this.preventModelTouched) {\n this.onModelTouched();\n }\n this.preventModelTouched = false;\n }\n\n onOptionKeydown(event) {\n if (this.readonly) {\n return;\n }\n\n switch(event.originalEvent.which) {\n\n //down\n case 40:\n var nextItem = this.findNextItem(event.originalEvent.target.parentElement);\n if (nextItem) {\n nextItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n\n //up\n case 38:\n var prevItem = this.findPrevItem(event.originalEvent.target.parentElement);\n if (prevItem) {\n prevItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n\n //enter\n case 13:\n this.onOptionClick(event);\n event.originalEvent.preventDefault();\n break;\n }\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem)\n return DomHandler.hasClass(nextItem.children[0], 'p-disabled') || DomHandler.isHidden(nextItem.children[0]) || DomHandler.hasClass(nextItem, 'p-multiselect-item-group') ? this.findNextItem(nextItem) : nextItem.children[0];\n else\n return null;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem)\n return DomHandler.hasClass(prevItem.children[0], 'p-disabled') || DomHandler.isHidden(prevItem.children[0]) || DomHandler.hasClass(prevItem, 'p-multiselect-item-group') ? this.findPrevItem(prevItem) : prevItem.children[0];\n else\n return null;\n }\n\n onKeydown(event: KeyboardEvent){\n switch(event.which) {\n //down\n case 40:\n if (!this.overlayVisible && event.altKey) {\n this.show();\n event.preventDefault();\n }\n break;\n\n //space\n case 32:\n if (!this.overlayVisible){\n this.show();\n event.preventDefault();\n }\n break;\n\n //escape\n case 27:\n this.hide();\n break;\n }\n }\n\n updateLabel() {\n if (this.value && this.options && this.value.length && this.displaySelectedLabel) {\n let label = '';\n for (let i = 0; i < this.value.length; i++) {\n let itemLabel = this.findLabelByValue(this.value[i]);\n if (itemLabel) {\n if (label.length > 0) {\n label = label + ', ';\n }\n label = label + itemLabel;\n }\n }\n\n if (this.value.length <= this.maxSelectedLabels || this.selectedItemsLabel === 'ellipsis') {\n this.valuesAsString = label;\n }\n else {\n let pattern = /{(.*?)}/;\n if (pattern.test(this.selectedItemsLabel)) {\n this.valuesAsString = this.selectedItemsLabel.replace(this.selectedItemsLabel.match(pattern)[0], this.value.length + '');\n } else {\n this.valuesAsString = this.selectedItemsLabel;\n }\n }\n }\n else {\n this.valuesAsString = this.placeholder || this.defaultLabel;\n }\n }\n\n findLabelByValue(val: any): string {\n if (this.group) {\n let label = null;\n\n for (let i = 0; i < this.options.length; i++) {\n let subOptions = this.getOptionGroupChildren(this.options[i]);\n if (subOptions) {\n label = this.searchLabelByValue(val, subOptions);\n\n if (label) {\n break;\n }\n }\n }\n\n return label;\n }\n else {\n return this.searchLabelByValue(val, this.options)\n }\n }\n\n searchLabelByValue(val: any, options: any[]): string {\n let label = null;\n\n for (let i = 0; i < options.length; i++) {\n let option = options[i];\n let optionValue = this.getOptionValue(option);\n\n if (val == null && optionValue == null || ObjectUtils.equals(val, optionValue, this.dataKey)) {\n label = this.getOptionLabel(option);\n break;\n }\n }\n\n return label;\n }\n\n get allChecked(): boolean {\n let optionsToRender = this.optionsToRender;\n if (!optionsToRender || optionsToRender.length === 0) {\n return false;\n }\n else {\n let selectedDisabledItemsLength = 0;\n let unselectedDisabledItemsLength = 0;\n let selectedEnabledItemsLength = 0;\n let visibleOptionsLength = this.group ? 0 : this.optionsToRender.length;\n \n for (let option of optionsToRender) {\n if (!this.group) {\n let disabled = this.isOptionDisabled(option);\n let selected = this.isSelected(option);\n \n if (disabled) {\n if (selected)\n selectedDisabledItemsLength++;\n else \n unselectedDisabledItemsLength++;\n }\n else {\n if (selected)\n selectedEnabledItemsLength++;\n else\n return false;\n }\n }\n else {\n for (let opt of this.getOptionGroupChildren(option)) {\n let disabled = this.isOptionDisabled(opt);\n let selected = this.isSelected(opt);\n \n if (disabled) {\n if (selected)\n selectedDisabledItemsLength++;\n else \n unselectedDisabledItemsLength++;\n }\n else {\n if (selected)\n selectedEnabledItemsLength++;\n else {\n return false;\n }\n }\n\n visibleOptionsLength++;\n }\n }\n }\n\n return (visibleOptionsLength === selectedDisabledItemsLength \n || visibleOptionsLength === selectedEnabledItemsLength \n || selectedEnabledItemsLength && visibleOptionsLength === (selectedEnabledItemsLength + unselectedDisabledItemsLength + selectedDisabledItemsLength));\n }\n }\n\n get optionsToRender(): any[] {\n return this._filteredOptions || this.options;\n }\n\n get emptyOptions(): boolean {\n let optionsToRender = this.optionsToRender;\n return !optionsToRender || optionsToRender.length === 0;\n }\n\n get emptyMessageLabel(): string {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n\n get emptyFilterMessageLabel(): string {\n return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);\n }\n\n hasFilter() {\n return this._filterValue && this._filterValue.trim().length > 0; \n }\n\n onFilterInputChange(event: KeyboardEvent) {\n this._filterValue = (<HTMLInputElement> event.target).value;\n this.activateFilter();\n this.onFilter.emit({originalEvent: event, filter: this._filterValue});\n }\n\n activateFilter() {\n if (this.hasFilter() && this._options) {\n let searchFields: string[] = (this.filterBy || this.optionLabel || 'label').split(',');\n if (this.group) {\n let searchFields: string[] = (this.optionLabel || 'label').split(',');\n\n let filteredGroups = [];\n for (let optgroup of this.options) {\n let filteredSubOptions = this.filterService.filter(this.getOptionGroupChildren(optgroup), searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push({...optgroup, ...{[this.optionGroupChildren]: filteredSubOptions}});\n }\n }\n\n this._filteredOptions = filteredGroups;\n }\n else {\n this._filteredOptions = this.filterService.filter(this.options, searchFields, this._filterValue, this.filterMatchMode, this.filterLocale); \n }\n }\n else {\n this._filteredOptions = null;\n }\n }\n\n onHeaderCheckboxFocus() {\n this.headerCheckboxFocus = true;\n }\n\n onHeaderCheckboxBlur() {\n this.headerCheckboxFocus = false;\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n this.documentClickListener = this.renderer.listen(documentTarget, 'click', (event) => {\n if (this.isOutsideClicked(event)) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (!DomHandler.isAndroid()) {\n this.hide();\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n this.onModelTouched();\n }\n\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n\n}\n\n@NgModule({\n imports: [CommonModule,SharedModule,ScrollingModule,TooltipModule,RippleModule],\n exports: [MultiSelect,SharedModule,ScrollingModule],\n declarations: [MultiSelect,MultiSelectItem]\n})\nexport class MultiSelectModule { }\n"]}