@anguless/angulux 22.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +40 -0
  3. package/fesm2022/anguless-angulux-api.mjs +843 -0
  4. package/fesm2022/anguless-angulux-api.mjs.map +1 -0
  5. package/fesm2022/anguless-angulux-autofocus.mjs +83 -0
  6. package/fesm2022/anguless-angulux-autofocus.mjs.map +1 -0
  7. package/fesm2022/anguless-angulux-avatar.mjs +212 -0
  8. package/fesm2022/anguless-angulux-avatar.mjs.map +1 -0
  9. package/fesm2022/anguless-angulux-avatargroup.mjs +104 -0
  10. package/fesm2022/anguless-angulux-avatargroup.mjs.map +1 -0
  11. package/fesm2022/anguless-angulux-badge.mjs +423 -0
  12. package/fesm2022/anguless-angulux-badge.mjs.map +1 -0
  13. package/fesm2022/anguless-angulux-base.mjs +124 -0
  14. package/fesm2022/anguless-angulux-base.mjs.map +1 -0
  15. package/fesm2022/anguless-angulux-basecomponent.mjs +443 -0
  16. package/fesm2022/anguless-angulux-basecomponent.mjs.map +1 -0
  17. package/fesm2022/anguless-angulux-baseeditableholder.mjs +70 -0
  18. package/fesm2022/anguless-angulux-baseeditableholder.mjs.map +1 -0
  19. package/fesm2022/anguless-angulux-baseinput.mjs +95 -0
  20. package/fesm2022/anguless-angulux-baseinput.mjs.map +1 -0
  21. package/fesm2022/anguless-angulux-basemodelholder.mjs +27 -0
  22. package/fesm2022/anguless-angulux-basemodelholder.mjs.map +1 -0
  23. package/fesm2022/anguless-angulux-bind.mjs +99 -0
  24. package/fesm2022/anguless-angulux-bind.mjs.map +1 -0
  25. package/fesm2022/anguless-angulux-button.mjs +1039 -0
  26. package/fesm2022/anguless-angulux-button.mjs.map +1 -0
  27. package/fesm2022/anguless-angulux-card.mjs +311 -0
  28. package/fesm2022/anguless-angulux-card.mjs.map +1 -0
  29. package/fesm2022/anguless-angulux-chart.mjs +268 -0
  30. package/fesm2022/anguless-angulux-chart.mjs.map +1 -0
  31. package/fesm2022/anguless-angulux-checkbox.mjs +469 -0
  32. package/fesm2022/anguless-angulux-checkbox.mjs.map +1 -0
  33. package/fesm2022/anguless-angulux-chip.mjs +376 -0
  34. package/fesm2022/anguless-angulux-chip.mjs.map +1 -0
  35. package/fesm2022/anguless-angulux-colorpicker.mjs +807 -0
  36. package/fesm2022/anguless-angulux-colorpicker.mjs.map +1 -0
  37. package/fesm2022/anguless-angulux-config.mjs +309 -0
  38. package/fesm2022/anguless-angulux-config.mjs.map +1 -0
  39. package/fesm2022/anguless-angulux-confirmdialog.mjs +858 -0
  40. package/fesm2022/anguless-angulux-confirmdialog.mjs.map +1 -0
  41. package/fesm2022/anguless-angulux-datepicker.mjs +4441 -0
  42. package/fesm2022/anguless-angulux-datepicker.mjs.map +1 -0
  43. package/fesm2022/anguless-angulux-dialog.mjs +1420 -0
  44. package/fesm2022/anguless-angulux-dialog.mjs.map +1 -0
  45. package/fesm2022/anguless-angulux-divider.mjs +160 -0
  46. package/fesm2022/anguless-angulux-divider.mjs.map +1 -0
  47. package/fesm2022/anguless-angulux-dom.mjs +778 -0
  48. package/fesm2022/anguless-angulux-dom.mjs.map +1 -0
  49. package/fesm2022/anguless-angulux-drawer.mjs +782 -0
  50. package/fesm2022/anguless-angulux-drawer.mjs.map +1 -0
  51. package/fesm2022/anguless-angulux-fileupload.mjs +1580 -0
  52. package/fesm2022/anguless-angulux-fileupload.mjs.map +1 -0
  53. package/fesm2022/anguless-angulux-fluid.mjs +87 -0
  54. package/fesm2022/anguless-angulux-fluid.mjs.map +1 -0
  55. package/fesm2022/anguless-angulux-focustrap.mjs +108 -0
  56. package/fesm2022/anguless-angulux-focustrap.mjs.map +1 -0
  57. package/fesm2022/anguless-angulux-iconfield.mjs +112 -0
  58. package/fesm2022/anguless-angulux-iconfield.mjs.map +1 -0
  59. package/fesm2022/anguless-angulux-icons-angledoubledown.mjs +38 -0
  60. package/fesm2022/anguless-angulux-icons-angledoubledown.mjs.map +1 -0
  61. package/fesm2022/anguless-angulux-icons-angledoubleleft.mjs +38 -0
  62. package/fesm2022/anguless-angulux-icons-angledoubleleft.mjs.map +1 -0
  63. package/fesm2022/anguless-angulux-icons-angledoubleright.mjs +38 -0
  64. package/fesm2022/anguless-angulux-icons-angledoubleright.mjs.map +1 -0
  65. package/fesm2022/anguless-angulux-icons-angledoubleup.mjs +38 -0
  66. package/fesm2022/anguless-angulux-icons-angledoubleup.mjs.map +1 -0
  67. package/fesm2022/anguless-angulux-icons-angledown.mjs +34 -0
  68. package/fesm2022/anguless-angulux-icons-angledown.mjs.map +1 -0
  69. package/fesm2022/anguless-angulux-icons-angleleft.mjs +34 -0
  70. package/fesm2022/anguless-angulux-icons-angleleft.mjs.map +1 -0
  71. package/fesm2022/anguless-angulux-icons-angleright.mjs +34 -0
  72. package/fesm2022/anguless-angulux-icons-angleright.mjs.map +1 -0
  73. package/fesm2022/anguless-angulux-icons-angleup.mjs +34 -0
  74. package/fesm2022/anguless-angulux-icons-angleup.mjs.map +1 -0
  75. package/fesm2022/anguless-angulux-icons-arrowdown.mjs +57 -0
  76. package/fesm2022/anguless-angulux-icons-arrowdown.mjs.map +1 -0
  77. package/fesm2022/anguless-angulux-icons-arrowdownleft.mjs +34 -0
  78. package/fesm2022/anguless-angulux-icons-arrowdownleft.mjs.map +1 -0
  79. package/fesm2022/anguless-angulux-icons-arrowdownright.mjs +34 -0
  80. package/fesm2022/anguless-angulux-icons-arrowdownright.mjs.map +1 -0
  81. package/fesm2022/anguless-angulux-icons-arrowleft.mjs +57 -0
  82. package/fesm2022/anguless-angulux-icons-arrowleft.mjs.map +1 -0
  83. package/fesm2022/anguless-angulux-icons-arrowright.mjs +38 -0
  84. package/fesm2022/anguless-angulux-icons-arrowright.mjs.map +1 -0
  85. package/fesm2022/anguless-angulux-icons-arrowup.mjs +57 -0
  86. package/fesm2022/anguless-angulux-icons-arrowup.mjs.map +1 -0
  87. package/fesm2022/anguless-angulux-icons-ban.mjs +53 -0
  88. package/fesm2022/anguless-angulux-icons-ban.mjs.map +1 -0
  89. package/fesm2022/anguless-angulux-icons-bars.mjs +38 -0
  90. package/fesm2022/anguless-angulux-icons-bars.mjs.map +1 -0
  91. package/fesm2022/anguless-angulux-icons-baseicon.mjs +101 -0
  92. package/fesm2022/anguless-angulux-icons-baseicon.mjs.map +1 -0
  93. package/fesm2022/anguless-angulux-icons-blank.mjs +24 -0
  94. package/fesm2022/anguless-angulux-icons-blank.mjs.map +1 -0
  95. package/fesm2022/anguless-angulux-icons-calendar.mjs +34 -0
  96. package/fesm2022/anguless-angulux-icons-calendar.mjs.map +1 -0
  97. package/fesm2022/anguless-angulux-icons-caretleft.mjs +34 -0
  98. package/fesm2022/anguless-angulux-icons-caretleft.mjs.map +1 -0
  99. package/fesm2022/anguless-angulux-icons-caretright.mjs +34 -0
  100. package/fesm2022/anguless-angulux-icons-caretright.mjs.map +1 -0
  101. package/fesm2022/anguless-angulux-icons-check.mjs +34 -0
  102. package/fesm2022/anguless-angulux-icons-check.mjs.map +1 -0
  103. package/fesm2022/anguless-angulux-icons-chevrondown.mjs +34 -0
  104. package/fesm2022/anguless-angulux-icons-chevrondown.mjs.map +1 -0
  105. package/fesm2022/anguless-angulux-icons-chevronleft.mjs +34 -0
  106. package/fesm2022/anguless-angulux-icons-chevronleft.mjs.map +1 -0
  107. package/fesm2022/anguless-angulux-icons-chevronright.mjs +34 -0
  108. package/fesm2022/anguless-angulux-icons-chevronright.mjs.map +1 -0
  109. package/fesm2022/anguless-angulux-icons-chevronup.mjs +34 -0
  110. package/fesm2022/anguless-angulux-icons-chevronup.mjs.map +1 -0
  111. package/fesm2022/anguless-angulux-icons-exclamationtriangle.mjs +69 -0
  112. package/fesm2022/anguless-angulux-icons-exclamationtriangle.mjs.map +1 -0
  113. package/fesm2022/anguless-angulux-icons-eye.mjs +38 -0
  114. package/fesm2022/anguless-angulux-icons-eye.mjs.map +1 -0
  115. package/fesm2022/anguless-angulux-icons-eyeslash.mjs +57 -0
  116. package/fesm2022/anguless-angulux-icons-eyeslash.mjs.map +1 -0
  117. package/fesm2022/anguless-angulux-icons-filter.mjs +53 -0
  118. package/fesm2022/anguless-angulux-icons-filter.mjs.map +1 -0
  119. package/fesm2022/anguless-angulux-icons-filterfill.mjs +34 -0
  120. package/fesm2022/anguless-angulux-icons-filterfill.mjs.map +1 -0
  121. package/fesm2022/anguless-angulux-icons-filterslash.mjs +57 -0
  122. package/fesm2022/anguless-angulux-icons-filterslash.mjs.map +1 -0
  123. package/fesm2022/anguless-angulux-icons-home.mjs +57 -0
  124. package/fesm2022/anguless-angulux-icons-home.mjs.map +1 -0
  125. package/fesm2022/anguless-angulux-icons-infocircle.mjs +57 -0
  126. package/fesm2022/anguless-angulux-icons-infocircle.mjs.map +1 -0
  127. package/fesm2022/anguless-angulux-icons-minus.mjs +34 -0
  128. package/fesm2022/anguless-angulux-icons-minus.mjs.map +1 -0
  129. package/fesm2022/anguless-angulux-icons-pencil.mjs +53 -0
  130. package/fesm2022/anguless-angulux-icons-pencil.mjs.map +1 -0
  131. package/fesm2022/anguless-angulux-icons-plus.mjs +53 -0
  132. package/fesm2022/anguless-angulux-icons-plus.mjs.map +1 -0
  133. package/fesm2022/anguless-angulux-icons-refresh.mjs +57 -0
  134. package/fesm2022/anguless-angulux-icons-refresh.mjs.map +1 -0
  135. package/fesm2022/anguless-angulux-icons-search.mjs +57 -0
  136. package/fesm2022/anguless-angulux-icons-search.mjs.map +1 -0
  137. package/fesm2022/anguless-angulux-icons-searchminus.mjs +57 -0
  138. package/fesm2022/anguless-angulux-icons-searchminus.mjs.map +1 -0
  139. package/fesm2022/anguless-angulux-icons-searchplus.mjs +57 -0
  140. package/fesm2022/anguless-angulux-icons-searchplus.mjs.map +1 -0
  141. package/fesm2022/anguless-angulux-icons-sortalt.mjs +65 -0
  142. package/fesm2022/anguless-angulux-icons-sortalt.mjs.map +1 -0
  143. package/fesm2022/anguless-angulux-icons-sortamountdown.mjs +53 -0
  144. package/fesm2022/anguless-angulux-icons-sortamountdown.mjs.map +1 -0
  145. package/fesm2022/anguless-angulux-icons-sortamountupalt.mjs +53 -0
  146. package/fesm2022/anguless-angulux-icons-sortamountupalt.mjs.map +1 -0
  147. package/fesm2022/anguless-angulux-icons-spinner.mjs +53 -0
  148. package/fesm2022/anguless-angulux-icons-spinner.mjs.map +1 -0
  149. package/fesm2022/anguless-angulux-icons-star.mjs +53 -0
  150. package/fesm2022/anguless-angulux-icons-star.mjs.map +1 -0
  151. package/fesm2022/anguless-angulux-icons-starfill.mjs +53 -0
  152. package/fesm2022/anguless-angulux-icons-starfill.mjs.map +1 -0
  153. package/fesm2022/anguless-angulux-icons-thlarge.mjs +57 -0
  154. package/fesm2022/anguless-angulux-icons-thlarge.mjs.map +1 -0
  155. package/fesm2022/anguless-angulux-icons-times.mjs +34 -0
  156. package/fesm2022/anguless-angulux-icons-times.mjs.map +1 -0
  157. package/fesm2022/anguless-angulux-icons-timescircle.mjs +57 -0
  158. package/fesm2022/anguless-angulux-icons-timescircle.mjs.map +1 -0
  159. package/fesm2022/anguless-angulux-icons-trash.mjs +57 -0
  160. package/fesm2022/anguless-angulux-icons-trash.mjs.map +1 -0
  161. package/fesm2022/anguless-angulux-icons-undo.mjs +57 -0
  162. package/fesm2022/anguless-angulux-icons-undo.mjs.map +1 -0
  163. package/fesm2022/anguless-angulux-icons-upload.mjs +57 -0
  164. package/fesm2022/anguless-angulux-icons-upload.mjs.map +1 -0
  165. package/fesm2022/anguless-angulux-icons-windowmaximize.mjs +57 -0
  166. package/fesm2022/anguless-angulux-icons-windowmaximize.mjs.map +1 -0
  167. package/fesm2022/anguless-angulux-icons-windowminimize.mjs +57 -0
  168. package/fesm2022/anguless-angulux-icons-windowminimize.mjs.map +1 -0
  169. package/fesm2022/anguless-angulux-icons.mjs +63 -0
  170. package/fesm2022/anguless-angulux-icons.mjs.map +1 -0
  171. package/fesm2022/anguless-angulux-inputicon.mjs +84 -0
  172. package/fesm2022/anguless-angulux-inputicon.mjs.map +1 -0
  173. package/fesm2022/anguless-angulux-inputnumber.mjs +1673 -0
  174. package/fesm2022/anguless-angulux-inputnumber.mjs.map +1 -0
  175. package/fesm2022/anguless-angulux-inputtext.mjs +199 -0
  176. package/fesm2022/anguless-angulux-inputtext.mjs.map +1 -0
  177. package/fesm2022/anguless-angulux-menu.mjs +1160 -0
  178. package/fesm2022/anguless-angulux-menu.mjs.map +1 -0
  179. package/fesm2022/anguless-angulux-message.mjs +409 -0
  180. package/fesm2022/anguless-angulux-message.mjs.map +1 -0
  181. package/fesm2022/anguless-angulux-motion.mjs +721 -0
  182. package/fesm2022/anguless-angulux-motion.mjs.map +1 -0
  183. package/fesm2022/anguless-angulux-multiselect.mjs +2712 -0
  184. package/fesm2022/anguless-angulux-multiselect.mjs.map +1 -0
  185. package/fesm2022/anguless-angulux-overlay.mjs +886 -0
  186. package/fesm2022/anguless-angulux-overlay.mjs.map +1 -0
  187. package/fesm2022/anguless-angulux-paginator.mjs +823 -0
  188. package/fesm2022/anguless-angulux-paginator.mjs.map +1 -0
  189. package/fesm2022/anguless-angulux-password.mjs +1181 -0
  190. package/fesm2022/anguless-angulux-password.mjs.map +1 -0
  191. package/fesm2022/anguless-angulux-popover.mjs +532 -0
  192. package/fesm2022/anguless-angulux-popover.mjs.map +1 -0
  193. package/fesm2022/anguless-angulux-progressbar.mjs +214 -0
  194. package/fesm2022/anguless-angulux-progressbar.mjs.map +1 -0
  195. package/fesm2022/anguless-angulux-progressspinner.mjs +146 -0
  196. package/fesm2022/anguless-angulux-progressspinner.mjs.map +1 -0
  197. package/fesm2022/anguless-angulux-radiobutton.mjs +381 -0
  198. package/fesm2022/anguless-angulux-radiobutton.mjs.map +1 -0
  199. package/fesm2022/anguless-angulux-ripple.mjs +194 -0
  200. package/fesm2022/anguless-angulux-ripple.mjs.map +1 -0
  201. package/fesm2022/anguless-angulux-scroller.mjs +1325 -0
  202. package/fesm2022/anguless-angulux-scroller.mjs.map +1 -0
  203. package/fesm2022/anguless-angulux-select.mjs +2408 -0
  204. package/fesm2022/anguless-angulux-select.mjs.map +1 -0
  205. package/fesm2022/anguless-angulux-selectbutton.mjs +434 -0
  206. package/fesm2022/anguless-angulux-selectbutton.mjs.map +1 -0
  207. package/fesm2022/anguless-angulux-skeleton.mjs +168 -0
  208. package/fesm2022/anguless-angulux-skeleton.mjs.map +1 -0
  209. package/fesm2022/anguless-angulux-splitbutton.mjs +643 -0
  210. package/fesm2022/anguless-angulux-splitbutton.mjs.map +1 -0
  211. package/fesm2022/anguless-angulux-table.mjs +7815 -0
  212. package/fesm2022/anguless-angulux-table.mjs.map +1 -0
  213. package/fesm2022/anguless-angulux-tabs.mjs +921 -0
  214. package/fesm2022/anguless-angulux-tabs.mjs.map +1 -0
  215. package/fesm2022/anguless-angulux-tag.mjs +196 -0
  216. package/fesm2022/anguless-angulux-tag.mjs.map +1 -0
  217. package/fesm2022/anguless-angulux-textarea.mjs +227 -0
  218. package/fesm2022/anguless-angulux-textarea.mjs.map +1 -0
  219. package/fesm2022/anguless-angulux-tieredmenu.mjs +1635 -0
  220. package/fesm2022/anguless-angulux-tieredmenu.mjs.map +1 -0
  221. package/fesm2022/anguless-angulux-timeline.mjs +248 -0
  222. package/fesm2022/anguless-angulux-timeline.mjs.map +1 -0
  223. package/fesm2022/anguless-angulux-toast.mjs +788 -0
  224. package/fesm2022/anguless-angulux-toast.mjs.map +1 -0
  225. package/fesm2022/anguless-angulux-togglebutton.mjs +391 -0
  226. package/fesm2022/anguless-angulux-togglebutton.mjs.map +1 -0
  227. package/fesm2022/anguless-angulux-toggleswitch.mjs +345 -0
  228. package/fesm2022/anguless-angulux-toggleswitch.mjs.map +1 -0
  229. package/fesm2022/anguless-angulux-tooltip.mjs +845 -0
  230. package/fesm2022/anguless-angulux-tooltip.mjs.map +1 -0
  231. package/fesm2022/anguless-angulux-treetable.mjs +5167 -0
  232. package/fesm2022/anguless-angulux-treetable.mjs.map +1 -0
  233. package/fesm2022/anguless-angulux-ts-helpers.mjs +4 -0
  234. package/fesm2022/anguless-angulux-ts-helpers.mjs.map +1 -0
  235. package/fesm2022/anguless-angulux-types-accordion.mjs +4 -0
  236. package/fesm2022/anguless-angulux-types-accordion.mjs.map +1 -0
  237. package/fesm2022/anguless-angulux-types-autocomplete.mjs +4 -0
  238. package/fesm2022/anguless-angulux-types-autocomplete.mjs.map +1 -0
  239. package/fesm2022/anguless-angulux-types-avatar.mjs +4 -0
  240. package/fesm2022/anguless-angulux-types-avatar.mjs.map +1 -0
  241. package/fesm2022/anguless-angulux-types-avatargroup.mjs +4 -0
  242. package/fesm2022/anguless-angulux-types-avatargroup.mjs.map +1 -0
  243. package/fesm2022/anguless-angulux-types-badge.mjs +4 -0
  244. package/fesm2022/anguless-angulux-types-badge.mjs.map +1 -0
  245. package/fesm2022/anguless-angulux-types-blockui.mjs +4 -0
  246. package/fesm2022/anguless-angulux-types-blockui.mjs.map +1 -0
  247. package/fesm2022/anguless-angulux-types-breadcrumb.mjs +4 -0
  248. package/fesm2022/anguless-angulux-types-breadcrumb.mjs.map +1 -0
  249. package/fesm2022/anguless-angulux-types-button.mjs +4 -0
  250. package/fesm2022/anguless-angulux-types-button.mjs.map +1 -0
  251. package/fesm2022/anguless-angulux-types-card.mjs +4 -0
  252. package/fesm2022/anguless-angulux-types-card.mjs.map +1 -0
  253. package/fesm2022/anguless-angulux-types-carousel.mjs +4 -0
  254. package/fesm2022/anguless-angulux-types-carousel.mjs.map +1 -0
  255. package/fesm2022/anguless-angulux-types-cascadeselect.mjs +4 -0
  256. package/fesm2022/anguless-angulux-types-cascadeselect.mjs.map +1 -0
  257. package/fesm2022/anguless-angulux-types-chart.mjs +4 -0
  258. package/fesm2022/anguless-angulux-types-chart.mjs.map +1 -0
  259. package/fesm2022/anguless-angulux-types-checkbox.mjs +4 -0
  260. package/fesm2022/anguless-angulux-types-checkbox.mjs.map +1 -0
  261. package/fesm2022/anguless-angulux-types-chip.mjs +4 -0
  262. package/fesm2022/anguless-angulux-types-chip.mjs.map +1 -0
  263. package/fesm2022/anguless-angulux-types-colorpicker.mjs +4 -0
  264. package/fesm2022/anguless-angulux-types-colorpicker.mjs.map +1 -0
  265. package/fesm2022/anguless-angulux-types-confirmdialog.mjs +4 -0
  266. package/fesm2022/anguless-angulux-types-confirmdialog.mjs.map +1 -0
  267. package/fesm2022/anguless-angulux-types-confirmpopup.mjs +4 -0
  268. package/fesm2022/anguless-angulux-types-confirmpopup.mjs.map +1 -0
  269. package/fesm2022/anguless-angulux-types-contextmenu.mjs +4 -0
  270. package/fesm2022/anguless-angulux-types-contextmenu.mjs.map +1 -0
  271. package/fesm2022/anguless-angulux-types-dataview.mjs +4 -0
  272. package/fesm2022/anguless-angulux-types-dataview.mjs.map +1 -0
  273. package/fesm2022/anguless-angulux-types-datepicker.mjs +4 -0
  274. package/fesm2022/anguless-angulux-types-datepicker.mjs.map +1 -0
  275. package/fesm2022/anguless-angulux-types-dialog.mjs +4 -0
  276. package/fesm2022/anguless-angulux-types-dialog.mjs.map +1 -0
  277. package/fesm2022/anguless-angulux-types-divider.mjs +4 -0
  278. package/fesm2022/anguless-angulux-types-divider.mjs.map +1 -0
  279. package/fesm2022/anguless-angulux-types-dock.mjs +4 -0
  280. package/fesm2022/anguless-angulux-types-dock.mjs.map +1 -0
  281. package/fesm2022/anguless-angulux-types-drawer.mjs +4 -0
  282. package/fesm2022/anguless-angulux-types-drawer.mjs.map +1 -0
  283. package/fesm2022/anguless-angulux-types-editor.mjs +4 -0
  284. package/fesm2022/anguless-angulux-types-editor.mjs.map +1 -0
  285. package/fesm2022/anguless-angulux-types-fieldset.mjs +4 -0
  286. package/fesm2022/anguless-angulux-types-fieldset.mjs.map +1 -0
  287. package/fesm2022/anguless-angulux-types-fileupload.mjs +4 -0
  288. package/fesm2022/anguless-angulux-types-fileupload.mjs.map +1 -0
  289. package/fesm2022/anguless-angulux-types-floatlabel.mjs +4 -0
  290. package/fesm2022/anguless-angulux-types-floatlabel.mjs.map +1 -0
  291. package/fesm2022/anguless-angulux-types-fluid.mjs +4 -0
  292. package/fesm2022/anguless-angulux-types-fluid.mjs.map +1 -0
  293. package/fesm2022/anguless-angulux-types-galleria.mjs +4 -0
  294. package/fesm2022/anguless-angulux-types-galleria.mjs.map +1 -0
  295. package/fesm2022/anguless-angulux-types-iconfield.mjs +4 -0
  296. package/fesm2022/anguless-angulux-types-iconfield.mjs.map +1 -0
  297. package/fesm2022/anguless-angulux-types-iftalabel.mjs +4 -0
  298. package/fesm2022/anguless-angulux-types-iftalabel.mjs.map +1 -0
  299. package/fesm2022/anguless-angulux-types-image.mjs +4 -0
  300. package/fesm2022/anguless-angulux-types-image.mjs.map +1 -0
  301. package/fesm2022/anguless-angulux-types-imagecompare.mjs +4 -0
  302. package/fesm2022/anguless-angulux-types-imagecompare.mjs.map +1 -0
  303. package/fesm2022/anguless-angulux-types-inplace.mjs +4 -0
  304. package/fesm2022/anguless-angulux-types-inplace.mjs.map +1 -0
  305. package/fesm2022/anguless-angulux-types-inputgroup.mjs +4 -0
  306. package/fesm2022/anguless-angulux-types-inputgroup.mjs.map +1 -0
  307. package/fesm2022/anguless-angulux-types-inputgroupaddon.mjs +4 -0
  308. package/fesm2022/anguless-angulux-types-inputgroupaddon.mjs.map +1 -0
  309. package/fesm2022/anguless-angulux-types-inputicon.mjs +4 -0
  310. package/fesm2022/anguless-angulux-types-inputicon.mjs.map +1 -0
  311. package/fesm2022/anguless-angulux-types-inputmask.mjs +4 -0
  312. package/fesm2022/anguless-angulux-types-inputmask.mjs.map +1 -0
  313. package/fesm2022/anguless-angulux-types-inputnumber.mjs +4 -0
  314. package/fesm2022/anguless-angulux-types-inputnumber.mjs.map +1 -0
  315. package/fesm2022/anguless-angulux-types-inputotp.mjs +4 -0
  316. package/fesm2022/anguless-angulux-types-inputotp.mjs.map +1 -0
  317. package/fesm2022/anguless-angulux-types-inputtext.mjs +4 -0
  318. package/fesm2022/anguless-angulux-types-inputtext.mjs.map +1 -0
  319. package/fesm2022/anguless-angulux-types-knob.mjs +4 -0
  320. package/fesm2022/anguless-angulux-types-knob.mjs.map +1 -0
  321. package/fesm2022/anguless-angulux-types-listbox.mjs +4 -0
  322. package/fesm2022/anguless-angulux-types-listbox.mjs.map +1 -0
  323. package/fesm2022/anguless-angulux-types-megamenu.mjs +4 -0
  324. package/fesm2022/anguless-angulux-types-megamenu.mjs.map +1 -0
  325. package/fesm2022/anguless-angulux-types-menu.mjs +4 -0
  326. package/fesm2022/anguless-angulux-types-menu.mjs.map +1 -0
  327. package/fesm2022/anguless-angulux-types-menubar.mjs +4 -0
  328. package/fesm2022/anguless-angulux-types-menubar.mjs.map +1 -0
  329. package/fesm2022/anguless-angulux-types-message.mjs +4 -0
  330. package/fesm2022/anguless-angulux-types-message.mjs.map +1 -0
  331. package/fesm2022/anguless-angulux-types-metergroup.mjs +4 -0
  332. package/fesm2022/anguless-angulux-types-metergroup.mjs.map +1 -0
  333. package/fesm2022/anguless-angulux-types-motion.mjs +4 -0
  334. package/fesm2022/anguless-angulux-types-motion.mjs.map +1 -0
  335. package/fesm2022/anguless-angulux-types-multiselect.mjs +4 -0
  336. package/fesm2022/anguless-angulux-types-multiselect.mjs.map +1 -0
  337. package/fesm2022/anguless-angulux-types-orderlist.mjs +4 -0
  338. package/fesm2022/anguless-angulux-types-orderlist.mjs.map +1 -0
  339. package/fesm2022/anguless-angulux-types-organizationchart.mjs +4 -0
  340. package/fesm2022/anguless-angulux-types-organizationchart.mjs.map +1 -0
  341. package/fesm2022/anguless-angulux-types-overlay.mjs +4 -0
  342. package/fesm2022/anguless-angulux-types-overlay.mjs.map +1 -0
  343. package/fesm2022/anguless-angulux-types-overlaybadge.mjs +4 -0
  344. package/fesm2022/anguless-angulux-types-overlaybadge.mjs.map +1 -0
  345. package/fesm2022/anguless-angulux-types-paginator.mjs +4 -0
  346. package/fesm2022/anguless-angulux-types-paginator.mjs.map +1 -0
  347. package/fesm2022/anguless-angulux-types-panel.mjs +4 -0
  348. package/fesm2022/anguless-angulux-types-panel.mjs.map +1 -0
  349. package/fesm2022/anguless-angulux-types-panelmenu.mjs +4 -0
  350. package/fesm2022/anguless-angulux-types-panelmenu.mjs.map +1 -0
  351. package/fesm2022/anguless-angulux-types-password.mjs +4 -0
  352. package/fesm2022/anguless-angulux-types-password.mjs.map +1 -0
  353. package/fesm2022/anguless-angulux-types-picklist.mjs +4 -0
  354. package/fesm2022/anguless-angulux-types-picklist.mjs.map +1 -0
  355. package/fesm2022/anguless-angulux-types-popover.mjs +4 -0
  356. package/fesm2022/anguless-angulux-types-popover.mjs.map +1 -0
  357. package/fesm2022/anguless-angulux-types-progressbar.mjs +4 -0
  358. package/fesm2022/anguless-angulux-types-progressbar.mjs.map +1 -0
  359. package/fesm2022/anguless-angulux-types-progressspinner.mjs +4 -0
  360. package/fesm2022/anguless-angulux-types-progressspinner.mjs.map +1 -0
  361. package/fesm2022/anguless-angulux-types-radiobutton.mjs +4 -0
  362. package/fesm2022/anguless-angulux-types-radiobutton.mjs.map +1 -0
  363. package/fesm2022/anguless-angulux-types-rating.mjs +4 -0
  364. package/fesm2022/anguless-angulux-types-rating.mjs.map +1 -0
  365. package/fesm2022/anguless-angulux-types-scroller.mjs +4 -0
  366. package/fesm2022/anguless-angulux-types-scroller.mjs.map +1 -0
  367. package/fesm2022/anguless-angulux-types-scrollpanel.mjs +4 -0
  368. package/fesm2022/anguless-angulux-types-scrollpanel.mjs.map +1 -0
  369. package/fesm2022/anguless-angulux-types-scrolltop.mjs +4 -0
  370. package/fesm2022/anguless-angulux-types-scrolltop.mjs.map +1 -0
  371. package/fesm2022/anguless-angulux-types-select.mjs +4 -0
  372. package/fesm2022/anguless-angulux-types-select.mjs.map +1 -0
  373. package/fesm2022/anguless-angulux-types-selectbutton.mjs +4 -0
  374. package/fesm2022/anguless-angulux-types-selectbutton.mjs.map +1 -0
  375. package/fesm2022/anguless-angulux-types-skeleton.mjs +4 -0
  376. package/fesm2022/anguless-angulux-types-skeleton.mjs.map +1 -0
  377. package/fesm2022/anguless-angulux-types-slider.mjs +4 -0
  378. package/fesm2022/anguless-angulux-types-slider.mjs.map +1 -0
  379. package/fesm2022/anguless-angulux-types-speeddial.mjs +4 -0
  380. package/fesm2022/anguless-angulux-types-speeddial.mjs.map +1 -0
  381. package/fesm2022/anguless-angulux-types-splitbutton.mjs +4 -0
  382. package/fesm2022/anguless-angulux-types-splitbutton.mjs.map +1 -0
  383. package/fesm2022/anguless-angulux-types-splitter.mjs +4 -0
  384. package/fesm2022/anguless-angulux-types-splitter.mjs.map +1 -0
  385. package/fesm2022/anguless-angulux-types-stepper.mjs +4 -0
  386. package/fesm2022/anguless-angulux-types-stepper.mjs.map +1 -0
  387. package/fesm2022/anguless-angulux-types-table.mjs +4 -0
  388. package/fesm2022/anguless-angulux-types-table.mjs.map +1 -0
  389. package/fesm2022/anguless-angulux-types-tabs.mjs +4 -0
  390. package/fesm2022/anguless-angulux-types-tabs.mjs.map +1 -0
  391. package/fesm2022/anguless-angulux-types-tag.mjs +4 -0
  392. package/fesm2022/anguless-angulux-types-tag.mjs.map +1 -0
  393. package/fesm2022/anguless-angulux-types-terminal.mjs +4 -0
  394. package/fesm2022/anguless-angulux-types-terminal.mjs.map +1 -0
  395. package/fesm2022/anguless-angulux-types-textarea.mjs +4 -0
  396. package/fesm2022/anguless-angulux-types-textarea.mjs.map +1 -0
  397. package/fesm2022/anguless-angulux-types-tieredmenu.mjs +4 -0
  398. package/fesm2022/anguless-angulux-types-tieredmenu.mjs.map +1 -0
  399. package/fesm2022/anguless-angulux-types-timeline.mjs +4 -0
  400. package/fesm2022/anguless-angulux-types-timeline.mjs.map +1 -0
  401. package/fesm2022/anguless-angulux-types-toast.mjs +4 -0
  402. package/fesm2022/anguless-angulux-types-toast.mjs.map +1 -0
  403. package/fesm2022/anguless-angulux-types-togglebutton.mjs +4 -0
  404. package/fesm2022/anguless-angulux-types-togglebutton.mjs.map +1 -0
  405. package/fesm2022/anguless-angulux-types-toggleswitch.mjs +4 -0
  406. package/fesm2022/anguless-angulux-types-toggleswitch.mjs.map +1 -0
  407. package/fesm2022/anguless-angulux-types-toolbar.mjs +4 -0
  408. package/fesm2022/anguless-angulux-types-toolbar.mjs.map +1 -0
  409. package/fesm2022/anguless-angulux-types-tooltip.mjs +4 -0
  410. package/fesm2022/anguless-angulux-types-tooltip.mjs.map +1 -0
  411. package/fesm2022/anguless-angulux-types-tree.mjs +4 -0
  412. package/fesm2022/anguless-angulux-types-tree.mjs.map +1 -0
  413. package/fesm2022/anguless-angulux-types-treeselect.mjs +4 -0
  414. package/fesm2022/anguless-angulux-types-treeselect.mjs.map +1 -0
  415. package/fesm2022/anguless-angulux-types-treetable.mjs +4 -0
  416. package/fesm2022/anguless-angulux-types-treetable.mjs.map +1 -0
  417. package/fesm2022/anguless-angulux-usestyle.mjs +54 -0
  418. package/fesm2022/anguless-angulux-usestyle.mjs.map +1 -0
  419. package/fesm2022/anguless-angulux-utils.mjs +332 -0
  420. package/fesm2022/anguless-angulux-utils.mjs.map +1 -0
  421. package/fesm2022/anguless-angulux.mjs +6 -0
  422. package/fesm2022/anguless-angulux.mjs.map +1 -0
  423. package/package.json +904 -0
  424. package/types/anguless-angulux-api.d.ts +1976 -0
  425. package/types/anguless-angulux-autofocus.d.ts +31 -0
  426. package/types/anguless-angulux-avatar.d.ts +138 -0
  427. package/types/anguless-angulux-avatargroup.d.ts +64 -0
  428. package/types/anguless-angulux-badge.d.ts +182 -0
  429. package/types/anguless-angulux-base.d.ts +58 -0
  430. package/types/anguless-angulux-basecomponent.d.ts +175 -0
  431. package/types/anguless-angulux-baseeditableholder.d.ts +45 -0
  432. package/types/anguless-angulux-baseinput.d.ts +73 -0
  433. package/types/anguless-angulux-basemodelholder.d.ts +12 -0
  434. package/types/anguless-angulux-bind.d.ts +38 -0
  435. package/types/anguless-angulux-button.d.ts +489 -0
  436. package/types/anguless-angulux-card.d.ts +155 -0
  437. package/types/anguless-angulux-chart.d.ts +133 -0
  438. package/types/anguless-angulux-checkbox.d.ts +229 -0
  439. package/types/anguless-angulux-chip.d.ts +165 -0
  440. package/types/anguless-angulux-colorpicker.d.ts +315 -0
  441. package/types/anguless-angulux-config.d.ts +268 -0
  442. package/types/anguless-angulux-confirmdialog.d.ts +358 -0
  443. package/types/anguless-angulux-datepicker.d.ts +1015 -0
  444. package/types/anguless-angulux-dialog.d.ts +553 -0
  445. package/types/anguless-angulux-divider.d.ts +120 -0
  446. package/types/anguless-angulux-dom.d.ts +109 -0
  447. package/types/anguless-angulux-drawer.d.ts +301 -0
  448. package/types/anguless-angulux-fileupload.d.ts +560 -0
  449. package/types/anguless-angulux-fluid.d.ts +52 -0
  450. package/types/anguless-angulux-focustrap.d.ts +36 -0
  451. package/types/anguless-angulux-iconfield.d.ts +71 -0
  452. package/types/anguless-angulux-icons-angledoubledown.d.ts +9 -0
  453. package/types/anguless-angulux-icons-angledoubleleft.d.ts +9 -0
  454. package/types/anguless-angulux-icons-angledoubleright.d.ts +9 -0
  455. package/types/anguless-angulux-icons-angledoubleup.d.ts +9 -0
  456. package/types/anguless-angulux-icons-angledown.d.ts +9 -0
  457. package/types/anguless-angulux-icons-angleleft.d.ts +9 -0
  458. package/types/anguless-angulux-icons-angleright.d.ts +9 -0
  459. package/types/anguless-angulux-icons-angleup.d.ts +9 -0
  460. package/types/anguless-angulux-icons-arrowdown.d.ts +11 -0
  461. package/types/anguless-angulux-icons-arrowdownleft.d.ts +9 -0
  462. package/types/anguless-angulux-icons-arrowdownright.d.ts +9 -0
  463. package/types/anguless-angulux-icons-arrowleft.d.ts +11 -0
  464. package/types/anguless-angulux-icons-arrowright.d.ts +9 -0
  465. package/types/anguless-angulux-icons-arrowup.d.ts +11 -0
  466. package/types/anguless-angulux-icons-ban.d.ts +11 -0
  467. package/types/anguless-angulux-icons-bars.d.ts +9 -0
  468. package/types/anguless-angulux-icons-baseicon.d.ts +31 -0
  469. package/types/anguless-angulux-icons-blank.d.ts +9 -0
  470. package/types/anguless-angulux-icons-calendar.d.ts +9 -0
  471. package/types/anguless-angulux-icons-caretleft.d.ts +9 -0
  472. package/types/anguless-angulux-icons-caretright.d.ts +9 -0
  473. package/types/anguless-angulux-icons-check.d.ts +9 -0
  474. package/types/anguless-angulux-icons-chevrondown.d.ts +9 -0
  475. package/types/anguless-angulux-icons-chevronleft.d.ts +9 -0
  476. package/types/anguless-angulux-icons-chevronright.d.ts +9 -0
  477. package/types/anguless-angulux-icons-chevronup.d.ts +9 -0
  478. package/types/anguless-angulux-icons-exclamationtriangle.d.ts +11 -0
  479. package/types/anguless-angulux-icons-eye.d.ts +9 -0
  480. package/types/anguless-angulux-icons-eyeslash.d.ts +11 -0
  481. package/types/anguless-angulux-icons-filter.d.ts +11 -0
  482. package/types/anguless-angulux-icons-filterfill.d.ts +9 -0
  483. package/types/anguless-angulux-icons-filterslash.d.ts +11 -0
  484. package/types/anguless-angulux-icons-home.d.ts +11 -0
  485. package/types/anguless-angulux-icons-infocircle.d.ts +11 -0
  486. package/types/anguless-angulux-icons-minus.d.ts +9 -0
  487. package/types/anguless-angulux-icons-pencil.d.ts +11 -0
  488. package/types/anguless-angulux-icons-plus.d.ts +11 -0
  489. package/types/anguless-angulux-icons-refresh.d.ts +11 -0
  490. package/types/anguless-angulux-icons-search.d.ts +11 -0
  491. package/types/anguless-angulux-icons-searchminus.d.ts +11 -0
  492. package/types/anguless-angulux-icons-searchplus.d.ts +11 -0
  493. package/types/anguless-angulux-icons-sortalt.d.ts +11 -0
  494. package/types/anguless-angulux-icons-sortamountdown.d.ts +11 -0
  495. package/types/anguless-angulux-icons-sortamountupalt.d.ts +11 -0
  496. package/types/anguless-angulux-icons-spinner.d.ts +11 -0
  497. package/types/anguless-angulux-icons-star.d.ts +11 -0
  498. package/types/anguless-angulux-icons-starfill.d.ts +11 -0
  499. package/types/anguless-angulux-icons-thlarge.d.ts +11 -0
  500. package/types/anguless-angulux-icons-times.d.ts +9 -0
  501. package/types/anguless-angulux-icons-timescircle.d.ts +11 -0
  502. package/types/anguless-angulux-icons-trash.d.ts +11 -0
  503. package/types/anguless-angulux-icons-undo.d.ts +11 -0
  504. package/types/anguless-angulux-icons-upload.d.ts +11 -0
  505. package/types/anguless-angulux-icons-windowmaximize.d.ts +11 -0
  506. package/types/anguless-angulux-icons-windowminimize.d.ts +11 -0
  507. package/types/anguless-angulux-icons.d.ts +53 -0
  508. package/types/anguless-angulux-inputicon.d.ts +44 -0
  509. package/types/anguless-angulux-inputnumber.d.ts +434 -0
  510. package/types/anguless-angulux-inputtext.d.ts +115 -0
  511. package/types/anguless-angulux-menu.d.ts +362 -0
  512. package/types/anguless-angulux-message.d.ts +211 -0
  513. package/types/anguless-angulux-motion.d.ts +398 -0
  514. package/types/anguless-angulux-multiselect.d.ts +902 -0
  515. package/types/anguless-angulux-overlay.d.ts +355 -0
  516. package/types/anguless-angulux-paginator.d.ts +361 -0
  517. package/types/anguless-angulux-password.d.ts +492 -0
  518. package/types/anguless-angulux-popover.d.ts +202 -0
  519. package/types/anguless-angulux-progressbar.d.ts +122 -0
  520. package/types/anguless-angulux-progressspinner.d.ts +90 -0
  521. package/types/anguless-angulux-radiobutton.d.ts +191 -0
  522. package/types/anguless-angulux-ripple.d.ts +61 -0
  523. package/types/anguless-angulux-scroller.d.ts +450 -0
  524. package/types/anguless-angulux-select.d.ts +790 -0
  525. package/types/anguless-angulux-selectbutton.d.ts +184 -0
  526. package/types/anguless-angulux-skeleton.d.ts +102 -0
  527. package/types/anguless-angulux-splitbutton.d.ts +292 -0
  528. package/types/anguless-angulux-table.d.ts +2087 -0
  529. package/types/anguless-angulux-tabs.d.ts +358 -0
  530. package/types/anguless-angulux-tag.d.ts +113 -0
  531. package/types/anguless-angulux-textarea.d.ts +125 -0
  532. package/types/anguless-angulux-tieredmenu.d.ts +430 -0
  533. package/types/anguless-angulux-timeline.d.ts +139 -0
  534. package/types/anguless-angulux-toast.d.ts +301 -0
  535. package/types/anguless-angulux-togglebutton.d.ts +203 -0
  536. package/types/anguless-angulux-toggleswitch.d.ts +166 -0
  537. package/types/anguless-angulux-tooltip.d.ts +284 -0
  538. package/types/anguless-angulux-treetable.d.ts +1276 -0
  539. package/types/anguless-angulux-ts-helpers.d.ts +6 -0
  540. package/types/anguless-angulux-types-accordion.d.ts +97 -0
  541. package/types/anguless-angulux-types-autocomplete.d.ts +312 -0
  542. package/types/anguless-angulux-types-avatar.d.ts +40 -0
  543. package/types/anguless-angulux-types-avatargroup.d.ts +28 -0
  544. package/types/anguless-angulux-types-badge.d.ts +26 -0
  545. package/types/anguless-angulux-types-blockui.d.ts +39 -0
  546. package/types/anguless-angulux-types-breadcrumb.d.ts +96 -0
  547. package/types/anguless-angulux-types-button.d.ts +124 -0
  548. package/types/anguless-angulux-types-card.d.ts +75 -0
  549. package/types/anguless-angulux-types-carousel.d.ts +143 -0
  550. package/types/anguless-angulux-types-cascadeselect.d.ts +215 -0
  551. package/types/anguless-angulux-types-chart.d.ts +32 -0
  552. package/types/anguless-angulux-types-checkbox.d.ts +81 -0
  553. package/types/anguless-angulux-types-chip.d.ts +71 -0
  554. package/types/anguless-angulux-types-colorpicker.d.ts +78 -0
  555. package/types/anguless-angulux-types-confirmdialog.d.ts +147 -0
  556. package/types/anguless-angulux-types-confirmpopup.d.ts +105 -0
  557. package/types/anguless-angulux-types-contextmenu.d.ts +102 -0
  558. package/types/anguless-angulux-types-dataview.d.ts +253 -0
  559. package/types/anguless-angulux-types-datepicker.d.ts +521 -0
  560. package/types/anguless-angulux-types-dialog.d.ts +107 -0
  561. package/types/anguless-angulux-types-divider.d.ts +28 -0
  562. package/types/anguless-angulux-types-dock.d.ts +70 -0
  563. package/types/anguless-angulux-types-drawer.d.ts +82 -0
  564. package/types/anguless-angulux-types-editor.d.ts +210 -0
  565. package/types/anguless-angulux-types-fieldset.d.ts +101 -0
  566. package/types/anguless-angulux-types-fileupload.d.ts +360 -0
  567. package/types/anguless-angulux-types-floatlabel.d.ts +26 -0
  568. package/types/anguless-angulux-types-fluid.d.ts +28 -0
  569. package/types/anguless-angulux-types-galleria.d.ts +250 -0
  570. package/types/anguless-angulux-types-iconfield.d.ts +26 -0
  571. package/types/anguless-angulux-types-iftalabel.d.ts +26 -0
  572. package/types/anguless-angulux-types-image.d.ts +144 -0
  573. package/types/anguless-angulux-types-imagecompare.d.ts +43 -0
  574. package/types/anguless-angulux-types-inplace.d.ts +72 -0
  575. package/types/anguless-angulux-types-inputgroup.d.ts +28 -0
  576. package/types/anguless-angulux-types-inputgroupaddon.d.ts +28 -0
  577. package/types/anguless-angulux-types-inputicon.d.ts +26 -0
  578. package/types/anguless-angulux-types-inputmask.d.ts +56 -0
  579. package/types/anguless-angulux-types-inputnumber.d.ts +95 -0
  580. package/types/anguless-angulux-types-inputotp.d.ts +101 -0
  581. package/types/anguless-angulux-types-inputtext.d.ts +24 -0
  582. package/types/anguless-angulux-types-knob.d.ts +40 -0
  583. package/types/anguless-angulux-types-listbox.d.ts +359 -0
  584. package/types/anguless-angulux-types-megamenu.d.ts +138 -0
  585. package/types/anguless-angulux-types-menu.d.ts +114 -0
  586. package/types/anguless-angulux-types-menubar.d.ts +124 -0
  587. package/types/anguless-angulux-types-message.d.ts +87 -0
  588. package/types/anguless-angulux-types-metergroup.d.ts +176 -0
  589. package/types/anguless-angulux-types-motion.d.ts +26 -0
  590. package/types/anguless-angulux-types-multiselect.d.ts +414 -0
  591. package/types/anguless-angulux-types-orderlist.d.ts +173 -0
  592. package/types/anguless-angulux-types-organizationchart.d.ts +138 -0
  593. package/types/anguless-angulux-types-overlay.d.ts +60 -0
  594. package/types/anguless-angulux-types-overlaybadge.d.ts +34 -0
  595. package/types/anguless-angulux-types-paginator.d.ts +167 -0
  596. package/types/anguless-angulux-types-panel.d.ts +129 -0
  597. package/types/anguless-angulux-types-panelmenu.d.ts +131 -0
  598. package/types/anguless-angulux-types-password.d.ts +120 -0
  599. package/types/anguless-angulux-types-picklist.d.ts +348 -0
  600. package/types/anguless-angulux-types-popover.d.ts +59 -0
  601. package/types/anguless-angulux-types-progressbar.d.ts +58 -0
  602. package/types/anguless-angulux-types-progressspinner.d.ts +36 -0
  603. package/types/anguless-angulux-types-radiobutton.d.ts +51 -0
  604. package/types/anguless-angulux-types-rating.d.ts +94 -0
  605. package/types/anguless-angulux-types-scroller.d.ts +231 -0
  606. package/types/anguless-angulux-types-scrollpanel.d.ts +51 -0
  607. package/types/anguless-angulux-types-scrolltop.d.ts +61 -0
  608. package/types/anguless-angulux-types-select.d.ts +319 -0
  609. package/types/anguless-angulux-types-selectbutton.d.ts +92 -0
  610. package/types/anguless-angulux-types-skeleton.d.ts +28 -0
  611. package/types/anguless-angulux-types-slider.d.ts +78 -0
  612. package/types/anguless-angulux-types-speeddial.d.ts +100 -0
  613. package/types/anguless-angulux-types-splitbutton.d.ts +70 -0
  614. package/types/anguless-angulux-types-splitter.d.ts +70 -0
  615. package/types/anguless-angulux-types-stepper.d.ts +162 -0
  616. package/types/anguless-angulux-types-table.d.ts +893 -0
  617. package/types/anguless-angulux-types-tabs.d.ts +119 -0
  618. package/types/anguless-angulux-types-tag.d.ts +47 -0
  619. package/types/anguless-angulux-types-terminal.d.ts +60 -0
  620. package/types/anguless-angulux-types-textarea.d.ts +28 -0
  621. package/types/anguless-angulux-types-tieredmenu.d.ts +95 -0
  622. package/types/anguless-angulux-types-timeline.d.ts +85 -0
  623. package/types/anguless-angulux-types-toast.d.ts +131 -0
  624. package/types/anguless-angulux-types-togglebutton.d.ts +86 -0
  625. package/types/anguless-angulux-types-toggleswitch.d.ts +73 -0
  626. package/types/anguless-angulux-types-toolbar.d.ts +55 -0
  627. package/types/anguless-angulux-types-tooltip.d.ts +32 -0
  628. package/types/anguless-angulux-types-tree.d.ts +342 -0
  629. package/types/anguless-angulux-types-treeselect.d.ts +251 -0
  630. package/types/anguless-angulux-types-treetable.d.ts +629 -0
  631. package/types/anguless-angulux-usestyle.d.ts +15 -0
  632. package/types/anguless-angulux-utils.d.ts +43 -0
  633. package/types/anguless-angulux.d.ts +2 -0
@@ -0,0 +1,2712 @@
1
+ export * from '@anguless/angulux/types/multiselect';
2
+ import * as i1 from '@angular/common';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from '@angular/core';
5
+ import { Injectable, InjectionToken, forwardRef, inject, EventEmitter, booleanAttribute, numberAttribute, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, input, signal, computed, effect, ContentChildren, ContentChild, ViewChild, NgModule } from '@angular/core';
6
+ import * as i2 from '@angular/forms';
7
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
8
+ import { deepEquals, isNotEmpty, isArray, uuid, equals, focus, findLastIndex, resolveFieldData, isPrintableCharacter, getFirstFocusableElement, getLastFocusableElement, findSingle, getFocusableElements } from '@anguless/angulux-utils';
9
+ import * as i3 from '@anguless/angulux/api';
10
+ import { SharedModule, TranslationKeys, Footer, Header, AglTemplate } from '@anguless/angulux/api';
11
+ import { AutoFocus } from '@anguless/angulux/autofocus';
12
+ import { BaseComponent, PARENT_INSTANCE } from '@anguless/angulux/basecomponent';
13
+ import { BaseEditableHolder } from '@anguless/angulux/baseeditableholder';
14
+ import * as i4 from '@anguless/angulux/bind';
15
+ import { Bind, BindModule } from '@anguless/angulux/bind';
16
+ import { Checkbox } from '@anguless/angulux/checkbox';
17
+ import { Chip } from '@anguless/angulux/chip';
18
+ import { DomHandler, unblockBodyScroll } from '@anguless/angulux/dom';
19
+ import { Fluid } from '@anguless/angulux/fluid';
20
+ import { IconField } from '@anguless/angulux/iconfield';
21
+ import { CheckIcon, SearchIcon, SpinnerIcon, TimesIcon, ChevronDownIcon } from '@anguless/angulux/icons';
22
+ import { InputIcon } from '@anguless/angulux/inputicon';
23
+ import { InputText } from '@anguless/angulux/inputtext';
24
+ import { Overlay } from '@anguless/angulux/overlay';
25
+ import { Scroller } from '@anguless/angulux/scroller';
26
+ import { Tooltip } from '@anguless/angulux/tooltip';
27
+ import { ObjectUtils } from '@anguless/angulux/utils';
28
+ import { style as style$1 } from '@anguless/angulux-styles/multiselect';
29
+ import { BaseStyle } from '@anguless/angulux/base';
30
+
31
+ const style = /*css*/ `
32
+ ${style$1}
33
+
34
+ /* For AnguluxConfig */
35
+ .p-multiselect.ng-invalid.ng-dirty {
36
+ border-color: dt('multiselect.invalid.border.color');
37
+ }
38
+ p-multiSelect.ng-invalid.ng-dirty .p-multiselect-label.p-placeholder,
39
+ p-multi-select.ng-invalid.ng-dirty .p-multiselect-label.p-placeholder,
40
+ p-multiselect.ng-invalid.ng-dirty .p-multiselect-label.p-placeholder {
41
+ color: dt('multiselect.invalid.placeholder.color');
42
+ }
43
+ `;
44
+ const inlineStyles = {
45
+ root: ({ instance }) => ({ position: instance.$appendTo() === 'self' ? 'relative' : undefined })
46
+ };
47
+ const classes = {
48
+ root: ({ instance }) => [
49
+ 'p-multiselect p-component p-inputwrapper',
50
+ {
51
+ 'p-multiselect p-component p-inputwrapper': true,
52
+ 'p-multiselect-display-chip': instance.display === 'chip',
53
+ 'p-disabled': instance.$disabled(),
54
+ 'p-invalid': instance.invalid(),
55
+ 'p-variant-filled': instance.$variant() === 'filled',
56
+ 'p-focus': instance.focused,
57
+ 'p-inputwrapper-filled': instance.$filled(),
58
+ 'p-inputwrapper-focus': instance.focused || instance.overlayVisible,
59
+ 'p-multiselect-open': instance.overlayVisible,
60
+ 'p-multiselect-fluid': instance.hasFluid,
61
+ 'p-multiselect-sm p-inputfield-sm': instance.size() === 'small',
62
+ 'p-multiselect-lg p-inputfield-lg': instance.size() === 'large'
63
+ }
64
+ ],
65
+ labelContainer: 'p-multiselect-label-container',
66
+ label: ({ instance }) => ({
67
+ 'p-multiselect-label': true,
68
+ 'p-placeholder': instance.label() === instance.placeholder(),
69
+ 'p-multiselect-label-empty': !instance.placeholder() && !instance.defaultLabel && (!instance.modelValue() || instance.modelValue().length === 0)
70
+ }),
71
+ chipItem: 'p-multiselect-chip-item',
72
+ pcChip: 'p-multiselect-chip',
73
+ chipIcon: 'p-multiselect-chip-icon',
74
+ dropdown: 'p-multiselect-dropdown',
75
+ loadingIcon: 'p-multiselect-loading-icon',
76
+ dropdownIcon: 'p-multiselect-dropdown-icon',
77
+ overlay: 'p-multiselect-overlay p-component-overlay p-component',
78
+ header: 'p-multiselect-header',
79
+ pcFilterContainer: 'p-multiselect-filter-container',
80
+ pcFilter: 'p-multiselect-filter',
81
+ listContainer: 'p-multiselect-list-container',
82
+ list: 'p-multiselect-list',
83
+ optionGroup: 'p-multiselect-option-group',
84
+ option: ({ instance }) => ({
85
+ 'p-multiselect-option': true,
86
+ 'p-multiselect-option-selected': instance.selected && instance.highlightOnSelect,
87
+ 'p-disabled': instance.disabled,
88
+ 'p-focus': instance.focused
89
+ }),
90
+ emptyMessage: 'p-multiselect-empty-message',
91
+ clearIcon: 'p-multiselect-clear-icon'
92
+ };
93
+ class MultiSelectStyle extends BaseStyle {
94
+ name = 'multiselect';
95
+ style = style;
96
+ classes = classes;
97
+ inlineStyles = inlineStyles;
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
99
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectStyle });
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectStyle, decorators: [{
102
+ type: Injectable
103
+ }] });
104
+ /**
105
+ *
106
+ * MultiSelect is used to select multiple items from a collection.
107
+ *
108
+ * @module multiselectstyle
109
+ *
110
+ */
111
+ var MultiSelectClasses;
112
+ (function (MultiSelectClasses) {
113
+ /**
114
+ * Class name of the root element
115
+ */
116
+ MultiSelectClasses["root"] = "p-multiselect";
117
+ /**
118
+ * Class name of the label container element
119
+ */
120
+ MultiSelectClasses["labelContainer"] = "p-multiselect-label-container";
121
+ /**
122
+ * Class name of the label element
123
+ */
124
+ MultiSelectClasses["label"] = "p-multiselect-label";
125
+ /**
126
+ * Class name of the chip item element
127
+ */
128
+ MultiSelectClasses["chipItem"] = "p-multiselect-chip-item";
129
+ /**
130
+ * Class name of the chip element
131
+ */
132
+ MultiSelectClasses["pcChip"] = "p-multiselect-chip";
133
+ /**
134
+ * Class name of the chip icon element
135
+ */
136
+ MultiSelectClasses["chipIcon"] = "p-multiselect-chip-icon";
137
+ /**
138
+ * Class name of the dropdown element
139
+ */
140
+ MultiSelectClasses["dropdown"] = "p-multiselect-dropdown";
141
+ /**
142
+ * Class name of the loading icon element
143
+ */
144
+ MultiSelectClasses["loadingIcon"] = "p-multiselect-loading-icon";
145
+ /**
146
+ * Class name of the dropdown icon element
147
+ */
148
+ MultiSelectClasses["dropdownIcon"] = "p-multiselect-dropdown-icon";
149
+ /**
150
+ * Class name of the overlay element
151
+ */
152
+ MultiSelectClasses["overlay"] = "p-multiselect-overlay";
153
+ /**
154
+ * Class name of the header element
155
+ */
156
+ MultiSelectClasses["header"] = "p-multiselect-header";
157
+ /**
158
+ * Class name of the filter container element
159
+ */
160
+ MultiSelectClasses["pcFilterContainer"] = "p-multiselect-filter-container";
161
+ /**
162
+ * Class name of the filter element
163
+ */
164
+ MultiSelectClasses["pcFilter"] = "p-multiselect-filter";
165
+ /**
166
+ * Class name of the list container element
167
+ */
168
+ MultiSelectClasses["listContainer"] = "p-multiselect-list-container";
169
+ /**
170
+ * Class name of the list element
171
+ */
172
+ MultiSelectClasses["list"] = "p-multiselect-list";
173
+ /**
174
+ * Class name of the option group element
175
+ */
176
+ MultiSelectClasses["optionGroup"] = "p-multiselect-option-group";
177
+ /**
178
+ * Class name of the option element
179
+ */
180
+ MultiSelectClasses["option"] = "p-multiselect-option";
181
+ /**
182
+ * Class name of the empty message element
183
+ */
184
+ MultiSelectClasses["emptyMessage"] = "p-multiselect-empty-message";
185
+ /**
186
+ * Class name of the clear icon
187
+ */
188
+ MultiSelectClasses["clearIcon"] = "p-autocomplete-clear-icon";
189
+ })(MultiSelectClasses || (MultiSelectClasses = {}));
190
+
191
+ const MULTISELECT_INSTANCE = new InjectionToken('MULTISELECT_INSTANCE');
192
+ const MULTISELECT_ITEM_INSTANCE = new InjectionToken('MULTISELECT_ITEM_INSTANCE');
193
+ const MULTISELECT_VALUE_ACCESSOR = {
194
+ provide: NG_VALUE_ACCESSOR,
195
+ useExisting: forwardRef(() => MultiSelect),
196
+ multi: true
197
+ };
198
+ class MultiSelectItem extends BaseComponent {
199
+ $pcMultiSelectItem = inject(MULTISELECT_ITEM_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
200
+ hostName = 'MultiSelect';
201
+ getPTOptions(key) {
202
+ return this.ptm(key, {
203
+ context: {
204
+ selected: this.selected,
205
+ focused: this.focused,
206
+ disabled: this.disabled
207
+ }
208
+ });
209
+ }
210
+ option;
211
+ selected;
212
+ label;
213
+ disabled;
214
+ itemSize;
215
+ focused;
216
+ ariaPosInset;
217
+ ariaSetSize;
218
+ variant;
219
+ template;
220
+ checkIconTemplate;
221
+ itemCheckboxIconTemplate;
222
+ highlightOnSelect;
223
+ onClick = new EventEmitter();
224
+ onMouseEnter = new EventEmitter();
225
+ _componentStyle = inject(MultiSelectStyle);
226
+ onOptionClick(event) {
227
+ this.onClick.emit({
228
+ originalEvent: event,
229
+ option: this.option,
230
+ selected: this.selected
231
+ });
232
+ event.stopPropagation();
233
+ event.preventDefault();
234
+ }
235
+ onOptionMouseEnter(event) {
236
+ this.onMouseEnter.emit({
237
+ originalEvent: event,
238
+ option: this.option,
239
+ selected: this.selected
240
+ });
241
+ }
242
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
243
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.8", type: MultiSelectItem, isStandalone: true, selector: "li[aglMultiSelectItem]", inputs: { option: "option", selected: ["selected", "selected", booleanAttribute], label: "label", disabled: ["disabled", "disabled", booleanAttribute], itemSize: ["itemSize", "itemSize", numberAttribute], focused: ["focused", "focused", booleanAttribute], ariaPosInset: "ariaPosInset", ariaSetSize: "ariaSetSize", variant: "variant", template: "template", checkIconTemplate: "checkIconTemplate", itemCheckboxIconTemplate: "itemCheckboxIconTemplate", highlightOnSelect: ["highlightOnSelect", "highlightOnSelect", booleanAttribute] }, outputs: { onClick: "onClick", onMouseEnter: "onMouseEnter" }, host: { attributes: { "role": "option" }, listeners: { "click": "onOptionClick($event)", "mouseenter": "onOptionMouseEnter($event)" }, properties: { "style.height.px": "itemSize", "attr.aria-label": "label", "attr.aria-setsize": "ariaSetSize", "attr.aria-posinset": "ariaPosInset", "attr.aria-selected": "selected", "attr.data-p-selected": "selected", "attr.data-p-focused": "focused", "attr.data-p-highlight": "selected", "attr.data-p-disabled": "disabled", "attr.aria-checked": "selected", "class": "cx('option')" } }, providers: [MultiSelectStyle], usesInheritance: true, ngImport: i0, template: `
244
+ <agl-checkbox [ngModel]="selected" [binary]="true" [tabindex]="-1" [variant]="variant" [ariaLabel]="label" [pt]="getPTOptions('pcOptionCheckbox')" [unstyled]="unstyled()">
245
+ <ng-container *ngIf="itemCheckboxIconTemplate">
246
+ <ng-template #icon let-klass="class">
247
+ <ng-template *ngTemplateOutlet="itemCheckboxIconTemplate; context: { checked: selected, class: klass }"></ng-template>
248
+ </ng-template>
249
+ </ng-container>
250
+ </agl-checkbox>
251
+ <span *ngIf="!template">{{ label ?? 'empty' }}</span>
252
+ <ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
253
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Checkbox, selector: "agl-checkbox, agl-checkBox, agl-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
254
+ }
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectItem, decorators: [{
256
+ type: Component,
257
+ args: [{
258
+ changeDetection: ChangeDetectionStrategy.Eager,
259
+ selector: 'li[aglMultiSelectItem]',
260
+ standalone: true,
261
+ imports: [CommonModule, Checkbox, FormsModule, SharedModule],
262
+ template: `
263
+ <agl-checkbox [ngModel]="selected" [binary]="true" [tabindex]="-1" [variant]="variant" [ariaLabel]="label" [pt]="getPTOptions('pcOptionCheckbox')" [unstyled]="unstyled()">
264
+ <ng-container *ngIf="itemCheckboxIconTemplate">
265
+ <ng-template #icon let-klass="class">
266
+ <ng-template *ngTemplateOutlet="itemCheckboxIconTemplate; context: { checked: selected, class: klass }"></ng-template>
267
+ </ng-template>
268
+ </ng-container>
269
+ </agl-checkbox>
270
+ <span *ngIf="!template">{{ label ?? 'empty' }}</span>
271
+ <ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
272
+ `,
273
+ encapsulation: ViewEncapsulation.None,
274
+ providers: [MultiSelectStyle],
275
+ host: {
276
+ '[style.height.px]': 'itemSize',
277
+ '[attr.aria-label]': 'label',
278
+ role: 'option',
279
+ '[attr.aria-setsize]': 'ariaSetSize',
280
+ '[attr.aria-posinset]': 'ariaPosInset',
281
+ '[attr.aria-selected]': 'selected',
282
+ '[attr.data-p-selected]': 'selected',
283
+ '[attr.data-p-focused]': 'focused',
284
+ '[attr.data-p-highlight]': 'selected',
285
+ '[attr.data-p-disabled]': 'disabled',
286
+ '[attr.aria-checked]': 'selected',
287
+ '(click)': 'onOptionClick($event)',
288
+ '(mouseenter)': 'onOptionMouseEnter($event)',
289
+ '[class]': "cx('option')"
290
+ }
291
+ }]
292
+ }], propDecorators: { option: [{
293
+ type: Input
294
+ }], selected: [{
295
+ type: Input,
296
+ args: [{ transform: booleanAttribute }]
297
+ }], label: [{
298
+ type: Input
299
+ }], disabled: [{
300
+ type: Input,
301
+ args: [{ transform: booleanAttribute }]
302
+ }], itemSize: [{
303
+ type: Input,
304
+ args: [{ transform: numberAttribute }]
305
+ }], focused: [{
306
+ type: Input,
307
+ args: [{ transform: booleanAttribute }]
308
+ }], ariaPosInset: [{
309
+ type: Input
310
+ }], ariaSetSize: [{
311
+ type: Input
312
+ }], variant: [{
313
+ type: Input
314
+ }], template: [{
315
+ type: Input
316
+ }], checkIconTemplate: [{
317
+ type: Input
318
+ }], itemCheckboxIconTemplate: [{
319
+ type: Input
320
+ }], highlightOnSelect: [{
321
+ type: Input,
322
+ args: [{ transform: booleanAttribute }]
323
+ }], onClick: [{
324
+ type: Output
325
+ }], onMouseEnter: [{
326
+ type: Output
327
+ }] } });
328
+ /**
329
+ * MultiSelect is used to select multiple items from a collection.
330
+ * @group Components
331
+ */
332
+ class MultiSelect extends BaseEditableHolder {
333
+ zone;
334
+ filterService;
335
+ overlayService;
336
+ componentName = 'MultiSelect';
337
+ /**
338
+ * Unique identifier of the component
339
+ * @group Props
340
+ */
341
+ id;
342
+ /**
343
+ * Defines a string that labels the input for accessibility.
344
+ * @group Props
345
+ */
346
+ ariaLabel;
347
+ /**
348
+ * Style class of the element.
349
+ * @deprecated since v20.0.0, use `class` instead.
350
+ * @group Props
351
+ */
352
+ styleClass;
353
+ /**
354
+ * Inline style of the overlay panel.
355
+ * @group Props
356
+ */
357
+ panelStyle;
358
+ /**
359
+ * Style class of the overlay panel element.
360
+ * @group Props
361
+ */
362
+ panelStyleClass;
363
+ /**
364
+ * Identifier of the focus input to match a label defined for the component.
365
+ * @group Props
366
+ */
367
+ inputId;
368
+ /**
369
+ * When present, it specifies that the component cannot be edited.
370
+ * @group Props
371
+ */
372
+ readonly;
373
+ /**
374
+ * Whether to display options as grouped when nested options are provided.
375
+ * @group Props
376
+ */
377
+ group;
378
+ /**
379
+ * When specified, displays an input field to filter the items on keyup.
380
+ * @group Props
381
+ */
382
+ filter = true;
383
+ /**
384
+ * Defines placeholder of the filter input.
385
+ * @group Props
386
+ */
387
+ filterPlaceHolder;
388
+ /**
389
+ * Locale to use in filtering. The default locale is the host environment's current locale.
390
+ * @group Props
391
+ */
392
+ filterLocale;
393
+ /**
394
+ * Specifies the visibility of the options panel.
395
+ * @group Props
396
+ */
397
+ overlayVisible = false;
398
+ /**
399
+ * Index of the element in tabbing order.
400
+ * @group Props
401
+ */
402
+ tabindex = 0;
403
+ /**
404
+ * A property to uniquely identify a value in options.
405
+ * @group Props
406
+ */
407
+ dataKey;
408
+ /**
409
+ * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
410
+ * @group Props
411
+ */
412
+ ariaLabelledBy;
413
+ /**
414
+ * Whether to show labels of selected item labels or use default label.
415
+ * @group Props
416
+ * @defaultValue true
417
+ */
418
+ set displaySelectedLabel(val) {
419
+ this._displaySelectedLabel = val;
420
+ }
421
+ get displaySelectedLabel() {
422
+ return this._displaySelectedLabel;
423
+ }
424
+ /**
425
+ * Decides how many selected item labels to show at most.
426
+ * @group Props
427
+ * @defaultValue 3
428
+ */
429
+ set maxSelectedLabels(val) {
430
+ this._maxSelectedLabels = val;
431
+ }
432
+ get maxSelectedLabels() {
433
+ return this._maxSelectedLabels;
434
+ }
435
+ /**
436
+ * Maximum number of selectable items.
437
+ * @group Props
438
+ */
439
+ selectionLimit;
440
+ /**
441
+ * Label to display after exceeding max selected labels e.g. ({0} items selected), defaults "ellipsis" keyword to indicate a text-overflow.
442
+ * @group Props
443
+ */
444
+ selectedItemsLabel;
445
+ /**
446
+ * Whether to show the checkbox at header to toggle all items at once.
447
+ * @group Props
448
+ */
449
+ showToggleAll = true;
450
+ /**
451
+ * Text to display when filtering does not return any results.
452
+ * @group Props
453
+ */
454
+ emptyFilterMessage = '';
455
+ /**
456
+ * Text to display when there is no data. Defaults to global value in i18n translation configuration.
457
+ * @group Props
458
+ */
459
+ emptyMessage = '';
460
+ /**
461
+ * Clears the filter value when hiding the dropdown.
462
+ * @group Props
463
+ */
464
+ resetFilterOnHide = false;
465
+ /**
466
+ * Icon class of the dropdown icon.
467
+ * @group Props
468
+ */
469
+ dropdownIcon;
470
+ /**
471
+ * Icon class of the chip icon.
472
+ * @group Props
473
+ */
474
+ chipIcon;
475
+ /**
476
+ * Name of the label field of an option.
477
+ * @group Props
478
+ */
479
+ optionLabel;
480
+ /**
481
+ * Name of the value field of an option.
482
+ * @group Props
483
+ */
484
+ optionValue;
485
+ /**
486
+ * Name of the disabled field of an option.
487
+ * @group Props
488
+ */
489
+ optionDisabled;
490
+ /**
491
+ * Name of the label field of an option group.
492
+ * @group Props
493
+ */
494
+ optionGroupLabel = 'label';
495
+ /**
496
+ * Name of the options field of an option group.
497
+ * @group Props
498
+ */
499
+ optionGroupChildren = 'items';
500
+ /**
501
+ * Whether to show the header.
502
+ * @group Props
503
+ */
504
+ showHeader = true;
505
+ /**
506
+ * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.
507
+ * @group Props
508
+ */
509
+ filterBy;
510
+ /**
511
+ * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.
512
+ * @group Props
513
+ */
514
+ scrollHeight = '200px';
515
+ /**
516
+ * Defines if data is loaded and interacted with in lazy manner.
517
+ * @group Props
518
+ */
519
+ lazy = false;
520
+ /**
521
+ * Whether the data should be loaded on demand during scroll.
522
+ * @group Props
523
+ */
524
+ virtualScroll;
525
+ /**
526
+ * Whether the multiselect is in loading state.
527
+ * @group Props
528
+ */
529
+ loading = false;
530
+ /**
531
+ * Height of an item in the list for VirtualScrolling.
532
+ * @group Props
533
+ */
534
+ virtualScrollItemSize;
535
+ /**
536
+ * Icon to display in loading state.
537
+ * @group Props
538
+ */
539
+ loadingIcon;
540
+ /**
541
+ * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
542
+ * @group Props
543
+ */
544
+ virtualScrollOptions;
545
+ /**
546
+ * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.
547
+ * @group Props
548
+ */
549
+ overlayOptions;
550
+ /**
551
+ * Defines a string that labels the filter input.
552
+ * @group Props
553
+ */
554
+ ariaFilterLabel;
555
+ /**
556
+ * Defines how the items are filtered.
557
+ * @group Props
558
+ */
559
+ filterMatchMode = 'contains';
560
+ /**
561
+ * Advisory information to display in a tooltip on hover.
562
+ * @group Props
563
+ */
564
+ tooltip = '';
565
+ /**
566
+ * Position of the tooltip.
567
+ * @group Props
568
+ */
569
+ tooltipPosition = 'right';
570
+ /**
571
+ * Type of CSS position.
572
+ * @group Props
573
+ */
574
+ tooltipPositionStyle = 'absolute';
575
+ /**
576
+ * Style class of the tooltip.
577
+ * @group Props
578
+ */
579
+ tooltipStyleClass;
580
+ /**
581
+ * Applies focus to the filter element when the overlay is shown.
582
+ * @group Props
583
+ */
584
+ autofocusFilter = false;
585
+ /**
586
+ * Defines how the selected items are displayed.
587
+ * @group Props
588
+ */
589
+ display = 'comma';
590
+ /**
591
+ * Defines the autocomplete is active.
592
+ * @group Props
593
+ */
594
+ autocomplete = 'off';
595
+ /**
596
+ * When enabled, a clear icon is displayed to clear the value.
597
+ * @group Props
598
+ */
599
+ showClear = false;
600
+ /**
601
+ * When present, it specifies that the component should automatically get focus on load.
602
+ * @group Props
603
+ */
604
+ autofocus;
605
+ /**
606
+ * Label to display when there are no selections.
607
+ * @group Props
608
+ */
609
+ set placeholder(val) {
610
+ this._placeholder.set(val);
611
+ }
612
+ get placeholder() {
613
+ return this._placeholder.asReadonly();
614
+ }
615
+ /**
616
+ * An array of objects to display as the available options.
617
+ * @group Props
618
+ */
619
+ get options() {
620
+ return this._options();
621
+ }
622
+ set options(val) {
623
+ if (!deepEquals(this._options(), val)) {
624
+ this._options.set(val || []);
625
+ }
626
+ }
627
+ /**
628
+ * When specified, filter displays with this value.
629
+ * @group Props
630
+ */
631
+ get filterValue() {
632
+ return this._filterValue();
633
+ }
634
+ set filterValue(val) {
635
+ this._filterValue.set(val);
636
+ }
637
+ /**
638
+ * Whether all data is selected.
639
+ * @group Props
640
+ */
641
+ get selectAll() {
642
+ return this._selectAll;
643
+ }
644
+ set selectAll(value) {
645
+ this._selectAll = value;
646
+ }
647
+ /**
648
+ * Indicates whether to focus on options when hovering over them, defaults to optionLabel.
649
+ * @group Props
650
+ */
651
+ focusOnHover = true;
652
+ /**
653
+ * Fields used when filtering the options, defaults to optionLabel.
654
+ * @group Props
655
+ */
656
+ filterFields;
657
+ /**
658
+ * Determines if the option will be selected on focus.
659
+ * @group Props
660
+ */
661
+ selectOnFocus = false;
662
+ /**
663
+ * Whether to focus on the first visible or selected element when the overlay panel is shown.
664
+ * @group Props
665
+ */
666
+ autoOptionFocus = false;
667
+ /**
668
+ * Whether the selected option will be add highlight class.
669
+ * @group Props
670
+ */
671
+ highlightOnSelect = true;
672
+ /**
673
+ * Specifies the size of the component.
674
+ * @defaultValue undefined
675
+ * @group Props
676
+ */
677
+ size = input(/* @ts-ignore */
678
+ ...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
679
+ /**
680
+ * Specifies the input variant of the component.
681
+ * @defaultValue undefined
682
+ * @group Props
683
+ */
684
+ variant = input(/* @ts-ignore */
685
+ ...(ngDevMode ? [undefined, { debugName: "variant" }] : /* istanbul ignore next */ []));
686
+ /**
687
+ * Spans 100% width of the container when enabled.
688
+ * @defaultValue undefined
689
+ * @group Props
690
+ */
691
+ fluid = input(undefined, { ...(ngDevMode ? { debugName: "fluid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
692
+ /**
693
+ * Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
694
+ * @defaultValue 'self'
695
+ * @group Props
696
+ */
697
+ appendTo = input(undefined, /* @ts-ignore */
698
+ ...(ngDevMode ? [{ debugName: "appendTo" }] : /* istanbul ignore next */ []));
699
+ /**
700
+ * The motion options.
701
+ * @group Props
702
+ */
703
+ motionOptions = input(undefined, /* @ts-ignore */
704
+ ...(ngDevMode ? [{ debugName: "motionOptions" }] : /* istanbul ignore next */ []));
705
+ /**
706
+ * Callback to invoke when value changes.
707
+ * @param {MultiSelectChangeEvent} event - Custom change event.
708
+ * @group Emits
709
+ */
710
+ onChange = new EventEmitter();
711
+ /**
712
+ * Callback to invoke when data is filtered.
713
+ * @param {MultiSelectFilterEvent} event - Custom filter event.
714
+ * @group Emits
715
+ */
716
+ onFilter = new EventEmitter();
717
+ /**
718
+ * Callback to invoke when multiselect receives focus.
719
+ * @param {MultiSelectFocusEvent} event - Custom focus event.
720
+ * @group Emits
721
+ */
722
+ onFocus = new EventEmitter();
723
+ /**
724
+ * Callback to invoke when multiselect loses focus.
725
+ * @param {MultiSelectBlurEvent} event - Custom blur event.
726
+ * @group Emits
727
+ */
728
+ onBlur = new EventEmitter();
729
+ /**
730
+ * Callback to invoke when component is clicked.
731
+ * @param {Event} event - Browser event.
732
+ * @group Emits
733
+ */
734
+ onClick = new EventEmitter();
735
+ /**
736
+ * Callback to invoke when input field is cleared.
737
+ * @group Emits
738
+ */
739
+ onClear = new EventEmitter();
740
+ /**
741
+ * Callback to invoke when overlay panel becomes visible.
742
+ * @param {AnimationEvent} event - Animation event.
743
+ * @group Emits
744
+ */
745
+ onPanelShow = new EventEmitter();
746
+ /**
747
+ * Callback to invoke when overlay panel becomes hidden.
748
+ * @param {AnimationEvent} event - Animation event.
749
+ * @group Emits
750
+ */
751
+ onPanelHide = new EventEmitter();
752
+ /**
753
+ * Callback to invoke in lazy mode to load new data.
754
+ * @param {MultiSelectLazyLoadEvent} event - Lazy load event.
755
+ * @group Emits
756
+ */
757
+ onLazyLoad = new EventEmitter();
758
+ /**
759
+ * Callback to invoke in lazy mode to load new data.
760
+ * @param {MultiSelectRemoveEvent} event - Remove event.
761
+ * @group Emits
762
+ */
763
+ onRemove = new EventEmitter();
764
+ /**
765
+ * Callback to invoke when all data is selected.
766
+ * @param {MultiSelectSelectAllChangeEvent} event - Custom select event.
767
+ * @group Emits
768
+ */
769
+ onSelectAllChange = new EventEmitter();
770
+ overlayViewChild;
771
+ filterInputChild;
772
+ focusInputViewChild;
773
+ itemsViewChild;
774
+ scroller;
775
+ lastHiddenFocusableElementOnOverlay;
776
+ firstHiddenFocusableElementOnOverlay;
777
+ headerCheckboxViewChild;
778
+ footerFacet;
779
+ headerFacet;
780
+ _componentStyle = inject(MultiSelectStyle);
781
+ bindDirectiveInstance = inject(Bind, { self: true });
782
+ searchValue;
783
+ searchTimeout;
784
+ _selectAll = null;
785
+ _placeholder = signal(undefined, /* @ts-ignore */
786
+ ...(ngDevMode ? [{ debugName: "_placeholder" }] : /* istanbul ignore next */ []));
787
+ _disableTooltip = false;
788
+ value;
789
+ _filteredOptions;
790
+ focus;
791
+ filtered;
792
+ /**
793
+ * Custom item template.
794
+ * @group Templates
795
+ */
796
+ itemTemplate;
797
+ /**
798
+ * Custom group template.
799
+ * @group Templates
800
+ */
801
+ groupTemplate;
802
+ /**
803
+ * Custom loader template.
804
+ * @group Templates
805
+ */
806
+ loaderTemplate;
807
+ /**
808
+ * Custom header template.
809
+ * @group Templates
810
+ */
811
+ headerTemplate;
812
+ /**
813
+ * Custom filter template.
814
+ * @group Templates
815
+ */
816
+ filterTemplate;
817
+ /**
818
+ * Custom footer template.
819
+ * @group Templates
820
+ */
821
+ footerTemplate;
822
+ /**
823
+ * Custom empty filter template.
824
+ * @group Templates
825
+ */
826
+ emptyFilterTemplate;
827
+ /**
828
+ * Custom empty template.
829
+ * @group Templates
830
+ */
831
+ emptyTemplate;
832
+ /**
833
+ * Custom selected items template.
834
+ * @group Templates
835
+ */
836
+ selectedItemsTemplate;
837
+ /**
838
+ * Custom loading icon template.
839
+ * @group Templates
840
+ */
841
+ loadingIconTemplate;
842
+ /**
843
+ * Custom filter icon template.
844
+ * @group Templates
845
+ */
846
+ filterIconTemplate;
847
+ /**
848
+ * Custom remove token icon template.
849
+ * @group Templates
850
+ */
851
+ removeTokenIconTemplate;
852
+ /**
853
+ * Custom chip icon template.
854
+ * @group Templates
855
+ */
856
+ chipIconTemplate;
857
+ /**
858
+ * Custom clear icon template.
859
+ * @group Templates
860
+ */
861
+ clearIconTemplate;
862
+ /**
863
+ * Custom dropdown icon template.
864
+ * @group Templates
865
+ */
866
+ dropdownIconTemplate;
867
+ /**
868
+ * Custom item checkbox icon template.
869
+ * @group Templates
870
+ */
871
+ itemCheckboxIconTemplate;
872
+ /**
873
+ * Custom header checkbox icon template.
874
+ * @group Templates
875
+ */
876
+ headerCheckboxIconTemplate;
877
+ templates;
878
+ _itemTemplate;
879
+ _groupTemplate;
880
+ _loaderTemplate;
881
+ _headerTemplate;
882
+ _filterTemplate;
883
+ _footerTemplate;
884
+ _emptyFilterTemplate;
885
+ _emptyTemplate;
886
+ _selectedItemsTemplate;
887
+ _loadingIconTemplate;
888
+ _filterIconTemplate;
889
+ _removeTokenIconTemplate;
890
+ _chipIconTemplate;
891
+ _clearIconTemplate;
892
+ _dropdownIconTemplate;
893
+ _itemCheckboxIconTemplate;
894
+ _headerCheckboxIconTemplate;
895
+ $variant = computed(() => this.variant() || this.config.inputStyle() || this.config.inputVariant(), /* @ts-ignore */
896
+ ...(ngDevMode ? [{ debugName: "$variant" }] : /* istanbul ignore next */ []));
897
+ $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo(), /* @ts-ignore */
898
+ ...(ngDevMode ? [{ debugName: "$appendTo" }] : /* istanbul ignore next */ []));
899
+ $pcMultiSelect = inject(MULTISELECT_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
900
+ pcFluid = inject(Fluid, { optional: true, host: true, skipSelf: true });
901
+ get hasFluid() {
902
+ return this.fluid() ?? !!this.pcFluid;
903
+ }
904
+ onAfterContentInit() {
905
+ this.templates.forEach((item) => {
906
+ switch (item.getType()) {
907
+ case 'item':
908
+ this._itemTemplate = item.template;
909
+ break;
910
+ case 'group':
911
+ this._groupTemplate = item.template;
912
+ break;
913
+ case 'selectedItems':
914
+ case 'selecteditems':
915
+ this._selectedItemsTemplate = item.template;
916
+ break;
917
+ case 'header':
918
+ this._headerTemplate = item.template;
919
+ break;
920
+ case 'filter':
921
+ this._filterTemplate = item.template;
922
+ break;
923
+ case 'emptyfilter':
924
+ this._emptyFilterTemplate = item.template;
925
+ break;
926
+ case 'empty':
927
+ this._emptyTemplate = item.template;
928
+ break;
929
+ case 'footer':
930
+ this._footerTemplate = item.template;
931
+ break;
932
+ case 'loader':
933
+ this._loaderTemplate = item.template;
934
+ break;
935
+ case 'headercheckboxicon':
936
+ this._headerCheckboxIconTemplate = item.template;
937
+ break;
938
+ case 'loadingicon':
939
+ this._loadingIconTemplate = item.template;
940
+ break;
941
+ case 'filtericon':
942
+ this._filterIconTemplate = item.template;
943
+ break;
944
+ case 'removetokenicon':
945
+ this._removeTokenIconTemplate = item.template;
946
+ break;
947
+ case 'clearicon':
948
+ this._clearIconTemplate = item.template;
949
+ break;
950
+ case 'dropdownicon':
951
+ this._dropdownIconTemplate = item.template;
952
+ break;
953
+ case 'itemcheckboxicon':
954
+ this._itemCheckboxIconTemplate = item.template;
955
+ break;
956
+ case 'chipicon':
957
+ this._chipIconTemplate = item.template;
958
+ break;
959
+ default:
960
+ this._itemTemplate = item.template;
961
+ break;
962
+ }
963
+ });
964
+ }
965
+ headerCheckboxFocus;
966
+ filterOptions;
967
+ preventModelTouched;
968
+ focused = false;
969
+ itemsWrapper;
970
+ _displaySelectedLabel = true;
971
+ _maxSelectedLabels = 3;
972
+ modelValue = signal(null, /* @ts-ignore */
973
+ ...(ngDevMode ? [{ debugName: "modelValue" }] : /* istanbul ignore next */ []));
974
+ _filterValue = signal(null, /* @ts-ignore */
975
+ ...(ngDevMode ? [{ debugName: "_filterValue" }] : /* istanbul ignore next */ []));
976
+ _options = signal([], /* @ts-ignore */
977
+ ...(ngDevMode ? [{ debugName: "_options" }] : /* istanbul ignore next */ []));
978
+ startRangeIndex = signal(-1, /* @ts-ignore */
979
+ ...(ngDevMode ? [{ debugName: "startRangeIndex" }] : /* istanbul ignore next */ []));
980
+ focusedOptionIndex = signal(-1, /* @ts-ignore */
981
+ ...(ngDevMode ? [{ debugName: "focusedOptionIndex" }] : /* istanbul ignore next */ []));
982
+ selectedOptions;
983
+ clickInProgress = false;
984
+ get emptyMessageLabel() {
985
+ return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);
986
+ }
987
+ get emptyFilterMessageLabel() {
988
+ return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);
989
+ }
990
+ get isVisibleClearIcon() {
991
+ return this.modelValue() != null && this.modelValue() !== '' && isNotEmpty(this.modelValue()) && this.showClear && !this.$disabled() && !this.readonly && this.$filled();
992
+ }
993
+ get toggleAllAriaLabel() {
994
+ return this.config.translation.aria ? this.config.translation.aria[this.allSelected() ? 'selectAll' : 'unselectAll'] : undefined;
995
+ }
996
+ get listLabel() {
997
+ return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];
998
+ }
999
+ getAllVisibleAndNonVisibleOptions() {
1000
+ return this.group ? this.flatOptions(this.options) : this.options || [];
1001
+ }
1002
+ visibleOptions = computed(() => {
1003
+ const options = this.getAllVisibleAndNonVisibleOptions();
1004
+ const isArrayOfObjects = isArray(options) && ObjectUtils.isObject(options[0]);
1005
+ if (this._filterValue()) {
1006
+ let filteredOptions;
1007
+ if (isArrayOfObjects) {
1008
+ filteredOptions = this.filterService.filter(options, this.searchFields(), this._filterValue(), this.filterMatchMode, this.filterLocale);
1009
+ }
1010
+ else {
1011
+ filteredOptions = options.filter((option) => option.toString().toLocaleLowerCase().includes(this._filterValue().toLocaleLowerCase()));
1012
+ }
1013
+ if (this.group) {
1014
+ const optionGroups = this.options || [];
1015
+ const filtered = [];
1016
+ optionGroups.forEach((group) => {
1017
+ const groupChildren = this.getOptionGroupChildren(group);
1018
+ const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));
1019
+ if (filteredItems.length > 0)
1020
+ filtered.push({
1021
+ ...group,
1022
+ [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems]
1023
+ });
1024
+ });
1025
+ return this.flatOptions(filtered);
1026
+ }
1027
+ return filteredOptions;
1028
+ }
1029
+ return options;
1030
+ }, /* @ts-ignore */
1031
+ ...(ngDevMode ? [{ debugName: "visibleOptions" }] : /* istanbul ignore next */ []));
1032
+ label = computed(() => {
1033
+ let label;
1034
+ const modelValue = this.modelValue();
1035
+ if (modelValue && modelValue?.length && this.displaySelectedLabel) {
1036
+ if (isNotEmpty(this.maxSelectedLabels) && modelValue?.length > (this.maxSelectedLabels || 0)) {
1037
+ return this.getSelectedItemsLabel();
1038
+ }
1039
+ else {
1040
+ label = '';
1041
+ for (let i = 0; i < modelValue.length; i++) {
1042
+ if (i !== 0) {
1043
+ label += ', ';
1044
+ }
1045
+ label += this.getLabelByValue(modelValue[i]);
1046
+ }
1047
+ }
1048
+ }
1049
+ else {
1050
+ label = this.placeholder() || '';
1051
+ }
1052
+ return label;
1053
+ }, /* @ts-ignore */
1054
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
1055
+ chipSelectedItems = computed(() => {
1056
+ return isNotEmpty(this.maxSelectedLabels) && this.modelValue() && this.modelValue()?.length > (this.maxSelectedLabels || 0) ? this.modelValue()?.slice(0, this.maxSelectedLabels) : this.modelValue();
1057
+ }, /* @ts-ignore */
1058
+ ...(ngDevMode ? [{ debugName: "chipSelectedItems" }] : /* istanbul ignore next */ []));
1059
+ constructor(zone, filterService, overlayService) {
1060
+ super();
1061
+ this.zone = zone;
1062
+ this.filterService = filterService;
1063
+ this.overlayService = overlayService;
1064
+ effect(() => {
1065
+ const modelValue = this.modelValue();
1066
+ const allVisibleAndNonVisibleOptions = this.getAllVisibleAndNonVisibleOptions();
1067
+ if (allVisibleAndNonVisibleOptions && isNotEmpty(allVisibleAndNonVisibleOptions)) {
1068
+ if (this.optionValue && this.optionLabel && modelValue) {
1069
+ this.selectedOptions = allVisibleAndNonVisibleOptions.filter((option) => modelValue.includes(option[this.optionLabel]) || modelValue.includes(option[this.optionValue]));
1070
+ }
1071
+ else {
1072
+ this.selectedOptions = modelValue;
1073
+ }
1074
+ this.cd.markForCheck();
1075
+ }
1076
+ });
1077
+ }
1078
+ onInit() {
1079
+ this.id = this.id || uuid('pn_id_');
1080
+ this.autoUpdateModel();
1081
+ if (this.filterBy) {
1082
+ this.filterOptions = {
1083
+ filter: (value) => this.onFilterInputChange(value),
1084
+ reset: () => this.resetFilter()
1085
+ };
1086
+ }
1087
+ }
1088
+ maxSelectionLimitReached() {
1089
+ return this.selectionLimit && this.modelValue() && this.modelValue().length === this.selectionLimit;
1090
+ }
1091
+ onAfterViewInit() {
1092
+ if (this.overlayVisible) {
1093
+ this.show();
1094
+ }
1095
+ }
1096
+ onAfterViewChecked() {
1097
+ this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
1098
+ if (this.filtered) {
1099
+ this.zone.runOutsideAngular(() => {
1100
+ setTimeout(() => {
1101
+ this.overlayViewChild?.alignOverlay();
1102
+ }, 1);
1103
+ });
1104
+ this.filtered = false;
1105
+ }
1106
+ }
1107
+ flatOptions(options) {
1108
+ return (options || []).reduce((result, option, index) => {
1109
+ result.push({ optionGroup: option, group: true, index });
1110
+ const optionGroupChildren = this.getOptionGroupChildren(option);
1111
+ optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));
1112
+ return result;
1113
+ }, []);
1114
+ }
1115
+ autoUpdateModel() {
1116
+ if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {
1117
+ this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex());
1118
+ const value = this.getOptionValue(this.visibleOptions()[this.focusedOptionIndex()]);
1119
+ this.onOptionSelect({ originalEvent: null, option: [value] });
1120
+ }
1121
+ }
1122
+ /**
1123
+ * Updates the model value.
1124
+ * @group Method
1125
+ */
1126
+ updateModel(value, event) {
1127
+ this.value = value;
1128
+ this.onModelChange(value);
1129
+ this.writeValue(value);
1130
+ }
1131
+ onInputClick(event) {
1132
+ event.stopPropagation();
1133
+ event.preventDefault();
1134
+ this.focusedOptionIndex.set(-1);
1135
+ }
1136
+ onOptionSelect(event, isFocus = false, index = -1) {
1137
+ const { originalEvent, option } = event;
1138
+ if (this.$disabled() || this.isOptionDisabled(option)) {
1139
+ return;
1140
+ }
1141
+ let selected = this.isSelected(option);
1142
+ let value = [];
1143
+ if (selected) {
1144
+ value = this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey() || ''));
1145
+ }
1146
+ else {
1147
+ value = [...(this.modelValue() || []), this.getOptionValue(option)];
1148
+ }
1149
+ this.updateModel(value, originalEvent);
1150
+ index !== -1 && this.focusedOptionIndex.set(index);
1151
+ isFocus && focus(this.focusInputViewChild?.nativeElement);
1152
+ this.onChange.emit({
1153
+ originalEvent: event,
1154
+ value: value,
1155
+ itemValue: option
1156
+ });
1157
+ }
1158
+ findSelectedOptionIndex() {
1159
+ return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;
1160
+ }
1161
+ onOptionSelectRange(event, start = -1, end = -1) {
1162
+ start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));
1163
+ end === -1 && (end = this.findNearestSelectedOptionIndex(start));
1164
+ if (start !== -1 && end !== -1) {
1165
+ const rangeStart = Math.min(start, end);
1166
+ const rangeEnd = Math.max(start, end);
1167
+ const value = this.visibleOptions()
1168
+ .slice(rangeStart, rangeEnd + 1)
1169
+ .filter((option) => this.isValidOption(option))
1170
+ .map((option) => this.getOptionValue(option));
1171
+ this.updateModel(value, event);
1172
+ }
1173
+ }
1174
+ searchFields() {
1175
+ return (this.filterBy || this.optionLabel || 'label').split(',');
1176
+ }
1177
+ findNearestSelectedOptionIndex(index, firstCheckUp = false) {
1178
+ let matchedOptionIndex = -1;
1179
+ if (this.hasSelectedOption()) {
1180
+ if (firstCheckUp) {
1181
+ matchedOptionIndex = this.findPrevSelectedOptionIndex(index);
1182
+ matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;
1183
+ }
1184
+ else {
1185
+ matchedOptionIndex = this.findNextSelectedOptionIndex(index);
1186
+ matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;
1187
+ }
1188
+ }
1189
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1190
+ }
1191
+ findPrevSelectedOptionIndex(index) {
1192
+ const matchedOptionIndex = this.hasSelectedOption() && index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;
1193
+ return matchedOptionIndex > -1 ? matchedOptionIndex : -1;
1194
+ }
1195
+ findFirstFocusedOptionIndex() {
1196
+ const selectedIndex = this.findFirstSelectedOptionIndex();
1197
+ return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;
1198
+ }
1199
+ findFirstOptionIndex() {
1200
+ return this.visibleOptions().findIndex((option) => this.isValidOption(option));
1201
+ }
1202
+ findFirstSelectedOptionIndex() {
1203
+ return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;
1204
+ }
1205
+ findNextSelectedOptionIndex(index) {
1206
+ const matchedOptionIndex = this.hasSelectedOption() && index < this.visibleOptions().length - 1
1207
+ ? this.visibleOptions()
1208
+ .slice(index + 1)
1209
+ .findIndex((option) => this.isValidSelectedOption(option))
1210
+ : -1;
1211
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;
1212
+ }
1213
+ equalityKey() {
1214
+ return this.optionValue ? null : this.dataKey;
1215
+ }
1216
+ hasSelectedOption() {
1217
+ return isNotEmpty(this.modelValue());
1218
+ }
1219
+ isValidSelectedOption(option) {
1220
+ return this.isValidOption(option) && this.isSelected(option);
1221
+ }
1222
+ isOptionGroup(option) {
1223
+ return option && (this.group || this.optionGroupLabel) && option.optionGroup && option.group;
1224
+ }
1225
+ isValidOption(option) {
1226
+ return option && !(this.isOptionDisabled(option) || this.isOptionGroup(option));
1227
+ }
1228
+ isOptionDisabled(option) {
1229
+ if (this.maxSelectionLimitReached() && !this.isSelected(option)) {
1230
+ return true;
1231
+ }
1232
+ return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false;
1233
+ }
1234
+ isSelected(option) {
1235
+ const optionValue = this.getOptionValue(option);
1236
+ return (this.modelValue() || []).some((value) => equals(value, optionValue, this.equalityKey() || ''));
1237
+ }
1238
+ isOptionMatched(option) {
1239
+ return this.isValidOption(option) && this.getOptionLabel(option).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale));
1240
+ }
1241
+ isEmpty() {
1242
+ return !this._options() || (this.visibleOptions() && this.visibleOptions().length === 0);
1243
+ }
1244
+ getOptionIndex(index, scrollerOptions) {
1245
+ return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];
1246
+ }
1247
+ getAriaPosInset(index) {
1248
+ return ((this.optionGroupLabel
1249
+ ? index -
1250
+ this.visibleOptions()
1251
+ .slice(0, index)
1252
+ .filter((option) => this.isOptionGroup(option)).length
1253
+ : index) + 1);
1254
+ }
1255
+ get ariaSetSize() {
1256
+ return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;
1257
+ }
1258
+ getLabelByValue(value) {
1259
+ const options = this.group ? this.flatOptions(this._options()) : this._options() || [];
1260
+ const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey() || ''));
1261
+ return matchedOption ? this.getOptionLabel(matchedOption) : null;
1262
+ }
1263
+ getSelectedItemsLabel() {
1264
+ let pattern = /{(.*?)}/;
1265
+ let message = this.selectedItemsLabel ? this.selectedItemsLabel : this.config.getTranslation(TranslationKeys.SELECTION_MESSAGE);
1266
+ if (pattern.test(message)) {
1267
+ return message.replace(message.match(pattern)[0], this.modelValue().length + '');
1268
+ }
1269
+ return message;
1270
+ }
1271
+ getOptionLabel(option) {
1272
+ return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option && option.label != undefined ? option.label : option;
1273
+ }
1274
+ getOptionValue(option) {
1275
+ return this.optionValue ? resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;
1276
+ }
1277
+ getOptionGroupLabel(optionGroup) {
1278
+ return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label != undefined ? optionGroup.label : optionGroup;
1279
+ }
1280
+ getOptionGroupChildren(optionGroup) {
1281
+ return optionGroup ? (this.optionGroupChildren ? resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items) : [];
1282
+ }
1283
+ onKeyDown(event) {
1284
+ if (this.$disabled()) {
1285
+ event.preventDefault();
1286
+ return;
1287
+ }
1288
+ const metaKey = event.metaKey || event.ctrlKey;
1289
+ switch (event.code) {
1290
+ case 'ArrowDown':
1291
+ this.onArrowDownKey(event);
1292
+ break;
1293
+ case 'ArrowUp':
1294
+ this.onArrowUpKey(event);
1295
+ break;
1296
+ case 'Home':
1297
+ this.onHomeKey(event);
1298
+ break;
1299
+ case 'End':
1300
+ this.onEndKey(event);
1301
+ break;
1302
+ case 'PageDown':
1303
+ this.onPageDownKey(event);
1304
+ break;
1305
+ case 'PageUp':
1306
+ this.onPageUpKey(event);
1307
+ break;
1308
+ case 'Enter':
1309
+ case 'Space':
1310
+ this.onEnterKey(event);
1311
+ break;
1312
+ case 'Escape':
1313
+ this.onEscapeKey(event);
1314
+ break;
1315
+ case 'Tab':
1316
+ this.onTabKey(event);
1317
+ break;
1318
+ case 'ShiftLeft':
1319
+ case 'ShiftRight':
1320
+ this.onShiftKey();
1321
+ break;
1322
+ default:
1323
+ if (event.code === 'KeyA' && metaKey) {
1324
+ const value = this.visibleOptions()
1325
+ .filter((option) => this.isValidOption(option))
1326
+ .map((option) => this.getOptionValue(option));
1327
+ this.updateModel(value, event);
1328
+ event.preventDefault();
1329
+ break;
1330
+ }
1331
+ if (!metaKey && isPrintableCharacter(event.key)) {
1332
+ !this.overlayVisible && this.show();
1333
+ this.searchOptions(event, event.key);
1334
+ event.preventDefault();
1335
+ }
1336
+ break;
1337
+ }
1338
+ }
1339
+ onFilterKeyDown(event) {
1340
+ switch (event.code) {
1341
+ case 'ArrowDown':
1342
+ this.onArrowDownKey(event);
1343
+ break;
1344
+ case 'ArrowUp':
1345
+ this.onArrowUpKey(event, true);
1346
+ break;
1347
+ case 'ArrowLeft':
1348
+ case 'ArrowRight':
1349
+ this.onArrowLeftKey(event, true);
1350
+ break;
1351
+ case 'Home':
1352
+ this.onHomeKey(event, true);
1353
+ break;
1354
+ case 'End':
1355
+ this.onEndKey(event, true);
1356
+ break;
1357
+ case 'Enter':
1358
+ case 'NumpadEnter':
1359
+ this.onEnterKey(event);
1360
+ break;
1361
+ case 'Escape':
1362
+ this.onEscapeKey(event);
1363
+ break;
1364
+ case 'Tab':
1365
+ this.onTabKey(event, true);
1366
+ break;
1367
+ default:
1368
+ break;
1369
+ }
1370
+ }
1371
+ onArrowLeftKey(event, pressedInInputText = false) {
1372
+ pressedInInputText && this.focusedOptionIndex.set(-1);
1373
+ }
1374
+ onArrowDownKey(event) {
1375
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();
1376
+ if (event.shiftKey) {
1377
+ this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);
1378
+ }
1379
+ this.changeFocusedOptionIndex(event, optionIndex);
1380
+ !this.overlayVisible && this.show();
1381
+ event.preventDefault();
1382
+ event.stopPropagation();
1383
+ }
1384
+ onArrowUpKey(event, pressedInInputText = false) {
1385
+ if (event.altKey && !pressedInInputText) {
1386
+ if (this.focusedOptionIndex() !== -1) {
1387
+ this.onOptionSelect(event, this.visibleOptions()[this.focusedOptionIndex()]);
1388
+ }
1389
+ this.overlayVisible && this.hide();
1390
+ event.preventDefault();
1391
+ }
1392
+ else {
1393
+ const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.findLastFocusedOptionIndex();
1394
+ if (event.shiftKey) {
1395
+ this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());
1396
+ }
1397
+ this.changeFocusedOptionIndex(event, optionIndex);
1398
+ !this.overlayVisible && this.show();
1399
+ event.preventDefault();
1400
+ }
1401
+ event.stopPropagation();
1402
+ }
1403
+ onHomeKey(event, pressedInInputText = false) {
1404
+ const { currentTarget } = event;
1405
+ if (pressedInInputText) {
1406
+ const len = currentTarget.value.length;
1407
+ currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);
1408
+ this.focusedOptionIndex.set(-1);
1409
+ }
1410
+ else {
1411
+ let metaKey = event.metaKey || event.ctrlKey;
1412
+ let optionIndex = this.findFirstOptionIndex();
1413
+ if (event.shiftKey && metaKey) {
1414
+ this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());
1415
+ }
1416
+ this.changeFocusedOptionIndex(event, optionIndex);
1417
+ !this.overlayVisible && this.show();
1418
+ }
1419
+ event.preventDefault();
1420
+ }
1421
+ onEndKey(event, pressedInInputText = false) {
1422
+ const { currentTarget } = event;
1423
+ if (pressedInInputText) {
1424
+ const len = currentTarget.value.length;
1425
+ currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);
1426
+ this.focusedOptionIndex.set(-1);
1427
+ }
1428
+ else {
1429
+ let metaKey = event.metaKey || event.ctrlKey;
1430
+ let optionIndex = this.findLastFocusedOptionIndex();
1431
+ if (event.shiftKey && metaKey) {
1432
+ this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);
1433
+ }
1434
+ this.changeFocusedOptionIndex(event, optionIndex);
1435
+ !this.overlayVisible && this.show();
1436
+ }
1437
+ event.preventDefault();
1438
+ }
1439
+ onPageDownKey(event) {
1440
+ this.scrollInView(this.visibleOptions().length - 1);
1441
+ event.preventDefault();
1442
+ }
1443
+ onPageUpKey(event) {
1444
+ this.scrollInView(0);
1445
+ event.preventDefault();
1446
+ }
1447
+ onEnterKey(event) {
1448
+ if (!this.overlayVisible) {
1449
+ this.onArrowDownKey(event);
1450
+ }
1451
+ else {
1452
+ if (this.focusedOptionIndex() !== -1) {
1453
+ if (event.shiftKey) {
1454
+ this.onOptionSelectRange(event, this.focusedOptionIndex());
1455
+ }
1456
+ else {
1457
+ this.onOptionSelect({ originalEvent: event, option: this.visibleOptions()[this.focusedOptionIndex()] });
1458
+ }
1459
+ }
1460
+ }
1461
+ event.preventDefault();
1462
+ }
1463
+ onEscapeKey(event) {
1464
+ if (this.overlayVisible) {
1465
+ this.hide(true);
1466
+ event.stopPropagation();
1467
+ event.preventDefault();
1468
+ }
1469
+ }
1470
+ onTabKey(event, pressedInInputText = false) {
1471
+ if (!pressedInInputText) {
1472
+ if (this.overlayVisible && this.hasFocusableElements()) {
1473
+ focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay?.nativeElement : this.firstHiddenFocusableElementOnOverlay?.nativeElement);
1474
+ event.preventDefault();
1475
+ }
1476
+ else {
1477
+ if (this.focusedOptionIndex() !== -1) {
1478
+ const option = this.visibleOptions()[this.focusedOptionIndex()];
1479
+ !this.isSelected(option) && this.onOptionSelect({ originalEvent: event, option });
1480
+ }
1481
+ this.overlayVisible && this.hide(this.filter);
1482
+ }
1483
+ }
1484
+ }
1485
+ onShiftKey() {
1486
+ this.startRangeIndex.set(this.focusedOptionIndex());
1487
+ }
1488
+ onContainerClick(event) {
1489
+ if (this.$disabled() || this.loading || this.readonly || event.target?.isSameNode?.(this.focusInputViewChild?.nativeElement)) {
1490
+ return;
1491
+ }
1492
+ if (!this.overlayViewChild || !this.overlayViewChild.el.nativeElement.contains(event.target)) {
1493
+ if (this.clickInProgress) {
1494
+ return;
1495
+ }
1496
+ this.clickInProgress = true;
1497
+ setTimeout(() => {
1498
+ this.clickInProgress = false;
1499
+ }, 150);
1500
+ this.overlayVisible ? this.hide(true) : this.show(true);
1501
+ }
1502
+ this.focusInputViewChild?.nativeElement.focus({ preventScroll: true });
1503
+ this.onClick.emit(event);
1504
+ this.cd.detectChanges();
1505
+ }
1506
+ onFirstHiddenFocus(event) {
1507
+ const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getFirstFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInputViewChild?.nativeElement;
1508
+ focus(focusableEl);
1509
+ }
1510
+ onInputFocus(event) {
1511
+ this.focused = true;
1512
+ const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;
1513
+ this.focusedOptionIndex.set(focusedOptionIndex);
1514
+ this.overlayVisible && this.scrollInView(this.focusedOptionIndex());
1515
+ this.onFocus.emit({ originalEvent: event });
1516
+ }
1517
+ onInputBlur(event) {
1518
+ this.focused = false;
1519
+ this.onBlur.emit({ originalEvent: event });
1520
+ if (!this.preventModelTouched) {
1521
+ this.onModelTouched();
1522
+ }
1523
+ this.preventModelTouched = false;
1524
+ }
1525
+ onFilterInputChange(event) {
1526
+ let value = event.target.value;
1527
+ this._filterValue.set(value);
1528
+ this.focusedOptionIndex.set(-1);
1529
+ this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });
1530
+ !this.virtualScrollerDisabled && this.scroller?.scrollToIndex(0);
1531
+ setTimeout(() => {
1532
+ this.overlayViewChild?.alignOverlay();
1533
+ });
1534
+ }
1535
+ onLastHiddenFocus(event) {
1536
+ const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInputViewChild?.nativeElement;
1537
+ focus(focusableEl);
1538
+ }
1539
+ onOptionMouseEnter(event, index) {
1540
+ if (this.focusOnHover) {
1541
+ this.changeFocusedOptionIndex(event, index);
1542
+ }
1543
+ }
1544
+ onFilterBlur(event) {
1545
+ this.focusedOptionIndex.set(-1);
1546
+ }
1547
+ onToggleAll(event) {
1548
+ if (this.$disabled() || this.readonly) {
1549
+ return;
1550
+ }
1551
+ if (this.selectAll != null) {
1552
+ this.onSelectAllChange.emit({
1553
+ originalEvent: event,
1554
+ checked: !this.allSelected()
1555
+ });
1556
+ }
1557
+ else {
1558
+ // pre-selected disabled options should always be selected.
1559
+ const selectedDisabledOptions = this.getAllVisibleAndNonVisibleOptions().filter((option) => this.isSelected(option) && (this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false));
1560
+ const visibleOptions = this.allSelected()
1561
+ ? this.visibleOptions().filter((option) => !this.isValidOption(option) && this.isSelected(option))
1562
+ : this.visibleOptions().filter((option) => this.isSelected(option) || this.isValidOption(option));
1563
+ const selectedOptionsBeforeSearch = this.filter && !this.allSelected() ? this.getAllVisibleAndNonVisibleOptions().filter((option) => this.isSelected(option) && this.isValidOption(option)) : [];
1564
+ const optionValues = [...selectedOptionsBeforeSearch, ...selectedDisabledOptions, ...visibleOptions].map((option) => this.getOptionValue(option));
1565
+ const value = [...new Set(optionValues)];
1566
+ this.updateModel(value, event);
1567
+ // because onToggleAll could have been called during filtering, this additional test needs to be performed before calling onSelectAllChange.emit
1568
+ if (!value.length || value.length === this.getAllVisibleAndNonVisibleOptions().length) {
1569
+ this.onSelectAllChange.emit({
1570
+ originalEvent: event,
1571
+ checked: !!value.length
1572
+ });
1573
+ }
1574
+ }
1575
+ if (this.partialSelected()) {
1576
+ this.selectedOptions = [];
1577
+ this.cd.markForCheck();
1578
+ }
1579
+ this.onChange.emit({ originalEvent: event, value: this.value });
1580
+ DomHandler.focus(this.headerCheckboxViewChild?.inputViewChild?.nativeElement);
1581
+ this.headerCheckboxFocus = true;
1582
+ event.originalEvent.preventDefault();
1583
+ event.originalEvent.stopPropagation();
1584
+ }
1585
+ changeFocusedOptionIndex(event, index) {
1586
+ if (this.focusedOptionIndex() !== index) {
1587
+ this.focusedOptionIndex.set(index);
1588
+ this.scrollInView();
1589
+ }
1590
+ }
1591
+ get virtualScrollerDisabled() {
1592
+ return !this.virtualScroll;
1593
+ }
1594
+ scrollInView(index = -1) {
1595
+ const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
1596
+ if (this.itemsViewChild && this.itemsViewChild.nativeElement) {
1597
+ const element = findSingle(this.itemsViewChild.nativeElement, `li[id="${id}"]`);
1598
+ if (element) {
1599
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1600
+ }
1601
+ else if (!this.virtualScrollerDisabled) {
1602
+ setTimeout(() => {
1603
+ this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());
1604
+ }, 0);
1605
+ }
1606
+ }
1607
+ }
1608
+ get focusedOptionId() {
1609
+ return this.focusedOptionIndex() !== -1 ? `${this.id}_${this.focusedOptionIndex()}` : null;
1610
+ }
1611
+ allSelected() {
1612
+ return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions()) && this.visibleOptions().every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));
1613
+ }
1614
+ partialSelected() {
1615
+ return this.selectedOptions && this.selectedOptions.length > 0 && this.selectedOptions.length < (this.options?.length || 0);
1616
+ }
1617
+ /**
1618
+ * Displays the panel.
1619
+ * @group Method
1620
+ */
1621
+ show(isFocus) {
1622
+ this.overlayVisible = true;
1623
+ const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();
1624
+ this.focusedOptionIndex.set(focusedOptionIndex);
1625
+ if (isFocus) {
1626
+ focus(this.focusInputViewChild?.nativeElement);
1627
+ }
1628
+ this.cd.markForCheck();
1629
+ }
1630
+ /**
1631
+ * Hides the panel.
1632
+ * @group Method
1633
+ */
1634
+ hide(isFocus) {
1635
+ this.overlayVisible = false;
1636
+ this.focusedOptionIndex.set(-1);
1637
+ if (this.filter && this.resetFilterOnHide) {
1638
+ this.resetFilter();
1639
+ }
1640
+ if (this.overlayOptions?.mode === 'modal') {
1641
+ unblockBodyScroll();
1642
+ }
1643
+ isFocus && focus(this.focusInputViewChild?.nativeElement);
1644
+ this.cd.markForCheck();
1645
+ }
1646
+ onOverlayBeforeEnter(event) {
1647
+ this.itemsWrapper = findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, this.virtualScroll ? '[data-pc-name="virtualscroller"]' : '[data-pc-section="listcontainer"]');
1648
+ this.virtualScroll && this.scroller?.setContentEl(this.itemsViewChild?.nativeElement);
1649
+ if (this.options && this.options.length) {
1650
+ if (this.virtualScroll) {
1651
+ const selectedIndex = this.modelValue() ? this.focusedOptionIndex() : -1;
1652
+ if (selectedIndex !== -1) {
1653
+ this.scroller?.scrollToIndex(selectedIndex);
1654
+ }
1655
+ }
1656
+ else {
1657
+ let selectedListItem = findSingle(this.itemsWrapper, '[data-pc-section="option"][data-p-selected="true"]');
1658
+ if (selectedListItem) {
1659
+ selectedListItem.scrollIntoView({ block: 'nearest', inline: 'nearest' });
1660
+ }
1661
+ }
1662
+ }
1663
+ if (this.filterInputChild && this.filterInputChild.nativeElement) {
1664
+ this.preventModelTouched = true;
1665
+ if (this.autofocusFilter) {
1666
+ this.filterInputChild.nativeElement.focus();
1667
+ }
1668
+ }
1669
+ this.onPanelShow.emit(event);
1670
+ }
1671
+ onOverlayAfterLeave(event) {
1672
+ this.itemsWrapper = null;
1673
+ this.onModelTouched();
1674
+ this.onPanelHide.emit(event);
1675
+ }
1676
+ resetFilter() {
1677
+ if (this.filterInputChild && this.filterInputChild.nativeElement) {
1678
+ this.filterInputChild.nativeElement.value = '';
1679
+ }
1680
+ this._filterValue.set(null);
1681
+ this._filteredOptions = null;
1682
+ }
1683
+ onOverlayHide(event) {
1684
+ // Called when overlay completes its hide animation
1685
+ // Don't call hide() again to avoid recursive calls
1686
+ this.focusedOptionIndex.set(-1);
1687
+ if (this.filter && this.resetFilterOnHide) {
1688
+ this.resetFilter();
1689
+ }
1690
+ }
1691
+ close(event) {
1692
+ this.hide();
1693
+ event.preventDefault();
1694
+ event.stopPropagation();
1695
+ }
1696
+ clear(event) {
1697
+ this.value = [];
1698
+ this.updateModel(null, event);
1699
+ this.selectedOptions = [];
1700
+ this.onClear.emit();
1701
+ this._disableTooltip = true;
1702
+ event.stopPropagation();
1703
+ }
1704
+ labelContainerMouseLeave() {
1705
+ if (this._disableTooltip)
1706
+ this._disableTooltip = false;
1707
+ }
1708
+ removeOption(optionValue, event) {
1709
+ let value = this.modelValue().filter((val) => !equals(val, optionValue, this.equalityKey() || ''));
1710
+ this.updateModel(value, event);
1711
+ this.onChange.emit({
1712
+ originalEvent: event,
1713
+ value: value,
1714
+ itemValue: optionValue
1715
+ });
1716
+ this.onRemove.emit({
1717
+ newValue: value,
1718
+ removed: optionValue
1719
+ });
1720
+ event && event.stopPropagation();
1721
+ }
1722
+ findNextOptionIndex(index) {
1723
+ const matchedOptionIndex = index < this.visibleOptions().length - 1
1724
+ ? this.visibleOptions()
1725
+ .slice(index + 1)
1726
+ .findIndex((option) => this.isValidOption(option))
1727
+ : -1;
1728
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
1729
+ }
1730
+ findPrevOptionIndex(index) {
1731
+ const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;
1732
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
1733
+ }
1734
+ findLastSelectedOptionIndex() {
1735
+ return this.hasSelectedOption() ? findLastIndex(this.visibleOptions(), (option) => this.isValidSelectedOption(option)) : -1;
1736
+ }
1737
+ findLastFocusedOptionIndex() {
1738
+ const selectedIndex = this.findLastSelectedOptionIndex();
1739
+ return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;
1740
+ }
1741
+ findLastOptionIndex() {
1742
+ return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));
1743
+ }
1744
+ searchOptions(event, char) {
1745
+ this.searchValue = (this.searchValue || '') + char;
1746
+ let optionIndex = -1;
1747
+ let matched = false;
1748
+ if (this.focusedOptionIndex() !== -1) {
1749
+ optionIndex = this.visibleOptions()
1750
+ .slice(this.focusedOptionIndex())
1751
+ .findIndex((option) => this.isOptionMatched(option));
1752
+ optionIndex =
1753
+ optionIndex === -1
1754
+ ? this.visibleOptions()
1755
+ .slice(0, this.focusedOptionIndex())
1756
+ .findIndex((option) => this.isOptionMatched(option))
1757
+ : optionIndex + this.focusedOptionIndex();
1758
+ }
1759
+ else {
1760
+ optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));
1761
+ }
1762
+ if (optionIndex !== -1) {
1763
+ matched = true;
1764
+ }
1765
+ if (optionIndex === -1 && this.focusedOptionIndex() === -1) {
1766
+ optionIndex = this.findFirstFocusedOptionIndex();
1767
+ }
1768
+ if (optionIndex !== -1) {
1769
+ this.changeFocusedOptionIndex(event, optionIndex);
1770
+ }
1771
+ if (this.searchTimeout) {
1772
+ clearTimeout(this.searchTimeout);
1773
+ }
1774
+ this.searchTimeout = setTimeout(() => {
1775
+ this.searchValue = '';
1776
+ this.searchTimeout = null;
1777
+ }, 500);
1778
+ return matched;
1779
+ }
1780
+ hasFocusableElements() {
1781
+ return getFocusableElements(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])').length > 0;
1782
+ }
1783
+ hasFilter() {
1784
+ return this._filterValue() && this._filterValue().trim().length > 0;
1785
+ }
1786
+ get containerDataP() {
1787
+ return this.cn({
1788
+ invalid: this.invalid(),
1789
+ disabled: this.$disabled(),
1790
+ focus: this.focused,
1791
+ fluid: this.hasFluid,
1792
+ filled: this.$variant() === 'filled',
1793
+ [this.size()]: this.size()
1794
+ });
1795
+ }
1796
+ get labelDataP() {
1797
+ return this.cn({
1798
+ placeholder: this.label === this.placeholder,
1799
+ clearable: this.showClear,
1800
+ disabled: this.disabled,
1801
+ [this.size()]: this.size(),
1802
+ 'has-chip': this.display === 'chip' && this.value && this.value.length && (this.maxSelectedLabels ? this.value.length <= this.maxSelectedLabels : true),
1803
+ empty: !this.placeholder && !this.$filled
1804
+ });
1805
+ }
1806
+ get dropdownIconDataP() {
1807
+ return this.cn({
1808
+ [this.size()]: this.size()
1809
+ });
1810
+ }
1811
+ get overlayDataP() {
1812
+ return this.cn({
1813
+ ['overlay-' + this.appendTo]: 'overlay-' + this.appendTo
1814
+ });
1815
+ }
1816
+ /**
1817
+ * @override
1818
+ *
1819
+ * @see {@link BaseEditableHolder.writeControlValue}
1820
+ * Writes the value to the control.
1821
+ */
1822
+ writeControlValue(value, setModelValue) {
1823
+ this.value = value;
1824
+ setModelValue(value);
1825
+ this.cd.markForCheck();
1826
+ }
1827
+ getHeaderCheckboxPTOptions(key) {
1828
+ return this.ptm(key, {
1829
+ context: {
1830
+ selected: this.allSelected()
1831
+ }
1832
+ });
1833
+ }
1834
+ getPTOptions(option, itemOptions, index, key) {
1835
+ return this.ptm(key, {
1836
+ context: {
1837
+ selected: this.isSelected(option),
1838
+ focused: this.focusedOptionIndex() === this.getOptionIndex(index, itemOptions),
1839
+ disabled: this.isOptionDisabled(option)
1840
+ }
1841
+ });
1842
+ }
1843
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelect, deps: [{ token: i0.NgZone }, { token: i3.FilterService }, { token: i3.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
1844
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: MultiSelect, isStandalone: true, selector: "agl-multiSelect, agl-multiselect, agl-multi-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, panelStyle: { classPropertyName: "panelStyle", publicName: "panelStyle", isSignal: false, isRequired: false, transformFunction: null }, panelStyleClass: { classPropertyName: "panelStyleClass", publicName: "panelStyleClass", isSignal: false, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, group: { classPropertyName: "group", publicName: "group", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterPlaceHolder: { classPropertyName: "filterPlaceHolder", publicName: "filterPlaceHolder", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, overlayVisible: { classPropertyName: "overlayVisible", publicName: "overlayVisible", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, displaySelectedLabel: { classPropertyName: "displaySelectedLabel", publicName: "displaySelectedLabel", isSignal: false, isRequired: false, transformFunction: null }, maxSelectedLabels: { classPropertyName: "maxSelectedLabels", publicName: "maxSelectedLabels", isSignal: false, isRequired: false, transformFunction: null }, selectionLimit: { classPropertyName: "selectionLimit", publicName: "selectionLimit", isSignal: false, isRequired: false, transformFunction: numberAttribute }, selectedItemsLabel: { classPropertyName: "selectedItemsLabel", publicName: "selectedItemsLabel", isSignal: false, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, emptyFilterMessage: { classPropertyName: "emptyFilterMessage", publicName: "emptyFilterMessage", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, resetFilterOnHide: { classPropertyName: "resetFilterOnHide", publicName: "resetFilterOnHide", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dropdownIcon: { classPropertyName: "dropdownIcon", publicName: "dropdownIcon", isSignal: false, isRequired: false, transformFunction: null }, chipIcon: { classPropertyName: "chipIcon", publicName: "chipIcon", isSignal: false, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: false, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: false, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: false, isRequired: false, transformFunction: null }, optionGroupLabel: { classPropertyName: "optionGroupLabel", publicName: "optionGroupLabel", isSignal: false, isRequired: false, transformFunction: null }, optionGroupChildren: { classPropertyName: "optionGroupChildren", publicName: "optionGroupChildren", isSignal: false, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, loadingIcon: { classPropertyName: "loadingIcon", publicName: "loadingIcon", isSignal: false, isRequired: false, transformFunction: null }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, overlayOptions: { classPropertyName: "overlayOptions", publicName: "overlayOptions", isSignal: false, isRequired: false, transformFunction: null }, ariaFilterLabel: { classPropertyName: "ariaFilterLabel", publicName: "ariaFilterLabel", isSignal: false, isRequired: false, transformFunction: null }, filterMatchMode: { classPropertyName: "filterMatchMode", publicName: "filterMatchMode", isSignal: false, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: false, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: false, isRequired: false, transformFunction: null }, tooltipPositionStyle: { classPropertyName: "tooltipPositionStyle", publicName: "tooltipPositionStyle", isSignal: false, isRequired: false, transformFunction: null }, tooltipStyleClass: { classPropertyName: "tooltipStyleClass", publicName: "tooltipStyleClass", isSignal: false, isRequired: false, transformFunction: null }, autofocusFilter: { classPropertyName: "autofocusFilter", publicName: "autofocusFilter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, display: { classPropertyName: "display", publicName: "display", isSignal: false, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: false, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: false, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: false, isRequired: false, transformFunction: null }, focusOnHover: { classPropertyName: "focusOnHover", publicName: "focusOnHover", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: false, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autoOptionFocus: { classPropertyName: "autoOptionFocus", publicName: "autoOptionFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, motionOptions: { classPropertyName: "motionOptions", publicName: "motionOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onClear: "onClear", onPanelShow: "onPanelShow", onPanelHide: "onPanelHide", onLazyLoad: "onLazyLoad", onRemove: "onRemove", onSelectAllChange: "onSelectAllChange" }, host: { listeners: { "click": "onContainerClick($event)" }, properties: { "attr.id": "id", "attr.data-p": "containerDataP", "class": "cn(cx('root'), styleClass)", "style": "sx('root')" } }, providers: [MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle, { provide: MULTISELECT_INSTANCE, useExisting: MultiSelect }, { provide: PARENT_INSTANCE, useExisting: MultiSelect }], queries: [{ propertyName: "footerFacet", first: true, predicate: Footer, descendants: true }, { propertyName: "headerFacet", first: true, predicate: Header, descendants: true }, { propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "groupTemplate", first: true, predicate: ["group"] }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "filterTemplate", first: true, predicate: ["filter"] }, { propertyName: "footerTemplate", first: true, predicate: ["footer"] }, { propertyName: "emptyFilterTemplate", first: true, predicate: ["emptyfilter"] }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"] }, { propertyName: "selectedItemsTemplate", first: true, predicate: ["selecteditems"] }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "removeTokenIconTemplate", first: true, predicate: ["removetokenicon"] }, { propertyName: "chipIconTemplate", first: true, predicate: ["chipicon"] }, { propertyName: "clearIconTemplate", first: true, predicate: ["clearicon"] }, { propertyName: "dropdownIconTemplate", first: true, predicate: ["dropdownicon"] }, { propertyName: "itemCheckboxIconTemplate", first: true, predicate: ["itemcheckboxicon"] }, { propertyName: "headerCheckboxIconTemplate", first: true, predicate: ["headercheckboxicon"] }, { propertyName: "templates", predicate: AglTemplate }], viewQueries: [{ propertyName: "overlayViewChild", first: true, predicate: ["overlay"], descendants: true }, { propertyName: "filterInputChild", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "focusInputViewChild", first: true, predicate: ["focusInput"], descendants: true }, { propertyName: "itemsViewChild", first: true, predicate: ["items"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "lastHiddenFocusableElementOnOverlay", first: true, predicate: ["lastHiddenFocusableEl"], descendants: true }, { propertyName: "firstHiddenFocusableElementOnOverlay", first: true, predicate: ["firstHiddenFocusableEl"], descendants: true }, { propertyName: "headerCheckboxViewChild", first: true, predicate: ["headerCheckbox"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i4.Bind }], ngImport: i0, template: `
1845
+ <div class="p-hidden-accessible" [attr.data-p-hidden-accessible]="true" [aglBind]="ptm('hiddenInputContainer')">
1846
+ <input
1847
+ #focusInput
1848
+ [aglTooltip]="tooltip"
1849
+ [pTooltipUnstyled]="unstyled()"
1850
+ [tooltipPosition]="tooltipPosition"
1851
+ [positionStyle]="tooltipPositionStyle"
1852
+ [tooltipStyleClass]="tooltipStyleClass"
1853
+ [attr.aria-disabled]="$disabled()"
1854
+ [attr.id]="inputId"
1855
+ role="combobox"
1856
+ [attr.aria-label]="ariaLabel"
1857
+ [attr.aria-labelledby]="ariaLabelledBy"
1858
+ [attr.aria-haspopup]="'listbox'"
1859
+ [attr.aria-expanded]="overlayVisible ?? false"
1860
+ [attr.aria-controls]="overlayVisible ? id + '_list' : null"
1861
+ [attr.tabindex]="!$disabled() ? tabindex : -1"
1862
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
1863
+ (focus)="onInputFocus($event)"
1864
+ (blur)="onInputBlur($event)"
1865
+ (keydown)="onKeyDown($event)"
1866
+ [aglAutoFocus]="autofocus"
1867
+ [attr.value]="modelValue()"
1868
+ [attr.name]="name()"
1869
+ [attr.required]="required() ? '' : undefined"
1870
+ [attr.disabled]="$disabled() ? '' : undefined"
1871
+ [aglBind]="ptm('hiddenInput')"
1872
+ />
1873
+ </div>
1874
+ <div
1875
+ [aglBind]="ptm('labelContainer')"
1876
+ [class]="cx('labelContainer')"
1877
+ [aglTooltip]="tooltip"
1878
+ [pTooltipUnstyled]="unstyled()"
1879
+ (mouseleave)="labelContainerMouseLeave()"
1880
+ [tooltipDisabled]="_disableTooltip"
1881
+ [tooltipPosition]="tooltipPosition"
1882
+ [positionStyle]="tooltipPositionStyle"
1883
+ [tooltipStyleClass]="tooltipStyleClass"
1884
+ >
1885
+ <div [aglBind]="ptm('label')" [class]="cx('label')" [attr.data-p]="labelDataP">
1886
+ <ng-container *ngIf="!selectedItemsTemplate && !_selectedItemsTemplate">
1887
+ <ng-container *ngIf="display === 'comma'">{{ label() || 'empty' }}</ng-container>
1888
+ <ng-container *ngIf="display === 'chip'">
1889
+ @if (chipSelectedItems() && chipSelectedItems().length === maxSelectedLabels) {
1890
+ {{ getSelectedItemsLabel() }}
1891
+ } @else {
1892
+ <div #token *ngFor="let item of chipSelectedItems(); let i = index" [aglBind]="ptm('chipItem')" [class]="cx('chipItem')">
1893
+ <agl-chip [pt]="ptm('pcChip')" [unstyled]="unstyled()" [class]="cx('pcChip')" [label]="getLabelByValue(item)" [removable]="!$disabled() && !readonly" (onRemove)="removeOption(item, $event)" [removeIcon]="chipIcon">
1894
+ <ng-container *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate">
1895
+ <ng-template #removeicon>
1896
+ <ng-container *ngIf="!$disabled() && !readonly">
1897
+ <span
1898
+ [class]="cx('chipIcon')"
1899
+ *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate"
1900
+ (click)="removeOption(item, $event)"
1901
+ [attr.aria-hidden]="true"
1902
+ [aglBind]="ptm('chipIcon')"
1903
+ >
1904
+ <ng-container *ngTemplateOutlet="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate; context: { class: 'p-multiselect-chip-icon' }"></ng-container>
1905
+ </span>
1906
+ </ng-container>
1907
+ </ng-template>
1908
+ </ng-container>
1909
+ </agl-chip>
1910
+ </div>
1911
+ }
1912
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
1913
+ </ng-container>
1914
+ </ng-container>
1915
+ <ng-container *ngIf="selectedItemsTemplate || _selectedItemsTemplate">
1916
+ <ng-container *ngTemplateOutlet="selectedItemsTemplate || _selectedItemsTemplate; context: { $implicit: selectedOptions, removeChip: removeOption.bind(this) }"></ng-container>
1917
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
1918
+ </ng-container>
1919
+ </div>
1920
+ </div>
1921
+ <ng-container *ngIf="isVisibleClearIcon">
1922
+ <svg data-p-icon="times" *ngIf="!clearIconTemplate && !_clearIconTemplate" [aglBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true" />
1923
+ <span *ngIf="clearIconTemplate || _clearIconTemplate" [aglBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true">
1924
+ <ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate"></ng-template>
1925
+ </span>
1926
+ </ng-container>
1927
+ <div [aglBind]="ptm('dropdown')" [class]="cx('dropdown')">
1928
+ <ng-container *ngIf="loading; else elseBlock">
1929
+ <ng-container *ngIf="loadingIconTemplate || _loadingIconTemplate">
1930
+ <ng-container *ngTemplateOutlet="loadingIconTemplate || _loadingIconTemplate"></ng-container>
1931
+ </ng-container>
1932
+ <ng-container *ngIf="!loadingIconTemplate && !_loadingIconTemplate">
1933
+ <span *ngIf="loadingIcon" [aglBind]="ptm('loadingIcon')" [class]="cn(cx('loadingIcon'), 'pi-spin ' + loadingIcon)" [attr.aria-hidden]="true"></span>
1934
+ <svg data-p-icon="spinner" *ngIf="!loadingIcon" [spin]="true" [aglBind]="ptm('loadingIcon')" [class]="cx('loadingIcon')" [attr.aria-hidden]="true" />
1935
+ </ng-container>
1936
+ </ng-container>
1937
+ <ng-template #elseBlock>
1938
+ <ng-container *ngIf="!dropdownIconTemplate && !_dropdownIconTemplate">
1939
+ <span *ngIf="dropdownIcon" [aglBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [ngClass]="dropdownIcon" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP"></span>
1940
+ <svg data-p-icon="chevron-down" *ngIf="!dropdownIcon" [aglBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP" />
1941
+ </ng-container>
1942
+ <span *ngIf="dropdownIconTemplate || _dropdownIconTemplate" [aglBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true">
1943
+ <ng-template *ngTemplateOutlet="dropdownIconTemplate || _dropdownIconTemplate; context: { dataP: dropdownIconDataP }"></ng-template>
1944
+ </span>
1945
+ </ng-template>
1946
+ </div>
1947
+ <agl-overlay
1948
+ #overlay
1949
+ [hostAttrSelector]="$attrSelector"
1950
+ [(visible)]="overlayVisible"
1951
+ [options]="overlayOptions"
1952
+ [target]="'@parent'"
1953
+ [appendTo]="$appendTo()"
1954
+ [unstyled]="unstyled()"
1955
+ [pt]="ptm('pcOverlay')"
1956
+ [motionOptions]="motionOptions()"
1957
+ (onBeforeEnter)="onOverlayBeforeEnter($event)"
1958
+ (onAfterLeave)="onOverlayAfterLeave($event)"
1959
+ (onHide)="onOverlayHide($event)"
1960
+ >
1961
+ <ng-template #content>
1962
+ <div [aglBind]="ptm('overlay')" [attr.data-p]="overlayDataP" [attr.id]="id + '_list'" [class]="cn(cx('overlay'), panelStyleClass)" [ngStyle]="panelStyle">
1963
+ <span
1964
+ #firstHiddenFocusableEl
1965
+ role="presentation"
1966
+ class="p-hidden-accessible p-hidden-focusable"
1967
+ [attr.tabindex]="0"
1968
+ (focus)="onFirstHiddenFocus($event)"
1969
+ [attr.data-p-hidden-accessible]="true"
1970
+ [attr.data-p-hidden-focusable]="true"
1971
+ [aglBind]="ptm('firstHiddenFocusableEl')"
1972
+ >
1973
+ </span>
1974
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate"></ng-container>
1975
+ <div [aglBind]="ptm('header')" [class]="cx('header')" *ngIf="showHeader">
1976
+ <ng-content select="agl-header"></ng-content>
1977
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
1978
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
1979
+ </ng-container>
1980
+ <ng-template #builtInFilterElement>
1981
+ <agl-checkbox
1982
+ [pt]="getHeaderCheckboxPTOptions('pcHeaderCheckbox')"
1983
+ [ngModel]="allSelected()"
1984
+ [ariaLabel]="toggleAllAriaLabel"
1985
+ [binary]="true"
1986
+ (onChange)="onToggleAll($event)"
1987
+ *ngIf="showToggleAll && !selectionLimit"
1988
+ [variant]="$variant()"
1989
+ [disabled]="$disabled()"
1990
+ [unstyled]="unstyled()"
1991
+ #headerCheckbox
1992
+ >
1993
+ <ng-template #icon let-klass="class">
1994
+ <svg data-p-icon="check" *ngIf="!headerCheckboxIconTemplate && !_headerCheckboxIconTemplate && allSelected()" [class]="klass" [aglBind]="getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')" />
1995
+ <ng-template
1996
+ *ngTemplateOutlet="
1997
+ headerCheckboxIconTemplate || _headerCheckboxIconTemplate;
1998
+ context: {
1999
+ checked: allSelected(),
2000
+ partialSelected: partialSelected(),
2001
+ class: klass
2002
+ }
2003
+ "
2004
+ ></ng-template>
2005
+ </ng-template>
2006
+ </agl-checkbox>
2007
+
2008
+ <agl-iconfield *ngIf="filter" [pt]="ptm('pcFilterContainer')" [class]="cx('pcFilterContainer')" [unstyled]="unstyled()">
2009
+ <input
2010
+ #filterInput
2011
+ aglInputText
2012
+ [pt]="ptm('pcFilter')"
2013
+ [variant]="$variant()"
2014
+ type="text"
2015
+ [attr.autocomplete]="autocomplete"
2016
+ role="searchbox"
2017
+ [attr.aria-owns]="id + '_list'"
2018
+ [attr.aria-activedescendant]="focusedOptionId"
2019
+ [value]="_filterValue() || ''"
2020
+ (input)="onFilterInputChange($event)"
2021
+ (keydown)="onFilterKeyDown($event)"
2022
+ (click)="onInputClick($event)"
2023
+ (blur)="onFilterBlur($event)"
2024
+ [class]="cx('pcFilter')"
2025
+ [attr.disabled]="$disabled() ? '' : undefined"
2026
+ [attr.placeholder]="filterPlaceHolder"
2027
+ [attr.aria-label]="ariaFilterLabel"
2028
+ [unstyled]="unstyled()"
2029
+ />
2030
+ <agl-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
2031
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [aglBind]="ptm('filterIcon')" />
2032
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [aglBind]="ptm('filterIcon')" class="p-multiselect-filter-icon">
2033
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
2034
+ </span>
2035
+ </agl-inputicon>
2036
+ </agl-iconfield>
2037
+ </ng-template>
2038
+ </div>
2039
+ <div [aglBind]="ptm('listContainer')" [class]="cx('listContainer')" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
2040
+ <agl-scroller
2041
+ *ngIf="virtualScroll"
2042
+ #scroller
2043
+ [items]="visibleOptions()"
2044
+ [style]="{ height: scrollHeight }"
2045
+ [itemSize]="virtualScrollItemSize"
2046
+ [autoSize]="true"
2047
+ [tabindex]="-1"
2048
+ [lazy]="lazy"
2049
+ (onLazyLoad)="onLazyLoad.emit($event)"
2050
+ [options]="virtualScrollOptions"
2051
+ >
2052
+ <ng-template #content let-items let-scrollerOptions="options">
2053
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
2054
+ </ng-template>
2055
+ <ng-container *ngIf="loaderTemplate || _loaderTemplate">
2056
+ <ng-template #loader let-scrollerOptions="options">
2057
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
2058
+ </ng-template>
2059
+ </ng-container>
2060
+ </agl-scroller>
2061
+ <ng-container *ngIf="!virtualScroll">
2062
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
2063
+ </ng-container>
2064
+
2065
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
2066
+ <ul #items [aglBind]="ptm('list')" [class]="cn(cx('list'), scrollerOptions.contentStyleClass)" [style]="scrollerOptions.contentStyle" role="listbox" aria-multiselectable="true" [attr.aria-label]="listLabel">
2067
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
2068
+ <ng-container *ngIf="isOptionGroup(option)">
2069
+ <li [aglBind]="ptm('optionGroup')" [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)" [class]="cx('optionGroup')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2070
+ <span *ngIf="!groupTemplate && option.optionGroup">{{ getOptionGroupLabel(option.optionGroup) }}</span>
2071
+ <ng-container *ngIf="option.optionGroup && groupTemplate" [ngTemplateOutlet]="groupTemplate" [ngTemplateOutletContext]="{ $implicit: option.optionGroup }"></ng-container>
2072
+ </li>
2073
+ </ng-container>
2074
+ <ng-container *ngIf="!isOptionGroup(option)">
2075
+ <li
2076
+ aglMultiSelectItem
2077
+ aglRipple
2078
+ [aglBind]="getPTOptions(option, getItemOptions, i, 'option')"
2079
+ [id]="id + '_' + getOptionIndex(i, scrollerOptions)"
2080
+ [option]="option"
2081
+ [selected]="isSelected(option)"
2082
+ [label]="getOptionLabel(option)"
2083
+ [disabled]="isOptionDisabled(option)"
2084
+ [template]="itemTemplate || _itemTemplate"
2085
+ [itemCheckboxIconTemplate]="itemCheckboxIconTemplate || _itemCheckboxIconTemplate"
2086
+ [itemSize]="scrollerOptions.itemSize"
2087
+ [focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
2088
+ [ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
2089
+ [ariaSetSize]="ariaSetSize"
2090
+ [variant]="$variant()"
2091
+ [highlightOnSelect]="highlightOnSelect"
2092
+ (onClick)="onOptionSelect($event, false, getOptionIndex(i, scrollerOptions))"
2093
+ (onMouseEnter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
2094
+ [pt]="pt"
2095
+ [unstyled]="unstyled()"
2096
+ ></li>
2097
+ </ng-container>
2098
+ </ng-template>
2099
+
2100
+ <li *ngIf="hasFilter() && isEmpty()" [aglBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2101
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate && !_emptyTemplate) {
2102
+ {{ emptyFilterMessageLabel }}
2103
+ } @else {
2104
+ <ng-container *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || emptyTemplate || _emptyFilterTemplate"></ng-container>
2105
+ }
2106
+ </li>
2107
+ <li *ngIf="!hasFilter() && isEmpty()" [aglBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2108
+ @if (!emptyTemplate && !_emptyTemplate) {
2109
+ {{ emptyMessageLabel }}
2110
+ } @else {
2111
+ <ng-container *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
2112
+ }
2113
+ </li>
2114
+ </ul>
2115
+ </ng-template>
2116
+ </div>
2117
+ <div *ngIf="footerFacet || footerTemplate || _footerTemplate">
2118
+ <ng-content select="agl-footer"></ng-content>
2119
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
2120
+ </div>
2121
+
2122
+ <span
2123
+ #lastHiddenFocusableEl
2124
+ role="presentation"
2125
+ class="p-hidden-accessible p-hidden-focusable"
2126
+ [attr.tabindex]="0"
2127
+ (focus)="onLastHiddenFocus($event)"
2128
+ [attr.data-p-hidden-accessible]="true"
2129
+ [attr.data-p-hidden-focusable]="true"
2130
+ [aglBind]="ptm('lastHiddenFocusableEl')"
2131
+ ></span>
2132
+ </div>
2133
+ </ng-template>
2134
+ </agl-overlay>
2135
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MultiSelectItem, selector: "li[aglMultiSelectItem]", inputs: ["option", "selected", "label", "disabled", "itemSize", "focused", "ariaPosInset", "ariaSetSize", "variant", "template", "checkIconTemplate", "itemCheckboxIconTemplate", "highlightOnSelect"], outputs: ["onClick", "onMouseEnter"] }, { kind: "component", type: Overlay, selector: "agl-overlay", inputs: ["hostName", "visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options", "appendTo", "inline", "motionOptions", "hostAttrSelector"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone", "onBeforeEnter", "onEnter", "onAfterEnter", "onBeforeLeave", "onLeave", "onAfterLeave"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: Tooltip, selector: "[aglTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "aglTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: Scroller, selector: "agl-scroller, agl-virtualscroller, agl-virtual-scroller, agl-virtualScroller", inputs: ["hostName", "id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "directive", type: AutoFocus, selector: "[aglAutoFocus]", inputs: ["aglAutoFocus"] }, { kind: "component", type: CheckIcon, selector: "[data-p-icon=\"check\"]" }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-p-icon=\"spinner\"]" }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: IconField, selector: "agl-iconfield, agl-iconField, agl-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: InputIcon, selector: "agl-inputicon, agl-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "directive", type: InputText, selector: "[aglInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "aglSize", "variant", "fluid", "invalid"] }, { kind: "component", type: Chip, selector: "agl-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "disabled", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }, { kind: "component", type: Checkbox, selector: "agl-checkbox, agl-checkBox, agl-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i4.Bind, selector: "[aglBind]", inputs: ["aglBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2136
+ }
2137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelect, decorators: [{
2138
+ type: Component,
2139
+ args: [{
2140
+ selector: 'agl-multiSelect, agl-multiselect, agl-multi-select',
2141
+ standalone: true,
2142
+ imports: [CommonModule, MultiSelectItem, Overlay, SharedModule, Tooltip, Scroller, AutoFocus, CheckIcon, SearchIcon, SpinnerIcon, TimesIcon, ChevronDownIcon, IconField, InputIcon, InputText, Chip, Checkbox, FormsModule, BindModule],
2143
+ hostDirectives: [Bind],
2144
+ template: `
2145
+ <div class="p-hidden-accessible" [attr.data-p-hidden-accessible]="true" [aglBind]="ptm('hiddenInputContainer')">
2146
+ <input
2147
+ #focusInput
2148
+ [aglTooltip]="tooltip"
2149
+ [pTooltipUnstyled]="unstyled()"
2150
+ [tooltipPosition]="tooltipPosition"
2151
+ [positionStyle]="tooltipPositionStyle"
2152
+ [tooltipStyleClass]="tooltipStyleClass"
2153
+ [attr.aria-disabled]="$disabled()"
2154
+ [attr.id]="inputId"
2155
+ role="combobox"
2156
+ [attr.aria-label]="ariaLabel"
2157
+ [attr.aria-labelledby]="ariaLabelledBy"
2158
+ [attr.aria-haspopup]="'listbox'"
2159
+ [attr.aria-expanded]="overlayVisible ?? false"
2160
+ [attr.aria-controls]="overlayVisible ? id + '_list' : null"
2161
+ [attr.tabindex]="!$disabled() ? tabindex : -1"
2162
+ [attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
2163
+ (focus)="onInputFocus($event)"
2164
+ (blur)="onInputBlur($event)"
2165
+ (keydown)="onKeyDown($event)"
2166
+ [aglAutoFocus]="autofocus"
2167
+ [attr.value]="modelValue()"
2168
+ [attr.name]="name()"
2169
+ [attr.required]="required() ? '' : undefined"
2170
+ [attr.disabled]="$disabled() ? '' : undefined"
2171
+ [aglBind]="ptm('hiddenInput')"
2172
+ />
2173
+ </div>
2174
+ <div
2175
+ [aglBind]="ptm('labelContainer')"
2176
+ [class]="cx('labelContainer')"
2177
+ [aglTooltip]="tooltip"
2178
+ [pTooltipUnstyled]="unstyled()"
2179
+ (mouseleave)="labelContainerMouseLeave()"
2180
+ [tooltipDisabled]="_disableTooltip"
2181
+ [tooltipPosition]="tooltipPosition"
2182
+ [positionStyle]="tooltipPositionStyle"
2183
+ [tooltipStyleClass]="tooltipStyleClass"
2184
+ >
2185
+ <div [aglBind]="ptm('label')" [class]="cx('label')" [attr.data-p]="labelDataP">
2186
+ <ng-container *ngIf="!selectedItemsTemplate && !_selectedItemsTemplate">
2187
+ <ng-container *ngIf="display === 'comma'">{{ label() || 'empty' }}</ng-container>
2188
+ <ng-container *ngIf="display === 'chip'">
2189
+ @if (chipSelectedItems() && chipSelectedItems().length === maxSelectedLabels) {
2190
+ {{ getSelectedItemsLabel() }}
2191
+ } @else {
2192
+ <div #token *ngFor="let item of chipSelectedItems(); let i = index" [aglBind]="ptm('chipItem')" [class]="cx('chipItem')">
2193
+ <agl-chip [pt]="ptm('pcChip')" [unstyled]="unstyled()" [class]="cx('pcChip')" [label]="getLabelByValue(item)" [removable]="!$disabled() && !readonly" (onRemove)="removeOption(item, $event)" [removeIcon]="chipIcon">
2194
+ <ng-container *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate">
2195
+ <ng-template #removeicon>
2196
+ <ng-container *ngIf="!$disabled() && !readonly">
2197
+ <span
2198
+ [class]="cx('chipIcon')"
2199
+ *ngIf="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate"
2200
+ (click)="removeOption(item, $event)"
2201
+ [attr.aria-hidden]="true"
2202
+ [aglBind]="ptm('chipIcon')"
2203
+ >
2204
+ <ng-container *ngTemplateOutlet="chipIconTemplate || _chipIconTemplate || removeTokenIconTemplate || _removeTokenIconTemplate; context: { class: 'p-multiselect-chip-icon' }"></ng-container>
2205
+ </span>
2206
+ </ng-container>
2207
+ </ng-template>
2208
+ </ng-container>
2209
+ </agl-chip>
2210
+ </div>
2211
+ }
2212
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
2213
+ </ng-container>
2214
+ </ng-container>
2215
+ <ng-container *ngIf="selectedItemsTemplate || _selectedItemsTemplate">
2216
+ <ng-container *ngTemplateOutlet="selectedItemsTemplate || _selectedItemsTemplate; context: { $implicit: selectedOptions, removeChip: removeOption.bind(this) }"></ng-container>
2217
+ <ng-container *ngIf="!modelValue() || modelValue().length === 0">{{ placeholder() || 'empty' }}</ng-container>
2218
+ </ng-container>
2219
+ </div>
2220
+ </div>
2221
+ <ng-container *ngIf="isVisibleClearIcon">
2222
+ <svg data-p-icon="times" *ngIf="!clearIconTemplate && !_clearIconTemplate" [aglBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true" />
2223
+ <span *ngIf="clearIconTemplate || _clearIconTemplate" [aglBind]="ptm('clearIcon')" [class]="cx('clearIcon')" (click)="clear($event)" [attr.aria-hidden]="true">
2224
+ <ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate"></ng-template>
2225
+ </span>
2226
+ </ng-container>
2227
+ <div [aglBind]="ptm('dropdown')" [class]="cx('dropdown')">
2228
+ <ng-container *ngIf="loading; else elseBlock">
2229
+ <ng-container *ngIf="loadingIconTemplate || _loadingIconTemplate">
2230
+ <ng-container *ngTemplateOutlet="loadingIconTemplate || _loadingIconTemplate"></ng-container>
2231
+ </ng-container>
2232
+ <ng-container *ngIf="!loadingIconTemplate && !_loadingIconTemplate">
2233
+ <span *ngIf="loadingIcon" [aglBind]="ptm('loadingIcon')" [class]="cn(cx('loadingIcon'), 'pi-spin ' + loadingIcon)" [attr.aria-hidden]="true"></span>
2234
+ <svg data-p-icon="spinner" *ngIf="!loadingIcon" [spin]="true" [aglBind]="ptm('loadingIcon')" [class]="cx('loadingIcon')" [attr.aria-hidden]="true" />
2235
+ </ng-container>
2236
+ </ng-container>
2237
+ <ng-template #elseBlock>
2238
+ <ng-container *ngIf="!dropdownIconTemplate && !_dropdownIconTemplate">
2239
+ <span *ngIf="dropdownIcon" [aglBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [ngClass]="dropdownIcon" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP"></span>
2240
+ <svg data-p-icon="chevron-down" *ngIf="!dropdownIcon" [aglBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true" [attr.data-p]="dropdownIconDataP" />
2241
+ </ng-container>
2242
+ <span *ngIf="dropdownIconTemplate || _dropdownIconTemplate" [aglBind]="ptm('dropdownIcon')" [class]="cx('dropdownIcon')" [attr.aria-hidden]="true">
2243
+ <ng-template *ngTemplateOutlet="dropdownIconTemplate || _dropdownIconTemplate; context: { dataP: dropdownIconDataP }"></ng-template>
2244
+ </span>
2245
+ </ng-template>
2246
+ </div>
2247
+ <agl-overlay
2248
+ #overlay
2249
+ [hostAttrSelector]="$attrSelector"
2250
+ [(visible)]="overlayVisible"
2251
+ [options]="overlayOptions"
2252
+ [target]="'@parent'"
2253
+ [appendTo]="$appendTo()"
2254
+ [unstyled]="unstyled()"
2255
+ [pt]="ptm('pcOverlay')"
2256
+ [motionOptions]="motionOptions()"
2257
+ (onBeforeEnter)="onOverlayBeforeEnter($event)"
2258
+ (onAfterLeave)="onOverlayAfterLeave($event)"
2259
+ (onHide)="onOverlayHide($event)"
2260
+ >
2261
+ <ng-template #content>
2262
+ <div [aglBind]="ptm('overlay')" [attr.data-p]="overlayDataP" [attr.id]="id + '_list'" [class]="cn(cx('overlay'), panelStyleClass)" [ngStyle]="panelStyle">
2263
+ <span
2264
+ #firstHiddenFocusableEl
2265
+ role="presentation"
2266
+ class="p-hidden-accessible p-hidden-focusable"
2267
+ [attr.tabindex]="0"
2268
+ (focus)="onFirstHiddenFocus($event)"
2269
+ [attr.data-p-hidden-accessible]="true"
2270
+ [attr.data-p-hidden-focusable]="true"
2271
+ [aglBind]="ptm('firstHiddenFocusableEl')"
2272
+ >
2273
+ </span>
2274
+ <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate"></ng-container>
2275
+ <div [aglBind]="ptm('header')" [class]="cx('header')" *ngIf="showHeader">
2276
+ <ng-content select="agl-header"></ng-content>
2277
+ <ng-container *ngIf="filterTemplate || _filterTemplate; else builtInFilterElement">
2278
+ <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { options: filterOptions }"></ng-container>
2279
+ </ng-container>
2280
+ <ng-template #builtInFilterElement>
2281
+ <agl-checkbox
2282
+ [pt]="getHeaderCheckboxPTOptions('pcHeaderCheckbox')"
2283
+ [ngModel]="allSelected()"
2284
+ [ariaLabel]="toggleAllAriaLabel"
2285
+ [binary]="true"
2286
+ (onChange)="onToggleAll($event)"
2287
+ *ngIf="showToggleAll && !selectionLimit"
2288
+ [variant]="$variant()"
2289
+ [disabled]="$disabled()"
2290
+ [unstyled]="unstyled()"
2291
+ #headerCheckbox
2292
+ >
2293
+ <ng-template #icon let-klass="class">
2294
+ <svg data-p-icon="check" *ngIf="!headerCheckboxIconTemplate && !_headerCheckboxIconTemplate && allSelected()" [class]="klass" [aglBind]="getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')" />
2295
+ <ng-template
2296
+ *ngTemplateOutlet="
2297
+ headerCheckboxIconTemplate || _headerCheckboxIconTemplate;
2298
+ context: {
2299
+ checked: allSelected(),
2300
+ partialSelected: partialSelected(),
2301
+ class: klass
2302
+ }
2303
+ "
2304
+ ></ng-template>
2305
+ </ng-template>
2306
+ </agl-checkbox>
2307
+
2308
+ <agl-iconfield *ngIf="filter" [pt]="ptm('pcFilterContainer')" [class]="cx('pcFilterContainer')" [unstyled]="unstyled()">
2309
+ <input
2310
+ #filterInput
2311
+ aglInputText
2312
+ [pt]="ptm('pcFilter')"
2313
+ [variant]="$variant()"
2314
+ type="text"
2315
+ [attr.autocomplete]="autocomplete"
2316
+ role="searchbox"
2317
+ [attr.aria-owns]="id + '_list'"
2318
+ [attr.aria-activedescendant]="focusedOptionId"
2319
+ [value]="_filterValue() || ''"
2320
+ (input)="onFilterInputChange($event)"
2321
+ (keydown)="onFilterKeyDown($event)"
2322
+ (click)="onInputClick($event)"
2323
+ (blur)="onFilterBlur($event)"
2324
+ [class]="cx('pcFilter')"
2325
+ [attr.disabled]="$disabled() ? '' : undefined"
2326
+ [attr.placeholder]="filterPlaceHolder"
2327
+ [attr.aria-label]="ariaFilterLabel"
2328
+ [unstyled]="unstyled()"
2329
+ />
2330
+ <agl-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
2331
+ <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [aglBind]="ptm('filterIcon')" />
2332
+ <span *ngIf="filterIconTemplate || _filterIconTemplate" [aglBind]="ptm('filterIcon')" class="p-multiselect-filter-icon">
2333
+ <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
2334
+ </span>
2335
+ </agl-inputicon>
2336
+ </agl-iconfield>
2337
+ </ng-template>
2338
+ </div>
2339
+ <div [aglBind]="ptm('listContainer')" [class]="cx('listContainer')" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
2340
+ <agl-scroller
2341
+ *ngIf="virtualScroll"
2342
+ #scroller
2343
+ [items]="visibleOptions()"
2344
+ [style]="{ height: scrollHeight }"
2345
+ [itemSize]="virtualScrollItemSize"
2346
+ [autoSize]="true"
2347
+ [tabindex]="-1"
2348
+ [lazy]="lazy"
2349
+ (onLazyLoad)="onLazyLoad.emit($event)"
2350
+ [options]="virtualScrollOptions"
2351
+ >
2352
+ <ng-template #content let-items let-scrollerOptions="options">
2353
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
2354
+ </ng-template>
2355
+ <ng-container *ngIf="loaderTemplate || _loaderTemplate">
2356
+ <ng-template #loader let-scrollerOptions="options">
2357
+ <ng-container *ngTemplateOutlet="loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }"></ng-container>
2358
+ </ng-template>
2359
+ </ng-container>
2360
+ </agl-scroller>
2361
+ <ng-container *ngIf="!virtualScroll">
2362
+ <ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: visibleOptions(), options: {} }"></ng-container>
2363
+ </ng-container>
2364
+
2365
+ <ng-template #buildInItems let-items let-scrollerOptions="options">
2366
+ <ul #items [aglBind]="ptm('list')" [class]="cn(cx('list'), scrollerOptions.contentStyleClass)" [style]="scrollerOptions.contentStyle" role="listbox" aria-multiselectable="true" [attr.aria-label]="listLabel">
2367
+ <ng-template ngFor let-option [ngForOf]="items" let-i="index">
2368
+ <ng-container *ngIf="isOptionGroup(option)">
2369
+ <li [aglBind]="ptm('optionGroup')" [attr.id]="id + '_' + getOptionIndex(i, scrollerOptions)" [class]="cx('optionGroup')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2370
+ <span *ngIf="!groupTemplate && option.optionGroup">{{ getOptionGroupLabel(option.optionGroup) }}</span>
2371
+ <ng-container *ngIf="option.optionGroup && groupTemplate" [ngTemplateOutlet]="groupTemplate" [ngTemplateOutletContext]="{ $implicit: option.optionGroup }"></ng-container>
2372
+ </li>
2373
+ </ng-container>
2374
+ <ng-container *ngIf="!isOptionGroup(option)">
2375
+ <li
2376
+ aglMultiSelectItem
2377
+ aglRipple
2378
+ [aglBind]="getPTOptions(option, getItemOptions, i, 'option')"
2379
+ [id]="id + '_' + getOptionIndex(i, scrollerOptions)"
2380
+ [option]="option"
2381
+ [selected]="isSelected(option)"
2382
+ [label]="getOptionLabel(option)"
2383
+ [disabled]="isOptionDisabled(option)"
2384
+ [template]="itemTemplate || _itemTemplate"
2385
+ [itemCheckboxIconTemplate]="itemCheckboxIconTemplate || _itemCheckboxIconTemplate"
2386
+ [itemSize]="scrollerOptions.itemSize"
2387
+ [focused]="focusedOptionIndex() === getOptionIndex(i, scrollerOptions)"
2388
+ [ariaPosInset]="getAriaPosInset(getOptionIndex(i, scrollerOptions))"
2389
+ [ariaSetSize]="ariaSetSize"
2390
+ [variant]="$variant()"
2391
+ [highlightOnSelect]="highlightOnSelect"
2392
+ (onClick)="onOptionSelect($event, false, getOptionIndex(i, scrollerOptions))"
2393
+ (onMouseEnter)="onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))"
2394
+ [pt]="pt"
2395
+ [unstyled]="unstyled()"
2396
+ ></li>
2397
+ </ng-container>
2398
+ </ng-template>
2399
+
2400
+ <li *ngIf="hasFilter() && isEmpty()" [aglBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2401
+ @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate && !_emptyTemplate) {
2402
+ {{ emptyFilterMessageLabel }}
2403
+ } @else {
2404
+ <ng-container *ngTemplateOutlet="emptyFilterTemplate || _emptyFilterTemplate || emptyTemplate || _emptyFilterTemplate"></ng-container>
2405
+ }
2406
+ </li>
2407
+ <li *ngIf="!hasFilter() && isEmpty()" [aglBind]="ptm('emptyMessage')" [class]="cx('emptyMessage')" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }" role="option">
2408
+ @if (!emptyTemplate && !_emptyTemplate) {
2409
+ {{ emptyMessageLabel }}
2410
+ } @else {
2411
+ <ng-container *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
2412
+ }
2413
+ </li>
2414
+ </ul>
2415
+ </ng-template>
2416
+ </div>
2417
+ <div *ngIf="footerFacet || footerTemplate || _footerTemplate">
2418
+ <ng-content select="agl-footer"></ng-content>
2419
+ <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
2420
+ </div>
2421
+
2422
+ <span
2423
+ #lastHiddenFocusableEl
2424
+ role="presentation"
2425
+ class="p-hidden-accessible p-hidden-focusable"
2426
+ [attr.tabindex]="0"
2427
+ (focus)="onLastHiddenFocus($event)"
2428
+ [attr.data-p-hidden-accessible]="true"
2429
+ [attr.data-p-hidden-focusable]="true"
2430
+ [aglBind]="ptm('lastHiddenFocusableEl')"
2431
+ ></span>
2432
+ </div>
2433
+ </ng-template>
2434
+ </agl-overlay>
2435
+ `,
2436
+ providers: [MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle, { provide: MULTISELECT_INSTANCE, useExisting: MultiSelect }, { provide: PARENT_INSTANCE, useExisting: MultiSelect }],
2437
+ changeDetection: ChangeDetectionStrategy.OnPush,
2438
+ encapsulation: ViewEncapsulation.None,
2439
+ host: {
2440
+ '[attr.id]': 'id',
2441
+ '[attr.data-p]': 'containerDataP',
2442
+ '(click)': 'onContainerClick($event)',
2443
+ '[class]': "cn(cx('root'), styleClass)",
2444
+ '[style]': "sx('root')"
2445
+ }
2446
+ }]
2447
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i3.FilterService }, { type: i3.OverlayService }], propDecorators: { id: [{
2448
+ type: Input
2449
+ }], ariaLabel: [{
2450
+ type: Input
2451
+ }], styleClass: [{
2452
+ type: Input
2453
+ }], panelStyle: [{
2454
+ type: Input
2455
+ }], panelStyleClass: [{
2456
+ type: Input
2457
+ }], inputId: [{
2458
+ type: Input
2459
+ }], readonly: [{
2460
+ type: Input,
2461
+ args: [{ transform: booleanAttribute }]
2462
+ }], group: [{
2463
+ type: Input,
2464
+ args: [{ transform: booleanAttribute }]
2465
+ }], filter: [{
2466
+ type: Input,
2467
+ args: [{ transform: booleanAttribute }]
2468
+ }], filterPlaceHolder: [{
2469
+ type: Input
2470
+ }], filterLocale: [{
2471
+ type: Input
2472
+ }], overlayVisible: [{
2473
+ type: Input,
2474
+ args: [{ transform: booleanAttribute }]
2475
+ }], tabindex: [{
2476
+ type: Input,
2477
+ args: [{ transform: numberAttribute }]
2478
+ }], dataKey: [{
2479
+ type: Input
2480
+ }], ariaLabelledBy: [{
2481
+ type: Input
2482
+ }], displaySelectedLabel: [{
2483
+ type: Input
2484
+ }], maxSelectedLabels: [{
2485
+ type: Input
2486
+ }], selectionLimit: [{
2487
+ type: Input,
2488
+ args: [{ transform: numberAttribute }]
2489
+ }], selectedItemsLabel: [{
2490
+ type: Input
2491
+ }], showToggleAll: [{
2492
+ type: Input,
2493
+ args: [{ transform: booleanAttribute }]
2494
+ }], emptyFilterMessage: [{
2495
+ type: Input
2496
+ }], emptyMessage: [{
2497
+ type: Input
2498
+ }], resetFilterOnHide: [{
2499
+ type: Input,
2500
+ args: [{ transform: booleanAttribute }]
2501
+ }], dropdownIcon: [{
2502
+ type: Input
2503
+ }], chipIcon: [{
2504
+ type: Input
2505
+ }], optionLabel: [{
2506
+ type: Input
2507
+ }], optionValue: [{
2508
+ type: Input
2509
+ }], optionDisabled: [{
2510
+ type: Input
2511
+ }], optionGroupLabel: [{
2512
+ type: Input
2513
+ }], optionGroupChildren: [{
2514
+ type: Input
2515
+ }], showHeader: [{
2516
+ type: Input,
2517
+ args: [{ transform: booleanAttribute }]
2518
+ }], filterBy: [{
2519
+ type: Input
2520
+ }], scrollHeight: [{
2521
+ type: Input
2522
+ }], lazy: [{
2523
+ type: Input,
2524
+ args: [{ transform: booleanAttribute }]
2525
+ }], virtualScroll: [{
2526
+ type: Input,
2527
+ args: [{ transform: booleanAttribute }]
2528
+ }], loading: [{
2529
+ type: Input,
2530
+ args: [{ transform: booleanAttribute }]
2531
+ }], virtualScrollItemSize: [{
2532
+ type: Input,
2533
+ args: [{ transform: numberAttribute }]
2534
+ }], loadingIcon: [{
2535
+ type: Input
2536
+ }], virtualScrollOptions: [{
2537
+ type: Input
2538
+ }], overlayOptions: [{
2539
+ type: Input
2540
+ }], ariaFilterLabel: [{
2541
+ type: Input
2542
+ }], filterMatchMode: [{
2543
+ type: Input
2544
+ }], tooltip: [{
2545
+ type: Input
2546
+ }], tooltipPosition: [{
2547
+ type: Input
2548
+ }], tooltipPositionStyle: [{
2549
+ type: Input
2550
+ }], tooltipStyleClass: [{
2551
+ type: Input
2552
+ }], autofocusFilter: [{
2553
+ type: Input,
2554
+ args: [{ transform: booleanAttribute }]
2555
+ }], display: [{
2556
+ type: Input
2557
+ }], autocomplete: [{
2558
+ type: Input
2559
+ }], showClear: [{
2560
+ type: Input,
2561
+ args: [{ transform: booleanAttribute }]
2562
+ }], autofocus: [{
2563
+ type: Input,
2564
+ args: [{ transform: booleanAttribute }]
2565
+ }], placeholder: [{
2566
+ type: Input
2567
+ }], options: [{
2568
+ type: Input
2569
+ }], filterValue: [{
2570
+ type: Input
2571
+ }], selectAll: [{
2572
+ type: Input
2573
+ }], focusOnHover: [{
2574
+ type: Input,
2575
+ args: [{ transform: booleanAttribute }]
2576
+ }], filterFields: [{
2577
+ type: Input
2578
+ }], selectOnFocus: [{
2579
+ type: Input,
2580
+ args: [{ transform: booleanAttribute }]
2581
+ }], autoOptionFocus: [{
2582
+ type: Input,
2583
+ args: [{ transform: booleanAttribute }]
2584
+ }], highlightOnSelect: [{
2585
+ type: Input,
2586
+ args: [{ transform: booleanAttribute }]
2587
+ }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], fluid: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluid", required: false }] }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], motionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "motionOptions", required: false }] }], onChange: [{
2588
+ type: Output
2589
+ }], onFilter: [{
2590
+ type: Output
2591
+ }], onFocus: [{
2592
+ type: Output
2593
+ }], onBlur: [{
2594
+ type: Output
2595
+ }], onClick: [{
2596
+ type: Output
2597
+ }], onClear: [{
2598
+ type: Output
2599
+ }], onPanelShow: [{
2600
+ type: Output
2601
+ }], onPanelHide: [{
2602
+ type: Output
2603
+ }], onLazyLoad: [{
2604
+ type: Output
2605
+ }], onRemove: [{
2606
+ type: Output
2607
+ }], onSelectAllChange: [{
2608
+ type: Output
2609
+ }], overlayViewChild: [{
2610
+ type: ViewChild,
2611
+ args: ['overlay']
2612
+ }], filterInputChild: [{
2613
+ type: ViewChild,
2614
+ args: ['filterInput']
2615
+ }], focusInputViewChild: [{
2616
+ type: ViewChild,
2617
+ args: ['focusInput']
2618
+ }], itemsViewChild: [{
2619
+ type: ViewChild,
2620
+ args: ['items']
2621
+ }], scroller: [{
2622
+ type: ViewChild,
2623
+ args: ['scroller']
2624
+ }], lastHiddenFocusableElementOnOverlay: [{
2625
+ type: ViewChild,
2626
+ args: ['lastHiddenFocusableEl']
2627
+ }], firstHiddenFocusableElementOnOverlay: [{
2628
+ type: ViewChild,
2629
+ args: ['firstHiddenFocusableEl']
2630
+ }], headerCheckboxViewChild: [{
2631
+ type: ViewChild,
2632
+ args: ['headerCheckbox']
2633
+ }], footerFacet: [{
2634
+ type: ContentChild,
2635
+ args: [Footer]
2636
+ }], headerFacet: [{
2637
+ type: ContentChild,
2638
+ args: [Header]
2639
+ }], itemTemplate: [{
2640
+ type: ContentChild,
2641
+ args: ['item', { descendants: false }]
2642
+ }], groupTemplate: [{
2643
+ type: ContentChild,
2644
+ args: ['group', { descendants: false }]
2645
+ }], loaderTemplate: [{
2646
+ type: ContentChild,
2647
+ args: ['loader', { descendants: false }]
2648
+ }], headerTemplate: [{
2649
+ type: ContentChild,
2650
+ args: ['header', { descendants: false }]
2651
+ }], filterTemplate: [{
2652
+ type: ContentChild,
2653
+ args: ['filter', { descendants: false }]
2654
+ }], footerTemplate: [{
2655
+ type: ContentChild,
2656
+ args: ['footer', { descendants: false }]
2657
+ }], emptyFilterTemplate: [{
2658
+ type: ContentChild,
2659
+ args: ['emptyfilter', { descendants: false }]
2660
+ }], emptyTemplate: [{
2661
+ type: ContentChild,
2662
+ args: ['empty', { descendants: false }]
2663
+ }], selectedItemsTemplate: [{
2664
+ type: ContentChild,
2665
+ args: ['selecteditems', { descendants: false }]
2666
+ }], loadingIconTemplate: [{
2667
+ type: ContentChild,
2668
+ args: ['loadingicon', { descendants: false }]
2669
+ }], filterIconTemplate: [{
2670
+ type: ContentChild,
2671
+ args: ['filtericon', { descendants: false }]
2672
+ }], removeTokenIconTemplate: [{
2673
+ type: ContentChild,
2674
+ args: ['removetokenicon', { descendants: false }]
2675
+ }], chipIconTemplate: [{
2676
+ type: ContentChild,
2677
+ args: ['chipicon', { descendants: false }]
2678
+ }], clearIconTemplate: [{
2679
+ type: ContentChild,
2680
+ args: ['clearicon', { descendants: false }]
2681
+ }], dropdownIconTemplate: [{
2682
+ type: ContentChild,
2683
+ args: ['dropdownicon', { descendants: false }]
2684
+ }], itemCheckboxIconTemplate: [{
2685
+ type: ContentChild,
2686
+ args: ['itemcheckboxicon', { descendants: false }]
2687
+ }], headerCheckboxIconTemplate: [{
2688
+ type: ContentChild,
2689
+ args: ['headercheckboxicon', { descendants: false }]
2690
+ }], templates: [{
2691
+ type: ContentChildren,
2692
+ args: [AglTemplate]
2693
+ }] } });
2694
+ class MultiSelectModule {
2695
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2696
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectModule, imports: [MultiSelect, SharedModule], exports: [MultiSelect, SharedModule] });
2697
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectModule, imports: [MultiSelect, SharedModule, SharedModule] });
2698
+ }
2699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MultiSelectModule, decorators: [{
2700
+ type: NgModule,
2701
+ args: [{
2702
+ imports: [MultiSelect, SharedModule],
2703
+ exports: [MultiSelect, SharedModule]
2704
+ }]
2705
+ }] });
2706
+
2707
+ /**
2708
+ * Generated bundle index. Do not edit.
2709
+ */
2710
+
2711
+ export { MULTISELECT_VALUE_ACCESSOR, MultiSelect, MultiSelectClasses, MultiSelectItem, MultiSelectModule, MultiSelectStyle };
2712
+ //# sourceMappingURL=anguless-angulux-multiselect.mjs.map