primeng 18.0.0 → 18.0.2-patch.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/accordion/accordion.d.ts +7 -7
  2. package/autocomplete/autocomplete.d.ts +21 -8
  3. package/badge/badge.d.ts +1 -3
  4. package/basecomponent/basecomponent.d.ts +2 -5
  5. package/blockui/blockui.d.ts +10 -5
  6. package/breadcrumb/breadcrumb.d.ts +9 -6
  7. package/button/button.d.ts +10 -4
  8. package/calendar/calendar.d.ts +29 -15
  9. package/card/card.d.ts +12 -5
  10. package/carousel/carousel.d.ts +10 -4
  11. package/cascadeselect/cascadeselect.d.ts +18 -8
  12. package/checkbox/checkbox.d.ts +8 -4
  13. package/chip/chip.d.ts +9 -7
  14. package/chips/chips.d.ts +237 -0
  15. package/chips/chips.interface.d.ts +66 -0
  16. package/chips/index.d.ts +5 -0
  17. package/chips/public_api.d.ts +2 -0
  18. package/chips/style/chipsstyle.d.ts +69 -0
  19. package/confirmdialog/confirmdialog.d.ts +14 -5
  20. package/confirmpopup/confirmpopup.d.ts +11 -5
  21. package/contextmenu/contextmenu.d.ts +10 -6
  22. package/datepicker/datepicker.d.ts +113 -33
  23. package/dialog/dialog.d.ts +15 -4
  24. package/divider/divider.d.ts +1 -1
  25. package/dock/dock.d.ts +7 -4
  26. package/drawer/drawer.d.ts +18 -10
  27. package/dropdown/dropdown.d.ts +4 -3
  28. package/dynamicdialog/dynamicdialog.d.ts +1 -0
  29. package/editor/editor.d.ts +7 -3
  30. package/esm2022/accordion/accordion.mjs +58 -43
  31. package/esm2022/autocomplete/autocomplete.mjs +153 -92
  32. package/esm2022/badge/badge.mjs +39 -32
  33. package/esm2022/basecomponent/basecomponent.mjs +3 -26
  34. package/esm2022/blockui/blockui.mjs +38 -18
  35. package/esm2022/breadcrumb/breadcrumb.mjs +50 -32
  36. package/esm2022/button/button.mjs +55 -28
  37. package/esm2022/calendar/calendar.mjs +207 -143
  38. package/esm2022/card/card.mjs +96 -46
  39. package/esm2022/carousel/carousel.mjs +74 -42
  40. package/esm2022/cascadeselect/cascadeselect.mjs +100 -62
  41. package/esm2022/checkbox/checkbox.mjs +32 -14
  42. package/esm2022/chip/chip.mjs +117 -96
  43. package/esm2022/chips/chips.interface.mjs +2 -0
  44. package/esm2022/chips/chips.mjs +827 -0
  45. package/esm2022/chips/primeng-chips.mjs +5 -0
  46. package/esm2022/chips/public_api.mjs +3 -0
  47. package/esm2022/chips/style/chipsstyle.mjs +175 -0
  48. package/esm2022/confirmdialog/confirmdialog.mjs +96 -57
  49. package/esm2022/confirmpopup/confirmpopup.mjs +57 -29
  50. package/esm2022/contextmenu/contextmenu.mjs +51 -20
  51. package/esm2022/datepicker/datepicker.mjs +198 -156
  52. package/esm2022/dialog/dialog.mjs +98 -52
  53. package/esm2022/divider/divider.mjs +2 -4
  54. package/esm2022/dock/dock.mjs +31 -13
  55. package/esm2022/drawer/drawer.mjs +112 -70
  56. package/esm2022/dropdown/dropdown.mjs +13 -5
  57. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +13 -13
  58. package/esm2022/dynamicdialog/dynamicdialog.mjs +9 -5
  59. package/esm2022/editor/editor.mjs +27 -11
  60. package/esm2022/fieldset/fieldset.mjs +61 -33
  61. package/esm2022/fileupload/fileupload.mjs +139 -89
  62. package/esm2022/galleria/galleria.mjs +18 -9
  63. package/esm2022/image/image.mjs +113 -66
  64. package/esm2022/imagecompare/imagecompare.mjs +31 -11
  65. package/esm2022/inplace/inplace.mjs +49 -24
  66. package/esm2022/inputmask/inputmask.mjs +30 -14
  67. package/esm2022/inputmask/style/inputmaskstyle.mjs +2 -2
  68. package/esm2022/inputnumber/inputnumber.mjs +55 -47
  69. package/esm2022/inputotp/inputotp.mjs +30 -11
  70. package/esm2022/listbox/listbox.mjs +137 -78
  71. package/esm2022/megamenu/megamenu.mjs +105 -59
  72. package/esm2022/menu/menu.mjs +26 -26
  73. package/esm2022/menubar/menubar.mjs +70 -35
  74. package/esm2022/message/message.mjs +50 -26
  75. package/esm2022/messages/messages.mjs +13 -4
  76. package/esm2022/metergroup/metergroup.mjs +63 -31
  77. package/esm2022/multiselect/multiselect.mjs +247 -156
  78. package/esm2022/orderlist/orderlist.mjs +125 -70
  79. package/esm2022/organizationchart/organizationchart.mjs +30 -14
  80. package/esm2022/overlay/overlay.mjs +27 -7
  81. package/esm2022/overlaypanel/overlaypanel.mjs +33 -10
  82. package/esm2022/paginator/paginator.mjs +92 -60
  83. package/esm2022/panel/panel.mjs +160 -100
  84. package/esm2022/panelmenu/panelmenu.mjs +55 -32
  85. package/esm2022/password/password.mjs +88 -49
  86. package/esm2022/picklist/picklist.mjs +363 -259
  87. package/esm2022/popover/popover.mjs +29 -12
  88. package/esm2022/progressbar/progressbar.mjs +27 -9
  89. package/esm2022/rating/rating.mjs +46 -22
  90. package/esm2022/scroller/scroller.mjs +47 -37
  91. package/esm2022/scrollpanel/scrollpanel.mjs +28 -9
  92. package/esm2022/scrolltop/scrolltop.mjs +17 -10
  93. package/esm2022/select/select.mjs +198 -119
  94. package/esm2022/selectbutton/selectbutton.mjs +26 -11
  95. package/esm2022/sidebar/sidebar.mjs +82 -60
  96. package/esm2022/speeddial/speeddial.mjs +54 -29
  97. package/esm2022/splitbutton/splitbutton.mjs +41 -18
  98. package/esm2022/splitter/splitter.mjs +5 -5
  99. package/esm2022/stepper/stepper.mjs +27 -13
  100. package/esm2022/table/table.mjs +107 -96
  101. package/esm2022/tabmenu/tabmenu.mjs +54 -27
  102. package/esm2022/tabs/tablist.mjs +28 -20
  103. package/esm2022/tabview/tabview.mjs +106 -54
  104. package/esm2022/tag/tag.mjs +68 -44
  105. package/esm2022/tieredmenu/tieredmenu.mjs +44 -21
  106. package/esm2022/timeline/timeline.mjs +41 -17
  107. package/esm2022/toast/toast.mjs +31 -9
  108. package/esm2022/togglebutton/togglebutton.mjs +45 -30
  109. package/esm2022/toggleswitch/toggleswitch.mjs +28 -9
  110. package/esm2022/toolbar/toolbar.mjs +47 -21
  111. package/esm2022/tooltip/tooltip.mjs +35 -70
  112. package/esm2022/tree/tree.mjs +114 -97
  113. package/esm2022/treeselect/treeselect.mjs +156 -89
  114. package/esm2022/treetable/treetable.mjs +31 -12
  115. package/esm2022/usestyle/usestyle.mjs +2 -2
  116. package/fesm2022/primeng-accordion.mjs +59 -44
  117. package/fesm2022/primeng-accordion.mjs.map +1 -1
  118. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  119. package/fesm2022/primeng-api.mjs +1 -1
  120. package/fesm2022/primeng-autocomplete.mjs +152 -91
  121. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  122. package/fesm2022/primeng-avatar.mjs +1 -1
  123. package/fesm2022/primeng-avatargroup.mjs +1 -1
  124. package/fesm2022/primeng-badge.mjs +40 -33
  125. package/fesm2022/primeng-badge.mjs.map +1 -1
  126. package/fesm2022/primeng-basecomponent.mjs +2 -25
  127. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  128. package/fesm2022/primeng-blockui.mjs +37 -17
  129. package/fesm2022/primeng-blockui.mjs.map +1 -1
  130. package/fesm2022/primeng-breadcrumb.mjs +49 -31
  131. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  132. package/fesm2022/primeng-button.mjs +54 -27
  133. package/fesm2022/primeng-button.mjs.map +1 -1
  134. package/fesm2022/primeng-buttongroup.mjs +1 -1
  135. package/fesm2022/primeng-calendar.mjs +207 -143
  136. package/fesm2022/primeng-calendar.mjs.map +1 -1
  137. package/fesm2022/primeng-card.mjs +95 -45
  138. package/fesm2022/primeng-card.mjs.map +1 -1
  139. package/fesm2022/primeng-carousel.mjs +73 -41
  140. package/fesm2022/primeng-carousel.mjs.map +1 -1
  141. package/fesm2022/primeng-cascadeselect.mjs +99 -61
  142. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  143. package/fesm2022/primeng-chart.mjs +1 -1
  144. package/fesm2022/primeng-checkbox.mjs +31 -13
  145. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  146. package/fesm2022/primeng-chip.mjs +116 -95
  147. package/fesm2022/primeng-chip.mjs.map +1 -1
  148. package/fesm2022/primeng-chips.mjs +1006 -0
  149. package/fesm2022/primeng-chips.mjs.map +1 -0
  150. package/fesm2022/primeng-colorpicker.mjs +1 -1
  151. package/fesm2022/primeng-confirmdialog.mjs +95 -56
  152. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  153. package/fesm2022/primeng-confirmpopup.mjs +57 -29
  154. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  155. package/fesm2022/primeng-contextmenu.mjs +50 -19
  156. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  157. package/fesm2022/primeng-dataview.mjs +2 -2
  158. package/fesm2022/primeng-datepicker.mjs +198 -156
  159. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  160. package/fesm2022/primeng-defer.mjs +1 -1
  161. package/fesm2022/primeng-dialog.mjs +97 -51
  162. package/fesm2022/primeng-dialog.mjs.map +1 -1
  163. package/fesm2022/primeng-divider.mjs +2 -4
  164. package/fesm2022/primeng-divider.mjs.map +1 -1
  165. package/fesm2022/primeng-dock.mjs +30 -12
  166. package/fesm2022/primeng-dock.mjs.map +1 -1
  167. package/fesm2022/primeng-dragdrop.mjs +1 -1
  168. package/fesm2022/primeng-drawer.mjs +111 -69
  169. package/fesm2022/primeng-drawer.mjs.map +1 -1
  170. package/fesm2022/primeng-dropdown.mjs +12 -4
  171. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  172. package/fesm2022/primeng-dynamicdialog.mjs +21 -17
  173. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  174. package/fesm2022/primeng-editor.mjs +26 -10
  175. package/fesm2022/primeng-editor.mjs.map +1 -1
  176. package/fesm2022/primeng-fieldset.mjs +61 -33
  177. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  178. package/fesm2022/primeng-fileupload.mjs +138 -88
  179. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  180. package/fesm2022/primeng-floatlabel.mjs +1 -1
  181. package/fesm2022/primeng-fluid.mjs +1 -1
  182. package/fesm2022/primeng-galleria.mjs +17 -8
  183. package/fesm2022/primeng-galleria.mjs.map +1 -1
  184. package/fesm2022/primeng-iconfield.mjs +1 -1
  185. package/fesm2022/primeng-icons-baseicon.mjs +1 -1
  186. package/fesm2022/primeng-iftalabel.mjs +1 -1
  187. package/fesm2022/primeng-image.mjs +112 -65
  188. package/fesm2022/primeng-image.mjs.map +1 -1
  189. package/fesm2022/primeng-imagecompare.mjs +30 -10
  190. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  191. package/fesm2022/primeng-inplace.mjs +48 -23
  192. package/fesm2022/primeng-inplace.mjs.map +1 -1
  193. package/fesm2022/primeng-inputgroupaddon.mjs +1 -1
  194. package/fesm2022/primeng-inputicon.mjs +1 -1
  195. package/fesm2022/primeng-inputmask.mjs +30 -14
  196. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  197. package/fesm2022/primeng-inputnumber.mjs +54 -46
  198. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  199. package/fesm2022/primeng-inputotp.mjs +29 -10
  200. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  201. package/fesm2022/primeng-inputswitch.mjs +1 -1
  202. package/fesm2022/primeng-inputtext.mjs +1 -1
  203. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  204. package/fesm2022/primeng-keyfilter.mjs +1 -1
  205. package/fesm2022/primeng-knob.mjs +1 -1
  206. package/fesm2022/primeng-listbox.mjs +136 -77
  207. package/fesm2022/primeng-listbox.mjs.map +1 -1
  208. package/fesm2022/primeng-megamenu.mjs +104 -58
  209. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  210. package/fesm2022/primeng-menu.mjs +26 -26
  211. package/fesm2022/primeng-menu.mjs.map +1 -1
  212. package/fesm2022/primeng-menubar.mjs +69 -34
  213. package/fesm2022/primeng-menubar.mjs.map +1 -1
  214. package/fesm2022/primeng-message.mjs +49 -25
  215. package/fesm2022/primeng-message.mjs.map +1 -1
  216. package/fesm2022/primeng-messages.mjs +12 -3
  217. package/fesm2022/primeng-messages.mjs.map +1 -1
  218. package/fesm2022/primeng-metergroup.mjs +62 -30
  219. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  220. package/fesm2022/primeng-multiselect.mjs +246 -155
  221. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  222. package/fesm2022/primeng-orderlist.mjs +124 -69
  223. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  224. package/fesm2022/primeng-organizationchart.mjs +30 -14
  225. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  226. package/fesm2022/primeng-overlay.mjs +26 -6
  227. package/fesm2022/primeng-overlay.mjs.map +1 -1
  228. package/fesm2022/primeng-overlaybadge.mjs +1 -1
  229. package/fesm2022/primeng-overlaypanel.mjs +33 -10
  230. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  231. package/fesm2022/primeng-paginator.mjs +91 -59
  232. package/fesm2022/primeng-paginator.mjs.map +1 -1
  233. package/fesm2022/primeng-panel.mjs +160 -100
  234. package/fesm2022/primeng-panel.mjs.map +1 -1
  235. package/fesm2022/primeng-panelmenu.mjs +55 -32
  236. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  237. package/fesm2022/primeng-password.mjs +87 -48
  238. package/fesm2022/primeng-password.mjs.map +1 -1
  239. package/fesm2022/primeng-picklist.mjs +362 -258
  240. package/fesm2022/primeng-picklist.mjs.map +1 -1
  241. package/fesm2022/primeng-popover.mjs +29 -12
  242. package/fesm2022/primeng-popover.mjs.map +1 -1
  243. package/fesm2022/primeng-progressbar.mjs +26 -8
  244. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  245. package/fesm2022/primeng-progressspinner.mjs +1 -1
  246. package/fesm2022/primeng-radiobutton.mjs +1 -1
  247. package/fesm2022/primeng-rating.mjs +45 -21
  248. package/fesm2022/primeng-rating.mjs.map +1 -1
  249. package/fesm2022/primeng-scroller.mjs +46 -36
  250. package/fesm2022/primeng-scroller.mjs.map +1 -1
  251. package/fesm2022/primeng-scrollpanel.mjs +27 -8
  252. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  253. package/fesm2022/primeng-scrolltop.mjs +17 -10
  254. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  255. package/fesm2022/primeng-select.mjs +197 -118
  256. package/fesm2022/primeng-select.mjs.map +1 -1
  257. package/fesm2022/primeng-selectbutton.mjs +25 -10
  258. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  259. package/fesm2022/primeng-sidebar.mjs +81 -59
  260. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  261. package/fesm2022/primeng-skeleton.mjs +1 -1
  262. package/fesm2022/primeng-slider.mjs +1 -1
  263. package/fesm2022/primeng-speeddial.mjs +53 -28
  264. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  265. package/fesm2022/primeng-splitbutton.mjs +40 -17
  266. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  267. package/fesm2022/primeng-splitter.mjs +6 -6
  268. package/fesm2022/primeng-splitter.mjs.map +1 -1
  269. package/fesm2022/primeng-stepper.mjs +27 -13
  270. package/fesm2022/primeng-stepper.mjs.map +1 -1
  271. package/fesm2022/primeng-steps.mjs +1 -1
  272. package/fesm2022/primeng-styleclass.mjs +1 -1
  273. package/fesm2022/primeng-table.mjs +107 -96
  274. package/fesm2022/primeng-table.mjs.map +1 -1
  275. package/fesm2022/primeng-tabmenu.mjs +53 -26
  276. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  277. package/fesm2022/primeng-tabs.mjs +27 -19
  278. package/fesm2022/primeng-tabs.mjs.map +1 -1
  279. package/fesm2022/primeng-tabview.mjs +106 -54
  280. package/fesm2022/primeng-tabview.mjs.map +1 -1
  281. package/fesm2022/primeng-tag.mjs +67 -43
  282. package/fesm2022/primeng-tag.mjs.map +1 -1
  283. package/fesm2022/primeng-terminal.mjs +1 -1
  284. package/fesm2022/primeng-textarea.mjs +1 -1
  285. package/fesm2022/primeng-tieredmenu.mjs +43 -20
  286. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  287. package/fesm2022/primeng-timeline.mjs +40 -16
  288. package/fesm2022/primeng-timeline.mjs.map +1 -1
  289. package/fesm2022/primeng-toast.mjs +31 -9
  290. package/fesm2022/primeng-toast.mjs.map +1 -1
  291. package/fesm2022/primeng-togglebutton.mjs +44 -29
  292. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  293. package/fesm2022/primeng-toggleswitch.mjs +27 -8
  294. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  295. package/fesm2022/primeng-toolbar.mjs +46 -20
  296. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  297. package/fesm2022/primeng-tooltip.mjs +35 -70
  298. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  299. package/fesm2022/primeng-tree.mjs +114 -97
  300. package/fesm2022/primeng-tree.mjs.map +1 -1
  301. package/fesm2022/primeng-treeselect.mjs +155 -88
  302. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  303. package/fesm2022/primeng-treetable.mjs +30 -11
  304. package/fesm2022/primeng-treetable.mjs.map +1 -1
  305. package/fesm2022/primeng-usestyle.mjs +1 -1
  306. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  307. package/fieldset/fieldset.d.ts +12 -6
  308. package/fileupload/fileupload.d.ts +19 -8
  309. package/galleria/galleria.d.ts +3 -2
  310. package/image/image.d.ts +18 -7
  311. package/imagecompare/imagecompare.d.ts +7 -2
  312. package/inplace/inplace.d.ts +12 -6
  313. package/inputmask/inputmask.d.ts +8 -4
  314. package/inputnumber/inputnumber.d.ts +11 -6
  315. package/inputotp/inputotp.d.ts +7 -2
  316. package/listbox/listbox.d.ts +17 -4
  317. package/megamenu/megamenu.d.ts +16 -7
  318. package/menu/menu.d.ts +6 -6
  319. package/menubar/menubar.d.ts +13 -6
  320. package/message/message.d.ts +10 -4
  321. package/messages/messages.d.ts +4 -3
  322. package/metergroup/metergroup.d.ts +11 -3
  323. package/multiselect/multiselect.d.ts +36 -17
  324. package/orderlist/orderlist.d.ts +23 -11
  325. package/organizationchart/organizationchart.d.ts +6 -4
  326. package/overlay/overlay.d.ts +6 -3
  327. package/overlaypanel/overlaypanel.d.ts +6 -3
  328. package/package.json +171 -165
  329. package/paginator/paginator.d.ts +15 -8
  330. package/panel/panel.d.ts +14 -5
  331. package/panelmenu/panelmenu.d.ts +8 -4
  332. package/password/password.d.ts +15 -7
  333. package/picklist/picklist.d.ts +23 -3
  334. package/popover/popover.d.ts +8 -5
  335. package/progressbar/progressbar.d.ts +7 -3
  336. package/rating/rating.d.ts +11 -5
  337. package/scroller/scroller.d.ts +9 -4
  338. package/scrollpanel/scrollpanel.d.ts +7 -3
  339. package/scrolltop/scrolltop.d.ts +7 -4
  340. package/select/select.d.ts +31 -13
  341. package/selectbutton/selectbutton.d.ts +7 -3
  342. package/sidebar/sidebar.d.ts +9 -2
  343. package/speeddial/speeddial.d.ts +9 -4
  344. package/splitbutton/splitbutton.d.ts +9 -5
  345. package/splitter/splitter.d.ts +4 -4
  346. package/stepper/stepper.d.ts +8 -3
  347. package/table/table.d.ts +2 -2
  348. package/tabmenu/tabmenu.d.ts +12 -7
  349. package/tabs/tablist.d.ts +6 -2
  350. package/tabview/tabview.d.ts +16 -7
  351. package/tag/tag.d.ts +8 -9
  352. package/tieredmenu/tieredmenu.d.ts +10 -6
  353. package/timeline/timeline.d.ts +7 -2
  354. package/toast/toast.d.ts +7 -3
  355. package/togglebutton/togglebutton.d.ts +8 -3
  356. package/toggleswitch/toggleswitch.d.ts +6 -2
  357. package/toolbar/toolbar.d.ts +9 -4
  358. package/tooltip/tooltip.d.ts +2 -1
  359. package/tree/tree.d.ts +23 -10
  360. package/treeselect/treeselect.d.ts +26 -12
  361. package/treetable/treetable.d.ts +7 -5
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-cascadeselect.mjs","sources":["../../src/cascadeselect/style/cascadeselectstyle.ts","../../src/cascadeselect/cascadeselect.ts","../../src/cascadeselect/primeng-cascadeselect.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-cascadeselect {\n display: inline-flex;\n cursor: pointer;\n position: relative;\n user-select: none;\n background: ${dt('cascadeselect.background')};\n border: 1px solid ${dt('cascadeselect.border.color')};\n transition: background ${dt('cascadeselect.transition.duration')}, color ${dt('cascadeselect.transition.duration')}, border-color ${dt('cascadeselect.transition.duration')}, outline-color ${dt(\n 'cascadeselect.transition.duration'\n )}, box-shadow ${dt('cascadeselect.transition.duration')};\n border-radius: ${dt('cascadeselect.border.radius')};\n outline-color: transparent;\n box-shadow: ${dt('cascadeselect.shadow')};\n}\n\np-cascadeselect.ng-invalid.ng-dirty .p-cascadeselect {\n border-color: ${dt('cascadeselect.invalid.border.color')};\n}\n\np-cascadeselect.ng-invalid.ng-dirty .p-cascadeselect.p-focus {\n border-color: ${dt('cascadeselect.focus.border.color')};\n}\n\n.p-cascadeselect:not(.p-disabled):hover {\n border-color: ${dt('cascadeselect.hover.border.color')};\n}\n\n.p-cascadeselect:not(.p-disabled).p-focus {\n border-color: ${dt('cascadeselect.focus.border.color')};\n box-shadow: ${dt('cascadeselect.focus.ring.shadow')};\n outline: ${dt('cascadeselect.focus.ring.width')} ${dt('cascadeselect.focus.ring.style')} ${dt('cascadeselect.focus.ring.color')};\n outline-offset: ${dt('multiscascadeselectelect.focus.ring.offset')};\n}\n\n.p-cascadeselect.p-variant-filled {\n background: ${dt('cascadeselect.filled.background')};\n}\n\n.p-cascadeselect.p-variant-filled:not(.p-disabled):hover {\n background: ${dt('cascadeselect.filled.hover.background')};\n}\n\n.p-cascadeselect.p-variant-filled.p-focus {\n background: ${dt('cascadeselect.filled.focus.background')};\n}\n\n.p-cascadeselect.p-disabled {\n opacity: 1;\n background: ${dt('cascadeselect.disabled.background')};\n}\n\n.p-cascadeselect-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: ${dt('cascadeselect.dropdown.color')};\n width: ${dt('cascadeselect.dropdown.width')};\n border-start-end-radius: ${dt('border.radius.md')};\n border-end-end-radius: ${dt('border.radius.md')};\n}\n\n.p-cascadeselect-label {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n flex: 1 1 auto;\n width: 1%;\n text-overflow: ellipsis;\n cursor: pointer;\n padding: ${dt('cascadeselect.padding.y')} ${dt('cascadeselect.padding.x')};\n background: transparent;\n border: 0 none;\n outline: 0 none;\n}\n\n.p-cascadeselect-label.p-placeholder {\n color: ${dt('cascadeselect.placeholder.color')};\n}\n\np-cascadeselect.ng-invalid.ng-dirty .p-cascadeselect-label.p-placeholder {\n color: ${dt('cascadeselect.invalid.placeholder.color')};\n}\n\n.p-cascadeselect.p-disabled .p-cascadeselect-label {\n color: ${dt('cascadeselect.disabled.color')};\n}\n\n.p-cascadeselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n}\n\n.p-cascadeselect-fluid {\n display: flex;\n}\n\n.p-cascadeselect-fluid .p-cascadeselect-label {\n width: 1%;\n}\n\n.p-cascadeselect-overlay {\n background: ${dt('cascadeselect.overlay.background')};\n color: ${dt('cascadeselect.overlay.color')};\n border: 1px solid ${dt('cascadeselect.overlay.border.color')};\n border-radius: ${dt('cascadeselect.overlay.border.radius')};\n box-shadow: ${dt('cascadeselect.overlay.shadow')};\n}\n\n.p-cascadeselect .p-cascadeselect-overlay {\n min-width: 100%;\n}\n\n.p-cascadeselect-option-list {\n display: none;\n min-width: 100%;\n position: absolute;\n z-index: 1;\n}\n\n.p-cascadeselect-list {\n min-width: 100%;\n margin: 0;\n padding: 0;\n list-style-type: none;\n padding: ${dt('cascadeselect.list.padding')};\n display: flex;\n flex-direction: column;\n gap: ${dt('cascadeselect.list.gap')}\n}\n\n.p-cascadeselect-option {\n cursor: pointer;\n font-weight: normal;\n white-space: nowrap;\n border: 0 none;\n color: ${dt('cascadeselect.option.color')};\n background: transparent;\n transition: background ${dt('cascadeselect.transition.duration')}, color ${dt('cascadeselect.transition.duration')}, border-color ${dt('cascadeselect.transition.duration')}, box-shadow ${dt(\n 'cascadeselect.transition.duration'\n )}, outline-color ${dt('cascadeselect.transition.duration')};\n border-radius: ${dt('cascadeselect.option.border.radius')};\n}\n\n.p-cascadeselect-option-active {\n overflow: visible;\n}\n\n.p-cascadeselect-option-active > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.focus.background')};\n color: ${dt('cascadeselect.option.focus.color')};\n}\n\n.p-cascadeselect-option:not(.p-cascadeselect-option-selected):not(.p-disabled).p-focus > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.focus.background')};\n color: ${dt('cascadeselect.option.focus.color')};\n}\n\n.p-cascadeselect-option:not(.p-cascadeselect-option-selected):not(.p-disabled).p-focus > .p-cascadeselect-option-content > .p-cascadeselect-group-icon-container > .p-cascadeselect-group-icon {\n color: ${dt('cascadeselect.option.icon.focus.color')};\n}\n\n.p-cascadeselect-option-selected > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.selected.background')};\n color: ${dt('cascadeselect.option.selected.color')};\n}\n\n.p-cascadeselect-option-selected.p-focus > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.selected.focus.background')};\n color: ${dt('cascadeselect.option.selected.focus.color')};\n}\n\n.p-cascadeselect-option-active > .p-cascadeselect-option-list {\n inset-inline-start: 100%;\n top: 0;\n}\n\n.p-cascadeselect-option-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n overflow: hidden;\n position: relative;\n padding: ${dt('cascadeselect.option.padding')};\n border-radius: ${dt('cascadeselect.option.border.radius')};\n transition: background ${dt('cascadeselect.transition.duration')}, color ${dt('cascadeselect.transition.duration')}, border-color ${dt('cascadeselect.transition.duration')}, box-shadow ${dt(\n 'cascadeselect.transition.duration'\n )}, outline-color ${dt('cascadeselect.transition.duration')};\n}\n\n.p-cascadeselect-group-icon {\n font-size: ${dt('cascadeselect.option.icon.size')};\n width: ${dt('cascadeselect.option.icon.size')};\n height: ${dt('cascadeselect.option.icon.size')};\n color: ${dt('cascadeselect.option.icon.color')};\n}\n\n.p-cascadeselect-group-icon:dir(rtl) {\n transform: rotate(180deg);\n}\n\n.p-cascadeselect-mobile-active .p-cascadeselect-option-list {\n position: static;\n box-shadow: none;\n border: 0 none;\n padding-inline-start: 1rem;\n padding-inline-end: 0;\n}\n\n.p-cascadeselect-mobile-active .p-cascadeselect-group-icon {\n transition: transform 0.2s;\n transform: rotate(90deg);\n}\n\n.p-cascadeselect-mobile-active .p-cascadeselect-option-active > .p-cascadeselect-option-content .p-cascadeselect-group-icon {\n transform: rotate(-90deg);\n}\n\n.p-cascadeselect-sm .p-cascadeselect-label {\n font-size: ${dt('cascadeselect.sm.font.size')};\n padding-block: ${dt('cascadeselect.sm.padding.y')};\n padding-inline: ${dt('cascadeselect.sm.padding.x')};\n}\n\n.p-cascadeselect-sm .p-cascadeselect-dropdown .p-icon {\n font-size: ${dt('cascadeselect.sm.font.size')};\n width: ${dt('cascadeselect.sm.font.size')};\n height: ${dt('cascadeselect.sm.font.size')};\n}\n\n.p-cascadeselect-lg .p-cascadeselect-label {\n font-size: ${dt('cascadeselect.lg.font.size')};\n padding-block: ${dt('cascadeselect.lg.padding.y')};\n padding-inline: ${dt('cascadeselect.lg.padding.x')};\n}\n\n.p-cascadeselect-lg .p-cascadeselect-dropdown .p-icon {\n font-size: ${dt('cascadeselect.lg.font.size')};\n width: ${dt('cascadeselect.lg.font.size')};\n height: ${dt('cascadeselect.lg.font.size')};\n}\n\n/* For PrimeNG */\n.p-cascadeselect-clear-icon {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: ${dt('cascadeselect.clear.icon.color')};\n}`;\n\nconst inlineStyles = {\n root: ({ props }) => ({ position: props.appendTo === 'self' ? 'relative' : undefined })\n};\n\nconst classes = {\n root: ({ instance, props }) => [\n 'p-cascadeselect p-component p-inputwrapper',\n {\n 'p-cascadeselect-mobile': instance.queryMatches(),\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.config.inputStyle === 'filled' || instance.config.inputVariant === 'filled',\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': props.modelValue,\n 'p-inputwrapper-focus': instance.focused || instance.overlayVisible,\n 'p-cascadeselect-open': instance.overlayVisible,\n 'p-cascadeselect-fluid': props.fluid,\n 'p-cascadeselect-sm p-inputfield-sm': props.size === 'small',\n 'p-cascadeselect-lg p-inputfield-lg': props.size === 'large'\n }\n ],\n label: ({ instance, props }) => [\n 'p-cascadeselect-label',\n {\n 'p-placeholder': instance.label === props.placeholder,\n 'p-cascadeselect-label-empty': !instance.$slots['value'] && (instance.label === 'p-emptylabel' || instance.label.length === 0)\n }\n ],\n dropdown: 'p-cascadeselect-dropdown',\n loadingIcon: 'p-cascadeselect-loading-icon',\n dropdownIcon: 'p-cascadeselect-dropdown-icon',\n overlay: ({ instance }) => [\n 'p-cascadeselect-overlay p-component',\n {\n 'p-cascadeselect-mobile-active': instance.queryMatches()\n }\n ],\n listContainer: 'p-cascadeselect-list-container',\n list: 'p-cascadeselect-list',\n option: ({ instance, processedOption }) => [\n 'p-cascadeselect-option',\n {\n 'p-cascadeselect-option-active': instance.isOptionActive(processedOption),\n 'p-cascadeselect-option-selected': instance.isOptionSelected(processedOption),\n 'p-focus': instance.isOptionFocused(processedOption),\n 'p-disabled': instance.isOptionDisabled(processedOption)\n }\n ],\n optionContent: 'p-cascadeselect-option-content',\n optionText: 'p-cascadeselect-option-text',\n groupIcon: 'p-cascadeselect-group-icon',\n optionList: 'p-cascadeselect-overlay p-cascadeselect-option-list'\n};\n\n@Injectable()\nexport class CascadeSelectStyle extends BaseStyle {\n name = 'cascadeselect';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n\n/**\n *\n * CascadeSelect is a form component to select a value from a nested structure of options.\n *\n * [Live Demo](https://www.primeng.org/cascadeselect/)\n *\n * @module cascadeselectstyle\n *\n */\nexport enum CascadeSelectClasses {\n /**\n * Class name of the root element\n */\n root = 'p-cascadeselect',\n /**\n * Class name of the label element\n */\n label = 'p-cascadeselect-label',\n /**\n * Class name of the dropdown element\n */\n dropdown = 'p-cascadeselect-dropdown',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-cascadeselect-loading-icon',\n /**\n * Class name of the dropdown icon element\n */\n dropdownIcon = 'p-cascadeselect-dropdown-icon',\n /**\n * Class name of the overlay element\n */\n overlay = 'p-cascadeselect-overlay',\n /**\n * Class name of the list container element\n */\n listContainer = 'p-cascadeselect-list-container',\n /**\n * Class name of the list element\n */\n list = 'p-cascadeselect-list',\n /**\n * Class name of the item element\n */\n item = 'p-cascadeselect-item',\n /**\n * Class name of the item content element\n */\n itemContent = 'p-cascadeselect-item-content',\n /**\n * Class name of the item text element\n */\n itemText = 'p-cascadeselect-item-text',\n /**\n * Class name of the group icon element\n */\n groupIcon = 'p-cascadeselect-group-icon',\n /**\n * Class name of the item list element\n */\n itemList = 'p-cascadeselect-item-list'\n}\n\nexport interface CascadeSelectStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n NgModule,\n numberAttribute,\n OnInit,\n Output,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { calculateScrollbarWidth, equals, findLastIndex, findSingle, focus, getHiddenElementOuterWidth, getOffset, getOuterWidth, getViewport, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData, uuid } from '@primeuix/utils';\nimport { OverlayOptions, OverlayService, SharedModule, TranslationKeys } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { AngleRightIcon, ChevronDownIcon, TimesIcon } from 'primeng/icons';\nimport { Overlay } from 'primeng/overlay';\nimport { Ripple } from 'primeng/ripple';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { CascadeSelectBeforeHideEvent, CascadeSelectBeforeShowEvent, CascadeSelectChangeEvent, CascadeSelectHideEvent, CascadeSelectShowEvent } from './cascadeselect.interface';\nimport { CascadeSelectStyle } from './style/cascadeselectstyle';\n\nexport const CASCADESELECT_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CascadeSelect),\n multi: true\n};\n\n@Component({\n selector: 'p-cascadeSelectSub, p-cascadeselect-sub',\n standalone: true,\n imports: [CommonModule, Overlay, Ripple, AutoFocus, AngleRightIcon, SharedModule],\n template: `\n <ul class=\"p-cascadeselect-list\" [attr.role]=\"role\" aria-orientation=\"horizontal\" [attr.data-pc-section]=\"level === 0 ? 'list' : 'sublist'\" [attr.aria-label]=\"listLabel\">\n <ng-template ngFor let-processedOption [ngForOf]=\"options\" let-i=\"index\">\n <li\n [ngClass]=\"getItemClass(processedOption)\"\n role=\"treeitem\"\n [attr.aria-level]=\"level + 1\"\n [attr.aria-setsize]=\"options.length\"\n [attr.data-pc-section]=\"'item'\"\n [id]=\"getOptionId(processedOption)\"\n [attr.aria-label]=\"getOptionLabelToRender(processedOption)\"\n [attr.aria-selected]=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n [attr.aria-posinset]=\"i + 1\"\n >\n <div\n class=\"p-cascadeselect-option-content\"\n (click)=\"onOptionClick($event, processedOption)\"\n (mouseenter)=\"onOptionMouseEnter($event, processedOption)\"\n (mousemove)=\"onOptionMouseMove($event, processedOption)\"\n pRipple\n [attr.data-pc-section]=\"'content'\"\n >\n <ng-container *ngIf=\"optionTemplate; else defaultOptionTemplate\">\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: processedOption?.option }\"></ng-container>\n </ng-container>\n <ng-template #defaultOptionTemplate>\n <span class=\"p-cascadeselect-option-text\" [attr.data-pc-section]=\"'text'\">{{ getOptionLabelToRender(processedOption) }}</span>\n </ng-template>\n <span class=\"p-cascadeselect-group-icon\" *ngIf=\"isOptionGroup(processedOption)\" [attr.data-pc-section]=\"'groupIcon'\">\n <AngleRightIcon *ngIf=\"!groupicon\" />\n <ng-template *ngTemplateOutlet=\"groupicon\"></ng-template>\n </span>\n </div>\n <p-cascadeselect-sub\n *ngIf=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n [role]=\"'group'\"\n class=\"p-cascadeselect-list p-cascadeselect-overlay p-cascadeselect-option-list\"\n [selectId]=\"selectId\"\n [focusedOptionId]=\"focusedOptionId\"\n [activeOptionPath]=\"activeOptionPath\"\n [options]=\"getOptionGroupChildren(processedOption)\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [level]=\"level + 1\"\n (onChange)=\"onChange.emit($event)\"\n (onFocusChange)=\"onFocusChange.emit($event)\"\n (onFocusEnterChange)=\"onFocusEnterChange.emit($event)\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [optionGroupChildren]=\"optionGroupChildren\"\n [dirty]=\"dirty\"\n [optionTemplate]=\"optionTemplate\"\n >\n </p-cascadeselect-sub>\n </li>\n </ng-template>\n </ul>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CascadeSelectSub extends BaseComponent implements OnInit {\n @Input() role: string | undefined;\n\n @Input() selectId: string | undefined;\n\n @Input() activeOptionPath: any[];\n\n @Input() optionDisabled: any[];\n\n @Input() focusedOptionId: string | undefined;\n\n @Input() options: any[] | string[] | string | undefined | null;\n\n @Input() optionGroupChildren: string[] | string | undefined | null;\n\n @Input() optionTemplate: Nullable<TemplateRef<any>>;\n\n @Input() groupicon: Nullable<TemplateRef<any>>;\n\n @Input({ transform: numberAttribute }) level: number = 0;\n\n @Input() optionLabel: string | undefined;\n\n @Input() optionValue: string | undefined;\n\n @Input() optionGroupLabel: string | undefined;\n\n @Input({ transform: booleanAttribute }) dirty: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) root: boolean | undefined;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocusChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocusEnterChange: EventEmitter<any> = new EventEmitter();\n\n get listLabel(): string {\n return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];\n }\n\n constructor(public cascadeselect: CascadeSelect) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (!this.root) {\n this.position();\n }\n }\n\n onOptionClick(event, processedOption: any) {\n this.onChange.emit({\n originalEvent: event,\n processedOption,\n isFocus: true\n });\n }\n\n onOptionMouseEnter(event, processedOption) {\n this.onFocusEnterChange.emit({ originalEvent: event, processedOption });\n }\n\n onOptionMouseMove(event, processedOption) {\n this.onFocusChange.emit({ originalEvent: event, processedOption });\n }\n\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n }\n\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n }\n\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n }\n\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n }\n\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n }\n\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n }\n\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n }\n\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n }\n\n isOptionSelected(processedOption) {\n return equals(this.cascadeselect?.modelValue(), processedOption?.option);\n }\n\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n }\n\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n }\n\n getItemClass(option: string | string[]) {\n return {\n 'p-cascadeselect-option': true,\n 'p-cascadeselect-option-group': this.isOptionGroup(option),\n 'p-cascadeselect-option-active': this.isOptionActive(option),\n 'p-cascadeselect-option-selected': this.isOptionSelected(option),\n 'p-focus': this.isOptionFocused(option),\n 'p-disabled': this.isOptionDisabled(option)\n };\n }\n\n position() {\n const parentItem = this.el.nativeElement.parentElement;\n const containerOffset = <any>getOffset(parentItem);\n const viewport = <any>getViewport();\n const sublistWidth = this.el.nativeElement.children[0].offsetParent ? this.el.nativeElement.children[0].offsetWidth : getHiddenElementOuterWidth(this.el.nativeElement.children[0]);\n const itemOuterWidth = <any>getOuterWidth(parentItem.children[0]);\n if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - calculateScrollbarWidth()) {\n this.el.nativeElement.children[0].style.left = '-200%';\n }\n }\n}\n/**\n * CascadeSelect is a form component to select a value from a nested structure of options.\n * @group Components\n */\n@Component({\n selector: 'p-cascadeSelect, p-cascadeselect, p-cascade-select',\n standalone: true,\n imports: [CommonModule, Overlay, Ripple, AutoFocus, CascadeSelectSub, ChevronDownIcon, AngleRightIcon, TimesIcon, SharedModule],\n template: ` <div #container [ngClass]=\"containerClass\" [class]=\"styleClass\" [ngStyle]=\"style\" (click)=\"onContainerClick($event)\" [attr.data-pc-name]=\"'cascadeselect'\" [attr.data-pc-section]=\"'root'\">\n <div class=\"p-hidden-accessible\" [attr.data-pc-section]=\"'hiddenInputWrapper'\">\n <input\n #focusInput\n readonly\n type=\"text\"\n role=\"combobox\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [tabindex]=\"!disabled ? tabindex : -1\"\n [attr.id]=\"inputId\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n aria-haspopup=\"tree\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? id + '_tree' : null\"\n [attr.aria-activedescendant]=\"focused ? focusedOptionId : undefined\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onInputKeyDown($event)\"\n [pAutoFocus]=\"autofocus\"\n />\n </div>\n <span [ngClass]=\"labelClass\" [attr.data-pc-section]=\"'label'\">\n <ng-container *ngIf=\"valueTemplate; else defaultValueTemplate\">\n <ng-container *ngTemplateOutlet=\"valueTemplate; context: { $implicit: value, placeholder: placeholder }\"></ng-container>\n </ng-container>\n <ng-template #defaultValueTemplate>\n {{ label() }}\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"filled && !disabled && showClear\">\n <TimesIcon *ngIf=\"!clearicon\" class=\"p-cascadeselect-clear-icon\" (click)=\"clear($event)\" [attr.data-pc-section]=\"'clearicon'\" [attr.aria-hidden]=\"true\" />\n <span *ngIf=\"clearicon\" class=\"p-cascadeselect-clear-icon\" (click)=\"clear($event)\" [attr.data-pc-section]=\"'clearicon'\" [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"clearicon\"></ng-template>\n </span>\n </ng-container>\n\n <div class=\"p-cascadeselect-dropdown\" role=\"button\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible ?? false\" [attr.data-pc-section]=\"'dropdownIcon'\" [attr.aria-hidden]=\"true\">\n <ng-container *ngIf=\"loading; else elseBlock\">\n <ng-container *ngIf=\"loadingicon\">\n <ng-container *ngTemplateOutlet=\"loadingicon\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!loadingicon\">\n <span *ngIf=\"loadingIcon\" [ngClass]=\"'p-cascadeselect-loading-icon pi-spin ' + loadingIcon\" aria-hidden=\"true\"></span>\n <span *ngIf=\"!loadingIcon\" [class]=\"'p-cascadeselect-loading-icon pi pi-spinner pi-spin'\" aria-hidden=\"true\"></span>\n </ng-container>\n </ng-container>\n <ng-template #elseBlock>\n <ChevronDownIcon *ngIf=\"!triggericon\" [styleClass]=\"'p-cascadeselect-dropdown-icon'\" />\n <span *ngIf=\"triggericon\" class=\"p-cascadeselect-dropdown-icon\">\n <ng-template *ngTemplateOutlet=\"triggericon\"></ng-template>\n </span>\n </ng-template>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\">\n {{ searchResultMessageText }}\n </span>\n <p-overlay\n #overlay\n [(visible)]=\"overlayVisible\"\n [options]=\"overlayOptions\"\n [target]=\"'@parent'\"\n [appendTo]=\"appendTo\"\n [showTransitionOptions]=\"showTransitionOptions\"\n [hideTransitionOptions]=\"hideTransitionOptions\"\n (onAnimationDone)=\"onOverlayAnimationDone($event)\"\n (onBeforeShow)=\"onBeforeShow.emit($event)\"\n (onShow)=\"show($event)\"\n (onBeforeHide)=\"onBeforeHide.emit($event)\"\n (onHide)=\"hide($event)\"\n >\n <ng-template #content>\n <div #panel [ngClass]=\"{ 'p-cascadeselect-overlay p-component': true, 'p-cascadeselect-mobile-active': queryMatches() }\" [class]=\"panelStyleClass\" [ngStyle]=\"panelStyle\" [attr.data-pc-section]=\"'panel'\">\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n <div class=\"p-cascadeselect-list-container\" [attr.data-pc-section]=\"'wrapper'\">\n <p-cascadeselect-sub\n [options]=\"processedOptions\"\n [selectId]=\"id\"\n [focusedOptionId]=\"focused ? focusedOptionId : undefined\"\n [activeOptionPath]=\"activeOptionPath()\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [level]=\"0\"\n [optionTemplate]=\"optionTemplate\"\n [groupicon]=\"groupicon\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [optionGroupChildren]=\"optionGroupChildren\"\n [optionDisabled]=\"optionDisabled\"\n [root]=\"true\"\n (onChange)=\"onOptionClick($event)\"\n (onFocusChange)=\"onOptionMouseMove($event)\"\n (onFocusEnterChange)=\"onOptionMouseEnter($event)\"\n [dirty]=\"dirty\"\n [role]=\"'tree'\"\n >\n </p-cascadeselect-sub>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\">\n {{ selectedMessageText }}\n </span>\n <ng-template *ngTemplateOutlet=\"footerTemplate\"></ng-template>\n </div>\n </ng-template>\n </p-overlay>\n </div>`,\n providers: [CASCADESELECT_VALUE_ACCESSOR, CascadeSelectStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class CascadeSelect extends BaseComponent implements OnInit {\n /**\n * Unique identifier of the component\n * @group Props\n */\n @Input() id: string | undefined;\n /**\n * Text to display when the search is active. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} results are available'\n */\n @Input() searchMessage: string | undefined;\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n @Input() emptyMessage: string | undefined;\n /**\n * Text to be displayed in hidden accessible field when options are selected. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} items selected'\n */\n @Input() selectionMessage: string | undefined;\n /**\n * Text to display when filtering does not return any results. Defaults to value from PrimeNG locale configuration.\n * @group Props\n * @defaultValue 'No available options'\n */\n @Input() emptySearchMessage: string | undefined;\n /**\n * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue 'No selected item'\n */\n @Input() emptySelectionMessage: string | undefined;\n /**\n * Locale to use in searching. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() searchLocale: string | undefined;\n /**\n * Name of the disabled field of an option.\n * @group Props\n */\n @Input() optionDisabled: any;\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) focusOnHover: boolean = true;\n /**\n * Determines if the option will be selected on focus.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) selectOnFocus: boolean = false;\n /**\n * Whether to focus on the first visible or selected element when the overlay panel is shown.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoOptionFocus: boolean = false;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * An array of selectitems to display as the available options.\n * @group Props\n */\n @Input() options: string[] | string | undefined;\n /**\n * Property name or getter function to use as the label of an option.\n * @group Props\n */\n @Input() optionLabel: string | undefined;\n /**\n * Property name or getter function to use as the value of an option, defaults to the option itself when not defined.\n * @group Props\n */\n @Input() optionValue: string | undefined;\n /**\n * Property name or getter function to use as the label of an option group.\n * @group Props\n */\n @Input() optionGroupLabel: string | undefined;\n /**\n * Property name or getter function to retrieve the items of a group.\n * @group Props\n */\n @Input() optionGroupChildren: string | undefined;\n /**\n * Default text to display when no option is selected.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Selected value of the component.\n * @group Props\n */\n @Input() value: string | undefined | null;\n /**\n * A property to uniquely identify an option.\n * @group Props\n */\n @Input() dataKey: string | undefined;\n /**\n * Identifier of the underlying input element.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Defines the size of the component.\n * @group Props\n */\n @Input() size: 'large' | 'small';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined = 0;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Label of the input for accessibility.\n * @group Props\n */\n @Input() inputLabel: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Id of the element or \"body\" for document where the overlay should be appended to.\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * Style class of the overlay panel.\n * @group Props\n */\n @Input() panelStyleClass: string | undefined;\n /**\n * Inline style of the overlay panel.\n * @group Props\n */\n @Input() panelStyle: { [klass: string]: any } | null | undefined;\n /**\n * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.\n * @group Props\n */\n @Input() overlayOptions: OverlayOptions | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Transition options of the show animation.\n * @group Props\n * @deprecated deprecated since v14.2.0, use overlayOptions property instead.\n */\n @Input() get showTransitionOptions(): string {\n return this._showTransitionOptions;\n }\n set showTransitionOptions(val: string) {\n this._showTransitionOptions = val;\n console.log('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * Whether the dropdown is in loading state.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined = false;\n /**\n * Icon to display in loading state.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Transition options of the hide animation.\n * @group Props\n * @deprecated deprecated since v14.2.0, use overlayOptions property instead.\n */\n @Input() get hideTransitionOptions(): string {\n return this._hideTransitionOptions;\n }\n set hideTransitionOptions(val: string) {\n this._hideTransitionOptions = val;\n console.log('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) fluid: boolean = false;\n /**\n * The breakpoint to define the maximum width boundary.\n * @group Props\n */\n @Input() breakpoint: string = '960px';\n /**\n * Callback to invoke on value change.\n * @param {CascadeSelectChangeEvent} event - Custom change event.\n * @group Emits\n */\n @Output() onChange: EventEmitter<CascadeSelectChangeEvent> = new EventEmitter<CascadeSelectChangeEvent>();\n /**\n * Callback to invoke when a group changes.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onGroupChange: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the overlay is shown.\n * @param {CascadeSelectShowEvent} event - Custom overlay show event.\n * @group Emits\n */\n @Output() onShow: EventEmitter<CascadeSelectShowEvent> = new EventEmitter<CascadeSelectShowEvent>();\n /**\n * Callback to invoke when the overlay is hidden.\n * @param {CascadeSelectHideEvent} event - Custom overlay hide event.\n * @group Emits\n */\n @Output() onHide: EventEmitter<CascadeSelectHideEvent> = new EventEmitter<CascadeSelectHideEvent>();\n /**\n * Callback to invoke when the clear token is clicked.\n * @group Emits\n */\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n /**\n * Callback to invoke before overlay is shown.\n * @param {CascadeSelectBeforeShowEvent} event - Custom overlay show event.\n * @group Emits\n */\n @Output() onBeforeShow: EventEmitter<CascadeSelectBeforeShowEvent> = new EventEmitter<CascadeSelectBeforeShowEvent>();\n /**\n * Callback to invoke before overlay is hidden.\n * @param {CascadeSelectBeforeHideEvent} event - Custom overlay hide event.\n * @group Emits\n */\n @Output() onBeforeHide: EventEmitter<CascadeSelectBeforeHideEvent> = new EventEmitter<CascadeSelectBeforeHideEvent>();\n /**\n * Callback to invoke when input receives focus.\n * @param {FocusEvent} event - Focus event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n /**\n * Callback to invoke when input loses focus.\n * @param {FocusEvent} event - Focus event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n @ViewChild('focusInput') focusInputViewChild: Nullable<ElementRef>;\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('panel') panelViewChild: Nullable<ElementRef>;\n\n @ViewChild('overlay') overlayViewChild: Nullable<Overlay>;\n /**\n * Content template for displaying the selected value.\n * @group Templates\n */\n @ContentChild('value') valueTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the option display.\n * @group Templates\n */\n @ContentChild('option') optionTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the header.\n * @group Templates\n */\n @ContentChild('header') headerTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the footer.\n * @group Templates\n */\n @ContentChild('footer') footerTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the trigger icon.\n * @group Templates\n */\n @ContentChild('triggericon') triggericon: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the loading icon.\n * @group Templates\n */\n @ContentChild('loadingicon') loadingicon: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the group icon.\n * @group Templates\n */\n @ContentChild('optiongroupicon') groupicon: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the clear icon.\n * @group Templates\n */\n @ContentChild('clearicon') clearicon: Nullable<TemplateRef<any>>;\n\n _showTransitionOptions: string = '';\n\n _hideTransitionOptions: string = '';\n\n selectionPath: any = null;\n\n focused: boolean = false;\n\n overlayVisible: boolean = false;\n\n clicked: boolean = false;\n\n dirty: boolean = false;\n\n searchValue: string | undefined;\n\n searchTimeout: any;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n focusedOptionInfo = signal<any>({ index: -1, level: 0, parentKey: '' });\n\n activeOptionPath = signal<any>([]);\n\n modelValue = signal<any>(null);\n\n processedOptions: string[] | string | undefined = [];\n\n _componentStyle = inject(CascadeSelectStyle);\n\n get containerClass() {\n return {\n 'p-cascadeselect p-component p-inputwrapper': true,\n 'p-cascadeselect-clearable': this.showClear && !this.disabled,\n 'p-cascadeselect-mobile': this.queryMatches(),\n 'p-disabled': this.disabled,\n 'p-focus': this.focused,\n 'p-inputwrapper-filled': this.modelValue(),\n 'p-variant-filled': this.variant === 'filled' || this.config.inputStyle() === 'filled' || this.config.inputVariant() === 'filled',\n 'p-inputwrapper-focus': this.focused || this.overlayVisible,\n 'p-cascadeselect-open': this.overlayVisible,\n 'p-cascadeselect-fluid': this.hasFluid,\n 'p-cascadeselect-sm p-inputfield-sm': this.size === 'small',\n 'p-cascadeselect-lg p-inputfield-lg': this.size === 'large'\n };\n }\n\n get labelClass() {\n return {\n 'p-cascadeselect-label': true,\n 'p-placeholder': this.label() === this.placeholder,\n 'p-cascadeselect-label-empty': !this.value && (this.label() === 'p-emptylabel' || this.label().length === 0)\n };\n }\n\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n\n get focusedOptionId() {\n return this.focusedOptionInfo().index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo().parentKey) ? '_' + this.focusedOptionInfo().parentKey : ''}_${this.focusedOptionInfo().index}` : null;\n }\n\n get filled(): boolean {\n if (typeof this.modelValue() === 'string') return !!this.modelValue();\n\n return this.modelValue() || this.modelValue() != null || this.modelValue() != undefined;\n }\n\n get searchResultMessageText() {\n return isNotEmpty(this.visibleOptions()) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions().length) : this.emptySearchMessageText;\n }\n\n get searchMessageText() {\n return this.searchMessage || this.config.translation.searchMessage || '';\n }\n\n get emptySearchMessageText() {\n return this.emptySearchMessage || this.config.translation.emptySearchMessage || '';\n }\n\n get emptyMessageText() {\n return this.emptyMessage || this.config.translation.emptyMessage || '';\n }\n\n get selectionMessageText() {\n return this.selectionMessage || this.config.translation.selectionMessage || '';\n }\n\n get emptySelectionMessageText() {\n return this.emptySelectionMessage || this.config.translation.emptySelectionMessage || '';\n }\n\n get selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n }\n\n visibleOptions = computed(() => {\n const processedOption = this.activeOptionPath().find((p) => p.key === this.focusedOptionInfo().parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n });\n\n label = computed(() => {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption()) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue(), null);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n return label;\n });\n\n get _label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption()) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue(), null);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n return label;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (changes.options) {\n this.processedOptions = this.createProcessedOptions(changes.options.currentValue || []);\n this.updateModel(null);\n }\n }\n\n hasSelectedOption() {\n return isNotEmpty(this.modelValue());\n }\n\n createProcessedOptions(options, level = 0, parent = {}, parentKey = '') {\n const processedOptions = [];\n\n options &&\n options.forEach((option, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newOption = {\n option,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newOption['children'] = this.createProcessedOptions(this.getOptionGroupChildren(option, level), level + 1, newOption, key);\n processedOptions.push(newOption);\n });\n\n return processedOptions;\n }\n\n onInputFocus(event: FocusEvent) {\n if (this.disabled) {\n // For screenreaders\n return;\n }\n\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: FocusEvent) {\n this.focused = false;\n this.focusedOptionInfo.set({ indeX: -1, level: 0, parentKey: '' });\n this.searchValue = '';\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onInputKeyDown(event: KeyboardEvent) {\n if (this.disabled || this.loading) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n this.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n }\n\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n } else {\n const optionIndex = this.focusedOptionInfo().index !== -1 ? this.findNextOptionIndex(this.focusedOptionInfo().index) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedOptionInfo().index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionInfo().index !== -1 ? this.findPrevOptionIndex(this.focusedOptionInfo().index) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n }\n\n onArrowLeftKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const parentOption = this.activeOptionPath().find((p) => p.key === processedOption.parentKey);\n const matched = this.focusedOptionInfo().parentKey === '' || (parentOption && parentOption.key === this.focusedOptionInfo().parentKey);\n const root = isEmpty(processedOption.parent);\n\n if (matched) {\n const activeOptionPath = this.activeOptionPath().filter((p) => p.parentKey !== this.focusedOptionInfo().parentKey);\n this.activeOptionPath.set(activeOptionPath);\n }\n\n if (!root) {\n this.focusedOptionInfo.set({ index: -1, parentKey: parentOption ? parentOption.parentKey : '' });\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n }\n }\n\n onArrowRightKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n if (grouped) {\n const matched = this.activeOptionPath().some((p) => processedOption.key === p.key);\n\n if (matched) {\n this.focusedOptionInfo.set({ index: -1, parentKey: processedOption.key });\n this.searchValue = '';\n this.onArrowDownKey(event);\n } else {\n this.onOptionChange({ originalEvent: event, processedOption });\n }\n }\n\n event.preventDefault();\n }\n }\n\n onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionInfo.set({ ...this.focusedOptionInfo(), index: -1 }); // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionInfo().index !== -1) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n this.onOptionClick({ originalEvent: event, processedOption });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n }\n\n onSpaceKey(event) {\n this.onEnterKey(event);\n }\n\n onEscapeKey(event) {\n this.overlayVisible && this.hide(event, true);\n event.preventDefault();\n }\n\n onTabKey(event) {\n if (this.focusedOptionInfo().index !== -1) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n }\n\n onBackspaceKey(event) {\n if (isNotEmpty(this.modelValue()) && this.showClear) {\n this.clear();\n }\n\n event.stopPropagation();\n }\n\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n }\n\n updateModel(value, event?) {\n this.value = value;\n this.onModelChange(value);\n this.modelValue.set(value);\n\n this.onChange.emit({\n originalEvent: event,\n value: value\n });\n }\n\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {\n this.focusedOptionInfo().index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({\n originalEvent: null,\n processedOption: this.visibleOptions()[this.focusedOptionInfo().index],\n isHide: false\n });\n\n !this.overlayVisible && this.focusedOptionInfo.set({ index: -1, level: 0, parentKey: '' });\n }\n }\n\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.panelViewChild?.nativeElement, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n }\n\n changeFocusedOptionIndex(event, index, preventSelection?: boolean) {\n const focusedOptionInfo = this.focusedOptionInfo();\n\n if (focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.set({ ...focusedOptionInfo, index });\n this.scrollInView();\n\n if (this.focusOnHover) {\n this.onOptionClick({ originalEvent: event, processedOption: this.visibleOptions()[index], isHide: false, preventSelection });\n }\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions()[index], isHide: false });\n }\n }\n }\n matchMediaListener: VoidListener;\n\n onOptionSelect(event) {\n const { originalEvent, value, isHide } = event;\n const newValue = this.getOptionValue(value);\n\n const activeOptionPath = this.activeOptionPath();\n activeOptionPath.forEach((p) => (p.selected = true));\n\n this.activeOptionPath.set(activeOptionPath);\n this.updateModel(newValue, originalEvent);\n isHide && this.hide(event, true);\n }\n\n onOptionGroupSelect(event) {\n this.dirty = true;\n this.onGroupChange.emit(event);\n }\n\n onContainerClick(event: MouseEvent) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlayViewChild?.el?.nativeElement?.contains(event.target)) {\n if (this.overlayVisible) {\n this.hide();\n } else {\n this.show();\n }\n\n this.focusInputViewChild?.nativeElement.focus();\n }\n\n this.clicked = true;\n }\n\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption).toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n }\n\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n }\n\n isValidOption(processedOption) {\n return !!processedOption && !this.isOptionDisabled(processedOption.option);\n }\n\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n }\n\n isSelected(processedOption) {\n return this.activeOptionPath().some((p) => p.key === processedOption.key);\n }\n\n findOptionPathByValue(value, processedOptions?, level = 0) {\n processedOptions = processedOptions || (level === 0 && this.processedOptions);\n\n if (!processedOptions) return null;\n if (isEmpty(value)) return [];\n\n for (let i = 0; i < processedOptions.length; i++) {\n const processedOption = processedOptions[i];\n\n if (equals(value, this.getOptionValue(processedOption.option), this.equalityKey())) {\n return [processedOption];\n }\n\n const matchedOptions = this.findOptionPathByValue(value, processedOption.children, level + 1);\n\n if (matchedOptions) {\n matchedOptions.unshift(processedOption);\n\n return matchedOptions;\n }\n }\n }\n\n findFirstOptionIndex() {\n return this.visibleOptions().findIndex((processedOption) => this.isValidOption(processedOption));\n }\n\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions(), (processedOption) => this.isValidOption(processedOption));\n }\n\n findNextOptionIndex(index) {\n const matchedOptionIndex =\n index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((processedOption) => this.isValidOption(processedOption))\n : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n }\n\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n\n findSelectedOptionIndex() {\n return this.visibleOptions().findIndex((processedOption) => this.isValidSelectedOption(processedOption));\n }\n\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n }\n\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n }\n\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n const focusedOptionInfo = this.focusedOptionInfo();\n\n if (focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions()\n .slice(focusedOptionInfo.index)\n .findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex =\n optionIndex === -1\n ? this.visibleOptions()\n .slice(0, focusedOptionInfo.index)\n .findIndex((processedOption) => this.isOptionMatched(processedOption))\n : optionIndex + focusedOptionInfo.index;\n } else {\n optionIndex = this.visibleOptions().findIndex((processedOption) => this.isOptionMatched(processedOption));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && focusedOptionInfo.index === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n }\n\n hide(event?, isFocus = false) {\n const _hide = () => {\n this.overlayVisible = false;\n this.clicked = false;\n this.activeOptionPath.set([]);\n this.focusedOptionInfo.set({ index: -1, level: 0, parentKey: '' });\n\n isFocus && focus(this.focusInputViewChild.nativeElement);\n this.onHide.emit(event);\n this.cd.markForCheck();\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n }\n\n show(event?, isFocus = false) {\n this.onShow.emit(event);\n this.overlayVisible = true;\n const activeOptionPath = this.hasSelectedOption() ? this.findOptionPathByValue(this.modelValue()) : this.activeOptionPath();\n this.activeOptionPath.set(activeOptionPath);\n let focusedOptionInfo;\n\n if (this.hasSelectedOption() && isNotEmpty(this.activeOptionPath())) {\n const processedOption = this.activeOptionPath()[this.activeOptionPath().length - 1];\n\n focusedOptionInfo = {\n index: processedOption.index,\n level: processedOption.level,\n parentKey: processedOption.parentKey\n };\n } else {\n focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\n\n this.focusedOptionInfo.set(focusedOptionInfo);\n\n isFocus && focus(this.focusInputViewChild.nativeElement);\n }\n\n clear(event?: MouseEvent) {\n if (isNotEmpty(this.modelValue()) && this.showClear) {\n this.updateModel(null);\n this.focusedOptionInfo.set({ index: -1, level: 0, parentKey: '' });\n this.activeOptionPath.set([]);\n this.onClear.emit();\n }\n\n event && event.stopPropagation();\n }\n\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n }\n\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n }\n\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n }\n\n getOptionGroupChildren(optionGroup, level) {\n return resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n }\n\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n }\n\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n }\n\n getProccessedOptionLabel(processedOption) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option) : this.getOptionLabel(processedOption.option);\n }\n\n constructor(public overlayService: OverlayService) {\n super();\n effect(() => {\n const activeOptionPath = this.activeOptionPath();\n if (isNotEmpty(activeOptionPath)) {\n this.overlayViewChild.alignOverlay();\n }\n });\n }\n query: any;\n queryMatches = signal<boolean>(false);\n mobileActive = signal<boolean>(false);\n\n onOptionChange(event) {\n const { processedOption, type } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const activeOptionPath = this.activeOptionPath().filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n this.focusedOptionInfo.set({ index, level, parentKey });\n\n if (type == 'hover' && this.queryMatches()) {\n return;\n }\n\n if (grouped) {\n activeOptionPath.push(processedOption);\n }\n\n this.activeOptionPath.set([...activeOptionPath]);\n }\n\n onOptionClick(event) {\n const { originalEvent, processedOption, isFocus, isHide, preventSelection } = event;\n const { index, key, level, parentKey } = processedOption;\n const grouped = this.isProccessedOptionGroup(processedOption);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n const activeOptionPath = this.activeOptionPath().filter((p) => key !== p.key && key.startsWith(p.key));\n this.activeOptionPath.set([...activeOptionPath]);\n this.focusedOptionInfo.set({ index, level, parentKey });\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect({ originalEvent, value: processedOption.option, isFocus: false });\n } else {\n const activeOptionPath = this.activeOptionPath().filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo.set({ index, level, parentKey });\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath.set([...activeOptionPath]);\n this.onOptionSelect({ originalEvent, value: processedOption.option, isHide: isFocus });\n }\n }\n }\n\n isFocus && focus(this.focusInputViewChild.nativeElement);\n }\n\n onOptionMouseEnter(event) {\n if (this.focusOnHover) {\n if (this.dirty || (!this.dirty && isNotEmpty(this.modelValue()))) {\n this.onOptionChange({ ...event, type: 'hover' });\n } else if (!this.dirty && event.processedOption.level === 0) {\n this.onOptionClick({ ...event, type: 'hover' });\n }\n }\n }\n\n onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.id = this.id || uuid('pn_id_');\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n }\n\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const window: Window = this.document.defaultView;\n if (window && window.matchMedia) {\n const query = window.matchMedia(`(max-width: ${this.breakpoint})`);\n this.query = query;\n this.queryMatches.set(query?.matches);\n\n this.matchMediaListener = () => {\n this.queryMatches.set(query?.matches);\n this.mobileActive.set(false);\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n }\n }\n\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n }\n\n onOverlayAnimationDone(event: any) {\n switch (event.toState) {\n case 'void':\n this.dirty = false;\n break;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.updateModel(value);\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n ngOnDestroy() {\n if (this.matchMediaListener) {\n this.unbindMatchMediaListener();\n }\n }\n}\n\n@NgModule({\n imports: [CascadeSelect, SharedModule],\n exports: [CascadeSelect, SharedModule]\n})\nexport class CascadeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-cascadeselect.mjs","sources":["../../src/cascadeselect/style/cascadeselectstyle.ts","../../src/cascadeselect/cascadeselect.ts","../../src/cascadeselect/primeng-cascadeselect.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-cascadeselect {\n display: inline-flex;\n cursor: pointer;\n position: relative;\n user-select: none;\n background: ${dt('cascadeselect.background')};\n border: 1px solid ${dt('cascadeselect.border.color')};\n transition: background ${dt('cascadeselect.transition.duration')}, color ${dt('cascadeselect.transition.duration')}, border-color ${dt('cascadeselect.transition.duration')}, outline-color ${dt(\n 'cascadeselect.transition.duration'\n )}, box-shadow ${dt('cascadeselect.transition.duration')};\n border-radius: ${dt('cascadeselect.border.radius')};\n outline-color: transparent;\n box-shadow: ${dt('cascadeselect.shadow')};\n}\n\np-cascadeselect.ng-invalid.ng-dirty .p-cascadeselect {\n border-color: ${dt('cascadeselect.invalid.border.color')};\n}\n\np-cascadeselect.ng-invalid.ng-dirty .p-cascadeselect.p-focus {\n border-color: ${dt('cascadeselect.focus.border.color')};\n}\n\n.p-cascadeselect:not(.p-disabled):hover {\n border-color: ${dt('cascadeselect.hover.border.color')};\n}\n\n.p-cascadeselect:not(.p-disabled).p-focus {\n border-color: ${dt('cascadeselect.focus.border.color')};\n box-shadow: ${dt('cascadeselect.focus.ring.shadow')};\n outline: ${dt('cascadeselect.focus.ring.width')} ${dt('cascadeselect.focus.ring.style')} ${dt('cascadeselect.focus.ring.color')};\n outline-offset: ${dt('multiscascadeselectelect.focus.ring.offset')};\n}\n\n.p-cascadeselect.p-variant-filled {\n background: ${dt('cascadeselect.filled.background')};\n}\n\n.p-cascadeselect.p-variant-filled:not(.p-disabled):hover {\n background: ${dt('cascadeselect.filled.hover.background')};\n}\n\n.p-cascadeselect.p-variant-filled.p-focus {\n background: ${dt('cascadeselect.filled.focus.background')};\n}\n\n.p-cascadeselect.p-disabled {\n opacity: 1;\n background: ${dt('cascadeselect.disabled.background')};\n}\n\n.p-cascadeselect-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: ${dt('cascadeselect.dropdown.color')};\n width: ${dt('cascadeselect.dropdown.width')};\n border-start-end-radius: ${dt('border.radius.md')};\n border-end-end-radius: ${dt('border.radius.md')};\n}\n\n.p-cascadeselect-label {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n flex: 1 1 auto;\n width: 1%;\n text-overflow: ellipsis;\n cursor: pointer;\n padding: ${dt('cascadeselect.padding.y')} ${dt('cascadeselect.padding.x')};\n background: transparent;\n border: 0 none;\n outline: 0 none;\n}\n\n.p-cascadeselect-label.p-placeholder {\n color: ${dt('cascadeselect.placeholder.color')};\n}\n\np-cascadeselect.ng-invalid.ng-dirty .p-cascadeselect-label.p-placeholder {\n color: ${dt('cascadeselect.invalid.placeholder.color')};\n}\n\n.p-cascadeselect.p-disabled .p-cascadeselect-label {\n color: ${dt('cascadeselect.disabled.color')};\n}\n\n.p-cascadeselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n}\n\n.p-cascadeselect-fluid {\n display: flex;\n}\n\n.p-cascadeselect-fluid .p-cascadeselect-label {\n width: 1%;\n}\n\n.p-cascadeselect-overlay {\n background: ${dt('cascadeselect.overlay.background')};\n color: ${dt('cascadeselect.overlay.color')};\n border: 1px solid ${dt('cascadeselect.overlay.border.color')};\n border-radius: ${dt('cascadeselect.overlay.border.radius')};\n box-shadow: ${dt('cascadeselect.overlay.shadow')};\n}\n\n.p-cascadeselect .p-cascadeselect-overlay {\n min-width: 100%;\n}\n\n.p-cascadeselect-option-list {\n display: none;\n min-width: 100%;\n position: absolute;\n z-index: 1;\n}\n\n.p-cascadeselect-list {\n min-width: 100%;\n margin: 0;\n padding: 0;\n list-style-type: none;\n padding: ${dt('cascadeselect.list.padding')};\n display: flex;\n flex-direction: column;\n gap: ${dt('cascadeselect.list.gap')}\n}\n\n.p-cascadeselect-option {\n cursor: pointer;\n font-weight: normal;\n white-space: nowrap;\n border: 0 none;\n color: ${dt('cascadeselect.option.color')};\n background: transparent;\n transition: background ${dt('cascadeselect.transition.duration')}, color ${dt('cascadeselect.transition.duration')}, border-color ${dt('cascadeselect.transition.duration')}, box-shadow ${dt(\n 'cascadeselect.transition.duration'\n )}, outline-color ${dt('cascadeselect.transition.duration')};\n border-radius: ${dt('cascadeselect.option.border.radius')};\n}\n\n.p-cascadeselect-option-active {\n overflow: visible;\n}\n\n.p-cascadeselect-option-active > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.focus.background')};\n color: ${dt('cascadeselect.option.focus.color')};\n}\n\n.p-cascadeselect-option:not(.p-cascadeselect-option-selected):not(.p-disabled).p-focus > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.focus.background')};\n color: ${dt('cascadeselect.option.focus.color')};\n}\n\n.p-cascadeselect-option:not(.p-cascadeselect-option-selected):not(.p-disabled).p-focus > .p-cascadeselect-option-content > .p-cascadeselect-group-icon-container > .p-cascadeselect-group-icon {\n color: ${dt('cascadeselect.option.icon.focus.color')};\n}\n\n.p-cascadeselect-option-selected > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.selected.background')};\n color: ${dt('cascadeselect.option.selected.color')};\n}\n\n.p-cascadeselect-option-selected.p-focus > .p-cascadeselect-option-content {\n background: ${dt('cascadeselect.option.selected.focus.background')};\n color: ${dt('cascadeselect.option.selected.focus.color')};\n}\n\n.p-cascadeselect-option-active > .p-cascadeselect-option-list {\n inset-inline-start: 100%;\n top: 0;\n}\n\n.p-cascadeselect-option-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n overflow: hidden;\n position: relative;\n padding: ${dt('cascadeselect.option.padding')};\n border-radius: ${dt('cascadeselect.option.border.radius')};\n transition: background ${dt('cascadeselect.transition.duration')}, color ${dt('cascadeselect.transition.duration')}, border-color ${dt('cascadeselect.transition.duration')}, box-shadow ${dt(\n 'cascadeselect.transition.duration'\n )}, outline-color ${dt('cascadeselect.transition.duration')};\n}\n\n.p-cascadeselect-group-icon {\n font-size: ${dt('cascadeselect.option.icon.size')};\n width: ${dt('cascadeselect.option.icon.size')};\n height: ${dt('cascadeselect.option.icon.size')};\n color: ${dt('cascadeselect.option.icon.color')};\n}\n\n.p-cascadeselect-group-icon:dir(rtl) {\n transform: rotate(180deg);\n}\n\n.p-cascadeselect-mobile-active .p-cascadeselect-option-list {\n position: static;\n box-shadow: none;\n border: 0 none;\n padding-inline-start: 1rem;\n padding-inline-end: 0;\n}\n\n.p-cascadeselect-mobile-active .p-cascadeselect-group-icon {\n transition: transform 0.2s;\n transform: rotate(90deg);\n}\n\n.p-cascadeselect-mobile-active .p-cascadeselect-option-active > .p-cascadeselect-option-content .p-cascadeselect-group-icon {\n transform: rotate(-90deg);\n}\n\n.p-cascadeselect-sm .p-cascadeselect-label {\n font-size: ${dt('cascadeselect.sm.font.size')};\n padding-block: ${dt('cascadeselect.sm.padding.y')};\n padding-inline: ${dt('cascadeselect.sm.padding.x')};\n}\n\n.p-cascadeselect-sm .p-cascadeselect-dropdown .p-icon {\n font-size: ${dt('cascadeselect.sm.font.size')};\n width: ${dt('cascadeselect.sm.font.size')};\n height: ${dt('cascadeselect.sm.font.size')};\n}\n\n.p-cascadeselect-lg .p-cascadeselect-label {\n font-size: ${dt('cascadeselect.lg.font.size')};\n padding-block: ${dt('cascadeselect.lg.padding.y')};\n padding-inline: ${dt('cascadeselect.lg.padding.x')};\n}\n\n.p-cascadeselect-lg .p-cascadeselect-dropdown .p-icon {\n font-size: ${dt('cascadeselect.lg.font.size')};\n width: ${dt('cascadeselect.lg.font.size')};\n height: ${dt('cascadeselect.lg.font.size')};\n}\n\n/* For PrimeNG */\n.p-cascadeselect-clear-icon {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: ${dt('cascadeselect.clear.icon.color')};\n}`;\n\nconst inlineStyles = {\n root: ({ props }) => ({ position: props.appendTo === 'self' ? 'relative' : undefined })\n};\n\nconst classes = {\n root: ({ instance, props }) => [\n 'p-cascadeselect p-component p-inputwrapper',\n {\n 'p-cascadeselect-mobile': instance.queryMatches(),\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.config.inputStyle === 'filled' || instance.config.inputVariant === 'filled',\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': props.modelValue,\n 'p-inputwrapper-focus': instance.focused || instance.overlayVisible,\n 'p-cascadeselect-open': instance.overlayVisible,\n 'p-cascadeselect-fluid': props.fluid,\n 'p-cascadeselect-sm p-inputfield-sm': props.size === 'small',\n 'p-cascadeselect-lg p-inputfield-lg': props.size === 'large'\n }\n ],\n label: ({ instance, props }) => [\n 'p-cascadeselect-label',\n {\n 'p-placeholder': instance.label === props.placeholder,\n 'p-cascadeselect-label-empty': !instance.$slots['value'] && (instance.label === 'p-emptylabel' || instance.label.length === 0)\n }\n ],\n dropdown: 'p-cascadeselect-dropdown',\n loadingIcon: 'p-cascadeselect-loading-icon',\n dropdownIcon: 'p-cascadeselect-dropdown-icon',\n overlay: ({ instance }) => [\n 'p-cascadeselect-overlay p-component',\n {\n 'p-cascadeselect-mobile-active': instance.queryMatches()\n }\n ],\n listContainer: 'p-cascadeselect-list-container',\n list: 'p-cascadeselect-list',\n option: ({ instance, processedOption }) => [\n 'p-cascadeselect-option',\n {\n 'p-cascadeselect-option-active': instance.isOptionActive(processedOption),\n 'p-cascadeselect-option-selected': instance.isOptionSelected(processedOption),\n 'p-focus': instance.isOptionFocused(processedOption),\n 'p-disabled': instance.isOptionDisabled(processedOption)\n }\n ],\n optionContent: 'p-cascadeselect-option-content',\n optionText: 'p-cascadeselect-option-text',\n groupIcon: 'p-cascadeselect-group-icon',\n optionList: 'p-cascadeselect-overlay p-cascadeselect-option-list'\n};\n\n@Injectable()\nexport class CascadeSelectStyle extends BaseStyle {\n name = 'cascadeselect';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n\n/**\n *\n * CascadeSelect is a form component to select a value from a nested structure of options.\n *\n * [Live Demo](https://www.primeng.org/cascadeselect/)\n *\n * @module cascadeselectstyle\n *\n */\nexport enum CascadeSelectClasses {\n /**\n * Class name of the root element\n */\n root = 'p-cascadeselect',\n /**\n * Class name of the label element\n */\n label = 'p-cascadeselect-label',\n /**\n * Class name of the dropdown element\n */\n dropdown = 'p-cascadeselect-dropdown',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-cascadeselect-loading-icon',\n /**\n * Class name of the dropdown icon element\n */\n dropdownIcon = 'p-cascadeselect-dropdown-icon',\n /**\n * Class name of the overlay element\n */\n overlay = 'p-cascadeselect-overlay',\n /**\n * Class name of the list container element\n */\n listContainer = 'p-cascadeselect-list-container',\n /**\n * Class name of the list element\n */\n list = 'p-cascadeselect-list',\n /**\n * Class name of the item element\n */\n item = 'p-cascadeselect-item',\n /**\n * Class name of the item content element\n */\n itemContent = 'p-cascadeselect-item-content',\n /**\n * Class name of the item text element\n */\n itemText = 'p-cascadeselect-item-text',\n /**\n * Class name of the group icon element\n */\n groupIcon = 'p-cascadeselect-group-icon',\n /**\n * Class name of the item list element\n */\n itemList = 'p-cascadeselect-item-list'\n}\n\nexport interface CascadeSelectStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n NgModule,\n numberAttribute,\n OnInit,\n Output,\n QueryList,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { calculateScrollbarWidth, equals, findLastIndex, findSingle, focus, getHiddenElementOuterWidth, getOffset, getOuterWidth, getViewport, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData, uuid } from '@primeuix/utils';\nimport { OverlayOptions, OverlayService, PrimeTemplate, SharedModule, TranslationKeys } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { AngleRightIcon, ChevronDownIcon, TimesIcon } from 'primeng/icons';\nimport { Overlay } from 'primeng/overlay';\nimport { Ripple } from 'primeng/ripple';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { CascadeSelectBeforeHideEvent, CascadeSelectBeforeShowEvent, CascadeSelectChangeEvent, CascadeSelectHideEvent, CascadeSelectShowEvent } from './cascadeselect.interface';\nimport { CascadeSelectStyle } from './style/cascadeselectstyle';\n\nexport const CASCADESELECT_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CascadeSelect),\n multi: true\n};\n\n@Component({\n selector: 'p-cascadeSelectSub, p-cascadeselect-sub',\n standalone: true,\n imports: [CommonModule, Ripple, AngleRightIcon, SharedModule],\n template: `\n <ul class=\"p-cascadeselect-list\" [attr.role]=\"role\" aria-orientation=\"horizontal\" [attr.data-pc-section]=\"level === 0 ? 'list' : 'sublist'\" [attr.aria-label]=\"listLabel\">\n <ng-template ngFor let-processedOption [ngForOf]=\"options\" let-i=\"index\">\n <li\n [ngClass]=\"getItemClass(processedOption)\"\n role=\"treeitem\"\n [attr.aria-level]=\"level + 1\"\n [attr.aria-setsize]=\"options.length\"\n [attr.data-pc-section]=\"'item'\"\n [id]=\"getOptionId(processedOption)\"\n [attr.aria-label]=\"getOptionLabelToRender(processedOption)\"\n [attr.aria-selected]=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n [attr.aria-posinset]=\"i + 1\"\n >\n <div\n class=\"p-cascadeselect-option-content\"\n (click)=\"onOptionClick($event, processedOption)\"\n (mouseenter)=\"onOptionMouseEnter($event, processedOption)\"\n (mousemove)=\"onOptionMouseMove($event, processedOption)\"\n pRipple\n [attr.data-pc-section]=\"'content'\"\n >\n <ng-container *ngIf=\"optionTemplate; else defaultOptionTemplate\">\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: processedOption?.option }\"></ng-container>\n </ng-container>\n <ng-template #defaultOptionTemplate>\n <span class=\"p-cascadeselect-option-text\" [attr.data-pc-section]=\"'text'\">{{ getOptionLabelToRender(processedOption) }}</span>\n </ng-template>\n <span class=\"p-cascadeselect-group-icon\" *ngIf=\"isOptionGroup(processedOption)\" [attr.data-pc-section]=\"'groupIcon'\">\n <AngleRightIcon *ngIf=\"!groupicon\" />\n <ng-template *ngTemplateOutlet=\"groupicon\"></ng-template>\n </span>\n </div>\n <p-cascadeselect-sub\n *ngIf=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n [role]=\"'group'\"\n class=\"p-cascadeselect-list p-cascadeselect-overlay p-cascadeselect-option-list\"\n [selectId]=\"selectId\"\n [focusedOptionId]=\"focusedOptionId\"\n [activeOptionPath]=\"activeOptionPath\"\n [options]=\"getOptionGroupChildren(processedOption)\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [level]=\"level + 1\"\n (onChange)=\"onChange.emit($event)\"\n (onFocusChange)=\"onFocusChange.emit($event)\"\n (onFocusEnterChange)=\"onFocusEnterChange.emit($event)\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [optionGroupChildren]=\"optionGroupChildren\"\n [dirty]=\"dirty\"\n [optionTemplate]=\"optionTemplate\"\n >\n </p-cascadeselect-sub>\n </li>\n </ng-template>\n </ul>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CascadeSelectSub extends BaseComponent implements OnInit {\n @Input() role: string | undefined;\n\n @Input() selectId: string | undefined;\n\n @Input() activeOptionPath: any[];\n\n @Input() optionDisabled: any[];\n\n @Input() focusedOptionId: string | undefined;\n\n @Input() options: any[] | string[] | string | undefined | null;\n\n @Input() optionGroupChildren: string[] | string | undefined | null;\n\n @Input() optionTemplate: Nullable<TemplateRef<any>>;\n\n @Input() groupicon: Nullable<TemplateRef<any>>;\n\n @Input({ transform: numberAttribute }) level: number = 0;\n\n @Input() optionLabel: string | undefined;\n\n @Input() optionValue: string | undefined;\n\n @Input() optionGroupLabel: string | undefined;\n\n @Input({ transform: booleanAttribute }) dirty: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) root: boolean | undefined;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocusChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocusEnterChange: EventEmitter<any> = new EventEmitter();\n\n get listLabel(): string {\n return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];\n }\n\n constructor(public cascadeselect: CascadeSelect) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (!this.root) {\n this.position();\n }\n }\n\n onOptionClick(event, processedOption: any) {\n this.onChange.emit({\n originalEvent: event,\n processedOption,\n isFocus: true\n });\n }\n\n onOptionMouseEnter(event, processedOption) {\n this.onFocusEnterChange.emit({ originalEvent: event, processedOption });\n }\n\n onOptionMouseMove(event, processedOption) {\n this.onFocusChange.emit({ originalEvent: event, processedOption });\n }\n\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n }\n\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n }\n\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n }\n\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n }\n\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n }\n\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n }\n\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n }\n\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n }\n\n isOptionSelected(processedOption) {\n return equals(this.cascadeselect?.modelValue(), processedOption?.option);\n }\n\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n }\n\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n }\n\n getItemClass(option: string | string[]) {\n return {\n 'p-cascadeselect-option': true,\n 'p-cascadeselect-option-group': this.isOptionGroup(option),\n 'p-cascadeselect-option-active': this.isOptionActive(option),\n 'p-cascadeselect-option-selected': this.isOptionSelected(option),\n 'p-focus': this.isOptionFocused(option),\n 'p-disabled': this.isOptionDisabled(option)\n };\n }\n\n position() {\n const parentItem = this.el.nativeElement.parentElement;\n const containerOffset = <any>getOffset(parentItem);\n const viewport = <any>getViewport();\n const sublistWidth = this.el.nativeElement.children[0].offsetParent ? this.el.nativeElement.children[0].offsetWidth : getHiddenElementOuterWidth(this.el.nativeElement.children[0]);\n const itemOuterWidth = <any>getOuterWidth(parentItem.children[0]);\n if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - calculateScrollbarWidth()) {\n this.el.nativeElement.children[0].style.left = '-200%';\n }\n }\n}\n/**\n * CascadeSelect is a form component to select a value from a nested structure of options.\n * @group Components\n */\n@Component({\n selector: 'p-cascadeSelect, p-cascadeselect, p-cascade-select',\n standalone: true,\n imports: [CommonModule, Overlay, AutoFocus, CascadeSelectSub, ChevronDownIcon, TimesIcon, SharedModule],\n template: ` <div #container [ngClass]=\"containerClass\" [class]=\"styleClass\" [ngStyle]=\"style\" (click)=\"onContainerClick($event)\" [attr.data-pc-name]=\"'cascadeselect'\" [attr.data-pc-section]=\"'root'\">\n <div class=\"p-hidden-accessible\" [attr.data-pc-section]=\"'hiddenInputWrapper'\">\n <input\n #focusInput\n readonly\n type=\"text\"\n role=\"combobox\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [tabindex]=\"!disabled ? tabindex : -1\"\n [attr.id]=\"inputId\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n aria-haspopup=\"tree\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? id + '_tree' : null\"\n [attr.aria-activedescendant]=\"focused ? focusedOptionId : undefined\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onInputKeyDown($event)\"\n [pAutoFocus]=\"autofocus\"\n />\n </div>\n <span [ngClass]=\"labelClass\" [attr.data-pc-section]=\"'label'\">\n <ng-container *ngIf=\"valueTemplate || _valueTemplate; else defaultValueTemplate\">\n <ng-container *ngTemplateOutlet=\"valueTemplate || _valueTemplate; context: { $implicit: value, placeholder: placeholder }\"></ng-container>\n </ng-container>\n <ng-template #defaultValueTemplate>\n {{ label() }}\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"filled && !disabled && showClear\">\n <TimesIcon *ngIf=\"!clearIconTemplate && !_clearIconTemplate\" class=\"p-cascadeselect-clear-icon\" (click)=\"clear($event)\" [attr.data-pc-section]=\"'clearicon'\" [attr.aria-hidden]=\"true\" />\n <span *ngIf=\"clearIconTemplate || _clearIconTemplate\" class=\"p-cascadeselect-clear-icon\" (click)=\"clear($event)\" [attr.data-pc-section]=\"'clearicon'\" [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate || _clearIconTemplate\"></ng-template>\n </span>\n </ng-container>\n\n <div class=\"p-cascadeselect-dropdown\" role=\"button\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible ?? false\" [attr.data-pc-section]=\"'dropdownIcon'\" [attr.aria-hidden]=\"true\">\n <ng-container *ngIf=\"loading; else elseBlock\">\n <ng-container *ngIf=\"loadingIconTemplate || _loadingIconTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!loadingIconTemplate && !_loadingIconTemplate\">\n <span *ngIf=\"loadingIcon\" [ngClass]=\"'p-cascadeselect-loading-icon pi-spin ' + loadingIcon\" aria-hidden=\"true\"></span>\n <span *ngIf=\"!loadingIcon\" [class]=\"'p-cascadeselect-loading-icon pi pi-spinner pi-spin'\" aria-hidden=\"true\"></span>\n </ng-container>\n </ng-container>\n <ng-template #elseBlock>\n <ChevronDownIcon *ngIf=\"!triggerIconTemplate && !_triggerIconTemplate\" [styleClass]=\"'p-cascadeselect-dropdown-icon'\" />\n <span *ngIf=\"triggerIconTemplate || _triggerIconTemplate\" class=\"p-cascadeselect-dropdown-icon\">\n <ng-template *ngTemplateOutlet=\"triggerIconTemplate || _triggerIconTemplate\"></ng-template>\n </span>\n </ng-template>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\">\n {{ searchResultMessageText }}\n </span>\n <p-overlay\n #overlay\n [(visible)]=\"overlayVisible\"\n [options]=\"overlayOptions\"\n [target]=\"'@parent'\"\n [appendTo]=\"appendTo\"\n [showTransitionOptions]=\"showTransitionOptions\"\n [hideTransitionOptions]=\"hideTransitionOptions\"\n (onAnimationDone)=\"onOverlayAnimationDone($event)\"\n (onBeforeShow)=\"onBeforeShow.emit($event)\"\n (onShow)=\"show($event)\"\n (onBeforeHide)=\"onBeforeHide.emit($event)\"\n (onHide)=\"hide($event)\"\n >\n <ng-template #content>\n <div #panel [ngClass]=\"{ 'p-cascadeselect-overlay p-component': true, 'p-cascadeselect-mobile-active': queryMatches() }\" [class]=\"panelStyleClass\" [ngStyle]=\"panelStyle\" [attr.data-pc-section]=\"'panel'\">\n <ng-template *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-template>\n <div class=\"p-cascadeselect-list-container\" [attr.data-pc-section]=\"'wrapper'\">\n <p-cascadeselect-sub\n [options]=\"processedOptions\"\n [selectId]=\"id\"\n [focusedOptionId]=\"focused ? focusedOptionId : undefined\"\n [activeOptionPath]=\"activeOptionPath()\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [level]=\"0\"\n [optionTemplate]=\"optionTemplate || _optionTemplate\"\n [groupicon]=\"groupIconTemplate || groupIconTemplate\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [optionGroupChildren]=\"optionGroupChildren\"\n [optionDisabled]=\"optionDisabled\"\n [root]=\"true\"\n (onChange)=\"onOptionClick($event)\"\n (onFocusChange)=\"onOptionMouseMove($event)\"\n (onFocusEnterChange)=\"onOptionMouseEnter($event)\"\n [dirty]=\"dirty\"\n [role]=\"'tree'\"\n >\n </p-cascadeselect-sub>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\">\n {{ selectedMessageText }}\n </span>\n <ng-template *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-template>\n </div>\n </ng-template>\n </p-overlay>\n </div>`,\n providers: [CASCADESELECT_VALUE_ACCESSOR, CascadeSelectStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class CascadeSelect extends BaseComponent implements OnInit, AfterContentInit {\n /**\n * Unique identifier of the component\n * @group Props\n */\n @Input() id: string | undefined;\n /**\n * Text to display when the search is active. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} results are available'\n */\n @Input() searchMessage: string | undefined;\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n @Input() emptyMessage: string | undefined;\n /**\n * Text to be displayed in hidden accessible field when options are selected. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} items selected'\n */\n @Input() selectionMessage: string | undefined;\n /**\n * Text to display when filtering does not return any results. Defaults to value from PrimeNG locale configuration.\n * @group Props\n * @defaultValue 'No available options'\n */\n @Input() emptySearchMessage: string | undefined;\n /**\n * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue 'No selected item'\n */\n @Input() emptySelectionMessage: string | undefined;\n /**\n * Locale to use in searching. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() searchLocale: string | undefined;\n /**\n * Name of the disabled field of an option.\n * @group Props\n */\n @Input() optionDisabled: any;\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) focusOnHover: boolean = true;\n /**\n * Determines if the option will be selected on focus.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) selectOnFocus: boolean = false;\n /**\n * Whether to focus on the first visible or selected element when the overlay panel is shown.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoOptionFocus: boolean = false;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * An array of selectitems to display as the available options.\n * @group Props\n */\n @Input() options: string[] | string | undefined;\n /**\n * Property name or getter function to use as the label of an option.\n * @group Props\n */\n @Input() optionLabel: string | undefined;\n /**\n * Property name or getter function to use as the value of an option, defaults to the option itself when not defined.\n * @group Props\n */\n @Input() optionValue: string | undefined;\n /**\n * Property name or getter function to use as the label of an option group.\n * @group Props\n */\n @Input() optionGroupLabel: string | undefined;\n /**\n * Property name or getter function to retrieve the items of a group.\n * @group Props\n */\n @Input() optionGroupChildren: string | undefined;\n /**\n * Default text to display when no option is selected.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Selected value of the component.\n * @group Props\n */\n @Input() value: string | undefined | null;\n /**\n * A property to uniquely identify an option.\n * @group Props\n */\n @Input() dataKey: string | undefined;\n /**\n * Identifier of the underlying input element.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Defines the size of the component.\n * @group Props\n */\n @Input() size: 'large' | 'small';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined = 0;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Label of the input for accessibility.\n * @group Props\n */\n @Input() inputLabel: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Id of the element or \"body\" for document where the overlay should be appended to.\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * Style class of the overlay panel.\n * @group Props\n */\n @Input() panelStyleClass: string | undefined;\n /**\n * Inline style of the overlay panel.\n * @group Props\n */\n @Input() panelStyle: { [klass: string]: any } | null | undefined;\n /**\n * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.\n * @group Props\n */\n @Input() overlayOptions: OverlayOptions | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Transition options of the show animation.\n * @group Props\n * @deprecated deprecated since v14.2.0, use overlayOptions property instead.\n */\n @Input() get showTransitionOptions(): string {\n return this._showTransitionOptions;\n }\n set showTransitionOptions(val: string) {\n this._showTransitionOptions = val;\n console.log('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * Whether the dropdown is in loading state.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined = false;\n /**\n * Icon to display in loading state.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Transition options of the hide animation.\n * @group Props\n * @deprecated deprecated since v14.2.0, use overlayOptions property instead.\n */\n @Input() get hideTransitionOptions(): string {\n return this._hideTransitionOptions;\n }\n set hideTransitionOptions(val: string) {\n this._hideTransitionOptions = val;\n console.log('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) fluid: boolean = false;\n /**\n * The breakpoint to define the maximum width boundary.\n * @group Props\n */\n @Input() breakpoint: string = '960px';\n /**\n * Callback to invoke on value change.\n * @param {CascadeSelectChangeEvent} event - Custom change event.\n * @group Emits\n */\n @Output() onChange: EventEmitter<CascadeSelectChangeEvent> = new EventEmitter<CascadeSelectChangeEvent>();\n /**\n * Callback to invoke when a group changes.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onGroupChange: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the overlay is shown.\n * @param {CascadeSelectShowEvent} event - Custom overlay show event.\n * @group Emits\n */\n @Output() onShow: EventEmitter<CascadeSelectShowEvent> = new EventEmitter<CascadeSelectShowEvent>();\n /**\n * Callback to invoke when the overlay is hidden.\n * @param {CascadeSelectHideEvent} event - Custom overlay hide event.\n * @group Emits\n */\n @Output() onHide: EventEmitter<CascadeSelectHideEvent> = new EventEmitter<CascadeSelectHideEvent>();\n /**\n * Callback to invoke when the clear token is clicked.\n * @group Emits\n */\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n /**\n * Callback to invoke before overlay is shown.\n * @param {CascadeSelectBeforeShowEvent} event - Custom overlay show event.\n * @group Emits\n */\n @Output() onBeforeShow: EventEmitter<CascadeSelectBeforeShowEvent> = new EventEmitter<CascadeSelectBeforeShowEvent>();\n /**\n * Callback to invoke before overlay is hidden.\n * @param {CascadeSelectBeforeHideEvent} event - Custom overlay hide event.\n * @group Emits\n */\n @Output() onBeforeHide: EventEmitter<CascadeSelectBeforeHideEvent> = new EventEmitter<CascadeSelectBeforeHideEvent>();\n /**\n * Callback to invoke when input receives focus.\n * @param {FocusEvent} event - Focus event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n /**\n * Callback to invoke when input loses focus.\n * @param {FocusEvent} event - Focus event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n @ViewChild('focusInput') focusInputViewChild: Nullable<ElementRef>;\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('panel') panelViewChild: Nullable<ElementRef>;\n\n @ViewChild('overlay') overlayViewChild: Nullable<Overlay>;\n /**\n * Content template for displaying the selected value.\n * @group Templates\n */\n @ContentChild('value', { descendants: false }) valueTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the option display.\n * @group Templates\n */\n @ContentChild('option', { descendants: false }) optionTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the header.\n * @group Templates\n */\n @ContentChild('header', { descendants: false }) headerTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the footer.\n * @group Templates\n */\n @ContentChild('footer', { descendants: false }) footerTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the trigger icon.\n * @group Templates\n */\n @ContentChild('triggericon', { descendants: false }) triggerIconTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the loading icon.\n * @group Templates\n */\n @ContentChild('loadingicon', { descendants: false }) loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the group icon.\n * @group Templates\n */\n @ContentChild('optiongroupicon', { descendants: false }) groupIconTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Content template for customizing the clear icon.\n * @group Templates\n */\n @ContentChild('clearicon', { descendants: false }) clearIconTemplate: Nullable<TemplateRef<any>>;\n\n _valueTemplate: TemplateRef<any> | undefined;\n\n _optionTemplate: TemplateRef<any> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _triggerIconTemplate: TemplateRef<any> | undefined;\n\n _loadingIconTemplate: TemplateRef<any> | undefined;\n\n _groupIconTemplate: TemplateRef<any> | undefined;\n\n _clearIconTemplate: TemplateRef<any> | undefined;\n\n _showTransitionOptions: string = '';\n\n _hideTransitionOptions: string = '';\n\n selectionPath: any = null;\n\n focused: boolean = false;\n\n overlayVisible: boolean = false;\n\n clicked: boolean = false;\n\n dirty: boolean = false;\n\n searchValue: string | undefined;\n\n searchTimeout: any;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n focusedOptionInfo = signal<any>({ index: -1, level: 0, parentKey: '' });\n\n activeOptionPath = signal<any>([]);\n\n modelValue = signal<any>(null);\n\n processedOptions: string[] | string | undefined = [];\n\n _componentStyle = inject(CascadeSelectStyle);\n\n get containerClass() {\n return {\n 'p-cascadeselect p-component p-inputwrapper': true,\n 'p-cascadeselect-clearable': this.showClear && !this.disabled,\n 'p-cascadeselect-mobile': this.queryMatches(),\n 'p-disabled': this.disabled,\n 'p-focus': this.focused,\n 'p-inputwrapper-filled': this.modelValue(),\n 'p-variant-filled': this.variant === 'filled' || this.config.inputStyle() === 'filled' || this.config.inputVariant() === 'filled',\n 'p-inputwrapper-focus': this.focused || this.overlayVisible,\n 'p-cascadeselect-open': this.overlayVisible,\n 'p-cascadeselect-fluid': this.hasFluid,\n 'p-cascadeselect-sm p-inputfield-sm': this.size === 'small',\n 'p-cascadeselect-lg p-inputfield-lg': this.size === 'large'\n };\n }\n\n get labelClass() {\n return {\n 'p-cascadeselect-label': true,\n 'p-placeholder': this.label() === this.placeholder,\n 'p-cascadeselect-label-empty': !this.value && (this.label() === 'p-emptylabel' || this.label().length === 0)\n };\n }\n\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n\n get focusedOptionId() {\n return this.focusedOptionInfo().index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo().parentKey) ? '_' + this.focusedOptionInfo().parentKey : ''}_${this.focusedOptionInfo().index}` : null;\n }\n\n get filled(): boolean {\n if (typeof this.modelValue() === 'string') return !!this.modelValue();\n\n return this.modelValue() || this.modelValue() != null || this.modelValue() != undefined;\n }\n\n get searchResultMessageText() {\n return isNotEmpty(this.visibleOptions()) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions().length) : this.emptySearchMessageText;\n }\n\n get searchMessageText() {\n return this.searchMessage || this.config.translation.searchMessage || '';\n }\n\n get emptySearchMessageText() {\n return this.emptySearchMessage || this.config.translation.emptySearchMessage || '';\n }\n\n get emptyMessageText() {\n return this.emptyMessage || this.config.translation.emptyMessage || '';\n }\n\n get selectionMessageText() {\n return this.selectionMessage || this.config.translation.selectionMessage || '';\n }\n\n get emptySelectionMessageText() {\n return this.emptySelectionMessage || this.config.translation.emptySelectionMessage || '';\n }\n\n get selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n }\n\n visibleOptions = computed(() => {\n const processedOption = this.activeOptionPath().find((p) => p.key === this.focusedOptionInfo().parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n });\n\n label = computed(() => {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption()) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue(), null);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n return label;\n });\n\n get _label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption()) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue(), null);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n return label;\n }\n\n @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'value':\n this._valueTemplate = item.template;\n break;\n\n case 'option':\n this._optionTemplate = item.template;\n break;\n\n case 'triggericon':\n this._triggerIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this._loadingIconTemplate = item.template;\n break;\n\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n\n case 'optiongroupicon':\n this._groupIconTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (changes.options) {\n this.processedOptions = this.createProcessedOptions(changes.options.currentValue || []);\n this.updateModel(null);\n }\n }\n\n hasSelectedOption() {\n return isNotEmpty(this.modelValue());\n }\n\n createProcessedOptions(options, level = 0, parent = {}, parentKey = '') {\n const processedOptions = [];\n\n options &&\n options.forEach((option, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newOption = {\n option,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newOption['children'] = this.createProcessedOptions(this.getOptionGroupChildren(option, level), level + 1, newOption, key);\n processedOptions.push(newOption);\n });\n\n return processedOptions;\n }\n\n onInputFocus(event: FocusEvent) {\n if (this.disabled) {\n // For screenreaders\n return;\n }\n\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: FocusEvent) {\n this.focused = false;\n this.focusedOptionInfo.set({ indeX: -1, level: 0, parentKey: '' });\n this.searchValue = '';\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onInputKeyDown(event: KeyboardEvent) {\n if (this.disabled || this.loading) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n this.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n }\n\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n } else {\n const optionIndex = this.focusedOptionInfo().index !== -1 ? this.findNextOptionIndex(this.focusedOptionInfo().index) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedOptionInfo().index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionInfo().index !== -1 ? this.findPrevOptionIndex(this.focusedOptionInfo().index) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n }\n\n onArrowLeftKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const parentOption = this.activeOptionPath().find((p) => p.key === processedOption.parentKey);\n const matched = this.focusedOptionInfo().parentKey === '' || (parentOption && parentOption.key === this.focusedOptionInfo().parentKey);\n const root = isEmpty(processedOption.parent);\n\n if (matched) {\n const activeOptionPath = this.activeOptionPath().filter((p) => p.parentKey !== this.focusedOptionInfo().parentKey);\n this.activeOptionPath.set(activeOptionPath);\n }\n\n if (!root) {\n this.focusedOptionInfo.set({ index: -1, parentKey: parentOption ? parentOption.parentKey : '' });\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n }\n }\n\n onArrowRightKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n if (grouped) {\n const matched = this.activeOptionPath().some((p) => processedOption.key === p.key);\n\n if (matched) {\n this.focusedOptionInfo.set({ index: -1, parentKey: processedOption.key });\n this.searchValue = '';\n this.onArrowDownKey(event);\n } else {\n this.onOptionChange({ originalEvent: event, processedOption });\n }\n }\n\n event.preventDefault();\n }\n }\n\n onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionInfo.set({ ...this.focusedOptionInfo(), index: -1 }); // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionInfo().index !== -1) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n this.onOptionClick({ originalEvent: event, processedOption });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n }\n\n onSpaceKey(event) {\n this.onEnterKey(event);\n }\n\n onEscapeKey(event) {\n this.overlayVisible && this.hide(event, true);\n event.preventDefault();\n }\n\n onTabKey(event) {\n if (this.focusedOptionInfo().index !== -1) {\n const processedOption = this.visibleOptions()[this.focusedOptionInfo().index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n }\n\n onBackspaceKey(event) {\n if (isNotEmpty(this.modelValue()) && this.showClear) {\n this.clear();\n }\n\n event.stopPropagation();\n }\n\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n }\n\n updateModel(value, event?) {\n this.value = value;\n this.onModelChange(value);\n this.modelValue.set(value);\n\n this.onChange.emit({\n originalEvent: event,\n value: value\n });\n }\n\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {\n this.focusedOptionInfo().index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({\n originalEvent: null,\n processedOption: this.visibleOptions()[this.focusedOptionInfo().index],\n isHide: false\n });\n\n !this.overlayVisible && this.focusedOptionInfo.set({ index: -1, level: 0, parentKey: '' });\n }\n }\n\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.panelViewChild?.nativeElement, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n }\n\n changeFocusedOptionIndex(event, index, preventSelection?: boolean) {\n const focusedOptionInfo = this.focusedOptionInfo();\n\n if (focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.set({ ...focusedOptionInfo, index });\n this.scrollInView();\n\n if (this.focusOnHover) {\n this.onOptionClick({ originalEvent: event, processedOption: this.visibleOptions()[index], isHide: false, preventSelection });\n }\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions()[index], isHide: false });\n }\n }\n }\n matchMediaListener: VoidListener;\n\n onOptionSelect(event) {\n const { originalEvent, value, isHide } = event;\n const newValue = this.getOptionValue(value);\n\n const activeOptionPath = this.activeOptionPath();\n activeOptionPath.forEach((p) => (p.selected = true));\n\n this.activeOptionPath.set(activeOptionPath);\n this.updateModel(newValue, originalEvent);\n isHide && this.hide(event, true);\n }\n\n onOptionGroupSelect(event) {\n this.dirty = true;\n this.onGroupChange.emit(event);\n }\n\n onContainerClick(event: MouseEvent) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlayViewChild?.el?.nativeElement?.contains(event.target)) {\n if (this.overlayVisible) {\n this.hide();\n } else {\n this.show();\n }\n\n this.focusInputViewChild?.nativeElement.focus();\n }\n\n this.clicked = true;\n }\n\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption).toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n }\n\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n }\n\n isValidOption(processedOption) {\n return !!processedOption && !this.isOptionDisabled(processedOption.option);\n }\n\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n }\n\n isSelected(processedOption) {\n return this.activeOptionPath().some((p) => p.key === processedOption.key);\n }\n\n findOptionPathByValue(value, processedOptions?, level = 0) {\n processedOptions = processedOptions || (level === 0 && this.processedOptions);\n\n if (!processedOptions) return null;\n if (isEmpty(value)) return [];\n\n for (let i = 0; i < processedOptions.length; i++) {\n const processedOption = processedOptions[i];\n\n if (equals(value, this.getOptionValue(processedOption.option), this.equalityKey())) {\n return [processedOption];\n }\n\n const matchedOptions = this.findOptionPathByValue(value, processedOption.children, level + 1);\n\n if (matchedOptions) {\n matchedOptions.unshift(processedOption);\n\n return matchedOptions;\n }\n }\n }\n\n findFirstOptionIndex() {\n return this.visibleOptions().findIndex((processedOption) => this.isValidOption(processedOption));\n }\n\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions(), (processedOption) => this.isValidOption(processedOption));\n }\n\n findNextOptionIndex(index) {\n const matchedOptionIndex =\n index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((processedOption) => this.isValidOption(processedOption))\n : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n }\n\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n\n findSelectedOptionIndex() {\n return this.visibleOptions().findIndex((processedOption) => this.isValidSelectedOption(processedOption));\n }\n\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n }\n\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n }\n\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n const focusedOptionInfo = this.focusedOptionInfo();\n\n if (focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions()\n .slice(focusedOptionInfo.index)\n .findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex =\n optionIndex === -1\n ? this.visibleOptions()\n .slice(0, focusedOptionInfo.index)\n .findIndex((processedOption) => this.isOptionMatched(processedOption))\n : optionIndex + focusedOptionInfo.index;\n } else {\n optionIndex = this.visibleOptions().findIndex((processedOption) => this.isOptionMatched(processedOption));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && focusedOptionInfo.index === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n }\n\n hide(event?, isFocus = false) {\n const _hide = () => {\n this.overlayVisible = false;\n this.clicked = false;\n this.activeOptionPath.set([]);\n this.focusedOptionInfo.set({ index: -1, level: 0, parentKey: '' });\n\n isFocus && focus(this.focusInputViewChild.nativeElement);\n this.onHide.emit(event);\n this.cd.markForCheck();\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n }\n\n show(event?, isFocus = false) {\n this.onShow.emit(event);\n this.overlayVisible = true;\n const activeOptionPath = this.hasSelectedOption() ? this.findOptionPathByValue(this.modelValue()) : this.activeOptionPath();\n this.activeOptionPath.set(activeOptionPath);\n let focusedOptionInfo;\n\n if (this.hasSelectedOption() && isNotEmpty(this.activeOptionPath())) {\n const processedOption = this.activeOptionPath()[this.activeOptionPath().length - 1];\n\n focusedOptionInfo = {\n index: processedOption.index,\n level: processedOption.level,\n parentKey: processedOption.parentKey\n };\n } else {\n focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\n\n this.focusedOptionInfo.set(focusedOptionInfo);\n\n isFocus && focus(this.focusInputViewChild.nativeElement);\n }\n\n clear(event?: MouseEvent) {\n if (isNotEmpty(this.modelValue()) && this.showClear) {\n this.updateModel(null);\n this.focusedOptionInfo.set({ index: -1, level: 0, parentKey: '' });\n this.activeOptionPath.set([]);\n this.onClear.emit();\n }\n\n event && event.stopPropagation();\n }\n\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n }\n\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n }\n\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n }\n\n getOptionGroupChildren(optionGroup, level) {\n return resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n }\n\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n }\n\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n }\n\n getProccessedOptionLabel(processedOption) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option) : this.getOptionLabel(processedOption.option);\n }\n\n constructor(public overlayService: OverlayService) {\n super();\n effect(() => {\n const activeOptionPath = this.activeOptionPath();\n if (isNotEmpty(activeOptionPath)) {\n this.overlayViewChild.alignOverlay();\n }\n });\n }\n query: any;\n queryMatches = signal<boolean>(false);\n mobileActive = signal<boolean>(false);\n\n onOptionChange(event) {\n const { processedOption, type } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const activeOptionPath = this.activeOptionPath().filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n this.focusedOptionInfo.set({ index, level, parentKey });\n\n if (type == 'hover' && this.queryMatches()) {\n return;\n }\n\n if (grouped) {\n activeOptionPath.push(processedOption);\n }\n\n this.activeOptionPath.set([...activeOptionPath]);\n }\n\n onOptionClick(event) {\n const { originalEvent, processedOption, isFocus, isHide, preventSelection } = event;\n const { index, key, level, parentKey } = processedOption;\n const grouped = this.isProccessedOptionGroup(processedOption);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n const activeOptionPath = this.activeOptionPath().filter((p) => key !== p.key && key.startsWith(p.key));\n this.activeOptionPath.set([...activeOptionPath]);\n this.focusedOptionInfo.set({ index, level, parentKey });\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect({ originalEvent, value: processedOption.option, isFocus: false });\n } else {\n const activeOptionPath = this.activeOptionPath().filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo.set({ index, level, parentKey });\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath.set([...activeOptionPath]);\n this.onOptionSelect({ originalEvent, value: processedOption.option, isHide: isFocus });\n }\n }\n }\n\n isFocus && focus(this.focusInputViewChild.nativeElement);\n }\n\n onOptionMouseEnter(event) {\n if (this.focusOnHover) {\n if (this.dirty || (!this.dirty && isNotEmpty(this.modelValue()))) {\n this.onOptionChange({ ...event, type: 'hover' });\n } else if (!this.dirty && event.processedOption.level === 0) {\n this.onOptionClick({ ...event, type: 'hover' });\n }\n }\n }\n\n onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.id = this.id || uuid('pn_id_');\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n }\n\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const window: Window = this.document.defaultView;\n if (window && window.matchMedia) {\n const query = window.matchMedia(`(max-width: ${this.breakpoint})`);\n this.query = query;\n this.queryMatches.set(query?.matches);\n\n this.matchMediaListener = () => {\n this.queryMatches.set(query?.matches);\n this.mobileActive.set(false);\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n }\n }\n\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n }\n\n onOverlayAnimationDone(event: any) {\n switch (event.toState) {\n case 'void':\n this.dirty = false;\n break;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.updateModel(value);\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n ngOnDestroy() {\n if (this.matchMediaListener) {\n this.unbindMatchMediaListener();\n }\n }\n}\n\n@NgModule({\n imports: [CascadeSelect, SharedModule],\n exports: [CascadeSelect, SharedModule]\n})\nexport class CascadeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}