primevue 4.0.6 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/autocomplete/AutoComplete.vue +50 -50
  2. package/autocomplete/index.d.ts +5 -1
  3. package/autocomplete/index.mjs +11 -8
  4. package/autocomplete/index.mjs.map +1 -1
  5. package/autocomplete/style/index.d.ts +4 -0
  6. package/autocomplete/style/index.mjs +3 -2
  7. package/autocomplete/style/index.mjs.map +1 -1
  8. package/button/BaseButton.vue +2 -2
  9. package/button/Button.vue +1 -1
  10. package/button/index.d.ts +2 -2
  11. package/button/index.mjs +7 -6
  12. package/button/index.mjs.map +1 -1
  13. package/carousel/Carousel.vue +2 -7
  14. package/carousel/index.mjs +2 -7
  15. package/carousel/index.mjs.map +1 -1
  16. package/carousel/style/index.mjs +1 -1
  17. package/carousel/style/index.mjs.map +1 -1
  18. package/cascadeselect/BaseCascadeSelect.vue +4 -0
  19. package/cascadeselect/CascadeSelect.vue +53 -10
  20. package/cascadeselect/CascadeSelectSub.vue +24 -27
  21. package/cascadeselect/index.d.ts +41 -1
  22. package/cascadeselect/index.mjs +114 -73
  23. package/cascadeselect/index.mjs.map +1 -1
  24. package/cascadeselect/style/index.mjs +13 -6
  25. package/cascadeselect/style/index.mjs.map +1 -1
  26. package/colorpicker/BaseColorPicker.vue +2 -1
  27. package/colorpicker/ColorPicker.vue +3 -3
  28. package/colorpicker/index.d.ts +6 -1
  29. package/colorpicker/index.mjs +11 -4
  30. package/colorpicker/index.mjs.map +1 -1
  31. package/column/index.d.ts +41 -1
  32. package/config/index.d.ts +9 -3
  33. package/confirmationoptions/index.d.ts +12 -0
  34. package/confirmdialog/ConfirmDialog.vue +11 -1
  35. package/confirmdialog/index.d.ts +3 -7
  36. package/confirmdialog/index.mjs +12 -2
  37. package/confirmdialog/index.mjs.map +1 -1
  38. package/contextmenu/BaseContextMenu.vue +4 -0
  39. package/contextmenu/ContextMenu.vue +37 -10
  40. package/contextmenu/index.d.ts +10 -5
  41. package/contextmenu/index.mjs +57 -28
  42. package/contextmenu/index.mjs.map +1 -1
  43. package/contextmenu/style/index.mjs +10 -5
  44. package/contextmenu/style/index.mjs.map +1 -1
  45. package/datatable/BaseDataTable.vue +4 -0
  46. package/datatable/DataTable.vue +20 -25
  47. package/datatable/HeaderCheckbox.vue +1 -1
  48. package/datatable/TableBody.vue +1 -1
  49. package/datatable/TableHeader.vue +51 -51
  50. package/datatable/index.d.ts +6 -1
  51. package/datatable/index.mjs +95 -92
  52. package/datatable/index.mjs.map +1 -1
  53. package/datatable/style/index.mjs +1 -1
  54. package/datatable/style/index.mjs.map +1 -1
  55. package/datepicker/DatePicker.vue +21 -22
  56. package/datepicker/index.d.ts +2 -10
  57. package/datepicker/index.mjs +30 -30
  58. package/datepicker/index.mjs.map +1 -1
  59. package/datepicker/style/index.mjs +3 -3
  60. package/datepicker/style/index.mjs.map +1 -1
  61. package/dialog/Dialog.vue +11 -11
  62. package/dialog/index.d.ts +5 -0
  63. package/dialog/index.mjs +8 -11
  64. package/dialog/index.mjs.map +1 -1
  65. package/drawer/Drawer.vue +2 -2
  66. package/drawer/index.d.ts +5 -1
  67. package/drawer/index.mjs +2 -2
  68. package/drawer/index.mjs.map +1 -1
  69. package/fieldset/index.d.ts +2 -6
  70. package/fileupload/index.d.ts +2 -2
  71. package/floatlabel/BaseFloatLabel.vue +6 -1
  72. package/floatlabel/index.d.ts +7 -2
  73. package/floatlabel/index.mjs +6 -1
  74. package/floatlabel/index.mjs.map +1 -1
  75. package/floatlabel/style/index.d.ts +2 -2
  76. package/floatlabel/style/index.mjs +10 -2
  77. package/floatlabel/style/index.mjs.map +1 -1
  78. package/focustrap/index.d.ts +1 -1
  79. package/galleria/index.d.ts +8 -8
  80. package/galleria/style/index.mjs +2 -2
  81. package/galleria/style/index.mjs.map +1 -1
  82. package/iftalabel/BaseIftaLabel.vue +16 -0
  83. package/iftalabel/IftaLabel.vue +15 -0
  84. package/iftalabel/index.d.ts +130 -0
  85. package/iftalabel/index.mjs +32 -0
  86. package/iftalabel/index.mjs.map +1 -0
  87. package/iftalabel/package.json +11 -0
  88. package/iftalabel/style/index.d.ts +19 -0
  89. package/iftalabel/style/index.mjs +17 -0
  90. package/iftalabel/style/index.mjs.map +1 -0
  91. package/iftalabel/style/package.json +6 -0
  92. package/imagecompare/BaseImageCompare.vue +30 -0
  93. package/imagecompare/ImageCompare.vue +24 -0
  94. package/imagecompare/index.d.ts +149 -0
  95. package/imagecompare/index.mjs +61 -0
  96. package/imagecompare/index.mjs.map +1 -0
  97. package/imagecompare/package.json +11 -0
  98. package/imagecompare/style/index.d.ts +23 -0
  99. package/imagecompare/style/index.mjs +18 -0
  100. package/imagecompare/style/index.mjs.map +1 -0
  101. package/imagecompare/style/package.json +6 -0
  102. package/inputgroup/BaseInputGroup.vue +0 -6
  103. package/inputgroup/InputGroup.vue +1 -10
  104. package/inputgroup/index.d.ts +0 -5
  105. package/inputgroup/index.mjs +1 -18
  106. package/inputgroup/index.mjs.map +1 -1
  107. package/inputgroup/style/index.mjs +2 -7
  108. package/inputgroup/style/index.mjs.map +1 -1
  109. package/inputmask/InputMask.vue +23 -17
  110. package/inputmask/index.mjs +21 -16
  111. package/inputmask/index.mjs.map +1 -1
  112. package/inputnumber/InputNumber.vue +2 -2
  113. package/inputnumber/index.d.ts +1 -1
  114. package/inputnumber/index.mjs +2 -2
  115. package/inputnumber/index.mjs.map +1 -1
  116. package/inputnumber/style/index.mjs +2 -2
  117. package/inputnumber/style/index.mjs.map +1 -1
  118. package/inputotp/BaseInputOtp.vue +1 -1
  119. package/inputotp/InputOtp.vue +8 -14
  120. package/inputotp/index.d.ts +2 -2
  121. package/inputotp/index.mjs +13 -14
  122. package/inputotp/index.mjs.map +1 -1
  123. package/inputotp/style/index.mjs +1 -1
  124. package/inputotp/style/index.mjs.map +1 -1
  125. package/inputtext/style/index.mjs +1 -1
  126. package/inputtext/style/index.mjs.map +1 -1
  127. package/keyfilter/index.d.ts +153 -0
  128. package/keyfilter/index.mjs +127 -0
  129. package/keyfilter/index.mjs.map +1 -0
  130. package/keyfilter/package.json +5 -0
  131. package/keyfilter/style/index.d.ts +14 -0
  132. package/keyfilter/style/index.mjs +8 -0
  133. package/keyfilter/style/index.mjs.map +1 -0
  134. package/keyfilter/style/package.json +6 -0
  135. package/megamenu/MegaMenu.vue +4 -4
  136. package/megamenu/index.d.ts +4 -0
  137. package/megamenu/index.mjs +2 -2
  138. package/megamenu/index.mjs.map +1 -1
  139. package/message/Message.vue +3 -19
  140. package/message/index.mjs +4 -20
  141. package/message/index.mjs.map +1 -1
  142. package/multiselect/BaseMultiSelect.vue +1 -5
  143. package/multiselect/MultiSelect.vue +16 -14
  144. package/multiselect/index.d.ts +2 -20
  145. package/multiselect/index.mjs +15 -17
  146. package/multiselect/index.mjs.map +1 -1
  147. package/multiselect/style/index.mjs +1 -1
  148. package/multiselect/style/index.mjs.map +1 -1
  149. package/orderlist/OrderList.vue +4 -8
  150. package/orderlist/index.d.ts +1 -5
  151. package/orderlist/index.mjs +3 -7
  152. package/orderlist/index.mjs.map +1 -1
  153. package/package.json +5 -5
  154. package/paginator/JumpToPageInput.vue +1 -1
  155. package/paginator/Paginator.vue +4 -16
  156. package/paginator/index.d.ts +1 -1
  157. package/paginator/index.mjs +4 -21
  158. package/paginator/index.mjs.map +1 -1
  159. package/paginator/style/index.d.ts +1 -1
  160. package/paginator/style/index.mjs +1 -1
  161. package/paginator/style/index.mjs.map +1 -1
  162. package/panelmenu/index.d.ts +1 -1
  163. package/password/BasePassword.vue +4 -0
  164. package/password/Password.vue +4 -3
  165. package/password/index.d.ts +6 -1
  166. package/password/index.mjs +10 -5
  167. package/password/index.mjs.map +1 -1
  168. package/password/style/index.mjs +1 -1
  169. package/password/style/index.mjs.map +1 -1
  170. package/picklist/PickList.vue +4 -8
  171. package/picklist/index.d.ts +1 -13
  172. package/picklist/index.mjs +3 -7
  173. package/picklist/index.mjs.map +1 -1
  174. package/popover/Popover.vue +4 -10
  175. package/popover/index.d.ts +1 -1
  176. package/popover/index.mjs +3 -9
  177. package/popover/index.mjs.map +1 -1
  178. package/progressspinner/index.d.ts +1 -1
  179. package/rating/style/index.mjs +1 -1
  180. package/rating/style/index.mjs.map +1 -1
  181. package/scrolltop/ScrollTop.vue +2 -9
  182. package/scrolltop/index.d.ts +1 -6
  183. package/scrolltop/index.mjs +3 -9
  184. package/scrolltop/index.mjs.map +1 -1
  185. package/select/Select.vue +17 -6
  186. package/select/index.mjs +57 -45
  187. package/select/index.mjs.map +1 -1
  188. package/select/style/index.mjs +1 -1
  189. package/select/style/index.mjs.map +1 -1
  190. package/selectbutton/SelectButton.vue +2 -12
  191. package/selectbutton/index.d.ts +1 -1
  192. package/selectbutton/index.mjs +2 -12
  193. package/selectbutton/index.mjs.map +1 -1
  194. package/speeddial/SpeedDial.vue +3 -1
  195. package/speeddial/index.d.ts +16 -1
  196. package/speeddial/index.mjs +10 -5
  197. package/speeddial/index.mjs.map +1 -1
  198. package/splitter/Splitter.vue +31 -25
  199. package/splitter/index.d.ts +8 -1
  200. package/splitter/index.mjs +28 -22
  201. package/splitter/index.mjs.map +1 -1
  202. package/tieredmenu/BaseTieredMenu.vue +4 -0
  203. package/tieredmenu/TieredMenu.vue +31 -4
  204. package/tieredmenu/TieredMenuSub.vue +3 -1
  205. package/tieredmenu/index.d.ts +5 -0
  206. package/tieredmenu/index.mjs +63 -34
  207. package/tieredmenu/index.mjs.map +1 -1
  208. package/tieredmenu/style/index.mjs +5 -4
  209. package/tieredmenu/style/index.mjs.map +1 -1
  210. package/toast/Toast.vue +2 -9
  211. package/toast/index.mjs +1 -8
  212. package/toast/index.mjs.map +1 -1
  213. package/togglebutton/ToggleButton.vue +13 -1
  214. package/togglebutton/index.d.ts +0 -4
  215. package/togglebutton/index.mjs +2 -1
  216. package/togglebutton/index.mjs.map +1 -1
  217. package/toggleswitch/ToggleSwitch.vue +5 -1
  218. package/toggleswitch/index.d.ts +17 -1
  219. package/toggleswitch/index.mjs +7 -3
  220. package/toggleswitch/index.mjs.map +1 -1
  221. package/toggleswitch/style/index.d.ts +9 -1
  222. package/toggleswitch/style/index.mjs +3 -2
  223. package/toggleswitch/style/index.mjs.map +1 -1
  224. package/tooltip/index.mjs +6 -1
  225. package/tooltip/index.mjs.map +1 -1
  226. package/tree/BaseTree.vue +1 -1
  227. package/tree/Tree.vue +4 -2
  228. package/tree/TreeNode.vue +16 -4
  229. package/tree/index.d.ts +52 -3
  230. package/tree/index.mjs +23 -10
  231. package/tree/index.mjs.map +1 -1
  232. package/treeselect/BaseTreeSelect.vue +36 -0
  233. package/treeselect/TreeSelect.vue +31 -16
  234. package/treeselect/index.d.ts +73 -4
  235. package/treeselect/index.mjs +82 -25
  236. package/treeselect/index.mjs.map +1 -1
  237. package/treeselect/style/index.mjs +1 -1
  238. package/treeselect/style/index.mjs.map +1 -1
  239. package/treetable/BaseTreeTable.vue +8 -0
  240. package/treetable/TreeTable.vue +19 -11
  241. package/treetable/TreeTableRow.vue +32 -6
  242. package/treetable/index.d.ts +34 -0
  243. package/treetable/index.mjs +66 -22
  244. package/treetable/index.mjs.map +1 -1
  245. package/treetable/style/index.mjs +5 -3
  246. package/treetable/style/index.mjs.map +1 -1
  247. package/umd/primevue.min.js +1 -1
  248. package/vetur-attributes.json +3 -3
  249. package/virtualscroller/style/index.mjs +3 -1
  250. package/virtualscroller/style/index.mjs.map +1 -1
  251. package/web-types.json +17 -4
@@ -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":";;;;;;;;;;;;;;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,OAAO,EAAE;AACLC,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDG,IAAAA,OAAO,EAAE;AACLD,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDC,IAAAA,QAAQ,EAAED,OAAO;AACjBE,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,OAAO,EAAE;AACLL,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDQ,IAAAA,UAAU,EAAE;AACRN,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAES,MAAM,CAAC;MACtB,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,UAAU,EAAE;AACRR,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDE,IAAAA,UAAU,EAAE;AACRT,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDU,IAAAA,UAAU,EAAE;AACRV,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAES,MAAM,CAAC;MACtB,SAAS,EAAA,IAAA;KACZ;AACDI,IAAAA,UAAU,EAAE;AACRX,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDK,IAAAA,UAAU,EAAE;AACRZ,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDa,IAAAA,YAAY,EAAE;AACVb,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAES,MAAM,CAAC;MACtB,SAAS,EAAA,IAAA;KACZ;AACDO,IAAAA,YAAY,EAAE;AACVd,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDQ,IAAAA,YAAY,EAAE;AACVf,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDgB,IAAAA,QAAQ,EAAE;AACNhB,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAES,MAAM,CAAC;MACtB,SAAS,EAAA,MAAA;KACZ;AACDU,IAAAA,OAAO,EAAE;AACLjB,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDgB,IAAAA,YAAY,EAAE;AACVlB,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASqB,EAAAA,SAAAA;KACZ;AACDC,IAAAA,WAAW,EAAE;AACTpB,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASqB,EAAAA,SAAAA;KACZ;AACDE,IAAAA,eAAe,EAAE;AACbrB,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASqB,EAAAA,SAAAA;KACZ;AACDG,IAAAA,eAAe,EAAE;AACbtB,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDqB,IAAAA,aAAa,EAAE;AACXvB,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDsB,IAAAA,YAAY,EAAE;AACVxB,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,IAAA;KACZ;AACDuB,IAAAA,YAAY,EAAE;AACVzB,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAASqB,EAAAA,SAAAA;KACZ;AACDO,IAAAA,aAAa,EAAE;AACX1B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD6B,IAAAA,gBAAgB,EAAE;AACd3B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD8B,IAAAA,qBAAqB,EAAE;AACnB5B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD+B,IAAAA,kBAAkB,EAAE;AAChB7B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDgC,IAAAA,YAAY,EAAE;AACV9B,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDiC,IAAAA,QAAQ,EAAE;AACN/B,MAAAA,IAAI,EAAEgC,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDC,IAAAA,cAAc,EAAE;AACZjC,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDoC,IAAAA,SAAS,EAAE;AACPlC,MAAAA,IAAI,EAAEF,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDqC,IAAAA,KAAK,EAAE;AACHnC,MAAAA,IAAI,EAAEE,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;;ACpFD,eAAe;AACXtD,EAAAA,IAAI,EAAE,kBAAkB;AACxBuD,EAAAA,QAAQ,EAAE,eAAe;AACzB,EAAA,SAAA,EAAStD,aAAa;AACtBuD,EAAAA,KAAK,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC;AAC/CC,EAAAA,SAAS,EAAE,IAAI;AACfvD,EAAAA,KAAK,EAAE;AACHwD,IAAAA,QAAQ,EAAE9C,MAAM;AAChB+C,IAAAA,eAAe,EAAE/C,MAAM;AACvBR,IAAAA,OAAO,EAAEC,KAAK;AACdC,IAAAA,WAAW,EAAEM,MAAM;AACnBL,IAAAA,WAAW,EAAEK,MAAM;AACnBJ,IAAAA,cAAc,EAAE,IAAI;AACpB2B,IAAAA,eAAe,EAAEvB,MAAM;AACvBH,IAAAA,gBAAgB,EAAEG,MAAM;AACxBF,IAAAA,mBAAmB,EAAE;AACjBI,MAAAA,IAAI,EAAE,CAACF,MAAM,EAAEP,KAAK,CAAC;MACrB,SAAS,EAAA,IAAA;KACZ;AACDuD,IAAAA,gBAAgB,EAAEvD,KAAK;AACvBwD,IAAAA,KAAK,EAAEf,MAAM;AACbgB,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,aAAa,EAAE/C,OAAAA;GAClB;EACDgD,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHC,MAAAA,OAAO,EAAE,KAAA;KACZ,CAAA;GACJ;AACDC,EAAAA,KAAK,EAAE;AACHH,IAAAA,aAAa,EAAE;AACXI,MAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACC,QAAQ,EAAE;QACdA,QAAO,IAAKC,cAAc,CAAC,IAAI,CAACZ,SAAS,EAAE,IAAI,CAACI,KAAK,CAAC,CAAA;AAC1D,OAAA;AACJ,KAAA;GACH;EACDI,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN;AACA,IAAA,CAAC,IAAI,CAACF,aAAY,IAAK,IAAI,CAACF,KAAI,KAAM,CAAC,KAAKQ,cAAc,CAAC,IAAI,CAACZ,SAAS,EAAE,IAAI,CAACI,KAAK,CAAC,CAAA;IACtF,IAAI,CAACI,OAAQ,GAAE,IAAI,CAAA;GACtB;AACDK,EAAAA,OAAO,EAAE;AACLC,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,eAAe,EAAE;MACzB,OAAAC,EAAAA,CAAAA,MAAA,CAAU,IAAI,CAACf,QAAQ,OAAAe,MAAA,CAAID,eAAe,CAACE,GAAG,CAAA,CAAA;KACjD;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACH,eAAe,EAAE;AAC5B,MAAA,OAAO,IAAI,CAAClE,WAAY,GAAEsE,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAACvE,WAAW,CAAA,GAAIkE,eAAe,CAACK,MAAM,CAAA;KAChH;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACN,eAAe,EAAE;AAC5B,MAAA,OAAO,IAAI,CAACjE,WAAY,GAAEqE,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAACtE,WAAW,CAAA,GAAIiE,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;UACLnB,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBsB,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;AAC9CvD,UAAAA,QAAQ,EAAE,IAAI,CAACwE,gBAAgB,CAACjB,eAAe,CAAA;AACnD,SAAA;AACJ,OAAC,CAAC,CAAA;KACL;AACDiB,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACjB,eAAe,EAAE;AAC9B,MAAA,OAAO,IAAI,CAAChE,cAAa,GAAIoE,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAACrE,cAAc,CAAE,GAAE,KAAK,CAAA;KACrG;AACDkF,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAClB,eAAe,EAAE;AACjC,MAAA,OAAO,IAAI,CAAC/D,mBAAmBmE,gBAAgB,CAACJ,eAAe,CAACK,MAAM,EAAE,IAAI,CAACpE,gBAAgB,IAAI,IAAI,CAAA;KACxG;AACDkF,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,OAAO,CAAC,IAAI,CAACY,aAAa,CAACZ,eAAe,CAAA,IAAK,IAAI,CAACc,cAAc,CAACd,eAAe,CAAC,CAAA;KACtF;AACDc,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACd,eAAe,EAAE;AAC5B,MAAA,OAAO,IAAI,CAACZ,gBAAgB,CAACmC,IAAI,CAAC,UAACC,IAAI,EAAA;AAAA,QAAA,OAAKA,IAAI,CAACtB,GAAE,KAAMF,eAAe,CAACE,GAAG,CAAA;OAAC,CAAA,CAAA;KAChF;AACDc,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAChB,eAAe,EAAE;MAC7B,OAAO,IAAI,CAACb,eAAgB,KAAI,IAAI,CAACY,WAAW,CAACC,eAAe,CAAC,CAAA;KACpE;AACDyB,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACzB,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;AACD0B,IAAAA,aAAa,WAAbA,aAAaA,CAACC,KAAK,EAAE3B,eAAe,EAAE;AAClC,MAAA,IAAI,CAAC4B,KAAK,CAAC,eAAe,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;AAAE3B,QAAAA,eAAe,EAAfA,eAAe;AAAE8B,QAAAA,OAAO,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;KACxF;AACDC,IAAAA,iBAAiB,WAAjBA,iBAAiBA,CAACJ,KAAK,EAAE3B,eAAe,EAAE;AACtC,MAAA,IAAI,CAAC4B,KAAK,CAAC,qBAAqB,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;AAAE3B,QAAAA,eAAc,EAAdA,eAAAA;AAAgB,OAAC,CAAC,CAAA;KAC/E;AACDgC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACL,KAAK,EAAE;AAClB,MAAA,IAAI,CAACC,KAAK,CAAC,eAAe,EAAED,KAAK,CAAC,CAAA;KACrC;AACDM,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACN,KAAK,EAAE;AACvB,MAAA,IAAI,CAACC,KAAK,CAAC,qBAAqB,EAAED,KAAK,CAAC,CAAA;KAC3C;AACDO,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACC,EAAE,EAAE;MACb,IAAI,CAAClD,SAAU,GAAEkD,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,YAAYhF,SAAS,CAAA;AACtG,KAAA;GACH;AACDiF,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAM,EAAEC,MAAAA;GACX;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,cAAc,EAAEA,cAAAA;AACpB,GAAA;AACJ,CAAC;;;;;;;;EC9KG,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAmDI,MAnDJC,UAmDI,CAAA;IAnDCC,GAAG,EAAEC,QAAY,CAAAjB,YAAA;AAAG,IAAA,OAAA,EAAOkB,IAAE,CAAAC,EAAA,CAAA,MAAA,CAAA;KAAkBC,MAAM,CAAAjE,KAAA,KAAA,CAAA,GAAQ+D,IAAG,CAAA3C,GAAA,CAAA,MAAA,CAAA,GAAW2C,IAAG,CAAA3C,GAAA,CAAA,YAAA,CAAA,CAAA,EAAA,EAC/EsC,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAiDUO,QAjDmC,EAAA,IAAA,EAAAC,UAAA,CAAAF,MAAA,CAAA1H,OAAO,EAAlC,UAAAoE,eAAe,EAAEQ,KAAK,EAAA;IACpC,OAAAuC,SAAA,EAAA,EAAAC,kBAAA,CA+CI,MA/CJC,UA+CI,CAAA;AAhDoD/C,MAAAA,GAAA,EAAAiD,QAAA,CAAA1B,sBAAsB,CAACzB,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,CAAA1B,sBAAA,CAACzB,eAAe,CAAA;AAClD,MAAA,eAAa,EAAEmD,sBAAa,CAACnD,eAAe,IAAIvC,SAAQ,GAAI0F,QAAgB,CAAA7B,gBAAA,CAACtB,eAAe,CAAA;AAC5F,MAAA,eAAa,EAAEmD,sBAAa,CAACnD,eAAe,IAAImD,QAAc,CAAArC,cAAA,CAACd,eAAe,CAAA,GAAIvC,SAAS;AAC3F,MAAA,YAAU,EAAE6F,MAAI,CAAAjE,KAAA,GAAA,CAAA;AAChB,MAAA,cAAY,EAAEiE,MAAO,CAAA1H,OAAA,CAAC+H,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,CAQK,OARLC,UAQK,CAAA;AARU,MAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,eAAA,CAAA;AAAoBQ,MAAAA,OAAK,EAAE,SAAPA,OAAKA,CAAEC,MAAA,EAAA;AAAA,QAAA,OAAAX,QAAA,CAAAzB,aAAa,CAACoC,MAAM,EAAE9D,eAAe,CAAA,CAAA;OAAA;AAAI+D,MAAAA,WAAS,EAAE,SAAXA,WAASA,CAAED,MAAA,EAAA;AAAA,QAAA,OAAAX,QAAA,CAAApB,iBAAiB,CAAC+B,MAAM,EAAE9D,eAAe,CAAA,CAAA;OAAA;;OAAWmD,QAAY,CAAA5C,YAAA,CAACP,eAAe,EAAEQ,KAAK,EAAA,eAAA,CAAA,CAAA,EAAA,CACzK8C,MAAS,CAAAhE,SAAA,CAAA,QAAA,CAAA,IAA1ByD,SAAA,EAAA,EAAAiB,WAAA,CAAyLC,wBAA9IX,MAAS,CAAAhE,SAAA,CAAA,QAAA,CAAA,CAAA,EAAA;;MAAae,MAAM,EAAEL,eAAe,CAACK,MAAM;AAAG6D,MAAAA,QAAQ,EAAEf,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,EAAA2D,eAAA,CAAAhB,QAAA,CAAA1B,sBAAsB,CAACzB,eAAe,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,EAC5HmD,QAAA,CAAAvC,aAAa,CAACZ,eAAe,CAAA,iBAA7CgD,kBAIU,CAAAO,QAAA,EAAA;AAAArD,MAAAA,GAAA,EAAA,CAAA;KAAA,EAAA,CAHWoD,MAAS,CAAAhE,SAAA,CAAA,iBAAA,CAAA,IAA1ByD,SAAA,EAAA,EAAAiB,WAAA,CAAsGC,wBAAlDX,MAAS,CAAAhE,SAAA,CAAA,iBAAA,CAAA,CAAA,EAAA;;AAAqB,MAAA,aAAW,EAAC,MAAA;UAC7EgE,MAAe,CAAA3F,eAAA,IAAhCoF,SAAA,EAAA,EAAAC,kBAAA,CAA6J,QAA7JC,UAA6J,CAAA;;MAA1H,OAAK,EAAA,CAAGG,IAAE,CAAAC,EAAA,CAAA,WAAA,CAAA,EAAeC,MAAe,CAAA3F,eAAA,CAAA;AAAG,MAAA,aAAW,EAAC,MAAO;;OAAQwF,QAAY,CAAA5C,YAAA,CAACP,eAAe,EAAEQ,KAAK,EAAA,WAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAC5IuC,SAAA,EAAA,EAAAiB,WAAA,CAA+HI,2BAA/HnB,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,mFAI5G2C,QAAA,CAAAvC,aAAa,CAACZ,eAAe,CAAK,IAAAmD,QAAA,CAAArC,cAAc,CAACd,eAAe,CAAA,iBAD1EgE,WAqBC,CAAAK,2BAAA,EAAA;;AAnBGX,MAAAA,IAAI,EAAC,OAAM;MACV,wBAAON,IAAE,CAAAC,EAAA,CAAA,YAAA,CAAA,CAAA;MACTnE,QAAQ,EAAEoE,MAAQ,CAAApE,QAAA;MAClBC,eAAe,EAAEmE,MAAe,CAAAnE,eAAA;AAChCvD,MAAAA,OAAO,EAAEuH,QAAsB,CAAAhC,sBAAA,CAACnB,eAAe,CAAA;MAC/CZ,gBAAgB,EAAEkE,MAAgB,CAAAlE,gBAAA;AAClCC,MAAAA,KAAK,EAAEiE,MAAI,CAAAjE,KAAA,GAAA,CAAA;MACXC,SAAS,EAAEgE,MAAS,CAAAhE,SAAA;MACpBxD,WAAW,EAAEwH,MAAW,CAAAxH,WAAA;MACxBC,WAAW,EAAEuH,MAAW,CAAAvH,WAAA;MACxBC,cAAc,EAAEsH,MAAc,CAAAtH,cAAA;MAC9B2B,eAAe,EAAE2F,MAAe,CAAA3F,eAAA;MAChC1B,gBAAgB,EAAEqH,MAAgB,CAAArH,gBAAA;MAClCC,mBAAmB,EAAEoH,MAAmB,CAAApH,mBAAA;MACxC8F,cAAa,EAAEmB,QAAc,CAAAnB,cAAA;MAC7BC,mBAAmB,EAAEkB,QAAmB,CAAAlB,mBAAA;MACxCqC,EAAE,EAAElB,IAAE,CAAAkB,EAAA;MACNC,QAAQ,EAAEnB,IAAQ,CAAAmB,QAAA;MAClBhF,aAAa,EAAEiF,KAAO,CAAA/E,OAAAA;;;;;;;ACoD3C,aAAe;AACXjE,EAAAA,IAAI,EAAE,eAAe;AACrB,EAAA,SAAA,EAASiJ,QAAiB;AAC1BC,EAAAA,YAAY,EAAE,KAAK;EACnB1F,KAAK,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;AAC9H2F,EAAAA,MAAM,EAAE;AACJC,IAAAA,QAAQ,EAAE;MAAE,SAAS,EAAA,IAAA;AAAK,KAAA;GAC7B;AACDC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,OAAO,EAAE,IAAI;AACbC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,WAAW,EAAE,IAAI;EACjB1F,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHiE,MAAAA,EAAE,EAAE,IAAI,CAAC0B,MAAM,CAAC1B,EAAE;AAClB2B,MAAAA,OAAO,EAAE,KAAK;AACdrE,MAAAA,OAAO,EAAE,KAAK;AACdsE,MAAAA,iBAAiB,EAAE;QAAE7E,KAAK,EAAE,CAAC,CAAC;AAAEnB,QAAAA,KAAK,EAAE,CAAC;AAAEiG,QAAAA,SAAS,EAAE,EAAA;OAAI;AACzDlG,MAAAA,gBAAgB,EAAE,EAAE;AACpBmG,MAAAA,cAAc,EAAE,KAAK;AACrBC,MAAAA,KAAK,EAAE,KAAA;KACV,CAAA;GACJ;AACD9F,EAAAA,KAAK,EAAE;AACH,IAAA,WAAW,EAAE,SAAb+F,QAAWA,CAAY7F,QAAQ,EAAE;AAC7B,MAAA,IAAI,CAAC6D,EAAG,GAAE7D,YAAY8F,iBAAiB,EAAE,CAAA;KAC5C;IACD9J,OAAO,EAAA,SAAPA,OAAOA,GAAG;MACN,IAAI,CAAC+J,eAAe,EAAE,CAAA;AAC1B,KAAA;GACH;EACDlG,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,CAACgE,EAAG,GAAE,IAAI,CAACA,EAAC,IAAKiC,iBAAiB,EAAE,CAAA;IACxC,IAAI,CAACC,eAAe,EAAE,CAAA;GACzB;EACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,CAACC,0BAA0B,EAAE,CAAA;IACjC,IAAI,CAACC,oBAAoB,EAAE,CAAA;IAE3B,IAAI,IAAI,CAAChB,aAAa,EAAE;AACpB,MAAA,IAAI,CAACA,aAAa,CAACiB,OAAO,EAAE,CAAA;MAC5B,IAAI,CAACjB,gBAAgB,IAAI,CAAA;AAC7B,KAAA;IAEA,IAAI,IAAI,CAACE,OAAO,EAAE;AACdgB,MAAAA,MAAM,CAACC,KAAK,CAAC,IAAI,CAACjB,OAAO,CAAC,CAAA;MAC1B,IAAI,CAACA,OAAQ,GAAE,IAAI,CAAA;AACvB,KAAA;GACH;AACDlF,EAAAA,OAAO,EAAE;AACLK,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACE,MAAM,EAAE;AACnB,MAAA,OAAO,IAAI,CAACvE,WAAY,GAAEsE,gBAAgB,CAACC,MAAM,EAAE,IAAI,CAACvE,WAAW,CAAA,GAAIuE,MAAM,CAAA;KAChF;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACD,MAAM,EAAE;AACnB,MAAA,OAAO,IAAI,CAACtE,WAAY,GAAEqE,gBAAgB,CAACC,MAAM,EAAE,IAAI,CAACtE,WAAW,CAAA,GAAIsE,MAAM,CAAA;KAChF;AACDY,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACZ,MAAM,EAAE;AACrB,MAAA,OAAO,IAAI,CAACrE,cAAa,GAAIoE,gBAAgB,CAACC,MAAM,EAAE,IAAI,CAACrE,cAAc,IAAI,KAAK,CAAA;KACrF;AACDkF,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACP,WAAW,EAAE;AAC7B,MAAA,OAAO,IAAI,CAAC1E,gBAAiB,GAAEmE,gBAAgB,CAACO,WAAW,EAAE,IAAI,CAAC1E,gBAAgB,CAAA,GAAI,IAAI,CAAA;KAC7F;AACDkF,IAAAA,sBAAsB,WAAtBA,sBAAsBA,CAACR,WAAW,EAAEtB,KAAK,EAAE;MACvC,OAAO6G,QAAQ,CAAC,IAAI,CAAChK,mBAAmB,CAAA,GAAIkE,gBAAgB,CAACO,WAAW,EAAE,IAAI,CAACzE,mBAAmB,CAAA,GAAIkE,gBAAgB,CAACO,WAAW,EAAE,IAAI,CAACzE,mBAAmB,CAACmD,KAAK,CAAC,CAAC,CAAA;KACvK;AACDuB,IAAAA,aAAa,WAAbA,aAAaA,CAACP,MAAM,EAAEhB,KAAK,EAAE;AACzB,MAAA,OAAOxC,MAAM,CAACsJ,SAAS,CAACC,cAAc,CAACC,IAAI,CAAChG,MAAM,EAAE,IAAI,CAACnE,mBAAmB,CAACmD,KAAK,CAAC,CAAC,CAAA;KACvF;IACDiH,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAuB;AAAA,MAAA,IAAtBtG,sFAAkB,EAAE,CAAA;AACzC,MAAA,IAAMuG,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACxG,eAAe,CAAC,CAAA;MAE7D,OAAOuG,OAAM,GAAI,IAAI,CAACrF,mBAAmB,CAAClB,eAAe,CAACK,MAAM,EAAEL,eAAe,CAACX,KAAK,CAAA,GAAI,IAAI,CAACc,cAAc,CAACH,eAAe,CAACK,MAAM,CAAC,CAAA;KACzI;AACDmG,IAAAA,uBAAuB,EAAvBA,SAAAA,uBAAuBA,CAACxG,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;AACDqF,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAAC3E,OAAO,EAAE;AACV,MAAA,IAAI,CAACF,KAAK,CAAC,aAAa,CAAC,CAAA;MACzB,IAAI,CAAC2D,iBAAiB,IAAI,CAAA;AAC1B,MAAA,IAAI,CAACnG,mBAAmB,IAAI,CAACsH,iBAAgB,GAAI,IAAI,CAACC,qBAAqB,CAAC,IAAI,CAAChL,UAAU,CAAA,GAAI,IAAI,CAACyD,gBAAgB,CAAA;MAEpH,IAAI,IAAI,CAACsH,iBAAkB,IAAGrF,UAAU,CAAC,IAAI,CAACjC,gBAAgB,CAAC,EAAE;AAC7D,QAAA,IAAMY,eAAc,GAAI,IAAI,CAACZ,gBAAgB,CAAC,IAAI,CAACA,gBAAgB,CAACuE,MAAO,GAAE,CAAC,CAAC,CAAA;QAE/E,IAAI,CAAC0B,iBAAgB,GAAI;UAAE7E,KAAK,EAAER,eAAe,CAACQ,KAAK;UAAEnB,KAAK,EAAEW,eAAe,CAACX,KAAK;UAAEiG,SAAS,EAAEtF,eAAe,CAACsF,SAAAA;SAAW,CAAA;AACjI,OAAE,MAAK;QACH,IAAI,CAACD,iBAAgB,GAAI;AAAE7E,UAAAA,KAAK,EAAE,IAAI,CAAC5C,eAAgB,GAAE,IAAI,CAACgJ,2BAA2B,EAAG,GAAE,IAAI,CAACC,uBAAuB,EAAE;AAAExH,UAAAA,KAAK,EAAE,CAAC;AAAEiG,UAAAA,SAAS,EAAE,EAAA;SAAI,CAAA;AAC3J,OAAA;MAEAxD,OAAQ,IAAGgF,KAAK,CAAC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAC,CAAA;KAC1C;AACDC,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAACnF,OAAO,EAAE;AAAA,MAAA,IAAAoF,KAAA,GAAA,IAAA,CAAA;AACV,MAAA,IAAMC,KAAM,GAAE,SAARA,KAAMA,GAAQ;AAChBD,QAAAA,KAAI,CAACtF,KAAK,CAAC,aAAa,CAAC,CAAA;QACzBsF,KAAI,CAAC3B,cAAa,GAAI,KAAK,CAAA;QAC3B2B,KAAI,CAAC9B,UAAU,KAAK,CAAA;QACpB8B,KAAI,CAAC9H,gBAAe,GAAI,EAAE,CAAA;QAC1B8H,KAAI,CAAC7B,iBAAkB,GAAE;UAAE7E,KAAK,EAAE,CAAC,CAAC;AAAEnB,UAAAA,KAAK,EAAE,CAAC;AAAEiG,UAAAA,SAAS,EAAE,EAAA;SAAI,CAAA;QAE/DxD,OAAQ,IAAGgF,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,CAAC1F,KAAK,EAAE;MACX,IAAI,IAAI,CAAClF,QAAQ,EAAE;AACf;AACA,QAAA,OAAA;AACJ,OAAA;MAEA,IAAI,CAACsE,OAAQ,GAAE,IAAI,CAAA;AACnB,MAAA,IAAI,CAACa,KAAK,CAAC,OAAO,EAAED,KAAK,CAAC,CAAA;KAC7B;AACD2F,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAAC3F,KAAK,EAAE;MACV,IAAI,CAACZ,UAAU,KAAK,CAAA;MACpB,IAAI,CAACsE,iBAAkB,GAAE;QAAE7E,KAAK,EAAE,CAAC,CAAC;AAAEnB,QAAAA,KAAK,EAAE,CAAC;AAAEiG,QAAAA,SAAS,EAAE,EAAA;OAAI,CAAA;MAC/D,IAAI,CAACJ,WAAY,GAAE,EAAE,CAAA;AACrB,MAAA,IAAI,CAACtD,KAAK,CAAC,MAAM,EAAED,KAAK,CAAC,CAAA;KAC5B;AACD4F,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAC5F,KAAK,EAAE;AACb,MAAA,IAAI,IAAI,CAAClF,QAAS,IAAG,IAAI,CAACc,OAAO,EAAE;QAC/BoE,KAAK,CAAC6F,cAAc,EAAE,CAAA;AAEtB,QAAA,OAAA;AACJ,OAAA;MAEA,IAAMC,UAAU9F,KAAK,CAAC8F,WAAW9F,KAAK,CAAC+F,OAAO,CAAA;MAE9C,QAAQ/F,KAAK,CAACgG,IAAI;AACd,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACC,cAAc,CAACjG,KAAK,CAAC,CAAA;AAC1B,UAAA,MAAA;AAEJ,QAAA,KAAK,SAAS;AACV,UAAA,IAAI,CAACkG,YAAY,CAAClG,KAAK,CAAC,CAAA;AACxB,UAAA,MAAA;AAEJ,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACmG,cAAc,CAACnG,KAAK,CAAC,CAAA;AAC1B,UAAA,MAAA;AAEJ,QAAA,KAAK,YAAY;AACb,UAAA,IAAI,CAACoG,eAAe,CAACpG,KAAK,CAAC,CAAA;AAC3B,UAAA,MAAA;AAEJ,QAAA,KAAK,MAAM;AACP,UAAA,IAAI,CAACqG,SAAS,CAACrG,KAAK,CAAC,CAAA;AACrB,UAAA,MAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAACsG,QAAQ,CAACtG,KAAK,CAAC,CAAA;AACpB,UAAA,MAAA;AAEJ,QAAA,KAAK,OAAO;AACR,UAAA,IAAI,CAACuG,UAAU,CAACvG,KAAK,CAAC,CAAA;AACtB,UAAA,MAAA;AAEJ,QAAA,KAAK,OAAO,CAAA;AACZ,QAAA,KAAK,aAAa;AACd,UAAA,IAAI,CAACwG,UAAU,CAACxG,KAAK,CAAC,CAAA;AACtB,UAAA,MAAA;AAEJ,QAAA,KAAK,QAAQ;AACT,UAAA,IAAI,CAACyG,WAAW,CAACzG,KAAK,CAAC,CAAA;AACvB,UAAA,MAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAAC0G,QAAQ,CAAC1G,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,CAAC8F,WAAWa,oBAAoB,CAAC3G,KAAK,CAACzB,GAAG,CAAC,EAAE;YAC7C,CAAC,IAAI,CAACqF,cAAa,IAAK,IAAI,CAACkB,IAAI,EAAE,CAAA;YACnC,IAAI,CAAC8B,aAAa,CAAC5G,KAAK,EAAEA,KAAK,CAACzB,GAAG,CAAC,CAAA;AACxC,WAAA;AAEA,UAAA,MAAA;AACR,OAAA;MAEA,IAAI,CAACkF,UAAU,KAAK,CAAA;KACvB;AACDpD,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACL,KAAK,EAAE;AAClB,MAAA,IAAQE,aAAa,GAAuCF,KAAK,CAAzDE,aAAa;QAAE7B,eAAe,GAAsB2B,KAAK,CAA1C3B,eAAe;QAAE8B,OAAO,GAAaH,KAAK,CAAzBG,OAAO;QAAE0G,MAAK,GAAM7G,KAAK,CAAhB6G,MAAK,CAAA;AAEtD,MAAA,IAAIC,OAAO,CAACzI,eAAe,CAAC,EAAE,OAAA;AAE9B,MAAA,IAAQQ,KAAK,GAAiCR,eAAe,CAArDQ,KAAK;QAAEnB,KAAK,GAA0BW,eAAe,CAA9CX,KAAK;QAAEiG,SAAS,GAAetF,eAAe,CAAvCsF,SAAS;QAAElE,QAAO,GAAMpB,eAAe,CAA5BoB,QAAO,CAAA;AACxC,MAAA,IAAMmF,OAAQ,GAAElF,UAAU,CAACD,QAAQ,CAAC,CAAA;AACpC,MAAA,IAAMsH,IAAG,GAAID,OAAO,CAACzI,eAAe,CAAC2I,MAAM,CAAC,CAAA;AAC5C,MAAA,IAAMzE,QAAS,GAAE,IAAI,CAAC0E,UAAU,CAAC5I,eAAe,CAAC,CAAA;AAEjD,MAAA,IAAIkE,QAAQ,EAAE;AACV,QAAA,IAAQ1D,MAAK,GAA4BR,eAAe,CAAhDQ,KAAK;UAAEN,GAAG,GAAuBF,eAAe,CAAzCE,GAAG;UAAEb,MAAK,GAAgBW,eAAe,CAApCX,KAAK;UAAEiG,aAActF,eAAe,CAA7BsF;QAE3B,IAAI,CAACD,iBAAkB,GAAE;AAAE7E,UAAAA,KAAK,EAALA,MAAK;AAAEnB,UAAAA,KAAK,EAALA,MAAK;AAAEiG,UAAAA,WAAAA,UAAAA;SAAW,CAAA;QACpD,IAAI,CAAClG,gBAAiB,GAAE,IAAI,CAACA,gBAAgB,CAACyJ,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,UAAA,OAAK5I,GAAE,KAAM4I,CAAC,CAAC5I,GAAI,IAAGA,GAAG,CAAC6I,UAAU,CAACD,CAAC,CAAC5I,GAAG,CAAC,CAAA;SAAC,CAAA,CAAA;AAEnG,QAAA,IAAI,CAACsF,KAAI,GAAI,CAACkD,IAAI,CAAA;AACtB,OAAE,MAAK;QACH,IAAMtJ,gBAAe,GAAI,IAAI,CAACA,gBAAgB,CAACyJ,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,UAAA,OAAKA,CAAC,CAACxD,SAAQ,KAAMA,SAAS,CAAA;SAAC,CAAA,CAAA;AAEvFlG,QAAAA,gBAAgB,CAAC4J,IAAI,CAAChJ,eAAe,CAAC,CAAA;QAEtC,IAAI,CAACqF,iBAAkB,GAAE;AAAE7E,UAAAA,KAAK,EAALA,KAAK;AAAEnB,UAAAA,KAAK,EAALA,KAAK;AAAEiG,UAAAA,WAAAA,SAAAA;SAAW,CAAA;QACpD,IAAI,CAAClG,gBAAe,GAAIA,gBAAgB,CAAA;AAC5C,OAAA;AAEAmH,MAAAA,OAAQ,GAAE,IAAI,CAAC0C,mBAAmB,CAACpH,aAAa,EAAE7B,eAAe,CAAA,GAAI,IAAI,CAACkJ,cAAc,CAACrH,aAAa,EAAE7B,eAAe,EAAEwI,MAAM,CAAC,CAAA;MAChI1G,OAAQ,IAAGgF,KAAK,CAAC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAC,CAAA;KAC1C;AACD/E,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACN,KAAK,EAAE;MACvB,IAAI,IAAI,CAAC7D,YAAY,EAAE;AACnB,QAAA,IAAQ+D,aAAa,GAAsBF,KAAK,CAAxCE,aAAa;UAAE7B,kBAAoB2B,KAAK,CAAzB3B;AACvB,QAAA,IAAQQ,KAAK,GAAuBR,eAAe,CAA3CQ,KAAK;UAAEnB,KAAK,GAAgBW,eAAe,CAApCX,KAAK;UAAEiG,SAAQ,GAAMtF,eAAe,CAA7BsF,SAAQ,CAAA;QAE9B,IAAI,CAACD,iBAAkB,GAAE;AAAE7E,UAAAA,KAAK,EAALA,KAAK;AAAEnB,UAAAA,KAAK,EAALA,KAAK;AAAEiG,UAAAA,WAAAA,SAAAA;SAAW,CAAA;AACpD,QAAA,IAAI,CAAC6D,wBAAwB,CAACtH,aAAa,EAAErB,KAAK,CAAC,CAAA;AACvD,OAAA;KACH;AACD0I,IAAAA,cAAc,WAAdA,cAAcA,CAACvH,KAAK,EAAE3B,eAAe,EAAiB;AAAA,MAAA,IAAfwI,MAAK,GAAAY,SAAA,CAAAzF,MAAA,GAAA,CAAA,IAAAyF,SAAA,CAAA,CAAA,CAAA,KAAA3L,SAAA,GAAA2L,SAAA,CAAA,CAAA,CAAA,GAAI,IAAI,CAAA;AAChD,MAAA,IAAMC,KAAM,GAAE,IAAI,CAAC/I,cAAc,CAACN,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEK,MAAM,CAAC,CAAA;AAE1D,MAAA,IAAI,CAACjB,gBAAgB,CAACkK,OAAO,CAAC,UAACR,CAAC,EAAA;AAAA,QAAA,OAAMA,CAAC,CAAC5E,QAAS,GAAE,IAAI,CAAA;AAAA,OAAC,CAAC,CAAA;AACzD,MAAA,IAAI,CAACqF,WAAW,CAAC5H,KAAK,EAAE0H,KAAK,CAAC,CAAA;AAC9Bb,MAAAA,UAAU,IAAI,CAACvB,IAAI,CAAC,IAAI,CAAC,CAAA;KAC5B;AACDgC,IAAAA,mBAAmB,WAAnBA,mBAAmBA,CAACtH,KAAK,EAAE3B,eAAe,EAAE;MACxC,IAAI,CAACwF,KAAM,GAAE,IAAI,CAAA;AACjB,MAAA,IAAI,CAAC5D,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAE0H,KAAK,EAAErJ,eAAe,CAACK,MAAAA;AAAO,OAAC,CAAC,CAAA;KACtF;AACDmJ,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC7H,KAAK,EAAE;AACpB,MAAA,IAAI,IAAI,CAAClF,QAAS,IAAG,IAAI,CAACc,OAAO,EAAE;AAC/B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAI,CAAC,IAAI,CAACyH,OAAM,IAAK,CAAC,IAAI,CAACA,OAAO,CAACyE,QAAQ,CAAC9H,KAAK,CAAC+H,MAAM,CAAC,EAAE;AACvD,QAAA,IAAI,CAACnE,iBAAiB,IAAI,CAAC0B,IAAI,EAAG,GAAE,IAAI,CAACR,IAAI,EAAE,CAAA;AAC/CK,QAAAA,KAAK,CAAC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAC,CAAA;AAChC,OAAA;MAEA,IAAI,CAAC5B,OAAQ,GAAE,IAAI,CAAA;AACnB,MAAA,IAAI,CAACxD,KAAK,CAAC,OAAO,EAAED,KAAK,CAAC,CAAA;KAC7B;AACDgI,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAChI,KAAK,EAAE;AAClBiI,MAAAA,eAAe,CAACC,IAAI,CAAC,eAAe,EAAE;AAClChI,QAAAA,aAAa,EAAEF,KAAK;QACpB+H,MAAM,EAAE,IAAI,CAACI,GAAAA;AACjB,OAAC,CAAC,CAAA;KACL;AACDC,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACpI,KAAK,EAAE;MACpB,QAAQA,KAAK,CAACgG,IAAI;AACd,QAAA,KAAK,QAAQ;AACT,UAAA,IAAI,CAACS,WAAW,CAACzG,KAAK,CAAC,CAAA;AACvB,UAAA,MAAA;AAIR,OAAA;KACH;AACDiG,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACjG,KAAK,EAAE;AAClB,MAAA,IAAI,CAAC,IAAI,CAAC4D,cAAc,EAAE;QACtB,IAAI,CAACkB,IAAI,EAAE,CAAA;AACf,OAAE,MAAK;AACH,QAAA,IAAMuD,cAAc,IAAI,CAAC3E,iBAAiB,CAAC7E,KAAM,KAAI,CAAC,IAAI,IAAI,CAACyJ,mBAAmB,CAAC,IAAI,CAAC5E,iBAAiB,CAAC7E,KAAK,IAAI,IAAI,CAAC4E,OAAM,GAAI,IAAI,CAAC8E,oBAAoB,EAAG,GAAE,IAAI,CAACtD,2BAA2B,EAAE,CAAA;AAElM,QAAA,IAAI,CAACuC,wBAAwB,CAACxH,KAAK,EAAEqI,WAAW,CAAC,CAAA;AACrD,OAAA;MAEArI,KAAK,CAAC6F,cAAc,EAAE,CAAA;KACzB;AACDK,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAAClG,KAAK,EAAE;MAChB,IAAIA,KAAK,CAACwI,MAAM,EAAE;QACd,IAAI,IAAI,CAAC9E,iBAAiB,CAAC7E,UAAU,CAAC,CAAC,EAAE;UACrC,IAAMR,eAAgB,GAAE,IAAI,CAACoK,cAAc,CAAC,IAAI,CAAC/E,iBAAiB,CAAC7E,KAAK,CAAC,CAAA;AACzE,UAAA,IAAM+F,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACxG,eAAe,CAAC,CAAA;AAE7D,UAAA,CAACuG,OAAQ,IAAG,IAAI,CAACvE,cAAc,CAAC;AAAEH,YAAAA,aAAa,EAAEF,KAAK;AAAE3B,YAAAA,eAAc,EAAdA,eAAAA;AAAgB,WAAC,CAAC,CAAA;AAC9E,SAAA;AAEA,QAAA,IAAI,CAACuF,cAAe,IAAG,IAAI,CAAC0B,IAAI,EAAE,CAAA;QAClCtF,KAAK,CAAC6F,cAAc,EAAE,CAAA;AAC1B,OAAE,MAAK;AACH,QAAA,IAAMwC,cAAc,IAAI,CAAC3E,iBAAiB,CAAC7E,KAAM,KAAI,CAAC,IAAI,IAAI,CAAC6J,mBAAmB,CAAC,IAAI,CAAChF,iBAAiB,CAAC7E,KAAK,CAAA,GAAI,IAAI,CAAC4E,OAAQ,GAAE,IAAI,CAACkF,mBAAmB,EAAC,GAAI,IAAI,CAACC,0BAA0B,EAAE,CAAA;AAEhM,QAAA,IAAI,CAACpB,wBAAwB,CAACxH,KAAK,EAAEqI,WAAW,CAAC,CAAA;QAEjD,CAAC,IAAI,CAACzE,cAAa,IAAK,IAAI,CAACkB,IAAI,EAAE,CAAA;QACnC9E,KAAK,CAAC6F,cAAc,EAAE,CAAA;AAC1B,OAAA;KACH;AACDM,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACnG,KAAK,EAAE;AAAA,MAAA,IAAA6I,MAAA,GAAA,IAAA,CAAA;MAClB,IAAI,IAAI,CAACjF,cAAc,EAAE;QACrB,IAAMvF,eAAgB,GAAE,IAAI,CAACoK,cAAc,CAAC,IAAI,CAAC/E,iBAAiB,CAAC7E,KAAK,CAAC,CAAA;QACzE,IAAMiK,YAAW,GAAI,IAAI,CAACrL,gBAAgB,CAACsL,IAAI,CAAC,UAAC5B,CAAC,EAAA;UAAA,OAAKA,CAAC,CAAC5I,GAAE,MAAMF,eAAe,aAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEsF,SAAS,CAAA,CAAA;SAAC,CAAA,CAAA;QAC5F,IAAMqF,OAAM,GAAI,IAAI,CAACtF,iBAAiB,CAACC,cAAc,EAAG,IAAImF,YAAa,IAAGA,YAAY,CAACvK,GAAE,KAAM,IAAI,CAACmF,iBAAiB,CAACC,SAAU,CAAA;QAClI,IAAMoD,IAAK,GAAED,OAAO,CAACzI,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAE2I,MAAM,CAAC,CAAA;AAE7C,QAAA,IAAIgC,OAAO,EAAE;UACT,IAAI,CAACvL,gBAAe,GAAI,IAAI,CAACA,gBAAgB,CAACyJ,MAAM,CAAC,UAACC,CAAC,EAAA;YAAA,OAAKA,CAAC,CAACxD,SAAQ,KAAMkF,MAAI,CAACnF,iBAAiB,CAACC,SAAS,CAAA;WAAC,CAAA,CAAA;AACjH,SAAA;QAEA,IAAI,CAACoD,IAAI,EAAE;UACP,IAAI,CAACrD,iBAAgB,GAAI;YAAE7E,KAAK,EAAE,CAAC,CAAC;AAAE8E,YAAAA,SAAS,EAAEmF,YAAa,GAAEA,YAAY,CAACnF,YAAY,EAAA;WAAI,CAAA;UAC7F,IAAI,CAACJ,WAAY,GAAE,EAAE,CAAA;AACrB,UAAA,IAAI,CAAC0C,cAAc,CAACjG,KAAK,CAAC,CAAA;AAC9B,SAAA;QAEAA,KAAK,CAAC6F,cAAc,EAAE,CAAA;AAC1B,OAAA;KACH;AACDO,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAACpG,KAAK,EAAE;MACnB,IAAI,IAAI,CAAC4D,cAAc,EAAE;QACrB,IAAMvF,eAAgB,GAAE,IAAI,CAACoK,cAAc,CAAC,IAAI,CAAC/E,iBAAiB,CAAC7E,KAAK,CAAC,CAAA;AACzE,QAAA,IAAM+F,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACxG,eAAe,CAAC,CAAA;AAE7D,QAAA,IAAIuG,OAAO,EAAE;UACT,IAAMoE,OAAQ,GAAE,IAAI,CAACvL,gBAAgB,CAACmC,IAAI,CAAC,UAACuH,CAAC,EAAA;YAAA,OAAK,CAAA9I,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEE,GAAE,MAAM4I,CAAC,CAAC5I,GAAG,CAAA;WAAC,CAAA,CAAA;AAEjF,UAAA,IAAIyK,OAAO,EAAE;YACT,IAAI,CAACtF,iBAAkB,GAAE;cAAE7E,KAAK,EAAE,CAAC,CAAC;AAAE8E,cAAAA,SAAS,EAAEtF,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEE,GAAAA;aAAK,CAAA;YACvE,IAAI,CAACgF,WAAY,GAAE,EAAE,CAAA;AACrB,YAAA,IAAI,CAAC0C,cAAc,CAACjG,KAAK,CAAC,CAAA;AAC9B,WAAE,MAAK;YACH,IAAI,CAACK,cAAc,CAAC;AAAEH,cAAAA,aAAa,EAAEF,KAAK;AAAE3B,cAAAA,eAAgB,EAAhBA,eAAAA;AAAgB,aAAC,CAAC,CAAA;AAClE,WAAA;AACJ,SAAA;QAEA2B,KAAK,CAAC6F,cAAc,EAAE,CAAA;AAC1B,OAAA;KACH;AACDQ,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACrG,KAAK,EAAE;MACb,IAAI,CAACwH,wBAAwB,CAACxH,KAAK,EAAE,IAAI,CAACuI,oBAAoB,EAAE,CAAC,CAAA;MAEjE,CAAC,IAAI,CAAC3E,cAAa,IAAK,IAAI,CAACkB,IAAI,EAAE,CAAA;MACnC9E,KAAK,CAAC6F,cAAc,EAAE,CAAA;KACzB;AACDS,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACtG,KAAK,EAAE;MACZ,IAAI,CAACwH,wBAAwB,CAACxH,KAAK,EAAE,IAAI,CAAC2I,mBAAmB,EAAE,CAAC,CAAA;MAEhE,CAAC,IAAI,CAAC/E,cAAa,IAAK,IAAI,CAACkB,IAAI,EAAE,CAAA;MACnC9E,KAAK,CAAC6F,cAAc,EAAE,CAAA;KACzB;AACDW,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACxG,KAAK,EAAE;AACd,MAAA,IAAI,CAAC,IAAI,CAAC4D,cAAc,EAAE;QACtB,IAAI,CAACF,iBAAiB,CAAC7E,UAAU,CAAC,CAAC,CAAE;AACrC,QAAA,IAAI,CAACoH,cAAc,CAACjG,KAAK,CAAC,CAAA;AAC9B,OAAE,MAAK;QACH,IAAI,IAAI,CAAC0D,iBAAiB,CAAC7E,UAAU,CAAC,CAAC,EAAE;UACrC,IAAMR,eAAgB,GAAE,IAAI,CAACoK,cAAc,CAAC,IAAI,CAAC/E,iBAAiB,CAAC7E,KAAK,CAAC,CAAA;AACzE,UAAA,IAAM+F,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACxG,eAAe,CAAC,CAAA;UAE7D,IAAI,CAACgC,cAAc,CAAC;AAAEH,YAAAA,aAAa,EAAEF,KAAK;AAAE3B,YAAAA,eAAgB,EAAhBA,eAAAA;AAAgB,WAAC,CAAC,CAAA;AAC9D,UAAA,CAACuG,WAAW,IAAI,CAACU,IAAI,EAAE,CAAA;AAC3B,SAAA;AACJ,OAAA;MAEAtF,KAAK,CAAC6F,cAAc,EAAE,CAAA;KACzB;AACDU,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACvG,KAAK,EAAE;AACd,MAAA,IAAI,CAACwG,UAAU,CAACxG,KAAK,CAAC,CAAA;KACzB;AACDyG,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACzG,KAAK,EAAE;MACf,IAAI,CAAC4D,cAAe,IAAG,IAAI,CAAC0B,IAAI,CAAC,IAAI,CAAC,CAAA;MACtCtF,KAAK,CAAC6F,cAAc,EAAE,CAAA;KACzB;AACDa,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAAC1G,KAAK,EAAE;MACZ,IAAI,IAAI,CAAC0D,iBAAiB,CAAC7E,UAAU,CAAC,CAAC,EAAE;QACrC,IAAMR,eAAgB,GAAE,IAAI,CAACoK,cAAc,CAAC,IAAI,CAAC/E,iBAAiB,CAAC7E,KAAK,CAAC,CAAA;AACzE,QAAA,IAAM+F,OAAM,GAAI,IAAI,CAACC,uBAAuB,CAACxG,eAAe,CAAC,CAAA;AAE7D,QAAA,CAACuG,OAAQ,IAAG,IAAI,CAACvE,cAAc,CAAC;AAAEH,UAAAA,aAAa,EAAEF,KAAK;AAAE3B,UAAAA,eAAc,EAAdA,eAAAA;AAAgB,SAAC,CAAC,CAAA;AAC9E,OAAA;AAEA,MAAA,IAAI,CAACuF,cAAe,IAAG,IAAI,CAAC0B,IAAI,EAAE,CAAA;KACrC;AACD2D,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACzI,EAAE,EAAE;AACf6D,MAAAA,MAAM,CAAC6E,GAAG,CAAC,SAAS,EAAE1I,EAAE,EAAE,IAAI,CAACE,SAAS,CAACC,MAAM,CAACwI,MAAM,CAAC9F,OAAO,CAAC,CAAA;MAE/D+F,QAAQ,CAAC5I,EAAE,EAAE;AAAE6I,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,CAAC5J,KAAK,CAAC,MAAM,CAAC,CAAA;KACrB;IACD6J,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,IAAI,CAAC5F,0BAA0B,EAAE,CAAA;MACjC,IAAI,CAAC6F,oBAAoB,EAAE,CAAA;MAC3B,IAAI,CAAC5F,oBAAoB,EAAE,CAAA;AAE3B,MAAA,IAAI,CAAClE,KAAK,CAAC,MAAM,CAAC,CAAA;MAClB,IAAI,CAACoD,OAAQ,GAAE,IAAI,CAAA;MACnB,IAAI,CAACQ,KAAI,GAAI,KAAK,CAAA;KACrB;AACDmG,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACxJ,EAAE,EAAE;AACpB6D,MAAAA,MAAM,CAACC,KAAK,CAAC9D,EAAE,CAAC,CAAA;KACnB;IACDgJ,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAI,IAAI,CAAC7N,QAAO,KAAM,MAAM,EAAE;QAC1BsO,gBAAgB,CAAC,IAAI,CAAC5G,OAAO,EAAE,IAAI,CAAC8E,GAAG,CAAC,CAAA;AAC5C,OAAE,MAAK;AACH,QAAA,IAAI,CAAC9E,OAAO,CAACtG,KAAK,CAACmN,QAAS,GAAEC,aAAa,CAAC,IAAI,CAAChC,GAAG,CAAA,GAAI,IAAI,CAAA;QAC5DiC,gBAAgB,CAAC,IAAI,CAAC/G,OAAO,EAAE,IAAI,CAAC8E,GAAG,CAAC,CAAA;AAC5C,OAAA;KACH;IACDwB,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAU,MAAA,GAAA,IAAA,CAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAACnH,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAqB,GAAE,UAAClD,KAAK,EAAK;AACnC,UAAA,IAAIqK,MAAI,CAACzG,cAAa,IAAKyG,MAAI,CAAChH,OAAM,IAAK,CAACgH,MAAI,CAAClC,GAAG,CAACL,QAAQ,CAAC9H,KAAK,CAAC+H,MAAM,CAAE,IAAG,CAACsC,MAAI,CAAChH,OAAO,CAACyE,QAAQ,CAAC9H,KAAK,CAAC+H,MAAM,CAAC,EAAE;YACjHsC,MAAI,CAAC/E,IAAI,EAAE,CAAA;AACf,WAAA;SACH,CAAA;QAEDgF,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACrH,oBAAoB,CAAC,CAAA;AACjE,OAAA;KACH;IACDgB,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAAChB,oBAAoB,EAAE;QAC3BoH,QAAQ,CAACE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACtH,oBAAoB,CAAC,CAAA;QAChE,IAAI,CAACA,oBAAmB,GAAI,IAAI,CAAA;AACpC,OAAA;KACH;IACD0G,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAa,MAAA,GAAA,IAAA,CAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACtH,aAAa,EAAE;AACrB,QAAA,IAAI,CAACA,aAAY,GAAI,IAAIuH,6BAA6B,CAAC,IAAI,CAACtF,KAAK,CAAC9H,SAAS,EAAE,YAAM;UAC/E,IAAImN,MAAI,CAAC7G,cAAc,EAAE;YACrB6G,MAAI,CAACnF,IAAI,EAAE,CAAA;AACf,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;AAEA,MAAA,IAAI,CAACnC,aAAa,CAACyG,kBAAkB,EAAE,CAAA;KAC1C;IACDG,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAAC5G,aAAa,EAAE;AACpB,QAAA,IAAI,CAACA,aAAa,CAAC4G,oBAAoB,EAAE,CAAA;AAC7C,OAAA;KACH;IACDF,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAc,MAAA,GAAA,IAAA,CAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACvH,cAAc,EAAE;QACtB,IAAI,CAACA,iBAAiB,YAAM;UACxB,IAAIuH,MAAI,CAAC/G,cAAa,IAAK,CAACgH,aAAa,EAAE,EAAE;YACzCD,MAAI,CAACrF,IAAI,EAAE,CAAA;AACf,WAAA;SACH,CAAA;QAEDuF,MAAM,CAACN,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACnH,cAAc,CAAC,CAAA;AAC1D,OAAA;KACH;IACDe,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACf,cAAc,EAAE;QACrByH,MAAM,CAACL,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACpH,cAAc,CAAC,CAAA;QACzD,IAAI,CAACA,iBAAiB,IAAI,CAAA;AAC9B,OAAA;KACH;AACD0H,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAACzM,eAAe,EAAE;AAAA,MAAA,IAAA0M,qBAAA,CAAA;AAC7B,MAAA,OAAO,IAAI,CAACC,aAAa,CAAC3M,eAAe,CAAA,KAAA0M,CAAAA,qBAAA,GAAK,IAAI,CAACpG,wBAAwB,CAACtG,eAAe,CAAC,MAAA,IAAA,IAAA0M,qBAAA,KAA9CA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAgDE,iBAAiB,CAAC,IAAI,CAAC7O,YAAY,CAAC,CAACgL,UAAU,CAAC,IAAI,CAAC7D,WAAW,CAAC0H,iBAAiB,CAAC,IAAI,CAAC7O,YAAY,CAAC,CAAC,CAAA,CAAA;KACvM;AACD4O,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAC3M,eAAe,EAAE;AAC3B,MAAA,OAAOqB,UAAU,CAACrB,eAAe,CAAE,IAAG,CAAC,IAAI,CAACiB,gBAAgB,CAACjB,eAAe,CAACK,MAAM,CAAC,CAAA;KACvF;AACDwM,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAAC7M,eAAe,EAAE;AACnC,MAAA,OAAO,IAAI,CAAC2M,aAAa,CAAC3M,eAAe,CAAA,IAAK,IAAI,CAAC4I,UAAU,CAAC5I,eAAe,CAAC,CAAA;KACjF;AACD4I,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC5I,eAAe,EAAE;AACxB,MAAA,OAAO,IAAI,CAACZ,gBAAgB,CAACmC,IAAI,CAAC,UAACuH,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAC5I,GAAE,KAAMF,eAAe,CAACE,GAAG,CAAA;OAAC,CAAA,CAAA;KAC1E;IACDgK,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AAAA,MAAA,IAAA4C,MAAA,GAAA,IAAA,CAAA;AACnB,MAAA,OAAO,IAAI,CAAC1C,cAAc,CAAC2C,SAAS,CAAC,UAAC/M,eAAe,EAAA;AAAA,QAAA,OAAK8M,MAAI,CAACH,aAAa,CAAC3M,eAAe,CAAC,CAAA;OAAC,CAAA,CAAA;KACjG;IACDsK,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAAA,MAAA,IAAA0C,MAAA,GAAA,IAAA,CAAA;AAClB,MAAA,OAAOC,aAAa,CAAC,IAAI,CAAC7C,cAAc,EAAE,UAACpK,eAAe,EAAA;AAAA,QAAA,OAAKgN,MAAI,CAACL,aAAa,CAAC3M,eAAe,CAAC,CAAA;OAAC,CAAA,CAAA;KACtG;AACDiK,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACzJ,KAAK,EAAE;AAAA,MAAA,IAAA0M,MAAA,GAAA,IAAA,CAAA;MACvB,IAAMC,kBAAmB,GAAE3M,KAAI,GAAI,IAAI,CAAC4J,cAAc,CAACzG,MAAO,GAAE,IAAI,IAAI,CAACyG,cAAc,CAACgD,KAAK,CAAC5M,KAAM,GAAE,CAAC,CAAC,CAACuM,SAAS,CAAC,UAAC/M,eAAe,EAAA;AAAA,QAAA,OAAKkN,MAAI,CAACP,aAAa,CAAC3M,eAAe,CAAC,CAAA;OAAE,CAAA,GAAE,CAAC,CAAC,CAAA;MAEjL,OAAOmN,kBAAiB,GAAI,CAAC,CAAE,GAAEA,kBAAmB,GAAE3M,KAAM,GAAE,CAAE,GAAEA,KAAK,CAAA;KAC1E;AACD6J,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC7J,KAAK,EAAE;AAAA,MAAA,IAAA6M,MAAA,GAAA,IAAA,CAAA;MACvB,IAAMF,qBAAqB3M,KAAI,GAAI,CAAA,GAAIyM,aAAa,CAAC,IAAI,CAAC7C,cAAc,CAACgD,KAAK,CAAC,CAAC,EAAE5M,KAAK,CAAC,EAAE,UAACR,eAAe,EAAA;AAAA,QAAA,OAAKqN,MAAI,CAACV,aAAa,CAAC3M,eAAe,CAAC,CAAA;OAAE,CAAA,GAAE,CAAC,CAAC,CAAA;AAExJ,MAAA,OAAOmN,kBAAiB,GAAI,CAAC,IAAIA,kBAAiB,GAAI3M,KAAK,CAAA;KAC9D;IACDqG,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AAAA,MAAA,IAAAyG,OAAA,GAAA,IAAA,CAAA;AACtB,MAAA,OAAO,IAAI,CAAClD,cAAc,CAAC2C,SAAS,CAAC,UAAC/M,eAAe,EAAA;AAAA,QAAA,OAAKsN,OAAI,CAACT,qBAAqB,CAAC7M,eAAe,CAAC,CAAA;OAAC,CAAA,CAAA;KACzG;IACD4G,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;AAC1B,MAAA,IAAM2G,gBAAgB,IAAI,CAAC1G,uBAAuB,EAAE,CAAA;MAEpD,OAAO0G,aAAY,GAAI,CAAA,GAAI,IAAI,CAACrD,oBAAoB,EAAC,GAAIqD,aAAa,CAAA;KACzE;IACDhD,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;AACzB,MAAA,IAAMgD,gBAAgB,IAAI,CAAC1G,uBAAuB,EAAE,CAAA;MAEpD,OAAO0G,aAAY,GAAI,CAAA,GAAI,IAAI,CAACjD,mBAAmB,EAAG,GAAEiD,aAAa,CAAA;KACxE;AACD5G,IAAAA,qBAAqB,WAArBA,qBAAqBA,CAAC0C,KAAK,EAAEmE,gBAAgB,EAAa;AAAA,MAAA,IAAXnO,KAAI,GAAA+J,SAAA,CAAAzF,MAAA,GAAA,CAAA,IAAAyF,SAAA,CAAA,CAAA,CAAA,KAAA3L,SAAA,GAAA2L,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;MACpDoE,gBAAe,GAAIA,gBAAiB,IAAInO,UAAU,CAAA,IAAK,IAAI,CAACmO,gBAAiB,CAAA;AAE7E,MAAA,IAAI,CAACA,gBAAgB,EAAE,OAAO,IAAI,CAAA;AAClC,MAAA,IAAI/E,OAAO,CAACY,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;AAE7B,MAAA,KAAK,IAAIoE,CAAE,GAAE,CAAC,EAAEA,IAAID,gBAAgB,CAAC7J,MAAM,EAAE8J,CAAC,EAAE,EAAE;AAC9C,QAAA,IAAMzN,eAAc,GAAIwN,gBAAgB,CAACC,CAAC,CAAC,CAAA;AAE3C,QAAA,IAAIC,MAAM,CAACrE,KAAK,EAAE,IAAI,CAAC/I,cAAc,CAACN,eAAe,CAACK,MAAM,CAAC,EAAE,IAAI,CAACsN,WAAW,CAAC,EAAE;UAC9E,OAAO,CAAC3N,eAAe,CAAC,CAAA;AAC5B,SAAA;AAEA,QAAA,IAAM4N,iBAAiB,IAAI,CAACjH,qBAAqB,CAAC0C,KAAK,EAAErJ,eAAe,CAACoB,QAAQ,EAAE/B,KAAM,GAAE,CAAC,CAAC,CAAA;AAE7F,QAAA,IAAIuO,cAAc,EAAE;AAChBA,UAAAA,cAAc,CAACC,OAAO,CAAC7N,eAAe,CAAC,CAAA;AAEvC,UAAA,OAAO4N,cAAc,CAAA;AACzB,SAAA;AACJ,OAAA;KACH;AACDrF,IAAAA,aAAa,WAAbA,aAAaA,CAAC5G,KAAK,EAAEmM,KAAI,EAAE;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA,CAAA;MACvB,IAAI,CAAC7I,WAAU,GAAI,CAAC,IAAI,CAACA,eAAe,EAAE,IAAI4I,KAAI,CAAA;MAElD,IAAI9D,WAAY,GAAE,CAAC,CAAC,CAAA;MACpB,IAAIW,OAAM,GAAI,KAAK,CAAA;AAEnB,MAAA,IAAItJ,UAAU,CAAC,IAAI,CAAC6D,WAAW,CAAC,EAAE;QAC9B,IAAI,IAAI,CAACG,iBAAiB,CAAC7E,UAAU,CAAC,CAAC,EAAE;AACrCwJ,UAAAA,WAAU,GAAI,IAAI,CAACI,cAAc,CAACgD,KAAK,CAAC,IAAI,CAAC/H,iBAAiB,CAAC7E,KAAK,CAAC,CAACuM,SAAS,CAAC,UAAC/M,eAAe,EAAA;AAAA,YAAA,OAAK+N,OAAI,CAACtB,eAAe,CAACzM,eAAe,CAAC,CAAA;WAAC,CAAA,CAAA;UAC3IgK,WAAU,GAAIA,WAAU,KAAM,CAAC,CAAE,GAAE,IAAI,CAACI,cAAc,CAACgD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC/H,iBAAiB,CAAC7E,KAAK,CAAC,CAACuM,SAAS,CAAC,UAAC/M,eAAe,EAAA;AAAA,YAAA,OAAK+N,OAAI,CAACtB,eAAe,CAACzM,eAAe,CAAC,CAAA;AAAA,WAAA,CAAE,GAAEgK,WAAY,GAAE,IAAI,CAAC3E,iBAAiB,CAAC7E,KAAK,CAAA;AACpN,SAAE,MAAK;UACHwJ,WAAU,GAAI,IAAI,CAACI,cAAc,CAAC2C,SAAS,CAAC,UAAC/M,eAAe,EAAA;AAAA,YAAA,OAAK+N,OAAI,CAACtB,eAAe,CAACzM,eAAe,CAAC,CAAA;WAAC,CAAA,CAAA;AAC3G,SAAA;AAEA,QAAA,IAAIgK,WAAY,KAAI,CAAC,CAAC,EAAE;AACpBW,UAAAA,UAAU,IAAI,CAAA;AAClB,SAAA;AAEA,QAAA,IAAIX,gBAAgB,CAAC,CAAE,IAAG,IAAI,CAAC3E,iBAAiB,CAAC7E,KAAM,KAAI,CAAC,CAAC,EAAE;AAC3DwJ,UAAAA,WAAU,GAAI,IAAI,CAACpD,2BAA2B,EAAE,CAAA;AACpD,SAAA;AAEA,QAAA,IAAIoD,WAAY,KAAI,CAAC,CAAC,EAAE;AACpB,UAAA,IAAI,CAACb,wBAAwB,CAACxH,KAAK,EAAEqI,WAAW,CAAC,CAAA;AACrD,SAAA;AACJ,OAAA;MAEA,IAAI,IAAI,CAAC/E,aAAa,EAAE;AACpB+I,QAAAA,YAAY,CAAC,IAAI,CAAC/I,aAAa,CAAC,CAAA;AACpC,OAAA;AAEA,MAAA,IAAI,CAACA,aAAc,GAAEmC,UAAU,CAAC,YAAM;QAClC2G,OAAI,CAAC7I,WAAY,GAAE,EAAE,CAAA;QACrB6I,OAAI,CAAC9I,gBAAgB,IAAI,CAAA;OAC5B,EAAE,GAAG,CAAC,CAAA;AAEP,MAAA,OAAO0F,OAAO,CAAA;KACjB;AACDxB,IAAAA,wBAAwB,WAAxBA,wBAAwBA,CAACxH,KAAK,EAAEnB,KAAK,EAAE;AACnC,MAAA,IAAI,IAAI,CAAC6E,iBAAiB,CAAC7E,KAAM,KAAIA,KAAK,EAAE;AACxC,QAAA,IAAI,CAAC6E,iBAAiB,CAAC7E,KAAI,GAAIA,KAAK,CAAA;QACpC,IAAI,CAAC4K,YAAY,EAAE,CAAA;QAEnB,IAAI,IAAI,CAACvN,aAAa,EAAE;UACpB,IAAI,CAACmE,cAAc,CAAC;AAAEH,YAAAA,aAAa,EAAEF,KAAK;AAAE3B,YAAAA,eAAe,EAAE,IAAI,CAACoK,cAAc,CAAC5J,KAAK,CAAC;AAAEgI,YAAAA,MAAM,EAAE,KAAA;AAAM,WAAC,CAAC,CAAA;AAC7G,SAAA;AACJ,OAAA;KACH;IACD4C,YAAY,EAAA,SAAZA,YAAYA,GAAa;AAAA,MAAA,IAAA6C,OAAA,GAAA,IAAA,CAAA;AAAA,MAAA,IAAZzN,4EAAQ,CAAC,CAAC,CAAA;MACnB,IAAI,CAAC0N,SAAS,CAAC,YAAM;AACjB,QAAA,IAAMzK,EAAG,GAAEjD,KAAM,KAAI,CAAC,CAAA,MAAAP,MAAA,CAAOgO,OAAI,CAACxK,EAAE,OAAAxD,MAAA,CAAIO,KAAK,CAAKyN,GAAAA,OAAI,CAAC9O,eAAe,CAAA;AACtE,QAAA,IAAMgP,OAAM,GAAIC,UAAU,CAACH,OAAI,CAACI,IAAI,EAAA,UAAA,CAAApO,MAAA,CAAYwD,EAAE,EAAA,KAAA,CAAI,CAAC,CAAA;AAEvD,QAAA,IAAI0K,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;IACD7I,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,IAAI,IAAI,CAAC9H,aAAc,IAAG,IAAI,CAACD,eAAc,IAAK,CAAC,IAAI,CAAC8I,iBAAiB,EAAE;QACvE,IAAI,CAACrB,iBAAiB,CAAC7E,KAAM,GAAE,IAAI,CAACoG,2BAA2B,EAAE,CAAA;QACjE,IAAI,CAAC5E,cAAc,CAAC;UAAEhC,eAAe,EAAE,IAAI,CAACoK,cAAc,CAAC,IAAI,CAAC/E,iBAAiB,CAAC7E,KAAK,CAAC;AAAEgI,UAAAA,MAAM,EAAE,KAAA;AAAM,SAAC,CAAC,CAAA;AAE1G,QAAA,CAAC,IAAI,CAACjD,cAAe,KAAI,IAAI,CAACF,iBAAkB,GAAE;UAAE7E,KAAK,EAAE,CAAC,CAAC;AAAEnB,UAAAA,KAAK,EAAE,CAAC;AAAEiG,UAAAA,SAAS,EAAE,EAAA;AAAG,SAAC,CAAC,CAAA;AAC7F,OAAA;KACH;AACDiE,IAAAA,WAAW,WAAXA,WAAWA,CAAC5H,KAAK,EAAE0H,KAAK,EAAE;AACtB,MAAA,IAAI,CAACzH,KAAK,CAAC,mBAAmB,EAAEyH,KAAK,CAAC,CAAA;AACtC,MAAA,IAAI,CAACzH,KAAK,CAAC,QAAQ,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;AAAE0H,QAAAA,KAAM,EAANA,KAAAA;AAAM,OAAC,CAAC,CAAA;KACxD;AACDoF,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAAC7S,OAAO,EAA0C;AAAA,MAAA,IAAA8S,OAAA,GAAA,IAAA,CAAA;AAAA,MAAA,IAAxCrP,KAAM,GAAA+J,SAAA,CAAAzF,MAAA,GAAA,CAAA,IAAAyF,SAAA,CAAA,CAAA,CAAA,KAAA3L,SAAA,GAAA2L,SAAA,CAAA,CAAA,CAAA,GAAE,CAAC,CAAA;AAAA,MAAA,IAAET,MAAK,GAAAS,SAAA,CAAAzF,MAAA,GAAA,CAAA,IAAAyF,SAAA,CAAA,CAAA,CAAA,KAAA3L,SAAA,GAAA2L,SAAA,CAAA,CAAA,CAAA,GAAI,EAAE,CAAA;AAAA,MAAA,IAAE9D,SAAU,GAAA8D,SAAA,CAAAzF,MAAA,GAAA,CAAA,IAAAyF,SAAA,CAAA,CAAA,CAAA,KAAA3L,SAAA,GAAA2L,SAAA,CAAA,CAAA,CAAA,GAAE,EAAE,CAAA;MAClE,IAAMoE,gBAAe,GAAI,EAAE,CAAA;MAE3B5R,WACIA,OAAO,CAAC0N,OAAO,CAAC,UAACjJ,MAAM,EAAEG,KAAK,EAAK;AAC/B,QAAA,IAAMN,GAAE,GAAI,CAACoF,SAAU,KAAI,EAAC,GAAIA,YAAY,GAAI,GAAE,EAAE,IAAI9E,KAAK,CAAA;AAC7D,QAAA,IAAMmO,YAAY;AACdtO,UAAAA,MAAM,EAANA,MAAM;AACNG,UAAAA,KAAK,EAALA,KAAK;AACLnB,UAAAA,KAAK,EAALA,KAAK;AACLa,UAAAA,GAAG,EAAHA,GAAG;AACHyI,UAAAA,MAAM,EAANA,MAAM;AACNrD,UAAAA,SAAQ,EAARA,SAAAA;SACH,CAAA;QAEDqJ,SAAS,CAAC,UAAU,CAAE,GAAED,OAAI,CAACD,sBAAsB,CAACC,OAAI,CAACvN,sBAAsB,CAACd,MAAM,EAAEhB,KAAK,CAAC,EAAEA,KAAM,GAAE,CAAC,EAAEsP,SAAS,EAAEzO,GAAG,CAAC,CAAA;AAC1HsN,QAAAA,gBAAgB,CAACxE,IAAI,CAAC2F,SAAS,CAAC,CAAA;AACpC,OAAC,CAAC,CAAA;AAEN,MAAA,OAAOnB,gBAAgB,CAAA;KAC1B;AACDoB,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACzM,EAAE,EAAE;MACX,IAAI,CAAC6C,OAAQ,GAAE7C,EAAE,CAAA;AACrB,KAAA;GACH;AACD0M,EAAAA,QAAQ,EAAE;IACNnI,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,OAAOrF,UAAU,CAAC,IAAI,CAAC1F,UAAU,CAAC,CAAA;KACrC;IACDmT,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,IAAMA,KAAI,GAAI,IAAI,CAAC3S,eAAe,cAAc,CAAA;MAEhD,IAAI,IAAI,CAACuK,iBAAiB,EAAE;QACxB,IAAMtH,gBAAe,GAAI,IAAI,CAACuH,qBAAqB,CAAC,IAAI,CAAChL,UAAU,CAAC,CAAA;AACpE,QAAA,IAAMqE,eAAc,GAAIqB,UAAU,CAACjC,gBAAgB,CAAA,GAAIA,gBAAgB,CAACA,gBAAgB,CAACuE,SAAS,CAAC,IAAI,IAAI,CAAA;QAE3G,OAAO3D,eAAc,GAAI,IAAI,CAACG,cAAc,CAACH,eAAe,CAACK,MAAM,IAAIyO,KAAK,CAAA;AAChF,OAAA;AAEA,MAAA,OAAOA,KAAK,CAAA;KACf;IACDtB,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;MACf,OAAO,IAAI,CAACiB,sBAAsB,CAAC,IAAI,CAAC7S,WAAW,EAAE,CAAC,CAAA;KACzD;IACDwO,cAAc,EAAA,SAAdA,cAAcA,GAAG;AAAA,MAAA,IAAA2E,OAAA,GAAA,IAAA,CAAA;MACb,IAAM/O,eAAc,GAAI,IAAI,CAACZ,gBAAgB,CAACsL,IAAI,CAAC,UAAC5B,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAC5I,GAAI,KAAI6O,OAAI,CAAC1J,iBAAiB,CAACC,SAAS,CAAA;OAAC,CAAA,CAAA;MAErG,OAAOtF,eAAgB,GAAEA,eAAe,CAACoB,QAAO,GAAI,IAAI,CAACoM,gBAAgB,CAAA;KAC5E;IACDG,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,OAAO,IAAI,CAAC5R,WAAU,GAAI,IAAG,GAAI,IAAI,CAACW,OAAO,CAAA;KAChD;IACDsS,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACtB,OAAO3N,UAAU,CAAC,IAAI,CAAC+I,cAAc,CAAE,GAAE,IAAI,CAAC6E,iBAAiB,CAACC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC9E,cAAc,CAACzG,MAAM,CAAE,GAAE,IAAI,CAACwL,sBAAsB,CAAA;KAC9I;IACDF,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,OAAO,IAAI,CAACjR,iBAAiB,IAAI,CAACqE,SAAS,CAACC,MAAM,CAACC,MAAM,CAACvE,aAAY,IAAK,EAAE,CAAA;KAChF;IACDmR,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;AACrB,MAAA,OAAO,IAAI,CAAChR,kBAAmB,IAAG,IAAI,CAACkE,SAAS,CAACC,MAAM,CAACC,MAAM,CAACpE,sBAAsB,EAAE,CAAA;KAC1F;IACDiR,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAChR,YAAW,IAAK,IAAI,CAACiE,SAAS,CAACC,MAAM,CAACC,MAAM,CAACnE,YAAW,IAAK,EAAE,CAAA;KAC9E;IACDiR,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,OAAO,IAAI,CAACpR,oBAAoB,IAAI,CAACoE,SAAS,CAACC,MAAM,CAACC,MAAM,CAACtE,gBAAe,IAAK,EAAE,CAAA;KACtF;IACDqR,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;AACxB,MAAA,OAAO,IAAI,CAACpR,qBAAoB,IAAK,IAAI,CAACmE,SAAS,CAACC,MAAM,CAACC,MAAM,CAACrE,yBAAyB,EAAE,CAAA;KAChG;IACDqR,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAClB,MAAA,OAAO,IAAI,CAAC7I,iBAAkB,GAAE,IAAI,CAAC2I,oBAAoB,CAACH,UAAU,CAAC,KAAK,EAAE,GAAG,CAAA,GAAI,IAAI,CAACI,yBAAyB,CAAA;KACpH;IACDnQ,eAAe,EAAA,SAAfA,eAAeA,GAAG;MACd,OAAO,IAAI,CAACkG,iBAAiB,CAAC7E,KAAI,KAAM,CAAC,CAAE,GAAAP,EAAAA,CAAAA,MAAA,CAAK,IAAI,CAACwD,EAAE,CAAAxD,CAAAA,MAAA,CAAGoB,UAAU,CAAC,IAAI,CAACgE,iBAAiB,CAACC,SAAS,IAAI,GAAE,GAAI,IAAI,CAACD,iBAAiB,CAACC,SAAQ,GAAI,EAAE,EAAArF,GAAAA,CAAAA,CAAAA,MAAA,CAAI,IAAI,CAACoF,iBAAiB,CAAC7E,KAAK,IAAK,IAAI,CAAA;KAChM;IACDgP,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,OAAO/G,OAAO,CAAC,IAAI,CAAChK,KAAK,CAAE,GAAE,CAAC,CAAC,IAAI,CAACmG,QAAS,GAAE,IAAI,CAACnG,KAAK,CAAA;AAC7D,KAAA;GACH;AACDoE,EAAAA,UAAU,EAAE;AACR4M,IAAAA,gBAAgB,EAAEA,QAAgB;AAClCC,IAAAA,MAAM,EAAEA,MAAM;AACdC,IAAAA,eAAe,EAAEA,eAAe;AAChCC,IAAAA,WAAW,EAAEA,WAAW;AACxB9M,IAAAA,cAAc,EAAEA,cAAAA;AACpB,GAAA;AACJ,CAAC;;;;;;;;;;;;;ECtxBG,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAmFK,OAnFLC,UAmFK,CAAA;AAnFAC,IAAAA,GAAG,EAAC,WAAY;AAAC,IAAA,OAAA,EAAOE,IAAE,CAAAC,EAAA,CAAA,MAAA,CAAA;AAAW3E,IAAAA,KAAK,EAAE0E,IAAE,CAAAyM,EAAA,CAAA,MAAA,CAAA;AAAWhM,IAAAA,OAAK,EAAAiM,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAhM,MAAA,EAAA;AAAA,MAAA,OAAEX,QAAgB,CAAAqG,gBAAA,CAAC1F,MAAM,CAAA,CAAA;KAAA,CAAA;KAAWV,IAAI,CAAA2M,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CACvGC,kBAwBK,CAAA,KAAA,EAxBL/M,UAwBK,CAAA;IAxBA,OAAM,EAAA,qBAAA;KAA8BG,IAAG,CAAA3C,GAAA,CAAA,sBAAA,CAAA,EAAA;AAA2B,IAAA,0BAAwB,EAAE,IAAA;GAAI,CAAA,EAAA,CACjGuP,kBAAA,CAsBC,SAtBD/M,UAsBC,CAAA;AArBGC,IAAAA,GAAG,EAAC,YAAW;IACdO,EAAE,EAAEL,IAAO,CAAAzG,OAAA;AACZL,IAAAA,IAAI,EAAC,MAAK;IACT,OAAO8G,EAAAA,IAAU,CAAAxG,UAAA;IACjB8B,KAAK,EAAE0E,IAAU,CAAAtG,UAAA;AAClBmT,IAAAA,QAAO,EAAP,EAAO;IACNxT,QAAQ,EAAE2G,IAAQ,CAAA3G,QAAA;IAClBN,WAAW,EAAEiH,IAAW,CAAAjH,WAAA;IACxBkC,QAAQ,EAAA,CAAG+E,IAAO,CAAA3G,QAAA,GAAI2G,IAAS,CAAA/E,QAAA,GAAA,CAAA,CAAA;AAChCqF,IAAAA,IAAI,EAAC,UAAS;IACb,YAAU,EAAEN,IAAS,CAAA5E,SAAA;IACrB,iBAAe,EAAE4E,IAAc,CAAA7E,cAAA;AAChC,IAAA,eAAa,EAAC,MAAK;IAClB,eAAa,EAAEiG,KAAc,CAAAe,cAAA;AAC7B,IAAA,eAAa,EAAEf,KAAC,CAAAf,EAAA,GAAA,OAAA;IAChB,uBAAqB,EAAEe,KAAA,CAAAzD,OAAM,GAAIoC,QAAA,CAAAhE,eAAgB,GAAE1B,SAAS;AAC5D,IAAA,cAAY,EAAE2F,IAAM,CAAA7G,OAAA,IAAKkB,SAAS;IAClC4J,OAAK;aAAElE,QAAO,CAAAkE,OAAA,IAAAlE,QAAA,CAAAkE,OAAA,CAAA6I,KAAA,CAAA/M,QAAA,EAAAiG,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IACd9B,MAAI;aAAEnE,QAAM,CAAAmE,MAAA,IAAAnE,QAAA,CAAAmE,MAAA,CAAA4I,KAAA,CAAA/M,QAAA,EAAAiG,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IACZ+G,SAAO;aAAEhN,QAAS,CAAAoE,SAAA,IAAApE,QAAA,CAAAoE,SAAA,CAAA2I,KAAA,CAAA/M,QAAA,EAAAiG,SAAA,CAAA,CAAA;KAAA,CAAA;AACN,GAAA,EAAAgH,aAAA,CAAAA,aAAA,KAAAhN,IAAA,CAAArG,UAAU,CAAA,EAAKqG,IAAG,CAAA3C,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA4P,UAAA,CAAA,QAGvCL,kBAAA,CAIM,QAJN/M,UAIM,CAAA;AAJC,IAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,OAAA,CAAA;KAAmBD,IAAG,CAAA3C,GAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAClC6P,UAEM,CAAAlN,IAAA,CAAAmN,MAAA,EAAA,OAAA,EAAA;IAFclH,KAAK,EAAEjG,IAAU,CAAAzH,UAAA;IAAGQ,WAAW,EAAEiH,IAAW,CAAAjH,WAAAA;KAAhE,YAAA;AAAA,IAAA,OAEM,iCADCgH;YAGX6M,kBAAA,CAQK,OARL/M,UAQK,CAAA;AARC,IAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,UAAA,CAAA;AAAcK,IAAAA,IAAI,EAAC,QAAS;AAAArF,IAAAA,QAAQ,EAAC,IAAG;AAAE,IAAA,aAAW,EAAC,MAAA;KAAe+E,IAAG,CAAA3C,GAAA,CAAA,UAAA,CAAA,CAAA,EAAA,CACvE2C,IAAO,CAAA7F,OAAA,GAAnB+S,UAGM,CAAAlN,IAAA,CAAAmN,MAAA,EAAA,aAAA,EAAA;;AAHmC,IAAA,OAAA,iBAAOnN,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA,CAAA;KAAlD,YAAA;AAAA,IAAA,OAGM,CAFUD,IAAW,CAAA1F,WAAA,IAAvBqF,SAAA,EAAA,EAAAC,kBAAA,CAA8H,QAA9HC,UAA8H,CAAA;;AAApG,MAAA,OAAA,EAAK,CAAGG,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA,EAAA,SAAA,EAA4BD,IAAW,CAAA1F,WAAA,CAAA;AAAG,MAAA,aAAW,EAAC,MAAA;OAAe0F,IAAG,CAAA3C,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAC5GsC,SAAA,EAAA,EAAAiB,WAAA,CAAoGwM,wBAApGvN,UAAoG,CAAA;;AAA/E,MAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA;AAAiBoN,MAAAA,MAAA;AAAK,MAAA,aAAW,EAAC,MAAA;OAAerN,IAAG,CAAA3C,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;OAEtF6P,UAEM,CAAAlN,IAAA,CAAAmN,MAAA,EAAA,cAAA,EAAA;;AAF4B,IAAA,OAAA,iBAAOnN,IAAE,CAAAC,EAAA,CAAA,cAAA,CAAA,CAAA;KAA3C,YAAA;AAAA,IAAA,OAEM,eADFW,WAAwJ,CAAAC,uBAAA,CAAxIb,IAAa,CAAA5F,YAAA,GAAA,MAAA,GAAA,iBAAA,CAAA,EAA7ByF,UAAwJ,CAAA;MAA5F,OAAK,EAAA,CAAGG,IAAE,CAAAC,EAAA,CAAA,cAAA,CAAA,EAAkBD,IAAY,CAAA5F,YAAA,CAAA;AAAG,MAAA,aAAW,EAAC,MAAA;OAAe4F,IAAG,CAAA3C,GAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;YAG7IuP,kBAAA,CAEM,QAFN/M,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,CAAA6L,uBAAA,CAAA,EAAA,EAAA,CAAA,EAE7B0B,WAuCQ,CAAAC,iBAAA,EAAA;IAvCCrT,QAAQ,EAAE8F,IAAQ,CAAA9F,QAAAA;AAAA,GAAA,EAAA;uBACvB,YAAA;AAAA,MAAA,OAqCY,CArCZoT,WAAA,CAqCYE,YArCZ3N,UAqCY,CAAA;AArCAzH,QAAAA,IAAI,EAAC,qBAAoB;QAAGqV,OAAK,EAAE1N,QAAc,CAAAyH,cAAA;QAAGkG,YAAW,EAAE3N,QAAmB,CAAAkI,mBAAA;QAAG0F,OAAK,EAAE5N,QAAc,CAAAsI,cAAA;QAAGuF,YAAW,EAAE7N,QAAmB,CAAAwI,mBAAAA;SAAUvI,IAAG,CAAA3C,GAAA,CAAA,YAAA,CAAA,CAAA,EAAA;2BACpK,YAAA;AAAA,UAAA,OAmCK,CAlCK+D,KAAc,CAAAe,cAAA,IADxBxC,SAAA,EAAA,EAAAC,kBAAA,CAmCK,OAnCLC,UAmCK,CAAA;;YAjCAC,GAAG,EAAEC,QAAU,CAAAyL,UAAA;AACf,YAAA,OAAA,EAAQ,CAAAxL,IAAA,CAAAC,EAAE,CAAa,SAAA,CAAA,EAAAD,IAAA,CAAApG,UAAU,EAAEoG,IAAY,CAAAjG,YAAA,CAAA;YAC/CuB,KAAK,EAAA,CAAG0E,IAAU,CAAAnG,UAAA,EAAEmG,IAAY,CAAAhG,YAAA,CAAA;YAChCyG,OAAK;qBAAEV,QAAc,CAAAwG,cAAA,IAAAxG,QAAA,CAAAwG,cAAA,CAAAuG,KAAA,CAAA/M,QAAA,EAAAiG,SAAA,CAAA,CAAA;AAAA,aAAA,CAAA;YACrB+G,SAAO;qBAAEhN,QAAgB,CAAA4G,gBAAA,IAAA5G,QAAA,CAAA4G,gBAAA,CAAAmG,KAAA,CAAA/M,QAAA,EAAAiG,SAAA,CAAA,CAAA;aAAA,CAAA;uDACbhG,EAAAA,EAAAA,IAAU,CAAAlG,UAAA,CAAKkG,EAAAA,IAAY,CAAA/F,YAAA,CAAA,EAAK+F,IAAG,CAAA3C,GAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAA,CAEhDuP,kBAAA,CAsBK,OAtBL/M,UAsBK,CAAA;AAtBC,YAAA,OAAA,EAAOG,IAAE,CAAAC,EAAA,CAAA,eAAA,CAAA;aAA2BD,IAAG,CAAA3C,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,CACzCiQ,WAoBC,CAAArM,2BAAA,EAAA;AAnBIZ,YAAAA,EAAE,EAAEe,KAAC,CAAAf,EAAA,GAAA,OAAA;AACNC,YAAAA,IAAI,EAAC,MAAK;AACV,YAAA,kBAAgB,EAAC,YAAW;YAC3BxE,QAAQ,EAAEsF,KAAE,CAAAf,EAAA;YACZtE,eAAe,EAAEqF,KAAA,CAAAzD,OAAM,GAAIoC,QAAA,CAAAhE,eAAc,GAAI1B,SAAS;YACtD7B,OAAO,EAAEuH,QAAgB,CAAAqK,gBAAA;YACzBpO,gBAAgB,EAAEoF,KAAgB,CAAApF,gBAAA;AAClCC,YAAAA,KAAK,EAAE,CAAC;YACRC,SAAS,EAAE8D,IAAM,CAAAmN,MAAA;YACjBzU,WAAW,EAAEsH,IAAW,CAAAtH,WAAA;YACxBC,WAAW,EAAEqH,IAAW,CAAArH,WAAA;YACxBC,cAAc,EAAEoH,IAAc,CAAApH,cAAA;YAC9B2B,eAAe,EAAEyF,IAAe,CAAAzF,eAAA;YAChC1B,gBAAgB,EAAEmH,IAAgB,CAAAnH,gBAAA;YAClCC,mBAAmB,EAAEkH,IAAmB,CAAAlH,mBAAA;YACxC8F,cAAa,EAAEmB,QAAc,CAAAnB,cAAA;YAC7BC,mBAAmB,EAAEkB,QAAmB,CAAAlB,mBAAA;YACxCqC,EAAE,EAAElB,IAAE,CAAAkB,EAAA;YACNC,QAAQ,EAAEnB,IAAQ,CAAAmB,QAAAA;yRAG3ByL,kBAAA,CAEM,QAFN/M,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;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/cascadeselect/BaseCascadeSelect.vue","../../src/cascadeselect/CascadeSelectSub.vue","../../src/cascadeselect/CascadeSelectSub.vue?vue&type=template&id=b7f56b8e&lang.js","../../src/cascadeselect/CascadeSelect.vue","../../src/cascadeselect/CascadeSelect.vue?vue&type=template&id=5a4a0900&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 @option-change=\"onOptionChange\"\n @option-focus-change=\"onOptionFocusChange\"\n @option-focus-enter-change=\"onOptionFocusEnterChange\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\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', '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 },\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 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 onOptionChange(event) {\n this.$emit('option-change', event);\n },\n onOptionFocusChange(event) {\n this.$emit('option-focus-change', event);\n },\n onOptionFocusEnterChange(event) {\n this.$emit('option-focus-enter-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\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 @option-change=\"onOptionChange\"\n @option-focus-change=\"onOptionFocusChange\"\n @option-focus-enter-change=\"onOptionFocusEnterChange\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\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', '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 },\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 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 onOptionChange(event) {\n this.$emit('option-change', event);\n },\n onOptionFocusChange(event) {\n this.$emit('option-focus-change', event);\n },\n onOptionFocusEnterChange(event) {\n this.$emit('option-focus-enter-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\" 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 @option-change=\"onOptionChange\"\n @option-focus-move-change=\"onOptionFocusMoveChange\"\n @option-focus-enter-change=\"onOptionFocusChangeEnter\"\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, isSelectable = true) {\n const { originalEvent, processedOption, isFocus, isHide } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, 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 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 && p.parentKey !== key);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.activeOptionPath = activeOptionPath;\n }\n\n if (grouped) {\n this.dirty = true;\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n isSelectable && this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionFocusMoveChange(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 onOptionFocusChangeEnter(event) {\n if (this.dirty) {\n this.onOptionChange(event, false);\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 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) {\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\" 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 @option-change=\"onOptionChange\"\n @option-focus-move-change=\"onOptionFocusMoveChange\"\n @option-focus-enter-change=\"onOptionFocusChangeEnter\"\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, isSelectable = true) {\n const { originalEvent, processedOption, isFocus, isHide } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, 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 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 && p.parentKey !== key);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n this.activeOptionPath = activeOptionPath;\n }\n\n if (grouped) {\n this.dirty = true;\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n isSelectable && this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionFocusMoveChange(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 onOptionFocusChangeEnter(event) {\n if (this.dirty) {\n this.onOptionChange(event, false);\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 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) {\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","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","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","onOptionMouseEnter","onOptionMouseMove","onOptionChange","onOptionFocusChange","onOptionFocusEnterChange","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","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","isSelectable","arguments","isHide","isEmpty","root","parent","isSelected","filter","p","startsWith","push","onOptionGroupSelect","onOptionSelect","onOptionFocusMoveChange","changeFocusedOptionIndex","onOptionFocusChangeEnter","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","_this6","matchMedia","matches","isOptionMatched","_this$getProccessedOp","isValidOption","toLocaleLowerCase","isValidSelectedOption","_this7","findIndex","_this8","findLastIndex","_this9","matchedOptionIndex","slice","_this10","_this11","selectedIndex","processedOptions","i","equals","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","_cache","ptmi","_createElementVNode","readonly","$data","apply","onKeydown","_objectSpread","_hoisted_1","_renderSlot","$slots","_component_SpinnerIcon","spin","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave"],"mappings":"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"}