primevue 4.0.7 → 4.1.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 (338) hide show
  1. package/README.md +2 -94
  2. package/accordion/index.d.ts +2 -2
  3. package/accordioncontent/index.d.ts +2 -2
  4. package/accordionheader/index.d.ts +2 -2
  5. package/accordionpanel/index.d.ts +2 -2
  6. package/accordiontab/index.d.ts +2 -2
  7. package/autocomplete/AutoComplete.vue +50 -50
  8. package/autocomplete/index.d.ts +7 -3
  9. package/autocomplete/index.mjs +11 -8
  10. package/autocomplete/index.mjs.map +1 -1
  11. package/autocomplete/style/index.d.ts +4 -0
  12. package/autocomplete/style/index.mjs +3 -2
  13. package/autocomplete/style/index.mjs.map +1 -1
  14. package/avatar/index.d.ts +2 -2
  15. package/avatargroup/index.d.ts +2 -2
  16. package/badge/index.d.ts +2 -2
  17. package/blockui/index.d.ts +2 -2
  18. package/breadcrumb/index.d.ts +2 -2
  19. package/button/BaseButton.vue +2 -2
  20. package/button/Button.vue +1 -1
  21. package/button/index.d.ts +4 -4
  22. package/button/index.mjs +7 -6
  23. package/button/index.mjs.map +1 -1
  24. package/buttongroup/index.d.ts +2 -2
  25. package/calendar/index.d.ts +2 -2
  26. package/card/index.d.ts +2 -2
  27. package/carousel/Carousel.vue +2 -7
  28. package/carousel/index.d.ts +2 -2
  29. package/carousel/index.mjs +2 -7
  30. package/carousel/index.mjs.map +1 -1
  31. package/carousel/style/index.mjs +1 -1
  32. package/carousel/style/index.mjs.map +1 -1
  33. package/cascadeselect/BaseCascadeSelect.vue +4 -0
  34. package/cascadeselect/CascadeSelect.vue +92 -27
  35. package/cascadeselect/CascadeSelectSub.vue +24 -36
  36. package/cascadeselect/index.d.ts +43 -3
  37. package/cascadeselect/index.mjs +190 -112
  38. package/cascadeselect/index.mjs.map +1 -1
  39. package/cascadeselect/style/index.mjs +12 -5
  40. package/cascadeselect/style/index.mjs.map +1 -1
  41. package/chart/index.d.ts +2 -2
  42. package/checkbox/index.d.ts +2 -2
  43. package/chip/index.d.ts +2 -2
  44. package/chips/index.d.ts +2 -2
  45. package/colorpicker/BaseColorPicker.vue +2 -1
  46. package/colorpicker/ColorPicker.vue +3 -3
  47. package/colorpicker/index.d.ts +8 -3
  48. package/colorpicker/index.mjs +11 -4
  49. package/colorpicker/index.mjs.map +1 -1
  50. package/column/index.d.ts +2 -2
  51. package/columngroup/index.d.ts +2 -2
  52. package/config/index.d.ts +9 -3
  53. package/confirmationoptions/index.d.ts +12 -0
  54. package/confirmdialog/ConfirmDialog.vue +11 -1
  55. package/confirmdialog/index.d.ts +5 -9
  56. package/confirmdialog/index.mjs +12 -2
  57. package/confirmdialog/index.mjs.map +1 -1
  58. package/confirmpopup/index.d.ts +2 -2
  59. package/contextmenu/BaseContextMenu.vue +4 -0
  60. package/contextmenu/ContextMenu.vue +45 -13
  61. package/contextmenu/index.d.ts +12 -7
  62. package/contextmenu/index.mjs +63 -31
  63. package/contextmenu/index.mjs.map +1 -1
  64. package/contextmenu/style/index.mjs +10 -5
  65. package/contextmenu/style/index.mjs.map +1 -1
  66. package/datatable/BaseDataTable.vue +4 -0
  67. package/datatable/DataTable.vue +7 -12
  68. package/datatable/HeaderCheckbox.vue +1 -1
  69. package/datatable/TableBody.vue +1 -1
  70. package/datatable/TableHeader.vue +51 -51
  71. package/datatable/index.d.ts +7 -2
  72. package/datatable/index.mjs +94 -91
  73. package/datatable/index.mjs.map +1 -1
  74. package/datatable/style/index.mjs +1 -1
  75. package/datatable/style/index.mjs.map +1 -1
  76. package/dataview/index.d.ts +2 -2
  77. package/datepicker/DatePicker.vue +13 -11
  78. package/datepicker/index.d.ts +4 -12
  79. package/datepicker/index.mjs +12 -10
  80. package/datepicker/index.mjs.map +1 -1
  81. package/datepicker/style/index.mjs +3 -3
  82. package/datepicker/style/index.mjs.map +1 -1
  83. package/deferredcontent/index.d.ts +2 -2
  84. package/dialog/Dialog.vue +4 -10
  85. package/dialog/index.d.ts +2 -2
  86. package/dialog/index.mjs +3 -10
  87. package/dialog/index.mjs.map +1 -1
  88. package/divider/index.d.ts +2 -2
  89. package/dock/index.d.ts +2 -2
  90. package/drawer/index.d.ts +7 -3
  91. package/dropdown/index.d.ts +2 -2
  92. package/dynamicdialog/index.d.ts +2 -2
  93. package/editor/index.d.ts +2 -2
  94. package/fieldset/index.d.ts +4 -8
  95. package/fileupload/index.d.ts +3 -3
  96. package/floatlabel/BaseFloatLabel.vue +6 -1
  97. package/floatlabel/index.d.ts +9 -4
  98. package/floatlabel/index.mjs +6 -1
  99. package/floatlabel/index.mjs.map +1 -1
  100. package/floatlabel/style/index.d.ts +2 -2
  101. package/floatlabel/style/index.mjs +10 -2
  102. package/floatlabel/style/index.mjs.map +1 -1
  103. package/fluid/index.d.ts +2 -2
  104. package/focustrap/index.d.ts +1 -1
  105. package/galleria/index.d.ts +10 -10
  106. package/galleria/style/index.mjs +2 -2
  107. package/galleria/style/index.mjs.map +1 -1
  108. package/iconfield/index.d.ts +2 -2
  109. package/iftalabel/BaseIftaLabel.vue +16 -0
  110. package/iftalabel/IftaLabel.vue +15 -0
  111. package/iftalabel/index.d.ts +130 -0
  112. package/iftalabel/index.mjs +32 -0
  113. package/iftalabel/index.mjs.map +1 -0
  114. package/iftalabel/package.json +11 -0
  115. package/iftalabel/style/index.d.ts +19 -0
  116. package/iftalabel/style/index.mjs +17 -0
  117. package/iftalabel/style/index.mjs.map +1 -0
  118. package/iftalabel/style/package.json +6 -0
  119. package/image/index.d.ts +2 -2
  120. package/imagecompare/BaseImageCompare.vue +30 -0
  121. package/imagecompare/ImageCompare.vue +24 -0
  122. package/imagecompare/index.d.ts +149 -0
  123. package/imagecompare/index.mjs +61 -0
  124. package/imagecompare/index.mjs.map +1 -0
  125. package/imagecompare/package.json +11 -0
  126. package/imagecompare/style/index.d.ts +23 -0
  127. package/imagecompare/style/index.mjs +18 -0
  128. package/imagecompare/style/index.mjs.map +1 -0
  129. package/imagecompare/style/package.json +6 -0
  130. package/inlinemessage/index.d.ts +2 -2
  131. package/inplace/index.d.ts +2 -2
  132. package/inputchips/index.d.ts +2 -2
  133. package/inputgroup/BaseInputGroup.vue +0 -6
  134. package/inputgroup/InputGroup.vue +1 -10
  135. package/inputgroup/index.d.ts +2 -7
  136. package/inputgroup/index.mjs +1 -18
  137. package/inputgroup/index.mjs.map +1 -1
  138. package/inputgroup/style/index.mjs +2 -7
  139. package/inputgroup/style/index.mjs.map +1 -1
  140. package/inputgroupaddon/index.d.ts +2 -2
  141. package/inputicon/index.d.ts +2 -2
  142. package/inputmask/InputMask.vue +23 -17
  143. package/inputmask/index.d.ts +2 -2
  144. package/inputmask/index.mjs +21 -16
  145. package/inputmask/index.mjs.map +1 -1
  146. package/inputnumber/InputNumber.vue +2 -2
  147. package/inputnumber/index.d.ts +3 -3
  148. package/inputnumber/index.mjs +2 -2
  149. package/inputnumber/index.mjs.map +1 -1
  150. package/inputnumber/style/index.mjs +2 -2
  151. package/inputnumber/style/index.mjs.map +1 -1
  152. package/inputotp/BaseInputOtp.vue +1 -1
  153. package/inputotp/InputOtp.vue +6 -12
  154. package/inputotp/index.d.ts +4 -4
  155. package/inputotp/index.mjs +11 -12
  156. package/inputotp/index.mjs.map +1 -1
  157. package/inputotp/style/index.mjs +1 -1
  158. package/inputotp/style/index.mjs.map +1 -1
  159. package/inputswitch/index.d.ts +2 -2
  160. package/inputtext/index.d.ts +2 -2
  161. package/inputtext/style/index.mjs +1 -1
  162. package/inputtext/style/index.mjs.map +1 -1
  163. package/keyfilter/index.d.ts +153 -0
  164. package/keyfilter/index.mjs +127 -0
  165. package/keyfilter/index.mjs.map +1 -0
  166. package/keyfilter/package.json +5 -0
  167. package/keyfilter/style/index.d.ts +14 -0
  168. package/keyfilter/style/index.mjs +8 -0
  169. package/keyfilter/style/index.mjs.map +1 -0
  170. package/keyfilter/style/package.json +6 -0
  171. package/knob/index.d.ts +2 -2
  172. package/listbox/index.d.ts +2 -2
  173. package/megamenu/BaseMegaMenu.vue +4 -0
  174. package/megamenu/MegaMenu.vue +19 -9
  175. package/megamenu/index.d.ts +11 -2
  176. package/megamenu/index.mjs +25 -8
  177. package/megamenu/index.mjs.map +1 -1
  178. package/megamenu/style/index.mjs +5 -5
  179. package/megamenu/style/index.mjs.map +1 -1
  180. package/menu/index.d.ts +2 -2
  181. package/menubar/Menubar.vue +8 -3
  182. package/menubar/index.d.ts +2 -2
  183. package/menubar/index.mjs +6 -3
  184. package/menubar/index.mjs.map +1 -1
  185. package/menubar/style/index.mjs +1 -1
  186. package/menubar/style/index.mjs.map +1 -1
  187. package/message/Message.vue +3 -19
  188. package/message/index.d.ts +2 -2
  189. package/message/index.mjs +4 -20
  190. package/message/index.mjs.map +1 -1
  191. package/metergroup/index.d.ts +2 -2
  192. package/multiselect/BaseMultiSelect.vue +1 -5
  193. package/multiselect/MultiSelect.vue +16 -14
  194. package/multiselect/index.d.ts +4 -22
  195. package/multiselect/index.mjs +15 -17
  196. package/multiselect/index.mjs.map +1 -1
  197. package/multiselect/style/index.mjs +1 -1
  198. package/multiselect/style/index.mjs.map +1 -1
  199. package/orderlist/OrderList.vue +4 -8
  200. package/orderlist/index.d.ts +3 -7
  201. package/orderlist/index.mjs +3 -7
  202. package/orderlist/index.mjs.map +1 -1
  203. package/organizationchart/index.d.ts +2 -2
  204. package/overlaybadge/index.d.ts +2 -2
  205. package/overlaypanel/index.d.ts +2 -2
  206. package/package.json +5 -5
  207. package/paginator/JumpToPageInput.vue +1 -1
  208. package/paginator/Paginator.vue +4 -16
  209. package/paginator/index.d.ts +3 -3
  210. package/paginator/index.mjs +4 -21
  211. package/paginator/index.mjs.map +1 -1
  212. package/paginator/style/index.d.ts +1 -1
  213. package/paginator/style/index.mjs +1 -1
  214. package/paginator/style/index.mjs.map +1 -1
  215. package/panel/index.d.ts +2 -2
  216. package/panelmenu/index.d.ts +3 -3
  217. package/password/BasePassword.vue +4 -0
  218. package/password/Password.vue +4 -3
  219. package/password/index.d.ts +8 -3
  220. package/password/index.mjs +10 -5
  221. package/password/index.mjs.map +1 -1
  222. package/password/style/index.mjs +1 -1
  223. package/password/style/index.mjs.map +1 -1
  224. package/picklist/PickList.vue +4 -8
  225. package/picklist/index.d.ts +3 -15
  226. package/picklist/index.mjs +3 -7
  227. package/picklist/index.mjs.map +1 -1
  228. package/popover/Popover.vue +4 -10
  229. package/popover/index.d.ts +3 -3
  230. package/popover/index.mjs +3 -9
  231. package/popover/index.mjs.map +1 -1
  232. package/portal/index.d.ts +2 -2
  233. package/progressbar/index.d.ts +2 -2
  234. package/progressspinner/index.d.ts +3 -3
  235. package/radiobutton/index.d.ts +2 -2
  236. package/rating/index.d.ts +2 -2
  237. package/rating/style/index.mjs +1 -1
  238. package/rating/style/index.mjs.map +1 -1
  239. package/row/index.d.ts +2 -2
  240. package/scrollpanel/index.d.ts +2 -2
  241. package/scrolltop/ScrollTop.vue +2 -9
  242. package/scrolltop/index.d.ts +3 -8
  243. package/scrolltop/index.mjs +3 -9
  244. package/scrolltop/index.mjs.map +1 -1
  245. package/select/Select.vue +13 -6
  246. package/select/index.d.ts +2 -2
  247. package/select/index.mjs +54 -45
  248. package/select/index.mjs.map +1 -1
  249. package/select/style/index.mjs +1 -1
  250. package/select/style/index.mjs.map +1 -1
  251. package/selectbutton/index.d.ts +2 -2
  252. package/sidebar/index.d.ts +2 -2
  253. package/skeleton/index.d.ts +2 -2
  254. package/slider/index.d.ts +2 -2
  255. package/slider/style/index.mjs +1 -1
  256. package/slider/style/index.mjs.map +1 -1
  257. package/speeddial/SpeedDial.vue +3 -1
  258. package/speeddial/index.d.ts +18 -3
  259. package/speeddial/index.mjs +10 -5
  260. package/speeddial/index.mjs.map +1 -1
  261. package/splitbutton/index.d.ts +2 -2
  262. package/splitter/Splitter.vue +31 -25
  263. package/splitter/index.d.ts +10 -3
  264. package/splitter/index.mjs +28 -22
  265. package/splitter/index.mjs.map +1 -1
  266. package/splitterpanel/index.d.ts +2 -2
  267. package/step/index.d.ts +2 -2
  268. package/stepitem/index.d.ts +2 -2
  269. package/steplist/index.d.ts +2 -2
  270. package/steppanel/index.d.ts +2 -2
  271. package/steppanels/index.d.ts +2 -2
  272. package/stepper/index.d.ts +2 -2
  273. package/steps/index.d.ts +2 -2
  274. package/tab/index.d.ts +2 -2
  275. package/tablist/index.d.ts +2 -2
  276. package/tabmenu/index.d.ts +2 -2
  277. package/tabpanel/index.d.ts +2 -2
  278. package/tabpanels/index.d.ts +2 -2
  279. package/tabs/index.d.ts +2 -2
  280. package/tabview/index.d.ts +2 -2
  281. package/tag/index.d.ts +2 -2
  282. package/terminal/index.d.ts +2 -2
  283. package/textarea/index.d.ts +2 -2
  284. package/tieredmenu/BaseTieredMenu.vue +4 -0
  285. package/tieredmenu/TieredMenu.vue +39 -7
  286. package/tieredmenu/TieredMenuSub.vue +3 -1
  287. package/tieredmenu/index.d.ts +7 -2
  288. package/tieredmenu/index.mjs +69 -37
  289. package/tieredmenu/index.mjs.map +1 -1
  290. package/tieredmenu/style/index.mjs +5 -4
  291. package/tieredmenu/style/index.mjs.map +1 -1
  292. package/timeline/index.d.ts +2 -2
  293. package/toast/Toast.vue +2 -9
  294. package/toast/index.d.ts +2 -2
  295. package/toast/index.mjs +1 -8
  296. package/toast/index.mjs.map +1 -1
  297. package/togglebutton/index.d.ts +2 -2
  298. package/toggleswitch/ToggleSwitch.vue +5 -1
  299. package/toggleswitch/index.d.ts +19 -3
  300. package/toggleswitch/index.mjs +7 -3
  301. package/toggleswitch/index.mjs.map +1 -1
  302. package/toggleswitch/style/index.d.ts +9 -1
  303. package/toggleswitch/style/index.mjs +3 -2
  304. package/toggleswitch/style/index.mjs.map +1 -1
  305. package/toolbar/index.d.ts +2 -2
  306. package/tooltip/index.mjs +6 -1
  307. package/tooltip/index.mjs.map +1 -1
  308. package/tooltip/style/index.mjs +1 -1
  309. package/tooltip/style/index.mjs.map +1 -1
  310. package/tree/BaseTree.vue +1 -1
  311. package/tree/Tree.vue +5 -3
  312. package/tree/TreeNode.vue +16 -4
  313. package/tree/index.d.ts +54 -5
  314. package/tree/index.mjs +26 -12
  315. package/tree/index.mjs.map +1 -1
  316. package/tree/style/index.mjs +2 -1
  317. package/tree/style/index.mjs.map +1 -1
  318. package/treeselect/BaseTreeSelect.vue +36 -0
  319. package/treeselect/TreeSelect.vue +31 -16
  320. package/treeselect/index.d.ts +75 -6
  321. package/treeselect/index.mjs +82 -25
  322. package/treeselect/index.mjs.map +1 -1
  323. package/treeselect/style/index.mjs +1 -1
  324. package/treeselect/style/index.mjs.map +1 -1
  325. package/treetable/BaseTreeTable.vue +8 -0
  326. package/treetable/TreeTable.vue +19 -11
  327. package/treetable/TreeTableRow.vue +28 -2
  328. package/treetable/index.d.ts +36 -2
  329. package/treetable/index.mjs +63 -19
  330. package/treetable/index.mjs.map +1 -1
  331. package/treetable/style/index.mjs +5 -3
  332. package/treetable/style/index.mjs.map +1 -1
  333. package/umd/primevue.min.js +1 -1
  334. package/vetur-attributes.json +3 -3
  335. package/virtualscroller/index.d.ts +2 -2
  336. package/virtualscroller/style/index.mjs +3 -1
  337. package/virtualscroller/style/index.mjs.map +1 -1
  338. package/web-types.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/cascadeselect/BaseCascadeSelect.vue","../../src/cascadeselect/CascadeSelectSub.vue","../../src/cascadeselect/CascadeSelectSub.vue?vue&type=template&id=7de6acb4&lang.js","../../src/cascadeselect/CascadeSelect.vue","../../src/cascadeselect/CascadeSelect.vue?vue&type=template&id=4ba5c55e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CascadeSelectStyle from 'primevue/cascadeselect/style';\n\nexport default {\n name: 'BaseCascadeSelect',\n extends: BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n placeholder: String,\n variant: {\n type: String,\n default: null\n },\n invalid: {\n type: Boolean,\n default: false\n },\n disabled: Boolean,\n dataKey: null,\n inputId: {\n type: String,\n default: null\n },\n inputClass: {\n type: [String, Object],\n default: null\n },\n inputStyle: {\n type: Object,\n default: null\n },\n inputProps: {\n type: null,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n panelProps: {\n type: null,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayProps: {\n type: null,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n loading: {\n type: Boolean,\n default: false\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n optionGroupIcon: {\n type: String,\n default: undefined\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n selectOnFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n searchLocale: {\n type: String,\n default: undefined\n },\n searchMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptySearchMessage: {\n type: String,\n default: null\n },\n emptyMessage: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n },\n fluid: {\n type: Boolean,\n default: null\n }\n },\n style: CascadeSelectStyle,\n provide() {\n return {\n $pcCascadeSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div v-ripple :class=\"cx('optionContent')\" @click=\"onOptionClick($event, processedOption)\" @mousemove=\"onOptionMouseMove($event, processedOption)\" v-bind=\"getPTOptions(processedOption, index, 'optionContent')\">\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" aria-hidden=\"true\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n @option-change=\"onOptionChange\"\n @option-focus-change=\"onOptionFocusChange\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n :isParentMount=\"mounted\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { resolveFieldData, isNotEmpty } from '@primeuix/utils/object';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n isParentMount: Boolean\n },\n data() {\n return {\n mounted: false\n };\n },\n watch: {\n isParentMount: {\n handler(newValue) {\n newValue && nestedPosition(this.container, this.level);\n }\n }\n },\n mounted() {\n // entering order correction when an option is selected\n (this.isParentMount || this.level === 0) && nestedPosition(this.container, this.level);\n this.mounted = true;\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return !this.isOptionGroup(processedOption) && this.isOptionActive(processedOption);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n onOptionChange(event) {\n this.$emit('option-change', event);\n },\n onOptionFocusChange(event) {\n this.$emit('option-focus-change', event);\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div v-ripple :class=\"cx('optionContent')\" @click=\"onOptionClick($event, processedOption)\" @mousemove=\"onOptionMouseMove($event, processedOption)\" v-bind=\"getPTOptions(processedOption, index, 'optionContent')\">\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" aria-hidden=\"true\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n @option-change=\"onOptionChange\"\n @option-focus-change=\"onOptionFocusChange\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n :isParentMount=\"mounted\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { resolveFieldData, isNotEmpty } from '@primeuix/utils/object';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n isParentMount: Boolean\n },\n data() {\n return {\n mounted: false\n };\n },\n watch: {\n isParentMount: {\n handler(newValue) {\n newValue && nestedPosition(this.container, this.level);\n }\n }\n },\n mounted() {\n // entering order correction when an option is selected\n (this.isParentMount || this.level === 0) && nestedPosition(this.container, this.level);\n this.mounted = true;\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return !this.isOptionGroup(processedOption) && this.isOptionActive(processedOption);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n onOptionChange(event) {\n this.$emit('option-change', event);\n },\n onOptionFocusChange(event) {\n this.$emit('option-focus-change', event);\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">\n {{ label }}\n </slot>\n </span>\n <div :class=\"cx('dropdown')\" role=\"button\" tabindex=\"-1\" aria-hidden=\"true\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n @option-change=\"onOptionChange\"\n @option-focus-change=\"onOptionFocusChange\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.hasSelectedOption ? this.findOptionPathByValue(this.modelValue) : this.activeOptionPath;\n\n if (this.hasSelectedOption && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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 onOptionChange(event) {\n const { originalEvent, processedOption, isFocus, isHide } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const root = isEmpty(processedOption.parent);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n const { index, key, level, parentKey } = processedOption;\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n\n this.dirty = !root;\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.activeOptionPath = activeOptionPath;\n }\n\n grouped ? this.onOptionGroupSelect(originalEvent, processedOption) : this.onOptionSelect(originalEvent, processedOption, isHide);\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionFocusChange(event) {\n if (this.focusOnHover) {\n const { originalEvent, processedOption } = event;\n const { index, level, parentKey } = processedOption;\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.changeFocusedOptionIndex(originalEvent, index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\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);\n }\n\n event.preventDefault();\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);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\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 this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\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 = { 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 onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n 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.onOptionChange({ originalEvent: event, processedOption });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\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 onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\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 findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\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 searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.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 && this.focusedOptionInfo.index === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\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 changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: false });\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\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 overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n CascadeSelectSub: CascadeSelectSub,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">\n {{ label }}\n </slot>\n </span>\n <div :class=\"cx('dropdown')\" role=\"button\" tabindex=\"-1\" aria-hidden=\"true\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n @option-change=\"onOptionChange\"\n @option-focus-change=\"onOptionFocusChange\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.hasSelectedOption ? this.findOptionPathByValue(this.modelValue) : this.activeOptionPath;\n\n if (this.hasSelectedOption && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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 onOptionChange(event) {\n const { originalEvent, processedOption, isFocus, isHide } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const root = isEmpty(processedOption.parent);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n const { index, key, level, parentKey } = processedOption;\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n\n this.dirty = !root;\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.activeOptionPath = activeOptionPath;\n }\n\n grouped ? this.onOptionGroupSelect(originalEvent, processedOption) : this.onOptionSelect(originalEvent, processedOption, isHide);\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionFocusChange(event) {\n if (this.focusOnHover) {\n const { originalEvent, processedOption } = event;\n const { index, level, parentKey } = processedOption;\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.changeFocusedOptionIndex(originalEvent, index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\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);\n }\n\n event.preventDefault();\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);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\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 this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\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 = { 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 onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n 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.onOptionChange({ originalEvent: event, processedOption });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\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 onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\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 findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\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 searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.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 && this.focusedOptionInfo.index === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\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 changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: false });\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\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 overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n CascadeSelectSub: CascadeSelectSub,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","placeholder","String","variant","type","invalid","Boolean","disabled","dataKey","inputId","inputClass","Object","inputStyle","inputProps","panelClass","panelStyle","panelProps","overlayClass","overlayStyle","overlayProps","appendTo","loading","dropdownIcon","undefined","loadingIcon","optionGroupIcon","autoOptionFocus","selectOnFocus","focusOnHover","searchLocale","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","emptyMessage","tabindex","Number","ariaLabelledby","ariaLabel","fluid","style","CascadeSelectStyle","provide","$pcCascadeSelect","$parentInstance","hostName","emits","container","selectId","focusedOptionId","activeOptionPath","level","templates","isParentMount","data","mounted","watch","handler","newValue","nestedPosition","methods","getOptionId","processedOption","concat","key","getOptionLabel","resolveFieldData","option","getOptionValue","getPTOptions","index","ptm","context","optionGroup","isOptionGroup","active","isOptionActive","focused","isOptionFocused","isOptionDisabled","getOptionGroupLabel","getOptionGroupChildren","children","isNotEmpty","isOptionSelected","some","path","getOptionLabelToRender","onOptionClick","event","$emit","originalEvent","isFocus","onOptionMouseMove","onOptionChange","onOptionFocusChange","containerRef","el","listAriaLabel","$primevue","config","locale","aria","listLabel","directives","ripple","Ripple","components","AngleRightIcon","_openBlock","_createElementBlock","_mergeProps","ref","$options","_ctx","cx","$props","_Fragment","_renderList","id","role","length","_withDirectives","onClick","$event","onMousemove","_createBlock","_resolveDynamicComponent","selected","_toDisplayString","_component_AngleRightIcon","_component_CascadeSelectSub","pt","unstyled","$data","BaseCascadeSelect","inheritAttrs","inject","$pcFluid","outsideClickListener","scrollHandler","resizeListener","overlay","searchTimeout","searchValue","$attrs","clicked","focusedOptionInfo","parentKey","overlayVisible","dirty","$attrsId","UniqueComponentId","autoUpdateModel","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","destroy","ZIndex","clear","isString","prototype","hasOwnProperty","call","getProccessedOptionLabel","grouped","isProccessedOptionGroup","show","hasSelectedOption","findOptionPathByValue","findFirstFocusedOptionIndex","findSelectedOptionIndex","focus","$refs","focusInput","hide","_this","_hide","setTimeout","onFocus","onBlur","onKeyDown","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchOptions","isHide","isEmpty","root","parent","isSelected","filter","p","startsWith","push","onOptionGroupSelect","onOptionSelect","changeFocusedOptionIndex","arguments","value","forEach","updateModel","onContainerClick","contains","target","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","visibleOptions","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","_this2","parentOption","find","matched","onOverlayEnter","set","zIndex","addStyle","position","top","left","alignOverlay","scrollInView","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this3","document","addEventListener","removeEventListener","_this4","ConnectedOverlayScrollHandler","_this5","isTouchDevice","window","isOptionMatched","_this$getProccessedOp","isValidOption","toLocaleLowerCase","isValidSelectedOption","_this6","findIndex","_this7","findLastIndex","_this8","matchedOptionIndex","slice","_this9","_this10","selectedIndex","processedOptions","i","equals","equalityKey","matchedOptions","unshift","char","_this11","clearTimeout","_this12","$nextTick","element","findSingle","list","scrollIntoView","block","inline","createProcessedOptions","_this13","newOption","overlayRef","computed","label","_this14","searchResultMessageText","searchMessageText","replaceAll","emptySearchMessageText","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","hasFluid","CascadeSelectSub","Portal","ChevronDownIcon","SpinnerIcon","sx","_cache","ptmi","_createElementVNode","readonly","apply","onKeydown","_objectSpread","_hoisted_1","_renderSlot","$slots","_component_SpinnerIcon","spin","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/cascadeselect/BaseCascadeSelect.vue","../../src/cascadeselect/CascadeSelectSub.vue","../../src/cascadeselect/CascadeSelectSub.vue?vue&type=template&id=799acc73&lang.js","../../src/cascadeselect/CascadeSelect.vue","../../src/cascadeselect/CascadeSelect.vue?vue&type=template&id=4b1577ab&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CascadeSelectStyle from 'primevue/cascadeselect/style';\n\nexport default {\n name: 'BaseCascadeSelect',\n extends: BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n placeholder: String,\n breakpoint: {\n type: String,\n default: '960px'\n },\n variant: {\n type: String,\n default: null\n },\n invalid: {\n type: Boolean,\n default: false\n },\n disabled: Boolean,\n dataKey: null,\n inputId: {\n type: String,\n default: null\n },\n inputClass: {\n type: [String, Object],\n default: null\n },\n inputStyle: {\n type: Object,\n default: null\n },\n inputProps: {\n type: null,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n panelProps: {\n type: null,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayProps: {\n type: null,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n loading: {\n type: Boolean,\n default: false\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n optionGroupIcon: {\n type: String,\n default: undefined\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n selectOnFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n searchLocale: {\n type: String,\n default: undefined\n },\n searchMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptySearchMessage: {\n type: String,\n default: null\n },\n emptyMessage: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n },\n fluid: {\n type: Boolean,\n default: null\n }\n },\n style: CascadeSelectStyle,\n provide() {\n return {\n $pcCascadeSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div\n v-ripple\n :class=\"cx('optionContent')\"\n @click=\"onOptionClick($event, processedOption)\"\n @mouseenter=\"onOptionMouseEnter($event, processedOption)\"\n @mousemove=\"onOptionMouseMove($event, processedOption)\"\n v-bind=\"getPTOptions(processedOption, index, 'optionContent')\"\n >\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <span :class=\"cx('groupIconContainer')\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" :class=\"cx('groupIcon')\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </span>\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"value\"\n @option-change=\"$emit('option-change', $event)\"\n @option-focus-change=\"$emit('option-focus-change', $event)\"\n @option-focus-enter-change=\"$emit('option-focus-enter-change', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change', 'option-focus-enter-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n value: null\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return equals(this.value, processedOption?.option);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseEnter(event, processedOption) {\n this.$emit('option-focus-enter-change', { originalEvent: event, processedOption });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div\n v-ripple\n :class=\"cx('optionContent')\"\n @click=\"onOptionClick($event, processedOption)\"\n @mouseenter=\"onOptionMouseEnter($event, processedOption)\"\n @mousemove=\"onOptionMouseMove($event, processedOption)\"\n v-bind=\"getPTOptions(processedOption, index, 'optionContent')\"\n >\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <span :class=\"cx('groupIconContainer')\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" :class=\"cx('groupIcon')\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </span>\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"value\"\n @option-change=\"$emit('option-change', $event)\"\n @option-focus-change=\"$emit('option-focus-change', $event)\"\n @option-focus-enter-change=\"$emit('option-focus-enter-change', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change', 'option-focus-enter-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n value: null\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return equals(this.value, processedOption?.option);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseEnter(event, processedOption) {\n this.$emit('option-focus-enter-change', { originalEvent: event, processedOption });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">\n {{ label }}\n </slot>\n </span>\n <div :class=\"cx('dropdown')\" role=\"button\" tabindex=\"-1\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <slot name=\"header\" :value=\"modelValue\" :options=\"options\" />\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"modelValue\"\n @option-change=\"onOptionClick\"\n @option-focus-change=\"onOptionMouseMove\"\n @option-focus-enter-change=\"onOptionMouseEnter\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <slot name=\"footer\" :value=\"modelValue\" :options=\"options\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false,\n mobileActive: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n\n if (this.mobileActive) {\n this.mobileActive = false;\n }\n },\n methods: {\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.hasSelectedOption ? this.findOptionPathByValue(this.modelValue) : this.activeOptionPath;\n\n if (this.hasSelectedOption && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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 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 = { 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 = activeOptionPath;\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 this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedOptionInfo = { index, level, parentKey };\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath = activeOptionPath;\n this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n }\n }\n\n isFocus && focus(this.$refs.focusInput);\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 onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\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 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 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 this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\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 = { 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 onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n 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, preventSelection: false });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\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 onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\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 findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\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 searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.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 && this.focusedOptionInfo.index === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\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 changeFocusedOptionIndex(event, index, preventSelection) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = 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 scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\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 overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n CascadeSelectSub: CascadeSelectSub,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">\n {{ label }}\n </slot>\n </span>\n <div :class=\"cx('dropdown')\" role=\"button\" tabindex=\"-1\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <slot name=\"header\" :value=\"modelValue\" :options=\"options\" />\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"modelValue\"\n @option-change=\"onOptionClick\"\n @option-focus-change=\"onOptionMouseMove\"\n @option-focus-enter-change=\"onOptionMouseEnter\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <slot name=\"footer\" :value=\"modelValue\" :options=\"options\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false,\n mobileActive: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n\n if (this.mobileActive) {\n this.mobileActive = false;\n }\n },\n methods: {\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.hasSelectedOption ? this.findOptionPathByValue(this.modelValue) : this.activeOptionPath;\n\n if (this.hasSelectedOption && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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 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 = { 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 = activeOptionPath;\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 this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedOptionInfo = { index, level, parentKey };\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath = activeOptionPath;\n this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n }\n }\n\n isFocus && focus(this.$refs.focusInput);\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 onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\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 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 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 this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\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 = { 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 onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n 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, preventSelection: false });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\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 onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\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 findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\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 searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.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 && this.focusedOptionInfo.index === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\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 changeFocusedOptionIndex(event, index, preventSelection) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = 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 scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\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 overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.hasSelectedOption) {\n const activeOptionPath = this.findOptionPathByValue(this.modelValue);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n CascadeSelectSub: CascadeSelectSub,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","placeholder","String","breakpoint","type","variant","invalid","Boolean","disabled","dataKey","inputId","inputClass","Object","inputStyle","inputProps","panelClass","panelStyle","panelProps","overlayClass","overlayStyle","overlayProps","appendTo","loading","dropdownIcon","undefined","loadingIcon","optionGroupIcon","autoOptionFocus","selectOnFocus","focusOnHover","searchLocale","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","emptyMessage","tabindex","Number","ariaLabelledby","ariaLabel","fluid","style","CascadeSelectStyle","provide","$pcCascadeSelect","$parentInstance","hostName","emits","container","selectId","focusedOptionId","activeOptionPath","level","templates","value","methods","getOptionId","processedOption","concat","key","getOptionLabel","resolveFieldData","option","getOptionValue","getPTOptions","index","ptm","context","optionGroup","isOptionGroup","active","isOptionActive","focused","isOptionFocused","isOptionDisabled","getOptionGroupLabel","getOptionGroupChildren","children","isNotEmpty","isOptionSelected","equals","some","path","getOptionLabelToRender","onOptionClick","event","$emit","originalEvent","isFocus","onOptionMouseEnter","onOptionMouseMove","containerRef","el","listAriaLabel","$primevue","config","locale","aria","listLabel","directives","ripple","Ripple","components","AngleRightIcon","_openBlock","_createElementBlock","_mergeProps","ref","$options","_ctx","cx","$props","_Fragment","_renderList","id","role","length","_withDirectives","onClick","$event","onMouseenter","onMousemove","_createBlock","_resolveDynamicComponent","selected","_toDisplayString","_component_AngleRightIcon","_component_CascadeSelectSub","onOptionChange","_cache","onOptionFocusChange","onOptionFocusEnterChange","pt","unstyled","BaseCascadeSelect","inheritAttrs","inject","$pcFluid","outsideClickListener","matchMediaListener","scrollHandler","resizeListener","overlay","searchTimeout","searchValue","data","$attrs","clicked","focusedOptionInfo","parentKey","overlayVisible","dirty","mobileActive","query","queryMatches","watch","$attrsId","newValue","UniqueComponentId","autoUpdateModel","mounted","bindMatchMediaListener","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","unbindMatchMediaListener","destroy","ZIndex","clear","isString","prototype","hasOwnProperty","call","getProccessedOptionLabel","grouped","isProccessedOptionGroup","show","hasSelectedOption","findOptionPathByValue","findFirstFocusedOptionIndex","findSelectedOptionIndex","focus","$refs","focusInput","hide","_this","_hide","setTimeout","onFocus","onBlur","onKeyDown","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchOptions","isEmpty","filter","p","push","isHide","preventSelection","isSelected","startsWith","onOptionGroupSelect","onOptionSelect","_objectSpread","changeFocusedOptionIndex","arguments","forEach","updateModel","onContainerClick","contains","target","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","visibleOptions","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","_this2","parentOption","find","matched","root","parent","onOverlayEnter","set","zIndex","addStyle","position","top","left","alignOverlay","scrollInView","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this3","document","addEventListener","removeEventListener","_this4","ConnectedOverlayScrollHandler","_this5","isTouchDevice","window","_this6","matchMedia","matches","isOptionMatched","_this$getProccessedOp","isValidOption","toLocaleLowerCase","isValidSelectedOption","_this7","findIndex","_this8","findLastIndex","_this9","matchedOptionIndex","slice","_this10","_this11","selectedIndex","processedOptions","i","equalityKey","matchedOptions","unshift","char","_this12","clearTimeout","_this13","$nextTick","element","findSingle","list","scrollIntoView","block","inline","createProcessedOptions","_this14","newOption","overlayRef","computed","label","_this15","searchResultMessageText","searchMessageText","replaceAll","emptySearchMessageText","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","hasFluid","CascadeSelectSub","Portal","ChevronDownIcon","SpinnerIcon","sx","ptmi","_createElementVNode","readonly","$data","apply","onKeydown","_hoisted_1","_renderSlot","$slots","_component_SpinnerIcon","spin","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave"],"mappings":";;;;;;;;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,mBAAmB;AACzB,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,OAAO,EAAEC,KAAK;AACdC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,cAAc,EAAE,IAAI;AACpBC,IAAAA,gBAAgB,EAAE,IAAI;AACtBC,IAAAA,mBAAmB,EAAE,IAAI;AACzBC,IAAAA,WAAW,EAAEC,MAAM;AACnBC,IAAAA,UAAU,EAAE;AACRC,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,OAAA;KACZ;AACDG,IAAAA,OAAO,EAAE;AACLD,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDI,IAAAA,OAAO,EAAE;AACLF,MAAAA,IAAI,EAAEG,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDC,IAAAA,QAAQ,EAAED,OAAO;AACjBE,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,OAAO,EAAE;AACLN,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDS,IAAAA,UAAU,EAAE;AACRP,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAEU,MAAM,CAAC;MACtB,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,UAAU,EAAE;AACRT,MAAAA,IAAI,EAAEQ,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDE,IAAAA,UAAU,EAAE;AACRV,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDW,IAAAA,UAAU,EAAE;AACRX,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAEU,MAAM,CAAC;MACtB,SAAS,EAAA,IAAA;KACZ;AACDI,IAAAA,UAAU,EAAE;AACRZ,MAAAA,IAAI,EAAEQ,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDK,IAAAA,UAAU,EAAE;AACRb,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDc,IAAAA,YAAY,EAAE;AACVd,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAEU,MAAM,CAAC;MACtB,SAAS,EAAA,IAAA;KACZ;AACDO,IAAAA,YAAY,EAAE;AACVf,MAAAA,IAAI,EAAEQ,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDQ,IAAAA,YAAY,EAAE;AACVhB,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDiB,IAAAA,QAAQ,EAAE;AACNjB,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAEU,MAAM,CAAC;MACtB,SAAS,EAAA,MAAA;KACZ;AACDU,IAAAA,OAAO,EAAE;AACLlB,MAAAA,IAAI,EAAEG,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDgB,IAAAA,YAAY,EAAE;AACVnB,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASsB,EAAAA,SAAAA;KACZ;AACDC,IAAAA,WAAW,EAAE;AACTrB,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASsB,EAAAA,SAAAA;KACZ;AACDE,IAAAA,eAAe,EAAE;AACbtB,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASsB,EAAAA,SAAAA;KACZ;AACDG,IAAAA,eAAe,EAAE;AACbvB,MAAAA,IAAI,EAAEG,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDqB,IAAAA,aAAa,EAAE;AACXxB,MAAAA,IAAI,EAAEG,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDsB,IAAAA,YAAY,EAAE;AACVzB,MAAAA,IAAI,EAAEG,OAAO;MACb,SAAS,EAAA,IAAA;KACZ;AACDuB,IAAAA,YAAY,EAAE;AACV1B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASsB,EAAAA,SAAAA;KACZ;AACDO,IAAAA,aAAa,EAAE;AACX3B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD8B,IAAAA,gBAAgB,EAAE;AACd5B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD+B,IAAAA,qBAAqB,EAAE;AACnB7B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDgC,IAAAA,kBAAkB,EAAE;AAChB9B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDiC,IAAAA,YAAY,EAAE;AACV/B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDkC,IAAAA,QAAQ,EAAE;AACNhC,MAAAA,IAAI,EAAEiC,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDC,IAAAA,cAAc,EAAE;AACZlC,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDqC,IAAAA,SAAS,EAAE;AACPnC,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDsC,IAAAA,KAAK,EAAE;AACHpC,MAAAA,IAAI,EAAEG,OAAO;MACb,SAAS,EAAA,IAAA;AACb,KAAA;GACH;AACDkC,EAAAA,KAAK,EAAEC,kBAAkB;EACzBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,gBAAgB,EAAE,IAAI;AACtBC,MAAAA,eAAe,EAAE,IAAA;KACpB,CAAA;AACL,GAAA;AACJ,CAAC;;AChFD,eAAe;AACXvD,EAAAA,IAAI,EAAE,kBAAkB;AACxBwD,EAAAA,QAAQ,EAAE,eAAe;AACzB,EAAA,SAAA,EAASvD,aAAa;AACtBwD,EAAAA,KAAK,EAAE,CAAC,eAAe,EAAE,qBAAqB,EAAE,2BAA2B,CAAC;AAC5EC,EAAAA,SAAS,EAAE,IAAI;AACfxD,EAAAA,KAAK,EAAE;AACHyD,IAAAA,QAAQ,EAAE/C,MAAM;AAChBgD,IAAAA,eAAe,EAAEhD,MAAM;AACvBR,IAAAA,OAAO,EAAEC,KAAK;AACdC,IAAAA,WAAW,EAAEM,MAAM;AACnBL,IAAAA,WAAW,EAAEK,MAAM;AACnBJ,IAAAA,cAAc,EAAE,IAAI;AACpB4B,IAAAA,eAAe,EAAExB,MAAM;AACvBH,IAAAA,gBAAgB,EAAEG,MAAM;AACxBF,IAAAA,mBAAmB,EAAE;AACjBI,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAEP,KAAK,CAAC;MACrB,SAAS,EAAA,IAAA;KACZ;AACDwD,IAAAA,gBAAgB,EAAExD,KAAK;AACvByD,IAAAA,KAAK,EAAEf,MAAM;AACbgB,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,KAAK,EAAE,IAAA;GACV;AACDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,eAAe,EAAE;MACzB,OAAAC,EAAAA,CAAAA,MAAA,CAAU,IAAI,CAACT,QAAQ,OAAAS,MAAA,CAAID,eAAe,CAACE,GAAG,CAAA,CAAA;KACjD;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACH,eAAe,EAAE;AAC5B,MAAA,OAAO,IAAI,CAAC7D,WAAY,GAAEiE,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAAClE,WAAW,CAAA,GAAI6D,eAAe,CAACK,MAAM,CAAA;KAChH;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACN,eAAe,EAAE;AAC5B,MAAA,OAAO,IAAI,CAAC5D,WAAY,GAAEgE,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAACjE,WAAW,CAAA,GAAI4D,eAAe,CAACK,MAAM,CAAA;KAChH;IACDE,YAAY,EAAA,SAAZA,YAAYA,CAACP,eAAe,EAAEQ,KAAK,EAAEN,GAAG,EAAE;AACtC,MAAA,OAAO,IAAI,CAACO,GAAG,CAACP,GAAG,EAAE;AACjBQ,QAAAA,OAAO,EAAE;AACLL,UAAAA,MAAM,EAAEL,eAAe;AACvBQ,UAAAA,KAAK,EAALA,KAAK;UACLb,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBgB,UAAAA,WAAW,EAAE,IAAI,CAACC,aAAa,CAACZ,eAAe,CAAC;AAChDa,UAAAA,MAAM,EAAE,IAAI,CAACC,cAAc,CAACd,eAAe,CAAC;AAC5Ce,UAAAA,OAAO,EAAE,IAAI,CAACC,eAAe,CAAChB,eAAe,CAAC;AAC9CjD,UAAAA,QAAQ,EAAE,IAAI,CAACkE,gBAAgB,CAACjB,eAAe,CAAA;AACnD,SAAA;AACJ,OAAC,CAAC,CAAA;KACL;AACDiB,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACjB,eAAe,EAAE;AAC9B,MAAA,OAAO,IAAI,CAAC3D,cAAa,GAAI+D,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAAChE,cAAc,CAAE,GAAE,KAAK,CAAA;KACrG;AACD6E,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAClB,eAAe,EAAE;AACjC,MAAA,OAAO,IAAI,CAAC1D,mBAAmB8D,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAAC/D,gBAAgB,IAAI,IAAI,CAAA;KACxG;AACD6E,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACnB,eAAe,EAAE;MACpC,OAAOA,eAAe,CAACoB,QAAQ,CAAA;KAClC;AACDR,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACZ,eAAe,EAAE;AAC3B,MAAA,OAAOqB,UAAU,CAACrB,eAAe,CAACoB,QAAQ,CAAC,CAAA;KAC9C;AACDE,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACtB,eAAe,EAAE;AAC9B,MAAA,OAAOuB,MAAM,CAAC,IAAI,CAAC1B,KAAK,EAAEG,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEK,MAAM,CAAC,CAAA;KACrD;AACDS,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACd,eAAe,EAAE;AAC5B,MAAA,OAAO,IAAI,CAACN,gBAAgB,CAAC8B,IAAI,CAAC,UAACC,IAAI,EAAA;AAAA,QAAA,OAAKA,IAAI,CAACvB,GAAE,KAAMF,eAAe,CAACE,GAAG,CAAA;OAAC,CAAA,CAAA;KAChF;AACDc,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAChB,eAAe,EAAE;MAC7B,OAAO,IAAI,CAACP,eAAgB,KAAI,IAAI,CAACM,WAAW,CAACC,eAAe,CAAC,CAAA;KACpE;AACD0B,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAAC1B,eAAe,EAAE;AACpC,MAAA,OAAO,IAAI,CAACY,aAAa,CAACZ,eAAe,CAAE,GAAE,IAAI,CAACkB,mBAAmB,CAAClB,eAAe,CAAE,GAAE,IAAI,CAACG,cAAc,CAACH,eAAe,CAAC,CAAA;KAChI;AACD2B,IAAAA,aAAa,WAAbA,aAAaA,CAACC,KAAK,EAAE5B,eAAe,EAAE;AAClC,MAAA,IAAI,CAAC6B,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;AAAE5B,QAAAA,eAAe,EAAfA,eAAe;AAAE+B,QAAAA,OAAO,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;KACxF;AACDC,IAAAA,kBAAkB,WAAlBA,kBAAkBA,CAACJ,KAAK,EAAE5B,eAAe,EAAE;AACvC,MAAA,IAAI,CAAC6B,KAAK,CAAC,2BAA2B,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;AAAE5B,QAAAA,eAAc,EAAdA,eAAAA;AAAgB,OAAC,CAAC,CAAA;KACrF;AACDiC,IAAAA,iBAAiB,WAAjBA,iBAAiBA,CAACL,KAAK,EAAE5B,eAAe,EAAE;AACtC,MAAA,IAAI,CAAC6B,KAAK,CAAC,qBAAqB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;AAAE5B,QAAAA,eAAc,EAAdA,eAAAA;AAAgB,OAAC,CAAC,CAAA;KAC/E;AACDkC,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACC,EAAE,EAAE;MACb,IAAI,CAAC5C,SAAU,GAAE4C,EAAE,CAAA;KACtB;IACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAACC,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAK,GAAE,IAAI,CAACH,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACC,YAAY1E,SAAS,CAAA;AACtG,KAAA;GACH;AACD2E,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAM,EAAEC,MAAAA;GACX;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,cAAc,EAAEA,cAAAA;AACpB,GAAA;AACJ,CAAC;;;;;;;;EClKG,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CA6DI,MA7DJC,UA6DI,CAAA;IA7DCC,GAAG,EAAEC,QAAY,CAAAjB,YAAA;AAAG,IAAA,OAAA,EAAOkB,IAAE,CAAAC,EAAA,CAAA,MAAA,CAAA;KAAkBC,MAAM,CAAA3D,KAAA,KAAA,CAAA,GAAQyD,IAAG,CAAA3C,GAAA,CAAA,MAAA,CAAA,GAAW2C,IAAG,CAAA3C,GAAA,CAAA,YAAA,CAAA,CAAA,EAAA,EAC/EsC,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CA2DUO,QA3DmC,EAAA,IAAA,EAAAC,UAAA,CAAAF,MAAA,CAAArH,OAAO,EAAlC,UAAA+D,eAAe,EAAEQ,KAAK,EAAA;IACpC,OAAAuC,SAAA,EAAA,EAAAC,kBAAA,CAyDI,MAzDJC,UAyDI,CAAA;AA1DoD/C,MAAAA,GAAA,EAAAiD,QAAA,CAAAzB,sBAAsB,CAAC1B,eAAe,CAAA;AAEzFyD,MAAAA,EAAE,EAAEN,QAAW,CAAApD,WAAA,CAACC,eAAe,CAAA;AAC/B,MAAA,OAAA,EAAOoD,IAAE,CAAAC,EAAA,CAAA,QAAA,EAAA;AAAarD,QAAAA,eAAc,EAAdA,eAAAA;AAAc,OAAA,CAAA;AACrC0D,MAAAA,IAAI,EAAC,UAAS;AACb,MAAA,YAAU,EAAEP,QAAsB,CAAAzB,sBAAA,CAAC1B,eAAe,CAAA;AAClD,MAAA,eAAa,EAAEmD,sBAAa,CAACnD,eAAe,IAAIjC,SAAQ,GAAIoF,QAAgB,CAAA7B,gBAAA,CAACtB,eAAe,CAAA;AAC5F,MAAA,eAAa,EAAEmD,sBAAa,CAACnD,eAAe,IAAImD,QAAc,CAAArC,cAAA,CAACd,eAAe,CAAA,GAAIjC,SAAS;AAC3F,MAAA,YAAU,EAAEuF,MAAI,CAAA3D,KAAA,GAAA,CAAA;AAChB,MAAA,cAAY,EAAE2D,MAAO,CAAArH,OAAA,CAAC0H,MAAM;MAC5B,eAAa,EAAEnD,KAAM,GAAA,CAAA;;OACd2C,QAAY,CAAA5C,YAAA,CAACP,eAAe,EAAEQ,KAAK,EAAA,QAAA,CAAA,EAAA;AAC1C,MAAA,qBAAmB,EAAE2C,QAAa,CAAAvC,aAAA,CAACZ,eAAe,CAAA;AAClD,MAAA,eAAa,EAAEmD,QAAc,CAAArC,cAAA,CAACd,eAAe,CAAA;AAC7C,MAAA,cAAY,EAAEmD,QAAe,CAAAnC,eAAA,CAAChB,eAAe,CAAA;AAC7C,MAAA,iBAAe,EAAEmD,QAAgB,CAAAlC,gBAAA,CAACjB,eAAe,CAAA;SAElD4D,cAAA,EAAAb,SAAA,EAAA,EAAAC,kBAAA,CAiBK,OAjBLC,UAiBK,CAAA;AAfA,MAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,eAAA,CAAA;AACTQ,MAAAA,OAAK,EAAE,SAAPA,OAAKA,CAAEC,MAAA,EAAA;AAAA,QAAA,OAAAX,QAAA,CAAAxB,aAAa,CAACmC,MAAM,EAAE9D,eAAe,CAAA,CAAA;OAAA;AAC5C+D,MAAAA,YAAU,EAAE,SAAZA,YAAUA,CAAED,MAAA,EAAA;AAAA,QAAA,OAAAX,QAAA,CAAAnB,kBAAkB,CAAC8B,MAAM,EAAE9D,eAAe,CAAA,CAAA;OAAA;AACtDgE,MAAAA,WAAS,EAAE,SAAXA,WAASA,CAAEF,MAAA,EAAA;AAAA,QAAA,OAAAX,QAAA,CAAAlB,iBAAiB,CAAC6B,MAAM,EAAE9D,eAAe,CAAA,CAAA;OAAA;;OAC7CmD,QAAY,CAAA5C,YAAA,CAACP,eAAe,EAAEQ,KAAK,EAAA,eAAA,CAAA,CAAA,EAAA,CAE1B8C,MAAS,CAAA1D,SAAA,CAAA,QAAA,CAAA,IAA1BmD,SAAA,EAAA,EAAAkB,WAAA,CAAyLC,wBAA9IZ,MAAS,CAAA1D,SAAA,CAAA,QAAA,CAAA,CAAA,EAAA;;MAAaS,MAAM,EAAEL,eAAe,CAACK,MAAM;AAAG8D,MAAAA,QAAQ,EAAEhB,QAAa,CAAAvC,aAAA,CAACZ,eAAe,CAAY,GAAA,KAAA,GAAAmD,QAAA,CAAA7B,gBAAgB,CAACtB,eAAe,CAAA;4CACrL+C,SAAA,EAAA,EAAAC,kBAAA,CAAsJ,QAAtJC,UAAsJ,CAAA;;AAAxI,MAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,YAAA,CAAA;;AAAwB,KAAA,EAAAF,QAAA,CAAA5C,YAAY,CAACP,eAAe,EAAEQ,KAAK,EAAoB,YAAA,CAAA,CAAA,EAAA4D,eAAA,CAAAjB,QAAA,CAAAzB,sBAAsB,CAAC1B,eAAe,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,EAC5HmD,QAAA,CAAAvC,aAAa,CAACZ,eAAe,CAAA,iBACzCgD,kBAIM,CAAA,MAAA,EAAA;;AAJC,MAAA,OAAA,iBAAOI,IAAE,CAAAC,EAAA,CAAA,oBAAA,CAAA,CAAA;QACKC,MAAS,CAAA1D,SAAA,CAAA,iBAAA,CAAA,IAA1BmD,SAAA,EAAA,EAAAkB,WAAA,CAA4GC,wBAAxDZ,MAAS,CAAA1D,SAAA,CAAA,iBAAA,CAAA,CAAA,EAAA;;AAAsB,MAAA,OAAA,iBAAOwD,IAAE,CAAAC,EAAA,CAAA,WAAA,CAAA,CAAA;8BAC3EC,MAAe,CAAArF,eAAA,IAAhC8E,SAAA,EAAA,EAAAC,kBAAA,CAA6J,QAA7JC,UAA6J,CAAA;;MAA1H,OAAK,EAAA,CAAGG,IAAE,CAAAC,EAAA,CAAA,WAAA,CAAA,EAAeC,MAAe,CAAArF,eAAA,CAAA;AAAG,MAAA,aAAW,EAAC,MAAO;;OAAQkF,QAAY,CAAA5C,YAAA,CAACP,eAAe,EAAEQ,KAAK,EAAA,WAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAC5IuC,SAAA,EAAA,EAAAkB,WAAA,CAA+HI,2BAA/HpB,UAA+H,CAAA;;AAAvG,MAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,WAAA,CAAA;AAAe,MAAA,aAAW,EAAC,MAAK;;OAAUF,QAAY,CAAA5C,YAAA,CAACP,eAAe,EAAEQ,KAAK,EAAA,WAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,kFAKhH2C,QAAA,CAAAvC,aAAa,CAACZ,eAAe,CAAK,IAAAmD,QAAA,CAAArC,cAAc,CAACd,eAAe,CAAA,iBAD1EiE,WAsBC,CAAAK,2BAAA,EAAA;;AApBGZ,MAAAA,IAAI,EAAC,OAAM;MACV,wBAAON,IAAE,CAAAC,EAAA,CAAA,YAAA,CAAA,CAAA;MACT7D,QAAQ,EAAE8D,MAAQ,CAAA9D,QAAA;MAClBC,eAAe,EAAE6D,MAAe,CAAA7D,eAAA;AAChCxD,MAAAA,OAAO,EAAEkH,QAAsB,CAAAhC,sBAAA,CAACnB,eAAe,CAAA;MAC/CN,gBAAgB,EAAE4D,MAAgB,CAAA5D,gBAAA;AAClCC,MAAAA,KAAK,EAAE2D,MAAI,CAAA3D,KAAA,GAAA,CAAA;MACXC,SAAS,EAAE0D,MAAS,CAAA1D,SAAA;MACpBzD,WAAW,EAAEmH,MAAW,CAAAnH,WAAA;MACxBC,WAAW,EAAEkH,MAAW,CAAAlH,WAAA;MACxBC,cAAc,EAAEiH,MAAc,CAAAjH,cAAA;MAC9B4B,eAAe,EAAEqF,MAAe,CAAArF,eAAA;MAChC3B,gBAAgB,EAAEgH,MAAgB,CAAAhH,gBAAA;MAClCC,mBAAmB,EAAE+G,MAAmB,CAAA/G,mBAAA;MACxCsD,KAAK,EAAEyD,MAAK,CAAAzD,KAAA;AACZ0E,MAAAA,cAAa,EAAAC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAV,MAAA,EAAA;AAAA,QAAA,OAAEV,IAAK,CAAAvB,KAAA,CAAA,eAAA,EAAkBiC,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;AAC5CW,MAAAA,mBAAmB,EAAAD,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAV,MAAA,EAAA;AAAA,QAAA,OAAEV,IAAK,CAAAvB,KAAA,CAAA,qBAAA,EAAwBiC,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;AACxDY,MAAAA,wBAAyB,EAAAF,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAV,MAAA,EAAA;AAAA,QAAA,OAAEV,IAAK,CAAAvB,KAAA,CAAA,2BAAA,EAA8BiC,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;MACpEa,EAAE,EAAEvB,IAAE,CAAAuB,EAAA;MACNC,QAAQ,EAAExB,IAAQ,CAAAwB,QAAAA;;;;;;;;;;;;;AC8CvC,aAAe;AACX/I,EAAAA,IAAI,EAAE,eAAe;AACrB,EAAA,SAAA,EAASgJ,QAAiB;AAC1BC,EAAAA,YAAY,EAAE,KAAK;EACnBxF,KAAK,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;AAC9HyF,EAAAA,MAAM,EAAE;AACJC,IAAAA,QAAQ,EAAE;MAAE,SAAS,EAAA,IAAA;AAAK,KAAA;GAC7B;AACDC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,kBAAkB,EAAE,IAAI;AACxBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,OAAO,EAAE,IAAI;AACbC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,WAAW,EAAE,IAAI;EACjBC,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACH/B,MAAAA,EAAE,EAAE,IAAI,CAACgC,MAAM,CAAChC,EAAE;AAClBiC,MAAAA,OAAO,EAAE,KAAK;AACd3E,MAAAA,OAAO,EAAE,KAAK;AACd4E,MAAAA,iBAAiB,EAAE;QAAEnF,KAAK,EAAE,CAAC,CAAC;AAAEb,QAAAA,KAAK,EAAE,CAAC;AAAEiG,QAAAA,SAAS,EAAE,EAAA;OAAI;AACzDlG,MAAAA,gBAAgB,EAAE,EAAE;AACpBmG,MAAAA,cAAc,EAAE,KAAK;AACrBC,MAAAA,KAAK,EAAE,KAAK;AACZC,MAAAA,YAAY,EAAE,KAAK;AACnBC,MAAAA,KAAK,EAAE,IAAI;AACXC,MAAAA,YAAY,EAAE,KAAA;KACjB,CAAA;GACJ;AACDC,EAAAA,KAAK,EAAE;AACH,IAAA,WAAW,EAAE,SAAbC,QAAWA,CAAYC,QAAQ,EAAE;AAC7B,MAAA,IAAI,CAAC3C,EAAG,GAAE2C,YAAYC,iBAAiB,EAAE,CAAA;KAC5C;IACDpK,OAAO,EAAA,SAAPA,OAAOA,GAAG;MACN,IAAI,CAACqK,eAAe,EAAE,CAAA;AAC1B,KAAA;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,CAAC9C,EAAG,GAAE,IAAI,CAACA,EAAC,IAAK4C,iBAAiB,EAAE,CAAA;IACxC,IAAI,CAACC,eAAe,EAAE,CAAA;IACtB,IAAI,CAACE,sBAAsB,EAAE,CAAA;GAChC;EACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,CAACC,0BAA0B,EAAE,CAAA;IACjC,IAAI,CAACC,oBAAoB,EAAE,CAAA;IAC3B,IAAI,CAACC,wBAAwB,EAAE,CAAA;IAE/B,IAAI,IAAI,CAACzB,aAAa,EAAE;AACpB,MAAA,IAAI,CAACA,aAAa,CAAC0B,OAAO,EAAE,CAAA;MAC5B,IAAI,CAAC1B,gBAAgB,IAAI,CAAA;AAC7B,KAAA;IAEA,IAAI,IAAI,CAACE,OAAO,EAAE;AACdyB,MAAAA,MAAM,CAACC,KAAK,CAAC,IAAI,CAAC1B,OAAO,CAAC,CAAA;MAC1B,IAAI,CAACA,OAAQ,GAAE,IAAI,CAAA;AACvB,KAAA;IAEA,IAAI,IAAI,CAACU,YAAY,EAAE;MACnB,IAAI,CAACA,YAAW,GAAI,KAAK,CAAA;AAC7B,KAAA;GACH;AACDjG,EAAAA,OAAO,EAAE;AACLK,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACE,MAAM,EAAE;AACnB,MAAA,OAAO,IAAI,CAAClE,WAAY,GAAEiE,gBAAgB,CAACC,MAAM,EAAE,IAAI,CAAClE,WAAW,CAAA,GAAIkE,MAAM,CAAA;KAChF;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACD,MAAM,EAAE;AACnB,MAAA,OAAO,IAAI,CAACjE,WAAY,GAAEgE,gBAAgB,CAACC,MAAM,EAAE,IAAI,CAACjE,WAAW,CAAA,GAAIiE,MAAM,CAAA;KAChF;AACDY,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACZ,MAAM,EAAE;AACrB,MAAA,OAAO,IAAI,CAAChE,cAAa,GAAI+D,gBAAgB,CAACC,MAAM,EAAE,IAAI,CAAChE,cAAc,IAAI,KAAK,CAAA;KACrF;AACD6E,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACP,WAAW,EAAE;AAC7B,MAAA,OAAO,IAAI,CAACrE,gBAAiB,GAAE8D,gBAAgB,CAACO,WAAW,EAAE,IAAI,CAACrE,gBAAgB,CAAA,GAAI,IAAI,CAAA;KAC7F;AACD6E,IAAAA,sBAAsB,WAAtBA,sBAAsBA,CAACR,WAAW,EAAEhB,KAAK,EAAE;MACvC,OAAOqH,QAAQ,CAAC,IAAI,CAACzK,mBAAmB,CAAA,GAAI6D,gBAAgB,CAACO,WAAW,EAAE,IAAI,CAACpE,mBAAmB,CAAA,GAAI6D,gBAAgB,CAACO,WAAW,EAAE,IAAI,CAACpE,mBAAmB,CAACoD,KAAK,CAAC,CAAC,CAAA;KACvK;AACDiB,IAAAA,aAAa,WAAbA,aAAaA,CAACP,MAAM,EAAEV,KAAK,EAAE;AACzB,MAAA,OAAOxC,MAAM,CAAC8J,SAAS,CAACC,cAAc,CAACC,IAAI,CAAC9G,MAAM,EAAE,IAAI,CAAC9D,mBAAmB,CAACoD,KAAK,CAAC,CAAC,CAAA;KACvF;IACDyH,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAuB;AAAA,MAAA,IAAtBpH,sFAAkB,EAAE,CAAA;AACzC,MAAA,IAAMqH,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACtH,eAAe,CAAC,CAAA;MAE7D,OAAOqH,OAAM,GAAI,IAAI,CAACnG,mBAAmB,CAAClB,eAAe,CAACK,MAAM,EAAEL,eAAe,CAACL,KAAK,CAAA,GAAI,IAAI,CAACQ,cAAc,CAACH,eAAe,CAACK,MAAM,CAAC,CAAA;KACzI;AACDiH,IAAAA,uBAAuB,EAAvBA,SAAAA,uBAAuBA,CAACtH,eAAe,EAAE;MACrC,OAAOqB,UAAU,CAACrB,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAEoB,QAAQ,CAAC,CAAA;KAC/C;AACDmG,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAACxF,OAAO,EAAE;AACV,MAAA,IAAI,CAACF,KAAK,CAAC,aAAa,CAAC,CAAA;MACzB,IAAI,CAACgE,iBAAiB,IAAI,CAAA;AAC1B,MAAA,IAAI,CAACnG,mBAAmB,IAAI,CAAC8H,iBAAgB,GAAI,IAAI,CAACC,qBAAqB,CAAC,IAAI,CAACzL,UAAU,CAAA,GAAI,IAAI,CAAC0D,gBAAgB,CAAA;MAEpH,IAAI,IAAI,CAAC8H,iBAAkB,IAAGnG,UAAU,CAAC,IAAI,CAAC3B,gBAAgB,CAAC,EAAE;AAC7D,QAAA,IAAMM,eAAc,GAAI,IAAI,CAACN,gBAAgB,CAAC,IAAI,CAACA,gBAAgB,CAACiE,MAAO,GAAE,CAAC,CAAC,CAAA;QAE/E,IAAI,CAACgC,iBAAgB,GAAI;UAAEnF,KAAK,EAAER,eAAe,CAACQ,KAAK;UAAEb,KAAK,EAAEK,eAAe,CAACL,KAAK;UAAEiG,SAAS,EAAE5F,eAAe,CAAC4F,SAAAA;SAAW,CAAA;AACjI,OAAE,MAAK;QACH,IAAI,CAACD,iBAAgB,GAAI;AAAEnF,UAAAA,KAAK,EAAE,IAAI,CAACtC,eAAgB,GAAE,IAAI,CAACwJ,2BAA2B,EAAG,GAAE,IAAI,CAACC,uBAAuB,EAAE;AAAEhI,UAAAA,KAAK,EAAE,CAAC;AAAEiG,UAAAA,SAAS,EAAE,EAAA;SAAI,CAAA;AAC3J,OAAA;MAEA7D,OAAQ,IAAG6F,KAAK,CAAC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAC,CAAA;KAC1C;AACDC,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAAChG,OAAO,EAAE;AAAA,MAAA,IAAAiG,KAAA,GAAA,IAAA,CAAA;AACV,MAAA,IAAMC,KAAM,GAAE,SAARA,KAAMA,GAAQ;AAChBD,QAAAA,KAAI,CAACnG,KAAK,CAAC,aAAa,CAAC,CAAA;QACzBmG,KAAI,CAACnC,cAAa,GAAI,KAAK,CAAA;QAC3BmC,KAAI,CAACtC,UAAU,KAAK,CAAA;QACpBsC,KAAI,CAACtI,gBAAe,GAAI,EAAE,CAAA;QAC1BsI,KAAI,CAACrC,iBAAkB,GAAE;UAAEnF,KAAK,EAAE,CAAC,CAAC;AAAEb,UAAAA,KAAK,EAAE,CAAC;AAAEiG,UAAAA,SAAS,EAAE,EAAA;SAAI,CAAA;QAE/D7D,OAAQ,IAAG6F,KAAK,CAACI,KAAI,CAACH,KAAK,CAACC,UAAU,CAAC,CAAA;OAC1C,CAAA;AAEDI,MAAAA,UAAU,CAAC,YAAM;AACbD,QAAAA,KAAK,EAAE,CAAA;AACX,OAAC,EAAE,CAAC,CAAC,CAAA;KACR;AACDE,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACvG,KAAK,EAAE;MACX,IAAI,IAAI,CAAC7E,QAAQ,EAAE;AACf;AACA,QAAA,OAAA;AACJ,OAAA;MAEA,IAAI,CAACgE,OAAQ,GAAE,IAAI,CAAA;AACnB,MAAA,IAAI,CAACc,KAAK,CAAC,OAAO,EAAED,KAAK,CAAC,CAAA;KAC7B;AACDwG,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAACxG,KAAK,EAAE;MACV,IAAI,CAACb,UAAU,KAAK,CAAA;MACpB,IAAI,CAAC4E,iBAAkB,GAAE;QAAEnF,KAAK,EAAE,CAAC,CAAC;AAAEb,QAAAA,KAAK,EAAE,CAAC;AAAEiG,QAAAA,SAAS,EAAE,EAAA;OAAI,CAAA;MAC/D,IAAI,CAACL,WAAY,GAAE,EAAE,CAAA;AACrB,MAAA,IAAI,CAAC1D,KAAK,CAAC,MAAM,EAAED,KAAK,CAAC,CAAA;KAC5B;AACDyG,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACzG,KAAK,EAAE;AACb,MAAA,IAAI,IAAI,CAAC7E,QAAS,IAAG,IAAI,CAACc,OAAO,EAAE;QAC/B+D,KAAK,CAAC0G,cAAc,EAAE,CAAA;AAEtB,QAAA,OAAA;AACJ,OAAA;MAEA,IAAMC,UAAU3G,KAAK,CAAC2G,WAAW3G,KAAK,CAAC4G,OAAO,CAAA;MAE9C,QAAQ5G,KAAK,CAAC6G,IAAI;AACd,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACC,cAAc,CAAC9G,KAAK,CAAC,CAAA;AAC1B,UAAA,MAAA;AAEJ,QAAA,KAAK,SAAS;AACV,UAAA,IAAI,CAAC+G,YAAY,CAAC/G,KAAK,CAAC,CAAA;AACxB,UAAA,MAAA;AAEJ,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACgH,cAAc,CAAChH,KAAK,CAAC,CAAA;AAC1B,UAAA,MAAA;AAEJ,QAAA,KAAK,YAAY;AACb,UAAA,IAAI,CAACiH,eAAe,CAACjH,KAAK,CAAC,CAAA;AAC3B,UAAA,MAAA;AAEJ,QAAA,KAAK,MAAM;AACP,UAAA,IAAI,CAACkH,SAAS,CAAClH,KAAK,CAAC,CAAA;AACrB,UAAA,MAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAACmH,QAAQ,CAACnH,KAAK,CAAC,CAAA;AACpB,UAAA,MAAA;AAEJ,QAAA,KAAK,OAAO;AACR,UAAA,IAAI,CAACoH,UAAU,CAACpH,KAAK,CAAC,CAAA;AACtB,UAAA,MAAA;AAEJ,QAAA,KAAK,OAAO,CAAA;AACZ,QAAA,KAAK,aAAa;AACd,UAAA,IAAI,CAACqH,UAAU,CAACrH,KAAK,CAAC,CAAA;AACtB,UAAA,MAAA;AAEJ,QAAA,KAAK,QAAQ;AACT,UAAA,IAAI,CAACsH,WAAW,CAACtH,KAAK,CAAC,CAAA;AACvB,UAAA,MAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAACuH,QAAQ,CAACvH,KAAK,CAAC,CAAA;AACpB,UAAA,MAAA;AAEJ,QAAA,KAAK,UAAU,CAAA;AACf,QAAA,KAAK,QAAQ,CAAA;AACb,QAAA,KAAK,WAAW,CAAA;AAChB,QAAA,KAAK,WAAW,CAAA;AAChB,QAAA,KAAK,YAAY;AACb;AACA,UAAA,MAAA;AAEJ,QAAA;UACI,IAAI,CAAC2G,WAAWa,oBAAoB,CAACxH,KAAK,CAAC1B,GAAG,CAAC,EAAE;YAC7C,CAAC,IAAI,CAAC2F,cAAa,IAAK,IAAI,CAAC0B,IAAI,EAAE,CAAA;YACnC,IAAI,CAAC8B,aAAa,CAACzH,KAAK,EAAEA,KAAK,CAAC1B,GAAG,CAAC,CAAA;AACxC,WAAA;AAEA,UAAA,MAAA;AACR,OAAA;MAEA,IAAI,CAACwF,UAAU,KAAK,CAAA;KACvB;AACDnB,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC3C,KAAK,EAAE;AAClB,MAAA,IAAQ5B,eAAe,GAAW4B,KAAK,CAA/B5B,eAAe;QAAErD,IAAK,GAAIiF,KAAK,CAAdjF,IAAK,CAAA;AAE9B,MAAA,IAAI2M,OAAO,CAACtJ,eAAe,CAAC,EAAE,OAAA;AAE9B,MAAA,IAAQQ,KAAK,GAAsCR,eAAe,CAA1DQ,KAAK;QAAEN,GAAG,GAAiCF,eAAe,CAAnDE,GAAG;QAAEP,KAAK,GAA0BK,eAAe,CAA9CL,KAAK;QAAEiG,SAAS,GAAe5F,eAAe,CAAvC4F,SAAS;QAAExE,QAAS,GAAIpB,eAAe,CAA5BoB,QAAS,CAAA;AAC/C,MAAA,IAAMiG,OAAQ,GAAEhG,UAAU,CAACD,QAAQ,CAAC,CAAA;MACpC,IAAM1B,gBAAiB,GAAE,IAAI,CAACA,gBAAgB,CAAC6J,MAAM,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAC5D,SAAQ,KAAMA,SAAU,IAAG4D,CAAC,CAAC5D,SAAU,KAAI1F,GAAG,CAAA;OAAC,CAAA,CAAA;MAE9G,IAAI,CAACyF,iBAAkB,GAAE;AAAEnF,QAAAA,KAAK,EAALA,KAAK;AAAEb,QAAAA,KAAK,EAALA,KAAK;AAAEiG,QAAAA,WAAAA,SAAAA;OAAW,CAAA;AAEpD,MAAA,IAAIjJ,IAAK,IAAG,WAAW,IAAI,CAACsJ,YAAY,EAAE;AACtC,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIoB,OAAO,EAAE;AACT3H,QAAAA,gBAAgB,CAAC+J,IAAI,CAACzJ,eAAe,CAAC,CAAA;AAC1C,OAAA;MAEA,IAAI,CAACN,gBAAe,GAAIA,gBAAgB,CAAA;KAC3C;AACDiC,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACC,KAAK,EAAE;AACjB,MAAA,IAAQE,aAAa,GAAyDF,KAAK,CAA3EE,aAAa;QAAE9B,eAAe,GAAwC4B,KAAK,CAA5D5B,eAAe;QAAE+B,OAAO,GAA+BH,KAAK,CAA3CG,OAAO;QAAE2H,MAAM,GAAuB9H,KAAK,CAAlC8H,MAAM;QAAEC,gBAAe,GAAM/H,KAAK,CAA1B+H,gBAAe,CAAA;AACxE,MAAA,IAAQnJ,KAAK,GAA4BR,eAAe,CAAhDQ,KAAK;QAAEN,GAAG,GAAuBF,eAAe,CAAzCE,GAAG;QAAEP,KAAK,GAAgBK,eAAe,CAApCL,KAAK;QAAEiG,YAAc5F,eAAe,CAA7B4F;AAC3B,MAAA,IAAMyB,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACtH,eAAe,CAAC,CAAA;AAC7D,MAAA,IAAMmE,QAAS,GAAE,IAAI,CAACyF,UAAU,CAAC5J,eAAe,CAAC,CAAA;AAEjD,MAAA,IAAImE,QAAQ,EAAE;QACV,IAAI,CAACzE,gBAAiB,GAAE,IAAI,CAACA,gBAAgB,CAAC6J,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,UAAA,OAAKtJ,GAAE,KAAMsJ,CAAC,CAACtJ,GAAI,IAAGA,GAAG,CAAC2J,UAAU,CAACL,CAAC,CAACtJ,GAAG,CAAC,CAAA;SAAC,CAAA,CAAA;QACnG,IAAI,CAACyF,iBAAkB,GAAE;AAAEnF,UAAAA,KAAK,EAALA,KAAK;AAAEb,UAAAA,KAAK,EAALA,KAAK;AAAEiG,UAAAA,WAAAA,SAAAA;SAAW,CAAA;AACxD,OAAE,MAAK;AACH,QAAA,IAAIyB,OAAO,EAAE;AACT,UAAA,IAAI,CAAC9C,cAAc,CAAC3C,KAAK,CAAC,CAAA;AAC1B,UAAA,IAAI,CAACkI,mBAAmB,CAAChI,aAAa,EAAE9B,eAAe,CAAC,CAAA;AAC5D,SAAE,MAAK;UACH,IAAMN,gBAAe,GAAI,IAAI,CAACA,gBAAgB,CAAC6J,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,YAAA,OAAKA,CAAC,CAAC5D,SAAQ,KAAMA,SAAS,CAAA;WAAC,CAAA,CAAA;AAEvFlG,UAAAA,gBAAgB,CAAC+J,IAAI,CAACzJ,eAAe,CAAC,CAAA;UAEtC,IAAI,CAAC2F,iBAAkB,GAAE;AAAEnF,YAAAA,KAAK,EAALA,KAAK;AAAEb,YAAAA,KAAK,EAALA,KAAK;AAAEiG,YAAAA,WAAAA,SAAAA;WAAW,CAAA;AAEpD,UAAA,IAAI,CAAC+D,gBAAiB,IAAG,CAAA3J,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAEoB,QAAQ,CAACuC,MAAK,MAAM,CAAC,EAAE;YAC7D,IAAI,CAACjE,gBAAe,GAAIA,gBAAgB,CAAA;YACxC,IAAI,CAACqK,cAAc,CAACjI,aAAa,EAAE9B,eAAe,EAAE0J,MAAM,CAAC,CAAA;AAC/D,WAAA;AACJ,SAAA;AACJ,OAAA;MAEA3H,OAAQ,IAAG6F,KAAK,CAAC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAC,CAAA;KAC1C;AACD9F,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACJ,KAAK,EAAE;MACtB,IAAI,IAAI,CAACxD,YAAY,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC0H,KAAM,IAAI,CAAC,IAAI,CAACA,KAAI,IAAKzE,UAAU,CAAC,IAAI,CAACrF,UAAU,CAAE,EAAE;AAC5D,UAAA,IAAI,CAACuI,cAAc,CAAAyF,eAAA,CAAAA,eAAA,KAAMpI,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEjF,YAAAA,IAAI,EAAE,OAAA;AAAM,WAAA,CAAG,CAAC,CAAA;AACpD,SAAE,MAAK,IAAI,CAAC,IAAI,CAACmJ,KAAI,IAAKlE,KAAK,CAAC5B,eAAe,CAACL,UAAU,CAAC,EAAE;AACzD,UAAA,IAAI,CAACgC,aAAa,CAAAqI,eAAA,CAAAA,eAAA,KAAMpI,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEjF,YAAAA,IAAI,EAAE,OAAA;AAAM,WAAA,CAAG,CAAC,CAAA;AACnD,SAAA;AACJ,OAAA;KACH;AACDsF,IAAAA,iBAAiB,EAAjBA,SAAAA,iBAAiBA,CAACL,KAAK,EAAE;AACrB,MAAA,IAAI,IAAI,CAACb,WAAW,IAAI,CAAC3C,YAAY,EAAE;QACnC,IAAI,CAAC6L,wBAAwB,CAACrI,KAAK,EAAEA,KAAK,CAAC5B,eAAe,CAACQ,KAAK,CAAC,CAAA;AACrE,OAAA;KACH;AACDuJ,IAAAA,cAAc,WAAdA,cAAcA,CAACnI,KAAK,EAAE5B,eAAe,EAAiB;AAAA,MAAA,IAAf0J,MAAK,GAAAQ,SAAA,CAAAvG,MAAA,GAAA,CAAA,IAAAuG,SAAA,CAAA,CAAA,CAAA,KAAAnM,SAAA,GAAAmM,SAAA,CAAA,CAAA,CAAA,GAAI,IAAI,CAAA;AAChD,MAAA,IAAMrK,KAAM,GAAE,IAAI,CAACS,cAAc,CAACN,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEK,MAAM,CAAC,CAAA;AAE1D,MAAA,IAAI,CAACX,gBAAgB,CAACyK,OAAO,CAAC,UAACX,CAAC,EAAA;AAAA,QAAA,OAAMA,CAAC,CAACrF,QAAS,GAAE,IAAI,CAAA;AAAA,OAAC,CAAC,CAAA;AACzD,MAAA,IAAI,CAACiG,WAAW,CAACxI,KAAK,EAAE/B,KAAK,CAAC,CAAA;AAC9B6J,MAAAA,UAAU,IAAI,CAAC3B,IAAI,CAAC,IAAI,CAAC,CAAA;KAC5B;AACD+B,IAAAA,mBAAmB,WAAnBA,mBAAmBA,CAAClI,KAAK,EAAE5B,eAAe,EAAE;MACxC,IAAI,CAAC8F,KAAM,GAAE,IAAI,CAAA;AACjB,MAAA,IAAI,CAACjE,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAE/B,KAAK,EAAEG,eAAe,CAACK,MAAAA;AAAO,OAAC,CAAC,CAAA;KACtF;AACDgK,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACzI,KAAK,EAAE;AACpB,MAAA,IAAI,IAAI,CAAC7E,QAAS,IAAG,IAAI,CAACc,OAAO,EAAE;AAC/B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAI,CAAC,IAAI,CAACwH,OAAM,IAAK,CAAC,IAAI,CAACA,OAAO,CAACiF,QAAQ,CAAC1I,KAAK,CAAC2I,MAAM,CAAC,EAAE;AACvD,QAAA,IAAI,CAAC1E,iBAAiB,IAAI,CAACkC,IAAI,EAAG,GAAE,IAAI,CAACR,IAAI,EAAE,CAAA;AAC/CK,QAAAA,KAAK,CAAC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAC,CAAA;AAChC,OAAA;MAEA,IAAI,CAACpC,OAAQ,GAAE,IAAI,CAAA;AACnB,MAAA,IAAI,CAAC7D,KAAK,CAAC,OAAO,EAAED,KAAK,CAAC,CAAA;KAC7B;AACD4I,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC5I,KAAK,EAAE;AAClB6I,MAAAA,eAAe,CAACC,IAAI,CAAC,eAAe,EAAE;AAClC5I,QAAAA,aAAa,EAAEF,KAAK;QACpB2I,MAAM,EAAE,IAAI,CAACI,GAAAA;AACjB,OAAC,CAAC,CAAA;KACL;AACDC,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAChJ,KAAK,EAAE;MACpB,QAAQA,KAAK,CAAC6G,IAAI;AACd,QAAA,KAAK,QAAQ;AACT,UAAA,IAAI,CAACS,WAAW,CAACtH,KAAK,CAAC,CAAA;AACvB,UAAA,MAAA;AAIR,OAAA;KACH;AACD8G,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC9G,KAAK,EAAE;AAClB,MAAA,IAAI,CAAC,IAAI,CAACiE,cAAc,EAAE;QACtB,IAAI,CAAC0B,IAAI,EAAE,CAAA;AACf,OAAE,MAAK;AACH,QAAA,IAAMsD,cAAc,IAAI,CAAClF,iBAAiB,CAACnF,KAAM,KAAI,CAAC,IAAI,IAAI,CAACsK,mBAAmB,CAAC,IAAI,CAACnF,iBAAiB,CAACnF,KAAK,IAAI,IAAI,CAACkF,OAAM,GAAI,IAAI,CAACqF,oBAAoB,EAAG,GAAE,IAAI,CAACrD,2BAA2B,EAAE,CAAA;QAElM,IAAI,CAACuC,wBAAwB,CAACrI,KAAK,EAAEiJ,WAAW,EAAE,IAAI,CAAC,CAAA;AAC3D,OAAA;MAEAjJ,KAAK,CAAC0G,cAAc,EAAE,CAAA;KACzB;AACDK,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAAC/G,KAAK,EAAE;MAChB,IAAIA,KAAK,CAACoJ,MAAM,EAAE;QACd,IAAI,IAAI,CAACrF,iBAAiB,CAACnF,UAAU,CAAC,CAAC,EAAE;UACrC,IAAMR,eAAgB,GAAE,IAAI,CAACiL,cAAc,CAAC,IAAI,CAACtF,iBAAiB,CAACnF,KAAK,CAAC,CAAA;AACzE,UAAA,IAAM6G,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACtH,eAAe,CAAC,CAAA;AAE7D,UAAA,CAACqH,OAAQ,IAAG,IAAI,CAAC9C,cAAc,CAAC;AAAEzC,YAAAA,aAAa,EAAEF,KAAK;AAAE5B,YAAAA,eAAc,EAAdA,eAAAA;AAAgB,WAAC,CAAC,CAAA;AAC9E,SAAA;AAEA,QAAA,IAAI,CAAC6F,cAAe,IAAG,IAAI,CAACkC,IAAI,EAAE,CAAA;QAClCnG,KAAK,CAAC0G,cAAc,EAAE,CAAA;AAC1B,OAAE,MAAK;AACH,QAAA,IAAMuC,cAAc,IAAI,CAAClF,iBAAiB,CAACnF,KAAM,KAAI,CAAC,IAAI,IAAI,CAAC0K,mBAAmB,CAAC,IAAI,CAACvF,iBAAiB,CAACnF,KAAK,CAAA,GAAI,IAAI,CAACkF,OAAQ,GAAE,IAAI,CAACyF,mBAAmB,EAAC,GAAI,IAAI,CAACC,0BAA0B,EAAE,CAAA;QAEhM,IAAI,CAACnB,wBAAwB,CAACrI,KAAK,EAAEiJ,WAAW,EAAE,IAAI,CAAC,CAAA;QAEvD,CAAC,IAAI,CAAChF,cAAa,IAAK,IAAI,CAAC0B,IAAI,EAAE,CAAA;QACnC3F,KAAK,CAAC0G,cAAc,EAAE,CAAA;AAC1B,OAAA;KACH;AACDM,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAChH,KAAK,EAAE;AAAA,MAAA,IAAAyJ,MAAA,GAAA,IAAA,CAAA;MAClB,IAAI,IAAI,CAACxF,cAAc,EAAE;QACrB,IAAM7F,eAAgB,GAAE,IAAI,CAACiL,cAAc,CAAC,IAAI,CAACtF,iBAAiB,CAACnF,KAAK,CAAC,CAAA;QACzE,IAAM8K,YAAW,GAAI,IAAI,CAAC5L,gBAAgB,CAAC6L,IAAI,CAAC,UAAC/B,CAAC,EAAA;UAAA,OAAKA,CAAC,CAACtJ,GAAE,MAAMF,eAAe,aAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAE4F,SAAS,CAAA,CAAA;SAAC,CAAA,CAAA;QAC5F,IAAM4F,OAAM,GAAI,IAAI,CAAC7F,iBAAiB,CAACC,cAAc,EAAG,IAAI0F,YAAa,IAAGA,YAAY,CAACpL,GAAE,KAAM,IAAI,CAACyF,iBAAiB,CAACC,SAAU,CAAA;QAClI,IAAM6F,IAAK,GAAEnC,OAAO,CAACtJ,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAE0L,MAAM,CAAC,CAAA;AAE7C,QAAA,IAAIF,OAAO,EAAE;UACT,IAAI,CAAC9L,gBAAe,GAAI,IAAI,CAACA,gBAAgB,CAAC6J,MAAM,CAAC,UAACC,CAAC,EAAA;YAAA,OAAKA,CAAC,CAAC5D,SAAQ,KAAMyF,MAAI,CAAC1F,iBAAiB,CAACC,SAAS,CAAA;WAAC,CAAA,CAAA;AACjH,SAAA;QAEA,IAAI,CAAC6F,IAAI,EAAE;UACP,IAAI,CAAC9F,iBAAgB,GAAI;YAAEnF,KAAK,EAAE,CAAC,CAAC;AAAEoF,YAAAA,SAAS,EAAE0F,YAAa,GAAEA,YAAY,CAAC1F,YAAY,EAAA;WAAI,CAAA;UAC7F,IAAI,CAACL,WAAY,GAAE,EAAE,CAAA;AACrB,UAAA,IAAI,CAACmD,cAAc,CAAC9G,KAAK,CAAC,CAAA;AAC9B,SAAA;QAEAA,KAAK,CAAC0G,cAAc,EAAE,CAAA;AAC1B,OAAA;KACH;AACDO,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAACjH,KAAK,EAAE;MACnB,IAAI,IAAI,CAACiE,cAAc,EAAE;QACrB,IAAM7F,eAAgB,GAAE,IAAI,CAACiL,cAAc,CAAC,IAAI,CAACtF,iBAAiB,CAACnF,KAAK,CAAC,CAAA;AACzE,QAAA,IAAM6G,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACtH,eAAe,CAAC,CAAA;AAE7D,QAAA,IAAIqH,OAAO,EAAE;UACT,IAAMmE,OAAQ,GAAE,IAAI,CAAC9L,gBAAgB,CAAC8B,IAAI,CAAC,UAACgI,CAAC,EAAA;YAAA,OAAK,CAAAxJ,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEE,GAAE,MAAMsJ,CAAC,CAACtJ,GAAG,CAAA;WAAC,CAAA,CAAA;AAEjF,UAAA,IAAIsL,OAAO,EAAE;YACT,IAAI,CAAC7F,iBAAkB,GAAE;cAAEnF,KAAK,EAAE,CAAC,CAAC;AAAEoF,cAAAA,SAAS,EAAE5F,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEE,GAAAA;aAAK,CAAA;YACvE,IAAI,CAACqF,WAAY,GAAE,EAAE,CAAA;AACrB,YAAA,IAAI,CAACmD,cAAc,CAAC9G,KAAK,CAAC,CAAA;AAC9B,WAAE,MAAK;YACH,IAAI,CAAC2C,cAAc,CAAC;AAAEzC,cAAAA,aAAa,EAAEF,KAAK;AAAE5B,cAAAA,eAAgB,EAAhBA,eAAAA;AAAgB,aAAC,CAAC,CAAA;AAClE,WAAA;AACJ,SAAA;QAEA4B,KAAK,CAAC0G,cAAc,EAAE,CAAA;AAC1B,OAAA;KACH;AACDQ,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAClH,KAAK,EAAE;MACb,IAAI,CAACqI,wBAAwB,CAACrI,KAAK,EAAE,IAAI,CAACmJ,oBAAoB,EAAE,CAAC,CAAA;MAEjE,CAAC,IAAI,CAAClF,cAAa,IAAK,IAAI,CAAC0B,IAAI,EAAE,CAAA;MACnC3F,KAAK,CAAC0G,cAAc,EAAE,CAAA;KACzB;AACDS,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACnH,KAAK,EAAE;MACZ,IAAI,CAACqI,wBAAwB,CAACrI,KAAK,EAAE,IAAI,CAACuJ,mBAAmB,EAAE,CAAC,CAAA;MAEhE,CAAC,IAAI,CAACtF,cAAa,IAAK,IAAI,CAAC0B,IAAI,EAAE,CAAA;MACnC3F,KAAK,CAAC0G,cAAc,EAAE,CAAA;KACzB;AACDW,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACrH,KAAK,EAAE;AACd,MAAA,IAAI,CAAC,IAAI,CAACiE,cAAc,EAAE;QACtB,IAAI,CAACF,iBAAiB,CAACnF,UAAU,CAAC,CAAC,CAAE;AACrC,QAAA,IAAI,CAACkI,cAAc,CAAC9G,KAAK,CAAC,CAAA;AAC9B,OAAE,MAAK;QACH,IAAI,IAAI,CAAC+D,iBAAiB,CAACnF,UAAU,CAAC,CAAC,EAAE;UACrC,IAAMR,eAAgB,GAAE,IAAI,CAACiL,cAAc,CAAC,IAAI,CAACtF,iBAAiB,CAACnF,KAAK,CAAC,CAAA;AACzE,UAAA,IAAM6G,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACtH,eAAe,CAAC,CAAA;UAE7D,IAAI,CAAC2B,aAAa,CAAC;AAAEG,YAAAA,aAAa,EAAEF,KAAK;AAAE5B,YAAAA,eAAe,EAAfA,eAAe;AAAE2J,YAAAA,gBAAgB,EAAE,KAAA;AAAM,WAAC,CAAC,CAAA;AACtF,UAAA,CAACtC,WAAW,IAAI,CAACU,IAAI,EAAE,CAAA;AAC3B,SAAA;AACJ,OAAA;MAEAnG,KAAK,CAAC0G,cAAc,EAAE,CAAA;KACzB;AACDU,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACpH,KAAK,EAAE;AACd,MAAA,IAAI,CAACqH,UAAU,CAACrH,KAAK,CAAC,CAAA;KACzB;AACDsH,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACtH,KAAK,EAAE;MACf,IAAI,CAACiE,cAAe,IAAG,IAAI,CAACkC,IAAI,CAAC,IAAI,CAAC,CAAA;MACtCnG,KAAK,CAAC0G,cAAc,EAAE,CAAA;KACzB;AACDa,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACvH,KAAK,EAAE;MACZ,IAAI,IAAI,CAAC+D,iBAAiB,CAACnF,UAAU,CAAC,CAAC,EAAE;QACrC,IAAMR,eAAgB,GAAE,IAAI,CAACiL,cAAc,CAAC,IAAI,CAACtF,iBAAiB,CAACnF,KAAK,CAAC,CAAA;AACzE,QAAA,IAAM6G,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACtH,eAAe,CAAC,CAAA;AAE7D,QAAA,CAACqH,OAAQ,IAAG,IAAI,CAAC9C,cAAc,CAAC;AAAEzC,UAAAA,aAAa,EAAEF,KAAK;AAAE5B,UAAAA,eAAc,EAAdA,eAAAA;AAAgB,SAAC,CAAC,CAAA;AAC9E,OAAA;AAEA,MAAA,IAAI,CAAC6F,cAAe,IAAG,IAAI,CAACkC,IAAI,EAAE,CAAA;KACrC;AACD4D,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACxJ,EAAE,EAAE;AACf2E,MAAAA,MAAM,CAAC8E,GAAG,CAAC,SAAS,EAAEzJ,EAAE,EAAE,IAAI,CAACE,SAAS,CAACC,MAAM,CAACuJ,MAAM,CAACxG,OAAO,CAAC,CAAA;MAE/DyG,QAAQ,CAAC3J,EAAE,EAAE;AAAE4J,QAAAA,QAAQ,EAAE,UAAU;AAAEC,QAAAA,GAAG,EAAE,GAAG;AAAEC,QAAAA,IAAI,EAAE,GAAA;AAAI,OAAC,CAAC,CAAA;MAC3D,IAAI,CAACC,YAAY,EAAE,CAAA;MACnB,IAAI,CAACC,YAAY,EAAE,CAAA;KACtB;IACDC,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,CAACC,wBAAwB,EAAE,CAAA;MAC/B,IAAI,CAACC,kBAAkB,EAAE,CAAA;MACzB,IAAI,CAACC,kBAAkB,EAAE,CAAA;AAEzB,MAAA,IAAI,CAAC1K,KAAK,CAAC,MAAM,CAAC,CAAA;KACrB;IACD2K,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,IAAI,CAAC9F,0BAA0B,EAAE,CAAA;MACjC,IAAI,CAAC+F,oBAAoB,EAAE,CAAA;MAC3B,IAAI,CAAC9F,oBAAoB,EAAE,CAAA;AAE3B,MAAA,IAAI,CAAC9E,KAAK,CAAC,MAAM,CAAC,CAAA;MAClB,IAAI,CAACwD,OAAQ,GAAE,IAAI,CAAA;MACnB,IAAI,CAACS,KAAI,GAAI,KAAK,CAAA;KACrB;AACD4G,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACvK,EAAE,EAAE;AACpB2E,MAAAA,MAAM,CAACC,KAAK,CAAC5E,EAAE,CAAC,CAAA;KACnB;IACD+J,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAI,IAAI,CAACtO,QAAO,KAAM,MAAM,EAAE;QAC1B+O,gBAAgB,CAAC,IAAI,CAACtH,OAAO,EAAE,IAAI,CAACsF,GAAG,CAAC,CAAA;AAC5C,OAAE,MAAK;AACH,QAAA,IAAI,CAACtF,OAAO,CAACrG,KAAK,CAAC4N,QAAS,GAAEC,aAAa,CAAC,IAAI,CAAClC,GAAG,CAAA,GAAI,IAAI,CAAA;QAC5DmC,gBAAgB,CAAC,IAAI,CAACzH,OAAO,EAAE,IAAI,CAACsF,GAAG,CAAC,CAAA;AAC5C,OAAA;KACH;IACD0B,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAU,MAAA,GAAA,IAAA,CAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAAC9H,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAqB,GAAE,UAACrD,KAAK,EAAK;AACnC,UAAA,IAAImL,MAAI,CAAClH,cAAa,IAAKkH,MAAI,CAAC1H,OAAM,IAAK,CAAC0H,MAAI,CAACpC,GAAG,CAACL,QAAQ,CAAC1I,KAAK,CAAC2I,MAAM,CAAE,IAAG,CAACwC,MAAI,CAAC1H,OAAO,CAACiF,QAAQ,CAAC1I,KAAK,CAAC2I,MAAM,CAAC,EAAE;YACjHwC,MAAI,CAAChF,IAAI,EAAE,CAAA;AACf,WAAA;SACH,CAAA;QAEDiF,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAChI,oBAAoB,CAAC,CAAA;AACjE,OAAA;KACH;IACDyB,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAACzB,oBAAoB,EAAE;QAC3B+H,QAAQ,CAACE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACjI,oBAAoB,CAAC,CAAA;QAChE,IAAI,CAACA,oBAAmB,GAAI,IAAI,CAAA;AACpC,OAAA;KACH;IACDqH,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAa,MAAA,GAAA,IAAA,CAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAAChI,aAAa,EAAE;AACrB,QAAA,IAAI,CAACA,aAAY,GAAI,IAAIiI,6BAA6B,CAAC,IAAI,CAACvF,KAAK,CAACtI,SAAS,EAAE,YAAM;UAC/E,IAAI4N,MAAI,CAACtH,cAAc,EAAE;YACrBsH,MAAI,CAACpF,IAAI,EAAE,CAAA;AACf,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;AAEA,MAAA,IAAI,CAAC5C,aAAa,CAACmH,kBAAkB,EAAE,CAAA;KAC1C;IACDG,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACtH,aAAa,EAAE;AACpB,QAAA,IAAI,CAACA,aAAa,CAACsH,oBAAoB,EAAE,CAAA;AAC7C,OAAA;KACH;IACDF,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAc,MAAA,GAAA,IAAA,CAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACjI,cAAc,EAAE;QACtB,IAAI,CAACA,iBAAiB,YAAM;UACxB,IAAIiI,MAAI,CAACxH,cAAa,IAAK,CAACyH,aAAa,EAAE,EAAE;YACzCD,MAAI,CAACtF,IAAI,EAAE,CAAA;AACf,WAAA;SACH,CAAA;QAEDwF,MAAM,CAACN,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC7H,cAAc,CAAC,CAAA;AAC1D,OAAA;KACH;IACDuB,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACvB,cAAc,EAAE;QACrBmI,MAAM,CAACL,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC9H,cAAc,CAAC,CAAA;QACzD,IAAI,CAACA,iBAAiB,IAAI,CAAA;AAC9B,OAAA;KACH;IACDoB,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;AAAA,MAAA,IAAAgH,MAAA,GAAA,IAAA,CAAA;AACrB,MAAA,IAAI,CAAC,IAAI,CAACtI,kBAAkB,EAAE;QAC1B,IAAMc,KAAM,GAAEyH,UAAU,CAAAxN,cAAAA,CAAAA,MAAA,CAAgB,IAAI,CAACvD,UAAU,EAAA,GAAA,CAAG,CAAC,CAAA;QAE3D,IAAI,CAACsJ,KAAI,GAAIA,KAAK,CAAA;AAClB,QAAA,IAAI,CAACC,YAAW,GAAID,KAAK,CAAC0H,OAAO,CAAA;QAEjC,IAAI,CAACxI,kBAAiB,GAAI,YAAM;AAC5BsI,UAAAA,MAAI,CAACvH,YAAW,GAAID,KAAK,CAAC0H,OAAO,CAAA;UACjCF,MAAI,CAACzH,YAAW,GAAI,KAAK,CAAA;SAC5B,CAAA;QAED,IAAI,CAACC,KAAK,CAACiH,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC/H,kBAAkB,CAAC,CAAA;AAClE,OAAA;KACH;IACD0B,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;MACvB,IAAI,IAAI,CAAC1B,kBAAkB,EAAE;QACzB,IAAI,CAACc,KAAK,CAACkH,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAChI,kBAAkB,CAAC,CAAA;QACjE,IAAI,CAACA,kBAAiB,GAAI,IAAI,CAAA;AAClC,OAAA;KACH;AACDyI,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC3N,eAAe,EAAE;AAAA,MAAA,IAAA4N,qBAAA,CAAA;AAC7B,MAAA,OAAO,IAAI,CAACC,aAAa,CAAC7N,eAAe,CAAA,KAAA4N,CAAAA,qBAAA,GAAK,IAAI,CAACxG,wBAAwB,CAACpH,eAAe,CAAC,MAAA,IAAA,IAAA4N,qBAAA,KAA9CA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAgDE,iBAAiB,CAAC,IAAI,CAACzP,YAAY,CAAC,CAACwL,UAAU,CAAC,IAAI,CAACtE,WAAW,CAACuI,iBAAiB,CAAC,IAAI,CAACzP,YAAY,CAAC,CAAC,CAAA,CAAA;KACvM;AACDwP,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAC7N,eAAe,EAAE;AAC3B,MAAA,OAAOqB,UAAU,CAACrB,eAAe,CAAE,IAAG,CAAC,IAAI,CAACiB,gBAAgB,CAACjB,eAAe,CAACK,MAAM,CAAC,CAAA;KACvF;AACD0N,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAAC/N,eAAe,EAAE;AACnC,MAAA,OAAO,IAAI,CAAC6N,aAAa,CAAC7N,eAAe,CAAA,IAAK,IAAI,CAAC4J,UAAU,CAAC5J,eAAe,CAAC,CAAA;KACjF;AACD4J,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC5J,eAAe,EAAE;AACxB,MAAA,OAAO,IAAI,CAACN,gBAAgB,CAAC8B,IAAI,CAAC,UAACgI,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAACtJ,GAAE,KAAMF,eAAe,CAACE,GAAG,CAAA;OAAC,CAAA,CAAA;KAC1E;IACD6K,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AAAA,MAAA,IAAAiD,MAAA,GAAA,IAAA,CAAA;AACnB,MAAA,OAAO,IAAI,CAAC/C,cAAc,CAACgD,SAAS,CAAC,UAACjO,eAAe,EAAA;AAAA,QAAA,OAAKgO,MAAI,CAACH,aAAa,CAAC7N,eAAe,CAAC,CAAA;OAAC,CAAA,CAAA;KACjG;IACDmL,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAAA,MAAA,IAAA+C,MAAA,GAAA,IAAA,CAAA;AAClB,MAAA,OAAOC,aAAa,CAAC,IAAI,CAAClD,cAAc,EAAE,UAACjL,eAAe,EAAA;AAAA,QAAA,OAAKkO,MAAI,CAACL,aAAa,CAAC7N,eAAe,CAAC,CAAA;OAAC,CAAA,CAAA;KACtG;AACD8K,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACtK,KAAK,EAAE;AAAA,MAAA,IAAA4N,MAAA,GAAA,IAAA,CAAA;MACvB,IAAMC,kBAAmB,GAAE7N,KAAI,GAAI,IAAI,CAACyK,cAAc,CAACtH,MAAO,GAAE,IAAI,IAAI,CAACsH,cAAc,CAACqD,KAAK,CAAC9N,KAAM,GAAE,CAAC,CAAC,CAACyN,SAAS,CAAC,UAACjO,eAAe,EAAA;AAAA,QAAA,OAAKoO,MAAI,CAACP,aAAa,CAAC7N,eAAe,CAAC,CAAA;OAAE,CAAA,GAAE,CAAC,CAAC,CAAA;MAEjL,OAAOqO,kBAAiB,GAAI,CAAC,CAAE,GAAEA,kBAAmB,GAAE7N,KAAM,GAAE,CAAE,GAAEA,KAAK,CAAA;KAC1E;AACD0K,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC1K,KAAK,EAAE;AAAA,MAAA,IAAA+N,OAAA,GAAA,IAAA,CAAA;MACvB,IAAMF,qBAAqB7N,KAAI,GAAI,CAAA,GAAI2N,aAAa,CAAC,IAAI,CAAClD,cAAc,CAACqD,KAAK,CAAC,CAAC,EAAE9N,KAAK,CAAC,EAAE,UAACR,eAAe,EAAA;AAAA,QAAA,OAAKuO,OAAI,CAACV,aAAa,CAAC7N,eAAe,CAAC,CAAA;OAAE,CAAA,GAAE,CAAC,CAAC,CAAA;AAExJ,MAAA,OAAOqO,kBAAiB,GAAI,CAAC,IAAIA,kBAAiB,GAAI7N,KAAK,CAAA;KAC9D;IACDmH,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AAAA,MAAA,IAAA6G,OAAA,GAAA,IAAA,CAAA;AACtB,MAAA,OAAO,IAAI,CAACvD,cAAc,CAACgD,SAAS,CAAC,UAACjO,eAAe,EAAA;AAAA,QAAA,OAAKwO,OAAI,CAACT,qBAAqB,CAAC/N,eAAe,CAAC,CAAA;OAAC,CAAA,CAAA;KACzG;IACD0H,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;AAC1B,MAAA,IAAM+G,gBAAgB,IAAI,CAAC9G,uBAAuB,EAAE,CAAA;MAEpD,OAAO8G,aAAY,GAAI,CAAA,GAAI,IAAI,CAAC1D,oBAAoB,EAAC,GAAI0D,aAAa,CAAA;KACzE;IACDrD,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;AACzB,MAAA,IAAMqD,gBAAgB,IAAI,CAAC9G,uBAAuB,EAAE,CAAA;MAEpD,OAAO8G,aAAY,GAAI,CAAA,GAAI,IAAI,CAACtD,mBAAmB,EAAG,GAAEsD,aAAa,CAAA;KACxE;AACDhH,IAAAA,qBAAqB,WAArBA,qBAAqBA,CAAC5H,KAAK,EAAE6O,gBAAgB,EAAa;AAAA,MAAA,IAAX/O,KAAI,GAAAuK,SAAA,CAAAvG,MAAA,GAAA,CAAA,IAAAuG,SAAA,CAAA,CAAA,CAAA,KAAAnM,SAAA,GAAAmM,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;MACpDwE,gBAAe,GAAIA,gBAAiB,IAAI/O,UAAU,CAAA,IAAK,IAAI,CAAC+O,gBAAiB,CAAA;AAE7E,MAAA,IAAI,CAACA,gBAAgB,EAAE,OAAO,IAAI,CAAA;AAClC,MAAA,IAAIpF,OAAO,CAACzJ,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;AAE7B,MAAA,KAAK,IAAI8O,CAAE,GAAE,CAAC,EAAEA,IAAID,gBAAgB,CAAC/K,MAAM,EAAEgL,CAAC,EAAE,EAAE;AAC9C,QAAA,IAAM3O,eAAc,GAAI0O,gBAAgB,CAACC,CAAC,CAAC,CAAA;AAE3C,QAAA,IAAIpN,MAAM,CAAC1B,KAAK,EAAE,IAAI,CAACS,cAAc,CAACN,eAAe,CAACK,MAAM,CAAC,EAAE,IAAI,CAACuO,WAAW,CAAC,EAAE;UAC9E,OAAO,CAAC5O,eAAe,CAAC,CAAA;AAC5B,SAAA;AAEA,QAAA,IAAM6O,iBAAiB,IAAI,CAACpH,qBAAqB,CAAC5H,KAAK,EAAEG,eAAe,CAACoB,QAAQ,EAAEzB,KAAM,GAAE,CAAC,CAAC,CAAA;AAE7F,QAAA,IAAIkP,cAAc,EAAE;AAChBA,UAAAA,cAAc,CAACC,OAAO,CAAC9O,eAAe,CAAC,CAAA;AAEvC,UAAA,OAAO6O,cAAc,CAAA;AACzB,SAAA;AACJ,OAAA;KACH;AACDxF,IAAAA,aAAa,WAAbA,aAAaA,CAACzH,KAAK,EAAEmN,KAAI,EAAE;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA,CAAA;MACvB,IAAI,CAACzJ,WAAU,GAAI,CAAC,IAAI,CAACA,eAAe,EAAE,IAAIwJ,KAAI,CAAA;MAElD,IAAIlE,WAAY,GAAE,CAAC,CAAC,CAAA;MACpB,IAAIW,OAAM,GAAI,KAAK,CAAA;AAEnB,MAAA,IAAInK,UAAU,CAAC,IAAI,CAACkE,WAAW,CAAC,EAAE;QAC9B,IAAI,IAAI,CAACI,iBAAiB,CAACnF,UAAU,CAAC,CAAC,EAAE;AACrCqK,UAAAA,WAAU,GAAI,IAAI,CAACI,cAAc,CAACqD,KAAK,CAAC,IAAI,CAAC3I,iBAAiB,CAACnF,KAAK,CAAC,CAACyN,SAAS,CAAC,UAACjO,eAAe,EAAA;AAAA,YAAA,OAAKgP,OAAI,CAACrB,eAAe,CAAC3N,eAAe,CAAC,CAAA;WAAC,CAAA,CAAA;UAC3I6K,WAAU,GAAIA,WAAU,KAAM,CAAC,CAAE,GAAE,IAAI,CAACI,cAAc,CAACqD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC3I,iBAAiB,CAACnF,KAAK,CAAC,CAACyN,SAAS,CAAC,UAACjO,eAAe,EAAA;AAAA,YAAA,OAAKgP,OAAI,CAACrB,eAAe,CAAC3N,eAAe,CAAC,CAAA;AAAA,WAAA,CAAE,GAAE6K,WAAY,GAAE,IAAI,CAAClF,iBAAiB,CAACnF,KAAK,CAAA;AACpN,SAAE,MAAK;UACHqK,WAAU,GAAI,IAAI,CAACI,cAAc,CAACgD,SAAS,CAAC,UAACjO,eAAe,EAAA;AAAA,YAAA,OAAKgP,OAAI,CAACrB,eAAe,CAAC3N,eAAe,CAAC,CAAA;WAAC,CAAA,CAAA;AAC3G,SAAA;AAEA,QAAA,IAAI6K,WAAY,KAAI,CAAC,CAAC,EAAE;AACpBW,UAAAA,UAAU,IAAI,CAAA;AAClB,SAAA;AAEA,QAAA,IAAIX,gBAAgB,CAAC,CAAE,IAAG,IAAI,CAAClF,iBAAiB,CAACnF,KAAM,KAAI,CAAC,CAAC,EAAE;AAC3DqK,UAAAA,WAAU,GAAI,IAAI,CAACnD,2BAA2B,EAAE,CAAA;AACpD,SAAA;AAEA,QAAA,IAAImD,WAAY,KAAI,CAAC,CAAC,EAAE;AACpB,UAAA,IAAI,CAACZ,wBAAwB,CAACrI,KAAK,EAAEiJ,WAAW,CAAC,CAAA;AACrD,SAAA;AACJ,OAAA;MAEA,IAAI,IAAI,CAACvF,aAAa,EAAE;AACpB2J,QAAAA,YAAY,CAAC,IAAI,CAAC3J,aAAa,CAAC,CAAA;AACpC,OAAA;AAEA,MAAA,IAAI,CAACA,aAAc,GAAE4C,UAAU,CAAC,YAAM;QAClC8G,OAAI,CAACzJ,WAAY,GAAE,EAAE,CAAA;QACrByJ,OAAI,CAAC1J,gBAAgB,IAAI,CAAA;OAC5B,EAAE,GAAG,CAAC,CAAA;AAEP,MAAA,OAAOkG,OAAO,CAAA;KACjB;IACDvB,wBAAwB,EAAA,SAAxBA,wBAAwBA,CAACrI,KAAK,EAAEpB,KAAK,EAAEmJ,gBAAgB,EAAE;AACrD,MAAA,IAAI,IAAI,CAAChE,iBAAiB,CAACnF,KAAM,KAAIA,KAAK,EAAE;AACxC,QAAA,IAAI,CAACmF,iBAAiB,CAACnF,KAAI,GAAIA,KAAK,CAAA;QACpC,IAAI,CAAC2L,YAAY,EAAE,CAAA;QAEnB,IAAI,IAAI,CAAC/N,YAAY,EAAE;UACnB,IAAI,CAACuD,aAAa,CAAC;AAAEG,YAAAA,aAAa,EAAEF,KAAK;AAAE5B,YAAAA,eAAe,EAAE,IAAI,CAACiL,cAAc,CAACzK,KAAK,CAAC;AAAEkJ,YAAAA,MAAM,EAAE,KAAK;AAAEC,YAAAA,gBAAiB,EAAjBA,gBAAAA;AAAiB,WAAC,CAAC,CAAA;AAC9H,SAAA;QAEA,IAAI,IAAI,CAACxL,aAAa,EAAE;UACpB,IAAI,CAACoG,cAAc,CAAC;AAAEzC,YAAAA,aAAa,EAAEF,KAAK;AAAE5B,YAAAA,eAAe,EAAE,IAAI,CAACiL,cAAc,CAACzK,KAAK,CAAC;AAAEkJ,YAAAA,MAAM,EAAE,KAAA;AAAM,WAAC,CAAC,CAAA;AAC7G,SAAA;AACJ,OAAA;KACH;IACDyC,YAAY,EAAA,SAAZA,YAAYA,GAAa;AAAA,MAAA,IAAA+C,OAAA,GAAA,IAAA,CAAA;AAAA,MAAA,IAAZ1O,4EAAQ,CAAC,CAAC,CAAA;MACnB,IAAI,CAAC2O,SAAS,CAAC,YAAM;AACjB,QAAA,IAAM1L,EAAG,GAAEjD,KAAM,KAAI,CAAC,CAAA,MAAAP,MAAA,CAAOiP,OAAI,CAACzL,EAAE,OAAAxD,MAAA,CAAIO,KAAK,CAAK0O,GAAAA,OAAI,CAACzP,eAAe,CAAA;AACtE,QAAA,IAAM2P,OAAM,GAAIC,UAAU,CAACH,OAAI,CAACI,IAAI,EAAA,UAAA,CAAArP,MAAA,CAAYwD,EAAE,EAAA,KAAA,CAAI,CAAC,CAAA;AAEvD,QAAA,IAAI2L,OAAO,EAAE;AACTA,UAAAA,OAAO,CAACG,kBAAkBH,OAAO,CAACG,cAAc,CAAC;AAAEC,YAAAA,KAAK,EAAE,SAAS;AAAEC,YAAAA,MAAM,EAAE,OAAA;AAAQ,WAAC,CAAC,CAAA;AAC3F,SAAA;AACJ,OAAC,CAAC,CAAA;KACL;IACDnJ,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,IAAI,IAAI,CAACnI,aAAc,IAAG,IAAI,CAACD,eAAc,IAAK,CAAC,IAAI,CAACsJ,iBAAiB,EAAE;QACvE,IAAI,CAAC7B,iBAAiB,CAACnF,KAAM,GAAE,IAAI,CAACkH,2BAA2B,EAAE,CAAA;QACjE,IAAI,CAACnD,cAAc,CAAC;UAAEvE,eAAe,EAAE,IAAI,CAACiL,cAAc,CAAC,IAAI,CAACtF,iBAAiB,CAACnF,KAAK,CAAC;AAAEkJ,UAAAA,MAAM,EAAE,KAAA;AAAM,SAAC,CAAC,CAAA;AAE1G,QAAA,CAAC,IAAI,CAAC7D,cAAe,KAAI,IAAI,CAACF,iBAAkB,GAAE;UAAEnF,KAAK,EAAE,CAAC,CAAC;AAAEb,UAAAA,KAAK,EAAE,CAAC;AAAEiG,UAAAA,SAAS,EAAE,EAAA;AAAG,SAAC,CAAC,CAAA;AAC7F,OAAA;KACH;AACDwE,IAAAA,WAAW,WAAXA,WAAWA,CAACxI,KAAK,EAAE/B,KAAK,EAAE;AACtB,MAAA,IAAI,CAACgC,KAAK,CAAC,mBAAmB,EAAEhC,KAAK,CAAC,CAAA;AACtC,MAAA,IAAI,CAACgC,KAAK,CAAC,QAAQ,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;AAAE/B,QAAAA,KAAM,EAANA,KAAAA;AAAM,OAAC,CAAC,CAAA;KACxD;AACD6P,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACzT,OAAO,EAA0C;AAAA,MAAA,IAAA0T,OAAA,GAAA,IAAA,CAAA;AAAA,MAAA,IAAxChQ,KAAM,GAAAuK,SAAA,CAAAvG,MAAA,GAAA,CAAA,IAAAuG,SAAA,CAAA,CAAA,CAAA,KAAAnM,SAAA,GAAAmM,SAAA,CAAA,CAAA,CAAA,GAAE,CAAC,CAAA;AAAA,MAAA,IAAEwB,MAAK,GAAAxB,SAAA,CAAAvG,MAAA,GAAA,CAAA,IAAAuG,SAAA,CAAA,CAAA,CAAA,KAAAnM,SAAA,GAAAmM,SAAA,CAAA,CAAA,CAAA,GAAI,EAAE,CAAA;AAAA,MAAA,IAAEtE,SAAU,GAAAsE,SAAA,CAAAvG,MAAA,GAAA,CAAA,IAAAuG,SAAA,CAAA,CAAA,CAAA,KAAAnM,SAAA,GAAAmM,SAAA,CAAA,CAAA,CAAA,GAAE,EAAE,CAAA;MAClE,IAAMwE,gBAAe,GAAI,EAAE,CAAA;MAE3BzS,WACIA,OAAO,CAACkO,OAAO,CAAC,UAAC9J,MAAM,EAAEG,KAAK,EAAK;AAC/B,QAAA,IAAMN,GAAE,GAAI,CAAC0F,SAAU,KAAI,EAAC,GAAIA,YAAY,GAAI,GAAE,EAAE,IAAIpF,KAAK,CAAA;AAC7D,QAAA,IAAMoP,YAAY;AACdvP,UAAAA,MAAM,EAANA,MAAM;AACNG,UAAAA,KAAK,EAALA,KAAK;AACLb,UAAAA,KAAK,EAALA,KAAK;AACLO,UAAAA,GAAG,EAAHA,GAAG;AACHwL,UAAAA,MAAM,EAANA,MAAM;AACN9F,UAAAA,SAAQ,EAARA,SAAAA;SACH,CAAA;QAEDgK,SAAS,CAAC,UAAU,CAAE,GAAED,OAAI,CAACD,sBAAsB,CAACC,OAAI,CAACxO,sBAAsB,CAACd,MAAM,EAAEV,KAAK,CAAC,EAAEA,KAAM,GAAE,CAAC,EAAEiQ,SAAS,EAAE1P,GAAG,CAAC,CAAA;AAC1HwO,QAAAA,gBAAgB,CAACjF,IAAI,CAACmG,SAAS,CAAC,CAAA;AACpC,OAAC,CAAC,CAAA;AAEN,MAAA,OAAOlB,gBAAgB,CAAA;KAC1B;AACDmB,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC1N,EAAE,EAAE;MACX,IAAI,CAACkD,OAAQ,GAAElD,EAAE,CAAA;AACrB,KAAA;GACH;AACD2N,EAAAA,QAAQ,EAAE;IACNtI,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,OAAOnG,UAAU,CAAC,IAAI,CAACrF,UAAU,CAAC,CAAA;KACrC;IACD+T,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,IAAMA,KAAI,GAAI,IAAI,CAACvT,eAAe,cAAc,CAAA;MAEhD,IAAI,IAAI,CAACgL,iBAAiB,EAAE;QACxB,IAAM9H,gBAAe,GAAI,IAAI,CAAC+H,qBAAqB,CAAC,IAAI,CAACzL,UAAU,CAAC,CAAA;AACpE,QAAA,IAAMgE,eAAc,GAAIqB,UAAU,CAAC3B,gBAAgB,CAAA,GAAIA,gBAAgB,CAACA,gBAAgB,CAACiE,SAAS,CAAC,IAAI,IAAI,CAAA;QAE3G,OAAO3D,eAAc,GAAI,IAAI,CAACG,cAAc,CAACH,eAAe,CAACK,MAAM,IAAI0P,KAAK,CAAA;AAChF,OAAA;AAEA,MAAA,OAAOA,KAAK,CAAA;KACf;IACDrB,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;MACf,OAAO,IAAI,CAACgB,sBAAsB,CAAC,IAAI,CAACzT,WAAW,EAAE,CAAC,CAAA;KACzD;IACDgP,cAAc,EAAA,SAAdA,cAAcA,GAAG;AAAA,MAAA,IAAA+E,OAAA,GAAA,IAAA,CAAA;MACb,IAAMhQ,eAAc,GAAI,IAAI,CAACN,gBAAgB,CAAC6L,IAAI,CAAC,UAAC/B,CAAC,EAAA;QAAA,OAAKA,CAAC,CAACtJ,GAAI,KAAI8P,OAAI,CAACrK,iBAAiB,CAACC,SAAS,CAAA;OAAC,CAAA,CAAA;MAErG,OAAO5F,eAAgB,GAAEA,eAAe,CAACoB,QAAO,GAAI,IAAI,CAACsN,gBAAgB,CAAA;KAC5E;IACDE,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,OAAO,IAAI,CAACxS,WAAU,GAAI,IAAG,GAAI,IAAI,CAACY,OAAO,CAAA;KAChD;IACDiT,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACtB,OAAO5O,UAAU,CAAC,IAAI,CAAC4J,cAAc,CAAE,GAAE,IAAI,CAACiF,iBAAiB,CAACC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAClF,cAAc,CAACtH,MAAM,CAAE,GAAE,IAAI,CAACyM,sBAAsB,CAAA;KAC9I;IACDF,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,OAAO,IAAI,CAAC5R,iBAAiB,IAAI,CAAC+D,SAAS,CAACC,MAAM,CAACC,MAAM,CAACjE,aAAY,IAAK,EAAE,CAAA;KAChF;IACD8R,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;AACrB,MAAA,OAAO,IAAI,CAAC3R,kBAAmB,IAAG,IAAI,CAAC4D,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC9D,sBAAsB,EAAE,CAAA;KAC1F;IACD4R,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC3R,YAAW,IAAK,IAAI,CAAC2D,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC7D,YAAW,IAAK,EAAE,CAAA;KAC9E;IACD4R,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,OAAO,IAAI,CAAC/R,oBAAoB,IAAI,CAAC8D,SAAS,CAACC,MAAM,CAACC,MAAM,CAAChE,gBAAe,IAAK,EAAE,CAAA;KACtF;IACDgS,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;AACxB,MAAA,OAAO,IAAI,CAAC/R,qBAAoB,IAAK,IAAI,CAAC6D,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC/D,yBAAyB,EAAE,CAAA;KAChG;IACDgS,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAAChJ,iBAAkB,GAAE,IAAI,CAAC8I,oBAAoB,CAACH,UAAU,CAAC,KAAK,EAAE,GAAG,CAAA,GAAI,IAAI,CAACI,yBAAyB,CAAA;KACpH;IACD9Q,eAAe,EAAA,SAAfA,eAAeA,GAAG;MACd,OAAO,IAAI,CAACkG,iBAAiB,CAACnF,KAAI,KAAM,CAAC,CAAE,GAAAP,EAAAA,CAAAA,MAAA,CAAK,IAAI,CAACwD,EAAE,CAAAxD,CAAAA,MAAA,CAAGoB,UAAU,CAAC,IAAI,CAACsE,iBAAiB,CAACC,SAAS,IAAI,GAAE,GAAI,IAAI,CAACD,iBAAiB,CAACC,SAAQ,GAAI,EAAE,EAAA3F,GAAAA,CAAAA,CAAAA,MAAA,CAAI,IAAI,CAAC0F,iBAAiB,CAACnF,KAAK,IAAK,IAAI,CAAA;KAChM;IACDiQ,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,OAAOnH,OAAO,CAAC,IAAI,CAACvK,KAAK,CAAE,GAAE,CAAC,CAAC,IAAI,CAACiG,QAAS,GAAE,IAAI,CAACjG,KAAK,CAAA;AAC7D,KAAA;GACH;AACD8D,EAAAA,UAAU,EAAE;AACR6N,IAAAA,gBAAgB,EAAEA,QAAgB;AAClCC,IAAAA,MAAM,EAAEA,MAAM;AACdC,IAAAA,eAAe,EAAEA,eAAe;AAChCC,IAAAA,WAAW,EAAEA,WAAW;AACxB/N,IAAAA,cAAc,EAAEA,cAAAA;AACpB,GAAA;AACJ,CAAC;;;;;;;;;;;;;ECv1BG,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAuFK,OAvFLC,UAuFK,CAAA;AAvFAC,IAAAA,GAAG,EAAC,WAAY;AAAC,IAAA,OAAA,EAAOE,IAAE,CAAAC,EAAA,CAAA,MAAA,CAAA;AAAWrE,IAAAA,KAAK,EAAEoE,IAAE,CAAA0N,EAAA,CAAA,MAAA,CAAA;AAAWjN,IAAAA,OAAK,EAAAW,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAV,MAAA,EAAA;AAAA,MAAA,OAAEX,QAAgB,CAAAkH,gBAAA,CAACvG,MAAM,CAAA,CAAA;KAAA,CAAA;KAAWV,IAAI,CAAA2N,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CACvGC,kBAwBK,CAAA,KAAA,EAxBL/N,UAwBK,CAAA;IAxBA,OAAM,EAAA,qBAAA;KAA8BG,IAAG,CAAA3C,GAAA,CAAA,sBAAA,CAAA,EAAA;AAA2B,IAAA,0BAAwB,EAAE,IAAA;GAAI,CAAA,EAAA,CACjGuQ,kBAAA,CAsBC,SAtBD/N,UAsBC,CAAA;AArBGC,IAAAA,GAAG,EAAC,YAAW;IACdO,EAAE,EAAEL,IAAO,CAAAnG,OAAA;AACZN,IAAAA,IAAI,EAAC,MAAK;IACT,OAAOyG,EAAAA,IAAU,CAAAlG,UAAA;IACjB8B,KAAK,EAAEoE,IAAU,CAAAhG,UAAA;AAClB6T,IAAAA,QAAO,EAAP,EAAO;IACNlU,QAAQ,EAAEqG,IAAQ,CAAArG,QAAA;IAClBP,WAAW,EAAE4G,IAAW,CAAA5G,WAAA;IACxBmC,QAAQ,EAAA,CAAGyE,IAAO,CAAArG,QAAA,GAAIqG,IAAS,CAAAzE,QAAA,GAAA,CAAA,CAAA;AAChC+E,IAAAA,IAAI,EAAC,UAAS;IACb,YAAU,EAAEN,IAAS,CAAAtE,SAAA;IACrB,iBAAe,EAAEsE,IAAc,CAAAvE,cAAA;AAChC,IAAA,eAAa,EAAC,MAAK;IAClB,eAAa,EAAEqS,KAAc,CAAArL,cAAA;AAC7B,IAAA,eAAa,EAAEqL,KAAC,CAAAzN,EAAA,GAAA,OAAA;IAChB,uBAAqB,EAAEyN,KAAA,CAAAnQ,OAAM,GAAIoC,QAAA,CAAA1D,eAAgB,GAAE1B,SAAS;AAC5D,IAAA,cAAY,EAAEqF,IAAM,CAAAvG,OAAA,IAAKkB,SAAS;IAClCoK,OAAK;aAAEhF,QAAO,CAAAgF,OAAA,IAAAhF,QAAA,CAAAgF,OAAA,CAAAgJ,KAAA,CAAAhO,QAAA,EAAA+G,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IACd9B,MAAI;aAAEjF,QAAM,CAAAiF,MAAA,IAAAjF,QAAA,CAAAiF,MAAA,CAAA+I,KAAA,CAAAhO,QAAA,EAAA+G,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IACZkH,SAAO;aAAEjO,QAAS,CAAAkF,SAAA,IAAAlF,QAAA,CAAAkF,SAAA,CAAA8I,KAAA,CAAAhO,QAAA,EAAA+G,SAAA,CAAA,CAAA;KAAA,CAAA;AACN,GAAA,EAAAF,aAAA,CAAAA,aAAA,KAAA5G,IAAA,CAAA/F,UAAU,CAAA,EAAK+F,IAAG,CAAA3C,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA4Q,UAAA,CAAA,QAGvCL,kBAAA,CAIM,QAJN/N,UAIM,CAAA;AAJC,IAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,OAAA,CAAA;KAAmBD,IAAG,CAAA3C,GAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAClC6Q,UAEM,CAAAlO,IAAA,CAAAmO,MAAA,EAAA,OAAA,EAAA;IAFc1R,KAAK,EAAEuD,IAAU,CAAApH,UAAA;IAAGQ,WAAW,EAAE4G,IAAW,CAAA5G,WAAAA;KAAhE,YAAA;AAAA,IAAA,OAEM,iCADC2G;YAGX6N,kBAAA,CAQK,OARL/N,UAQK,CAAA;AARC,IAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,UAAA,CAAA;AAAcK,IAAAA,IAAI,EAAC,QAAO;AAAE/E,IAAAA,QAAQ,EAAC,IAAA;KAAayE,IAAG,CAAA3C,GAAA,CAAA,UAAA,CAAA,CAAA,EAAA,CACpD2C,IAAO,CAAAvF,OAAA,GAAnByT,UAGM,CAAAlO,IAAA,CAAAmO,MAAA,EAAA,aAAA,EAAA;;AAHmC,IAAA,OAAA,iBAAOnO,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA,CAAA;KAAlD,YAAA;AAAA,IAAA,OAGM,CAFUD,IAAW,CAAApF,WAAA,IAAvB+E,SAAA,EAAA,EAAAC,kBAAA,CAA8H,QAA9HC,UAA8H,CAAA;;AAApG,MAAA,OAAA,EAAK,CAAGG,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA,EAAA,SAAA,EAA4BD,IAAW,CAAApF,WAAA,CAAA;AAAG,MAAA,aAAW,EAAC,MAAA;OAAeoF,IAAG,CAAA3C,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAC5GsC,SAAA,EAAA,EAAAkB,WAAA,CAAoGuN,wBAApGvO,UAAoG,CAAA;;AAA/E,MAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA;AAAiBoO,MAAAA,MAAA;AAAK,MAAA,aAAW,EAAC,MAAA;OAAerO,IAAG,CAAA3C,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;OAEtF6Q,UAEM,CAAAlO,IAAA,CAAAmO,MAAA,EAAA,cAAA,EAAA;;AAF4B,IAAA,OAAA,iBAAOnO,IAAE,CAAAC,EAAA,CAAA,cAAA,CAAA,CAAA;KAA3C,YAAA;AAAA,IAAA,OAEM,eADFY,WAAwJ,CAAAC,uBAAA,CAAxId,IAAa,CAAAtF,YAAA,GAAA,MAAA,GAAA,iBAAA,CAAA,EAA7BmF,UAAwJ,CAAA;MAA5F,OAAK,EAAA,CAAGG,IAAE,CAAAC,EAAA,CAAA,cAAA,CAAA,EAAkBD,IAAY,CAAAtF,YAAA,CAAA;AAAG,MAAA,aAAW,EAAC,MAAA;OAAesF,IAAG,CAAA3C,GAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;YAG7IuQ,kBAAA,CAEM,QAFN/N,UAEM,CAAA;AAFAS,IAAAA,IAAI,EAAC,QAAS;AAAA,IAAA,WAAS,EAAC,QAAS;IAAA,OAAM,EAAA,qBAAA;AAA8B,GAAA,EAAAN,IAAA,CAAA3C,GAAG,CAAyB,oBAAA,CAAA,EAAA;AAAA,IAAA,0BAAwB,EAAE,IAAA;sBAC1H0C,QAAsB,CAAA8M,uBAAA,CAAA,EAAA,EAAA,CAAA,EAE7ByB,WA2CQ,CAAAC,iBAAA,EAAA;IA3CC/T,QAAQ,EAAEwF,IAAQ,CAAAxF,QAAAA;AAAA,GAAA,EAAA;uBACvB,YAAA;AAAA,MAAA,OAyCY,CAzCZ8T,WAAA,CAyCYE,YAzCZ3O,UAyCY,CAAA;AAzCApH,QAAAA,IAAI,EAAC,qBAAoB;QAAGgW,OAAK,EAAE1O,QAAc,CAAAwI,cAAA;QAAGmG,YAAW,EAAE3O,QAAmB,CAAAiJ,mBAAA;QAAG2F,OAAK,EAAE5O,QAAc,CAAAqJ,cAAA;QAAGwF,YAAW,EAAE7O,QAAmB,CAAAuJ,mBAAAA;SAAUtJ,IAAG,CAAA3C,GAAA,CAAA,YAAA,CAAA,CAAA,EAAA;2BACpK,YAAA;AAAA,UAAA,OAuCK,CAtCKyQ,KAAc,CAAArL,cAAA,IADxB9C,SAAA,EAAA,EAAAC,kBAAA,CAuCK,OAvCLC,UAuCK,CAAA;;YArCAC,GAAG,EAAEC,QAAU,CAAA0M,UAAA;AACf,YAAA,OAAA,EAAQ,CAAAzM,IAAA,CAAAC,EAAE,CAAa,SAAA,CAAA,EAAAD,IAAA,CAAA9F,UAAU,EAAE8F,IAAY,CAAA3F,YAAA,CAAA;YAC/CuB,KAAK,EAAA,CAAGoE,IAAU,CAAA7F,UAAA,EAAE6F,IAAY,CAAA1F,YAAA,CAAA;YAChCmG,OAAK;qBAAEV,QAAc,CAAAqH,cAAA,IAAArH,QAAA,CAAAqH,cAAA,CAAA2G,KAAA,CAAAhO,QAAA,EAAA+G,SAAA,CAAA,CAAA;AAAA,aAAA,CAAA;YACrBkH,SAAO;qBAAEjO,QAAgB,CAAAyH,gBAAA,IAAAzH,QAAA,CAAAyH,gBAAA,CAAAuG,KAAA,CAAAhO,QAAA,EAAA+G,SAAA,CAAA,CAAA;aAAA,CAAA;2DACb9G,IAAU,CAAA5F,UAAA,CAAA,EAAK4F,IAAY,CAAAzF,YAAA,CAAKyF,EAAAA,IAAG,CAAA3C,GAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAA,CAEhD6Q,UAA4D,CAAAlO,IAAA,CAAAmO,MAAA,EAAA,QAAA,EAAA;YAAvC1R,KAAK,EAAEuD,IAAU,CAAApH,UAAA;YAAGC,OAAO,EAAEmH,IAAO,CAAAnH,OAAAA;cACzD+U,kBAAA,CAwBK,OAxBL/N,UAwBK,CAAA;AAxBC,YAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,eAAA,CAAA;aAA2BD,IAAG,CAAA3C,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,CACzCiR,WAsBC,CAAApN,2BAAA,EAAA;AArBIb,YAAAA,EAAE,EAAEyN,KAAC,CAAAzN,EAAA,GAAA,OAAA;AACNC,YAAAA,IAAI,EAAC,MAAK;AACV,YAAA,kBAAgB,EAAC,YAAW;YAC3BlE,QAAQ,EAAE0R,KAAE,CAAAzN,EAAA;YACZhE,eAAe,EAAEyR,KAAA,CAAAnQ,OAAM,GAAIoC,QAAA,CAAA1D,eAAc,GAAI1B,SAAS;YACtD9B,OAAO,EAAEkH,QAAgB,CAAAuL,gBAAA;YACzBhP,gBAAgB,EAAEwR,KAAgB,CAAAxR,gBAAA;AAClCC,YAAAA,KAAK,EAAE,CAAC;YACRC,SAAS,EAAEwD,IAAM,CAAAmO,MAAA;YACjBpV,WAAW,EAAEiH,IAAW,CAAAjH,WAAA;YACxBC,WAAW,EAAEgH,IAAW,CAAAhH,WAAA;YACxBC,cAAc,EAAE+G,IAAc,CAAA/G,cAAA;YAC9B4B,eAAe,EAAEmF,IAAe,CAAAnF,eAAA;YAChC3B,gBAAgB,EAAE8G,IAAgB,CAAA9G,gBAAA;YAClCC,mBAAmB,EAAE6G,IAAmB,CAAA7G,mBAAA;YACxCsD,KAAK,EAAEuD,IAAU,CAAApH,UAAA;YACjBuI,cAAa,EAAEpB,QAAa,CAAAxB,aAAA;YAC5B8C,mBAAmB,EAAEtB,QAAiB,CAAAlB,iBAAA;YACtCyC,wBAAyB,EAAEvB,QAAkB,CAAAnB,kBAAA;YAC7C2C,EAAE,EAAEvB,IAAE,CAAAuB,EAAA;YACNC,QAAQ,EAAExB,IAAQ,CAAAwB,QAAAA;8TAG3BoM,kBAAA,CAEM,QAFN/N,UAEM,CAAA;AAFAS,YAAAA,IAAI,EAAC,QAAS;AAAA,YAAA,WAAS,EAAC,QAAO;YAAE,OAAM,EAAA,qBAAA;AAA8B,WAAA,EAAAN,IAAA,CAAA3C,GAAG,CAA4B,uBAAA,CAAA,EAAA;AAAA,YAAA,0BAAwB,EAAE,IAAA;8BAC7H0C,oCAEPmO,UAA4D,CAAAlO,IAAA,CAAAmO,MAAA,EAAA,QAAA,EAAA;YAAvC1R,KAAK,EAAEuD,IAAU,CAAApH,UAAA;YAAGC,OAAO,EAAEmH,IAAO,CAAAnH,OAAAA;;;;;;;;;;;;;;"}