primevue 4.1.1 → 4.2.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.
- package/accordion/index.mjs.map +1 -1
- package/accordion/style/index.mjs +1 -1
- package/accordion/style/index.mjs.map +1 -1
- package/accordioncontent/index.mjs.map +1 -1
- package/accordioncontent/style/index.mjs.map +1 -1
- package/accordionheader/index.mjs.map +1 -1
- package/accordionheader/style/index.mjs.map +1 -1
- package/accordionpanel/index.mjs.map +1 -1
- package/accordionpanel/style/index.mjs.map +1 -1
- package/accordiontab/index.mjs.map +1 -1
- package/accordiontab/style/index.mjs.map +1 -1
- package/animateonscroll/index.mjs.map +1 -1
- package/animateonscroll/style/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +36 -32
- package/autocomplete/BaseAutoComplete.vue +2 -19
- package/autocomplete/index.d.ts +21 -0
- package/autocomplete/index.mjs +40 -53
- package/autocomplete/index.mjs.map +1 -1
- package/autocomplete/style/index.mjs +7 -7
- package/autocomplete/style/index.mjs.map +1 -1
- package/avatar/index.mjs.map +1 -1
- package/avatar/style/index.mjs +1 -1
- package/avatar/style/index.mjs.map +1 -1
- package/avatargroup/index.mjs.map +1 -1
- package/avatargroup/style/index.mjs.map +1 -1
- package/badge/index.mjs.map +1 -1
- package/badge/style/index.mjs.map +1 -1
- package/badgedirective/index.d.ts +2 -2
- package/badgedirective/index.mjs.map +1 -1
- package/badgedirective/style/index.mjs.map +1 -1
- package/blockui/index.mjs.map +1 -1
- package/blockui/style/index.mjs.map +1 -1
- package/breadcrumb/Breadcrumb.vue +1 -1
- package/breadcrumb/index.mjs +2 -1
- package/breadcrumb/index.mjs.map +1 -1
- package/breadcrumb/style/index.d.ts +4 -0
- package/breadcrumb/style/index.mjs +2 -1
- package/breadcrumb/style/index.mjs.map +1 -1
- package/button/BaseButton.vue +4 -0
- package/button/index.d.ts +6 -0
- package/button/index.mjs +4 -0
- package/button/index.mjs.map +1 -1
- package/button/style/index.mjs +3 -3
- package/button/style/index.mjs.map +1 -1
- package/buttongroup/index.mjs.map +1 -1
- package/buttongroup/style/index.mjs +1 -1
- package/buttongroup/style/index.mjs.map +1 -1
- package/calendar/index.mjs.map +1 -1
- package/calendar/style/index.mjs.map +1 -1
- package/card/index.mjs.map +1 -1
- package/card/style/index.mjs.map +1 -1
- package/carousel/index.mjs.map +1 -1
- package/carousel/style/index.mjs +1 -1
- package/carousel/style/index.mjs.map +1 -1
- package/cascadeselect/BaseCascadeSelect.vue +8 -14
- package/cascadeselect/CascadeSelect.vue +34 -25
- package/cascadeselect/index.d.ts +45 -0
- package/cascadeselect/index.mjs +50 -38
- package/cascadeselect/index.mjs.map +1 -1
- package/cascadeselect/style/index.d.ts +4 -0
- package/cascadeselect/style/index.mjs +8 -5
- package/cascadeselect/style/index.mjs.map +1 -1
- package/chart/index.mjs.map +1 -1
- package/chart/style/index.mjs.map +1 -1
- package/checkbox/BaseCheckbox.vue +2 -19
- package/checkbox/Checkbox.vue +18 -6
- package/checkbox/index.d.ts +17 -0
- package/checkbox/index.mjs +20 -25
- package/checkbox/index.mjs.map +1 -1
- package/checkbox/style/index.mjs +5 -3
- package/checkbox/style/index.mjs.map +1 -1
- package/checkboxgroup/BaseCheckboxGroup.vue +16 -0
- package/checkboxgroup/CheckboxGroup.vue +29 -0
- package/checkboxgroup/index.d.ts +160 -0
- package/checkboxgroup/index.mjs +46 -0
- package/checkboxgroup/index.mjs.map +1 -0
- package/checkboxgroup/package.json +11 -0
- package/checkboxgroup/style/index.d.ts +19 -0
- package/checkboxgroup/style/index.mjs +17 -0
- package/checkboxgroup/style/index.mjs.map +1 -0
- package/checkboxgroup/style/package.json +6 -0
- package/chip/index.mjs.map +1 -1
- package/chip/style/index.mjs +1 -1
- package/chip/style/index.mjs.map +1 -1
- package/chips/index.mjs.map +1 -1
- package/chips/style/index.mjs.map +1 -1
- package/colorpicker/BaseColorPicker.vue +2 -10
- package/colorpicker/ColorPicker.vue +7 -4
- package/colorpicker/index.d.ts +22 -0
- package/colorpicker/index.mjs +21 -23
- package/colorpicker/index.mjs.map +1 -1
- package/colorpicker/style/index.mjs +5 -3
- package/colorpicker/style/index.mjs.map +1 -1
- package/column/index.mjs.map +1 -1
- package/column/style/index.mjs.map +1 -1
- package/columngroup/index.mjs.map +1 -1
- package/columngroup/style/index.mjs.map +1 -1
- package/config/index.d.ts +4 -0
- package/confirmationservice/index.mjs.map +1 -1
- package/confirmdialog/index.mjs.map +1 -1
- package/confirmdialog/style/index.mjs.map +1 -1
- package/confirmpopup/index.mjs.map +1 -1
- package/confirmpopup/style/index.mjs +1 -1
- package/confirmpopup/style/index.mjs.map +1 -1
- package/contextmenu/index.mjs.map +1 -1
- package/contextmenu/style/index.mjs +1 -1
- package/contextmenu/style/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +15 -6
- package/datatable/DataTable.vue +56 -2
- package/datatable/FooterCell.vue +15 -6
- package/datatable/HeaderCell.vue +15 -6
- package/datatable/index.d.ts +12 -8
- package/datatable/index.mjs +163 -78
- package/datatable/index.mjs.map +1 -1
- package/datatable/style/index.mjs +1 -1
- package/datatable/style/index.mjs.map +1 -1
- package/dataview/DataView.vue +33 -1
- package/dataview/index.d.ts +4 -0
- package/dataview/index.mjs +42 -6
- package/dataview/index.mjs.map +1 -1
- package/dataview/style/index.mjs.map +1 -1
- package/datepicker/BaseDatePicker.vue +2 -23
- package/datepicker/DatePicker.vue +39 -40
- package/datepicker/index.d.ts +21 -4
- package/datepicker/index.mjs +45 -65
- package/datepicker/index.mjs.map +1 -1
- package/datepicker/style/index.mjs +4 -5
- package/datepicker/style/index.mjs.map +1 -1
- package/deferredcontent/index.mjs.map +1 -1
- package/deferredcontent/style/index.mjs.map +1 -1
- package/dialog/index.mjs.map +1 -1
- package/dialog/style/index.mjs +1 -1
- package/dialog/style/index.mjs.map +1 -1
- package/dialogservice/index.mjs.map +1 -1
- package/divider/index.mjs.map +1 -1
- package/divider/style/index.mjs +1 -1
- package/divider/style/index.mjs.map +1 -1
- package/dock/index.mjs.map +1 -1
- package/dock/style/index.mjs +1 -1
- package/dock/style/index.mjs.map +1 -1
- package/drawer/index.mjs.map +1 -1
- package/drawer/style/index.mjs +1 -1
- package/drawer/style/index.mjs.map +1 -1
- package/dropdown/index.mjs.map +1 -1
- package/dropdown/style/index.mjs.map +1 -1
- package/dynamicdialog/index.mjs.map +1 -1
- package/dynamicdialog/style/index.mjs.map +1 -1
- package/editor/BaseEditor.vue +2 -3
- package/editor/Editor.vue +3 -3
- package/editor/index.d.ts +22 -0
- package/editor/index.mjs +5 -6
- package/editor/index.mjs.map +1 -1
- package/editor/style/index.mjs +7 -2
- package/editor/style/index.mjs.map +1 -1
- package/fieldset/index.mjs.map +1 -1
- package/fieldset/style/index.mjs +1 -1
- package/fieldset/style/index.mjs.map +1 -1
- package/fileupload/index.mjs.map +1 -1
- package/fileupload/style/index.mjs +1 -1
- package/fileupload/style/index.mjs.map +1 -1
- package/floatlabel/index.mjs.map +1 -1
- package/floatlabel/style/index.mjs +1 -1
- package/floatlabel/style/index.mjs.map +1 -1
- package/fluid/index.mjs.map +1 -1
- package/fluid/style/index.mjs.map +1 -1
- package/focustrap/index.mjs.map +1 -1
- package/focustrap/style/index.mjs.map +1 -1
- package/galleria/index.mjs.map +1 -1
- package/galleria/style/index.mjs +1 -1
- package/galleria/style/index.mjs.map +1 -1
- package/iconfield/index.mjs.map +1 -1
- package/iconfield/style/index.mjs +1 -1
- package/iconfield/style/index.mjs.map +1 -1
- package/iftalabel/index.mjs.map +1 -1
- package/iftalabel/style/index.mjs +1 -1
- package/iftalabel/style/index.mjs.map +1 -1
- package/image/index.mjs.map +1 -1
- package/image/style/index.mjs +1 -1
- package/image/style/index.mjs.map +1 -1
- package/imagecompare/ImageCompare.vue +33 -1
- package/imagecompare/index.mjs +35 -1
- package/imagecompare/index.mjs.map +1 -1
- package/imagecompare/style/index.mjs +1 -1
- package/imagecompare/style/index.mjs.map +1 -1
- package/index.d.ts +811 -0
- package/index.mjs +531 -0
- package/index.mjs.map +1 -0
- package/inlinemessage/index.mjs.map +1 -1
- package/inlinemessage/style/index.mjs.map +1 -1
- package/inplace/index.d.ts +0 -4
- package/inplace/index.mjs.map +1 -1
- package/inplace/style/index.mjs.map +1 -1
- package/inputchips/index.mjs.map +1 -1
- package/inputchips/style/index.mjs.map +1 -1
- package/inputgroup/index.mjs.map +1 -1
- package/inputgroup/style/index.mjs +1 -1
- package/inputgroup/style/index.mjs.map +1 -1
- package/inputgroupaddon/index.mjs.map +1 -1
- package/inputgroupaddon/style/index.mjs.map +1 -1
- package/inputicon/index.mjs.map +1 -1
- package/inputicon/style/index.mjs.map +1 -1
- package/inputmask/BaseInputMask.vue +2 -23
- package/inputmask/InputMask.vue +9 -14
- package/inputmask/index.d.ts +13 -0
- package/inputmask/index.mjs +13 -38
- package/inputmask/index.mjs.map +1 -1
- package/inputmask/style/index.mjs +1 -1
- package/inputmask/style/index.mjs.map +1 -1
- package/inputnumber/BaseInputNumber.vue +2 -22
- package/inputnumber/InputNumber.vue +14 -16
- package/inputnumber/index.d.ts +26 -0
- package/inputnumber/index.mjs +22 -39
- package/inputnumber/index.mjs.map +1 -1
- package/inputnumber/style/index.mjs +3 -3
- package/inputnumber/style/index.mjs.map +1 -1
- package/inputotp/BaseInputOtp.vue +2 -18
- package/inputotp/InputOtp.vue +4 -2
- package/inputotp/index.d.ts +21 -0
- package/inputotp/index.mjs +7 -21
- package/inputotp/index.mjs.map +1 -1
- package/inputotp/style/index.mjs +2 -2
- package/inputotp/style/index.mjs.map +1 -1
- package/inputswitch/index.mjs.map +1 -1
- package/inputswitch/style/index.mjs.map +1 -1
- package/inputtext/BaseInputText.vue +2 -21
- package/inputtext/InputText.vue +13 -22
- package/inputtext/index.d.ts +17 -0
- package/inputtext/index.mjs +16 -48
- package/inputtext/index.mjs.map +1 -1
- package/inputtext/style/index.mjs +7 -7
- package/inputtext/style/index.mjs.map +1 -1
- package/keyfilter/index.mjs.map +1 -1
- package/keyfilter/style/index.mjs.map +1 -1
- package/knob/BaseKnob.vue +2 -10
- package/knob/Knob.vue +23 -19
- package/knob/index.d.ts +24 -2
- package/knob/index.mjs +31 -32
- package/knob/index.mjs.map +1 -1
- package/knob/style/index.mjs +4 -2
- package/knob/style/index.mjs.map +1 -1
- package/listbox/BaseListbox.vue +2 -11
- package/listbox/Listbox.vue +21 -20
- package/listbox/index.d.ts +17 -0
- package/listbox/index.mjs +23 -31
- package/listbox/index.mjs.map +1 -1
- package/listbox/style/index.mjs +4 -3
- package/listbox/style/index.mjs.map +1 -1
- package/megamenu/index.mjs.map +1 -1
- package/megamenu/style/index.mjs +1 -1
- package/megamenu/style/index.mjs.map +1 -1
- package/menu/index.mjs.map +1 -1
- package/menu/style/index.mjs +1 -1
- package/menu/style/index.mjs.map +1 -1
- package/menubar/index.mjs.map +1 -1
- package/menubar/style/index.mjs +1 -1
- package/menubar/style/index.mjs.map +1 -1
- package/message/BaseMessage.vue +8 -0
- package/message/index.d.ts +9 -0
- package/message/index.mjs +8 -0
- package/message/index.mjs.map +1 -1
- package/message/style/index.mjs +7 -2
- package/message/style/index.mjs.map +1 -1
- package/metergroup/index.mjs.map +1 -1
- package/metergroup/style/index.mjs +1 -1
- package/metergroup/style/index.mjs.map +1 -1
- package/multiselect/BaseMultiSelect.vue +14 -19
- package/multiselect/MultiSelect.vue +45 -31
- package/multiselect/index.d.ts +50 -0
- package/multiselect/index.mjs +71 -52
- package/multiselect/index.mjs.map +1 -1
- package/multiselect/style/index.d.ts +4 -0
- package/multiselect/style/index.mjs +8 -5
- package/multiselect/style/index.mjs.map +1 -1
- package/orderlist/index.mjs.map +1 -1
- package/orderlist/style/index.mjs.map +1 -1
- package/organizationchart/index.mjs.map +1 -1
- package/organizationchart/style/index.mjs +1 -1
- package/organizationchart/style/index.mjs.map +1 -1
- package/overlaybadge/index.mjs.map +1 -1
- package/overlaybadge/style/index.mjs +1 -1
- package/overlaybadge/style/index.mjs.map +1 -1
- package/overlaypanel/index.mjs.map +1 -1
- package/overlaypanel/style/index.mjs.map +1 -1
- package/package.json +15 -6
- package/paginator/Paginator.vue +104 -84
- package/paginator/index.d.ts +54 -0
- package/paginator/index.mjs +21 -3
- package/paginator/index.mjs.map +1 -1
- package/paginator/style/index.mjs +1 -1
- package/paginator/style/index.mjs.map +1 -1
- package/panel/index.mjs.map +1 -1
- package/panel/style/index.mjs.map +1 -1
- package/panelmenu/index.mjs.map +1 -1
- package/panelmenu/style/index.mjs +1 -1
- package/panelmenu/style/index.mjs.map +1 -1
- package/passthrough/index.mjs.map +1 -1
- package/password/BasePassword.vue +2 -15
- package/password/Password.vue +13 -18
- package/password/index.d.ts +21 -0
- package/password/index.mjs +14 -32
- package/password/index.mjs.map +1 -1
- package/password/style/index.mjs +3 -3
- package/password/style/index.mjs.map +1 -1
- package/picklist/index.mjs.map +1 -1
- package/picklist/style/index.mjs.map +1 -1
- package/popover/index.mjs.map +1 -1
- package/popover/style/index.mjs +1 -1
- package/popover/style/index.mjs.map +1 -1
- package/portal/index.mjs.map +1 -1
- package/portal/style/index.mjs.map +1 -1
- package/progressbar/index.mjs.map +1 -1
- package/progressbar/style/index.mjs +1 -1
- package/progressbar/style/index.mjs.map +1 -1
- package/progressspinner/index.mjs.map +1 -1
- package/progressspinner/style/index.mjs.map +1 -1
- package/radiobutton/BaseRadioButton.vue +2 -19
- package/radiobutton/RadioButton.vue +15 -4
- package/radiobutton/index.d.ts +17 -0
- package/radiobutton/index.mjs +17 -23
- package/radiobutton/index.mjs.map +1 -1
- package/radiobutton/style/index.mjs +5 -3
- package/radiobutton/style/index.mjs.map +1 -1
- package/radiobuttongroup/BaseRadioButtonGroup.vue +16 -0
- package/radiobuttongroup/RadioButtonGroup.vue +29 -0
- package/radiobuttongroup/index.d.ts +160 -0
- package/radiobuttongroup/index.mjs +46 -0
- package/radiobuttongroup/index.mjs.map +1 -0
- package/radiobuttongroup/package.json +11 -0
- package/radiobuttongroup/style/index.d.ts +19 -0
- package/radiobuttongroup/style/index.mjs +17 -0
- package/radiobuttongroup/style/index.mjs.map +1 -0
- package/radiobuttongroup/style/package.json +6 -0
- package/rating/BaseRating.vue +2 -10
- package/rating/Rating.vue +17 -16
- package/rating/index.d.ts +18 -0
- package/rating/index.mjs +17 -23
- package/rating/index.mjs.map +1 -1
- package/rating/style/index.mjs +14 -5
- package/rating/style/index.mjs.map +1 -1
- package/ripple/index.mjs.map +1 -1
- package/ripple/style/index.mjs.map +1 -1
- package/row/index.mjs.map +1 -1
- package/row/style/index.mjs.map +1 -1
- package/scrollpanel/ScrollPanel.vue +38 -5
- package/scrollpanel/index.mjs +58 -28
- package/scrollpanel/index.mjs.map +1 -1
- package/scrollpanel/style/index.mjs +1 -1
- package/scrollpanel/style/index.mjs.map +1 -1
- package/scrolltop/index.mjs.map +1 -1
- package/scrolltop/style/index.mjs +1 -1
- package/scrolltop/style/index.mjs.map +1 -1
- package/select/BaseSelect.vue +2 -19
- package/select/Select.vue +15 -19
- package/select/index.d.ts +21 -0
- package/select/index.mjs +18 -40
- package/select/index.mjs.map +1 -1
- package/select/style/index.mjs +7 -5
- package/select/style/index.mjs.map +1 -1
- package/selectbutton/BaseSelectButton.vue +6 -8
- package/selectbutton/SelectButton.vue +9 -8
- package/selectbutton/index.d.ts +21 -0
- package/selectbutton/index.mjs +15 -16
- package/selectbutton/index.mjs.map +1 -1
- package/selectbutton/style/index.mjs +3 -3
- package/selectbutton/style/index.mjs.map +1 -1
- package/sidebar/index.mjs.map +1 -1
- package/sidebar/style/index.mjs.map +1 -1
- package/skeleton/index.mjs.map +1 -1
- package/skeleton/style/index.mjs +1 -1
- package/skeleton/style/index.mjs.map +1 -1
- package/slider/BaseSlider.vue +2 -7
- package/slider/Slider.vue +94 -38
- package/slider/index.d.ts +22 -0
- package/slider/index.mjs +145 -72
- package/slider/index.mjs.map +1 -1
- package/slider/style/index.mjs +4 -2
- package/slider/style/index.mjs.map +1 -1
- package/speeddial/index.mjs.map +1 -1
- package/speeddial/style/index.mjs +1 -1
- package/speeddial/style/index.mjs.map +1 -1
- package/splitbutton/index.mjs.map +1 -1
- package/splitbutton/style/index.mjs +1 -1
- package/splitbutton/style/index.mjs.map +1 -1
- package/splitter/Splitter.vue +31 -3
- package/splitter/index.mjs +50 -20
- package/splitter/index.mjs.map +1 -1
- package/splitter/style/index.mjs.map +1 -1
- package/splitterpanel/index.mjs.map +1 -1
- package/splitterpanel/style/index.mjs.map +1 -1
- package/step/index.mjs.map +1 -1
- package/step/style/index.mjs.map +1 -1
- package/stepitem/index.mjs.map +1 -1
- package/stepitem/style/index.mjs.map +1 -1
- package/steplist/index.mjs.map +1 -1
- package/steplist/style/index.mjs.map +1 -1
- package/steppanel/index.mjs.map +1 -1
- package/steppanel/style/index.mjs.map +1 -1
- package/steppanels/index.mjs.map +1 -1
- package/steppanels/style/index.mjs.map +1 -1
- package/stepper/index.mjs.map +1 -1
- package/stepper/style/index.mjs +1 -1
- package/stepper/style/index.mjs.map +1 -1
- package/steps/index.mjs.map +1 -1
- package/steps/style/index.mjs +1 -1
- package/steps/style/index.mjs.map +1 -1
- package/styleclass/index.mjs.map +1 -1
- package/styleclass/style/index.mjs.map +1 -1
- package/tab/index.mjs.map +1 -1
- package/tab/style/index.mjs.map +1 -1
- package/tablist/TabList.vue +40 -5
- package/tablist/index.mjs +38 -5
- package/tablist/index.mjs.map +1 -1
- package/tablist/style/index.mjs.map +1 -1
- package/tabmenu/index.mjs.map +1 -1
- package/tabmenu/style/index.mjs.map +1 -1
- package/tabpanel/index.mjs.map +1 -1
- package/tabpanel/style/index.mjs.map +1 -1
- package/tabpanels/index.mjs.map +1 -1
- package/tabpanels/style/index.mjs.map +1 -1
- package/tabs/index.mjs.map +1 -1
- package/tabs/style/index.mjs +1 -1
- package/tabs/style/index.mjs.map +1 -1
- package/tabview/index.mjs.map +1 -1
- package/tabview/style/index.mjs.map +1 -1
- package/tag/index.mjs.map +1 -1
- package/tag/style/index.mjs.map +1 -1
- package/terminal/index.mjs.map +1 -1
- package/terminal/style/index.mjs +1 -1
- package/terminal/style/index.mjs.map +1 -1
- package/textarea/BaseTextarea.vue +3 -16
- package/textarea/Textarea.vue +13 -19
- package/textarea/index.d.ts +21 -0
- package/textarea/index.mjs +14 -38
- package/textarea/index.mjs.map +1 -1
- package/textarea/style/index.mjs +7 -5
- package/textarea/style/index.mjs.map +1 -1
- package/tieredmenu/index.mjs.map +1 -1
- package/tieredmenu/style/index.mjs +1 -1
- package/tieredmenu/style/index.mjs.map +1 -1
- package/timeline/index.mjs.map +1 -1
- package/timeline/style/index.mjs.map +1 -1
- package/toast/Toast.vue +0 -1
- package/toast/index.mjs.map +1 -1
- package/toast/style/index.mjs +1 -1
- package/toast/style/index.mjs.map +1 -1
- package/toastservice/index.mjs.map +1 -1
- package/togglebutton/BaseToggleButton.vue +6 -11
- package/togglebutton/ToggleButton.vue +11 -7
- package/togglebutton/index.d.ts +21 -0
- package/togglebutton/index.mjs +20 -18
- package/togglebutton/index.mjs.map +1 -1
- package/togglebutton/style/index.mjs +4 -2
- package/togglebutton/style/index.mjs.map +1 -1
- package/toggleswitch/BaseToggleSwitch.vue +2 -14
- package/toggleswitch/ToggleSwitch.vue +4 -3
- package/toggleswitch/index.d.ts +17 -0
- package/toggleswitch/index.mjs +7 -17
- package/toggleswitch/index.mjs.map +1 -1
- package/toggleswitch/style/index.mjs +2 -2
- package/toggleswitch/style/index.mjs.map +1 -1
- package/toolbar/index.mjs.map +1 -1
- package/toolbar/style/index.mjs.map +1 -1
- package/tooltip/index.mjs.map +1 -1
- package/tooltip/style/index.mjs.map +1 -1
- package/tree/TreeNode.vue +1 -1
- package/tree/index.mjs +2 -2
- package/tree/index.mjs.map +1 -1
- package/tree/style/index.mjs +1 -1
- package/tree/style/index.mjs.map +1 -1
- package/treeselect/BaseTreeSelect.vue +18 -19
- package/treeselect/TreeSelect.vue +61 -18
- package/treeselect/index.d.ts +80 -26
- package/treeselect/index.mjs +87 -38
- package/treeselect/index.mjs.map +1 -1
- package/treeselect/style/index.d.ts +4 -0
- package/treeselect/style/index.mjs +8 -5
- package/treeselect/style/index.mjs.map +1 -1
- package/treetable/BodyCell.vue +21 -12
- package/treetable/FooterCell.vue +15 -6
- package/treetable/HeaderCell.vue +15 -6
- package/treetable/TreeTable.vue +57 -2
- package/treetable/index.d.ts +12 -8
- package/treetable/index.mjs +146 -59
- package/treetable/index.mjs.map +1 -1
- package/treetable/style/index.mjs +1 -1
- package/treetable/style/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/useconfirm/index.mjs.map +1 -1
- package/usedialog/index.mjs.map +1 -1
- package/usetoast/index.mjs.map +1 -1
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs.map +1 -1
- package/web-types.json +1 -1
package/treetable/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/treetable/BaseTreeTable.vue","../../src/treetable/FooterCell.vue","../../src/treetable/FooterCell.vue?vue&type=template&id=c71b81f4&lang.js","../../src/treetable/HeaderCell.vue","../../src/treetable/HeaderCell.vue?vue&type=template&id=34e29913&lang.js","../../src/treetable/BodyCell.vue","../../src/treetable/BodyCell.vue?vue&type=template&id=e715e3f8&lang.js","../../src/treetable/TreeTableRow.vue","../../src/treetable/TreeTableRow.vue?vue&type=template&id=577a9632&lang.js","../../src/treetable/TreeTable.vue","../../src/treetable/TreeTable.vue?vue&type=template&id=49e9fa2e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TreeTableStyle from 'primevue/treetable/style';\n\nexport default {\n name: 'BaseTreeTable',\n extends: BaseComponent,\n props: {\n value: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rows: {\n type: Number,\n default: 0\n },\n first: {\n type: Number,\n default: 0\n },\n totalRecords: {\n type: Number,\n default: 0\n },\n paginator: {\n type: Boolean,\n default: false\n },\n paginatorPosition: {\n type: String,\n default: 'bottom'\n },\n alwaysShowPaginator: {\n type: Boolean,\n default: true\n },\n paginatorTemplate: {\n type: String,\n default: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n pageLinkSize: {\n type: Number,\n default: 5\n },\n rowsPerPageOptions: {\n type: Array,\n default: null\n },\n currentPageReportTemplate: {\n type: String,\n default: '({currentPage} of {totalPages})'\n },\n lazy: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n autoLayout: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n defaultSortOrder: {\n type: Number,\n default: 1\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n removableSort: {\n type: Boolean,\n default: false\n },\n filters: {\n type: Object,\n default: null\n },\n filterMode: {\n type: String,\n default: 'lenient'\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n columnResizeMode: {\n type: String,\n default: 'fit'\n },\n indentation: {\n type: Number,\n default: 1\n },\n showGridlines: {\n type: Boolean,\n default: false\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n scrollHeight: {\n type: String,\n default: null\n },\n size: {\n type: String,\n default: null\n },\n tableStyle: {\n type: null,\n default: null\n },\n tableClass: {\n type: [String, Object],\n default: null\n },\n tableProps: {\n type: Object,\n default: null\n }\n },\n style: TreeTableStyle,\n provide() {\n return {\n $pcTreeTable: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n frozen: this.columnProp('frozen'),\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let right = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n frozen: this.columnProp('frozen'),\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let right = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <th\n :class=\"containerClass\"\n :style=\"[containerStyle]\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n :aria-sort=\"ariaSort\"\n role=\"columnheader\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sortIcon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"getColumnPT('pcSortBadge')\" :value=\"getMultiSortMetaIndex() + 1\" size=\"small\" />\n </div>\n </th>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth, getAttribute, getIndex } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['column-click', 'column-resizestart'],\n props: {\n column: {\n type: Object,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sorted: this.isColumnSorted(),\n frozen: this.$parentInstance.scrollable && this.columnProp('frozen'),\n resizable: this.resizableColumns,\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let right = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n\n event.preventDefault();\n }\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n let index = -1;\n\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n let meta = this.multiSortMeta[i];\n\n if (meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')) {\n index = i;\n break;\n }\n }\n\n return index;\n },\n isMultiSorted() {\n return this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('headerClass'), this.columnProp('class'), this.cx('headerCell')];\n },\n containerStyle() {\n let headerStyle = this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :class=\"containerClass\"\n :style=\"[containerStyle]\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n :aria-sort=\"ariaSort\"\n role=\"columnheader\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sortIcon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"getColumnPT('pcSortBadge')\" :value=\"getMultiSortMetaIndex() + 1\" size=\"small\" />\n </div>\n </th>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth, getAttribute, getIndex } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['column-click', 'column-resizestart'],\n props: {\n column: {\n type: Object,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sorted: this.isColumnSorted(),\n frozen: this.$parentInstance.scrollable && this.columnProp('frozen'),\n resizable: this.resizableColumns,\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let right = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n\n event.preventDefault();\n }\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n let index = -1;\n\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n let meta = this.multiSortMeta[i];\n\n if (meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')) {\n index = i;\n break;\n }\n }\n\n return index;\n },\n isMultiSorted() {\n return this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('headerClass'), this.columnProp('class'), this.cx('headerCell')];\n },\n containerStyle() {\n let headerStyle = this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <div :class=\"cx('bodyCellContent')\" v-bind=\"getColumnPT('bodyCellContent')\">\n <button v-if=\"columnProp('expander')\" v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" :style=\"togglerStyle\" tabindex=\"-1\" v-bind=\"getColumnPT('nodeToggleButton')\" data-pc-group-section=\"rowactionbutton\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <component v-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"templates['nodetogglericon']\" :is=\"templates['nodetogglericon']\" />\n <SpinnerIcon v-else spin v-bind=\"ptm('nodetoggleicon')\" />\n </template>\n <template v-else>\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('rowToggleIcon')\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('rowToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n <Checkbox\n v-if=\"checkboxSelectionMode && columnProp('expander')\"\n :modelValue=\"checked\"\n :binary=\"true\"\n :class=\"cx('pcNodeCheckbox')\"\n @change=\"toggleCheckbox\"\n :tabindex=\"-1\"\n :indeterminate=\"partialChecked\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnCheckboxPT('pcNodeCheckbox')\"\n :data-p-partialchecked=\"partialChecked\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"column.children && column.children.body\" :is=\"column.children.body\" :node=\"node\" :column=\"column\" />\n <template v-else>{{ resolveFieldData(node.data, columnProp('field')) }}</template>\n </div>\n </td>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-toggle', 'checkbox-toggle'],\n props: {\n node: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n leaf: {\n type: Boolean,\n default: false\n },\n expanded: {\n type: Boolean,\n default: false\n },\n selectionMode: {\n type: String,\n default: null\n },\n checked: {\n type: Boolean,\n default: false\n },\n partialChecked: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.$parent.selected,\n frozen: this.columnProp('frozen'),\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n getColumnCheckboxPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n partialChecked: this.partialChecked\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let right = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n }\n },\n resolveFieldData(rowData, field) {\n return resolveFieldData(rowData, field);\n },\n toggleCheckbox() {\n this.$emit('checkbox-toggle');\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n togglerStyle() {\n return {\n marginLeft: this.level * this.indentation + 'rem',\n visibility: this.leaf ? 'hidden' : 'visible'\n };\n },\n checkboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n }\n },\n components: {\n Checkbox,\n ChevronRightIcon,\n ChevronDownIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <div :class=\"cx('bodyCellContent')\" v-bind=\"getColumnPT('bodyCellContent')\">\n <button v-if=\"columnProp('expander')\" v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" :style=\"togglerStyle\" tabindex=\"-1\" v-bind=\"getColumnPT('nodeToggleButton')\" data-pc-group-section=\"rowactionbutton\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <component v-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"templates['nodetogglericon']\" :is=\"templates['nodetogglericon']\" />\n <SpinnerIcon v-else spin v-bind=\"ptm('nodetoggleicon')\" />\n </template>\n <template v-else>\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('rowToggleIcon')\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('rowToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n <Checkbox\n v-if=\"checkboxSelectionMode && columnProp('expander')\"\n :modelValue=\"checked\"\n :binary=\"true\"\n :class=\"cx('pcNodeCheckbox')\"\n @change=\"toggleCheckbox\"\n :tabindex=\"-1\"\n :indeterminate=\"partialChecked\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnCheckboxPT('pcNodeCheckbox')\"\n :data-p-partialchecked=\"partialChecked\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"column.children && column.children.body\" :is=\"column.children.body\" :node=\"node\" :column=\"column\" />\n <template v-else>{{ resolveFieldData(node.data, columnProp('field')) }}</template>\n </div>\n </td>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-toggle', 'checkbox-toggle'],\n props: {\n node: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n leaf: {\n type: Boolean,\n default: false\n },\n expanded: {\n type: Boolean,\n default: false\n },\n selectionMode: {\n type: String,\n default: null\n },\n checked: {\n type: Boolean,\n default: false\n },\n partialChecked: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.$parent.selected,\n frozen: this.columnProp('frozen'),\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n getColumnCheckboxPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n partialChecked: this.partialChecked\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let right = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n }\n },\n resolveFieldData(rowData, field) {\n return resolveFieldData(rowData, field);\n },\n toggleCheckbox() {\n this.$emit('checkbox-toggle');\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n togglerStyle() {\n return {\n marginLeft: this.level * this.indentation + 'rem',\n visibility: this.leaf ? 'hidden' : 'visible'\n };\n },\n checkboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n }\n },\n components: {\n Checkbox,\n ChevronRightIcon,\n ChevronDownIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <tr\n ref=\"node\"\n :class=\"containerClass\"\n :style=\"node.style\"\n :tabindex=\"tabindex\"\n role=\"row\"\n :aria-expanded=\"node.children && node.children.length ? expanded : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"ariaPosInset\"\n :aria-selected=\"getAriaSelected\"\n :aria-checked=\"checked || undefined\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @touchend=\"onTouchEnd\"\n @contextmenu=\"onRowRightClick\"\n v-bind=\"ptm('row', ptmOptions)\"\n :data-p-selected=\"selected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTBodyCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :node=\"node\"\n :level=\"level\"\n :leaf=\"leaf\"\n :indentation=\"indentation\"\n :expanded=\"expanded\"\n :selectionMode=\"selectionMode\"\n :checked=\"checked\"\n :partialChecked=\"partialChecked\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @checkbox-toggle=\"toggleCheckbox\"\n :index=\"i\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTBodyCell>\n </template>\n </tr>\n <template v-if=\"expanded && node.children && node.children.length\">\n <TreeTableRow\n v-for=\"childNode of node.children\"\n :key=\"nodeKey(childNode)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"childNode\"\n :parentNode=\"node\"\n :level=\"level + 1\"\n :expandedKeys=\"expandedKeys\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :indentation=\"indentation\"\n :ariaPosInset=\"node.children.indexOf(childNode) + 1\"\n :ariaSetSize=\"node.children.length\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @node-click=\"$emit('node-click', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @checkbox-change=\"onCheckboxChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n</template>\n\n<script>\nimport { find, findSingle, focus, getAttribute, isClickable } from '@primeuix/utils/dom';\nimport { equals, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'TreeTableRow',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],\n props: {\n node: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n parentNode: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n tabindex: {\n type: Number,\n default: -1\n },\n ariaSetSize: {\n type: Number,\n default: null\n },\n ariaPosInset: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n templates: {\n type: Object,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n }\n },\n nodeTouched: false,\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n onClick(event) {\n if (isClickable(event.target) || getAttribute(event.target, 'data-pc-section') === 'nodetogglebutton' || getAttribute(event.target, 'data-pc-section') === 'rowtoggleicon' || event.target.tagName === 'path') {\n return;\n }\n\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n this.nodeTouched = false;\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n node: this.node\n });\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n onKeyDown(event, item) {\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 'Enter':\n case 'NumpadEnter':\n case 'Space':\n if (!isClickable(event.target)) {\n this.onEnterKey(event, item);\n }\n\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextElementSibling = event.currentTarget.nextElementSibling;\n\n nextElementSibling && this.focusRowChange(event.currentTarget, nextElementSibling);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const previousElementSibling = event.currentTarget.previousElementSibling;\n\n previousElementSibling && this.focusRowChange(event.currentTarget, previousElementSibling);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const ishiddenIcon = findSingle(event.currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(this.$refs.node, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (ishiddenIcon) return;\n\n !this.expanded && togglerElement.click();\n\n this.$nextTick(() => {\n this.onArrowDownKey(event);\n });\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (this.level === 0 && !this.expanded) {\n return;\n }\n\n const currentTarget = event.currentTarget;\n const ishiddenIcon = findSingle(currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.expanded && !ishiddenIcon) {\n togglerElement.click();\n\n return;\n }\n\n const target = this.findBeforeClickableNode(currentTarget);\n\n target && this.focusRowChange(currentTarget, target);\n },\n onHomeKey(event) {\n const findFirstElement = findSingle(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n\n findFirstElement && focus(findFirstElement);\n\n event.preventDefault();\n },\n onEndKey(event) {\n const nodes = find(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n const findFirstElement = nodes[nodes.length - 1];\n\n focus(findFirstElement);\n\n event.preventDefault();\n },\n onEnterKey(event) {\n event.preventDefault();\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n if (this.selectionMode === 'checkbox') {\n this.toggleCheckbox();\n\n return;\n }\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n\n this.nodeTouched = false;\n },\n onTabKey() {\n const rows = [...find(this.$refs.node.parentElement, 'tr')];\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-p-selected') || row.getAttribute('aria-checked') === 'true');\n\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-selected') || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const prevNode = node.previousElementSibling;\n\n if (prevNode) {\n const prevNodeButton = prevNode.querySelector('button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return prevNode;\n }\n\n return this.findBeforeClickableNode(prevNode);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n else delete selectionKeys[this.nodeKey(node)];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onCheckboxChange(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.node.parentElement, 'tr')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.node.styleClass, this.cx('row')];\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.nodeKey(this.node)] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;\n },\n isSelectedWithContextMenu() {\n if (this.node && this.contextMenuSelection) {\n return equals(this.node, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].partialChecked : false;\n },\n getAriaSelected() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : null;\n },\n ptmOptions() {\n return {\n context: {\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.selected,\n scrollable: this.$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n TTBodyCell: BodyCell\n }\n};\n</script>\n","<template>\n <tr\n ref=\"node\"\n :class=\"containerClass\"\n :style=\"node.style\"\n :tabindex=\"tabindex\"\n role=\"row\"\n :aria-expanded=\"node.children && node.children.length ? expanded : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"ariaPosInset\"\n :aria-selected=\"getAriaSelected\"\n :aria-checked=\"checked || undefined\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @touchend=\"onTouchEnd\"\n @contextmenu=\"onRowRightClick\"\n v-bind=\"ptm('row', ptmOptions)\"\n :data-p-selected=\"selected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTBodyCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :node=\"node\"\n :level=\"level\"\n :leaf=\"leaf\"\n :indentation=\"indentation\"\n :expanded=\"expanded\"\n :selectionMode=\"selectionMode\"\n :checked=\"checked\"\n :partialChecked=\"partialChecked\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @checkbox-toggle=\"toggleCheckbox\"\n :index=\"i\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTBodyCell>\n </template>\n </tr>\n <template v-if=\"expanded && node.children && node.children.length\">\n <TreeTableRow\n v-for=\"childNode of node.children\"\n :key=\"nodeKey(childNode)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"childNode\"\n :parentNode=\"node\"\n :level=\"level + 1\"\n :expandedKeys=\"expandedKeys\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :indentation=\"indentation\"\n :ariaPosInset=\"node.children.indexOf(childNode) + 1\"\n :ariaSetSize=\"node.children.length\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @node-click=\"$emit('node-click', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @checkbox-change=\"onCheckboxChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n</template>\n\n<script>\nimport { find, findSingle, focus, getAttribute, isClickable } from '@primeuix/utils/dom';\nimport { equals, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'TreeTableRow',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],\n props: {\n node: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n parentNode: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n tabindex: {\n type: Number,\n default: -1\n },\n ariaSetSize: {\n type: Number,\n default: null\n },\n ariaPosInset: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n templates: {\n type: Object,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n }\n },\n nodeTouched: false,\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n onClick(event) {\n if (isClickable(event.target) || getAttribute(event.target, 'data-pc-section') === 'nodetogglebutton' || getAttribute(event.target, 'data-pc-section') === 'rowtoggleicon' || event.target.tagName === 'path') {\n return;\n }\n\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n this.nodeTouched = false;\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n node: this.node\n });\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n onKeyDown(event, item) {\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 'Enter':\n case 'NumpadEnter':\n case 'Space':\n if (!isClickable(event.target)) {\n this.onEnterKey(event, item);\n }\n\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextElementSibling = event.currentTarget.nextElementSibling;\n\n nextElementSibling && this.focusRowChange(event.currentTarget, nextElementSibling);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const previousElementSibling = event.currentTarget.previousElementSibling;\n\n previousElementSibling && this.focusRowChange(event.currentTarget, previousElementSibling);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const ishiddenIcon = findSingle(event.currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(this.$refs.node, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (ishiddenIcon) return;\n\n !this.expanded && togglerElement.click();\n\n this.$nextTick(() => {\n this.onArrowDownKey(event);\n });\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (this.level === 0 && !this.expanded) {\n return;\n }\n\n const currentTarget = event.currentTarget;\n const ishiddenIcon = findSingle(currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.expanded && !ishiddenIcon) {\n togglerElement.click();\n\n return;\n }\n\n const target = this.findBeforeClickableNode(currentTarget);\n\n target && this.focusRowChange(currentTarget, target);\n },\n onHomeKey(event) {\n const findFirstElement = findSingle(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n\n findFirstElement && focus(findFirstElement);\n\n event.preventDefault();\n },\n onEndKey(event) {\n const nodes = find(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n const findFirstElement = nodes[nodes.length - 1];\n\n focus(findFirstElement);\n\n event.preventDefault();\n },\n onEnterKey(event) {\n event.preventDefault();\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n if (this.selectionMode === 'checkbox') {\n this.toggleCheckbox();\n\n return;\n }\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n\n this.nodeTouched = false;\n },\n onTabKey() {\n const rows = [...find(this.$refs.node.parentElement, 'tr')];\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-p-selected') || row.getAttribute('aria-checked') === 'true');\n\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-selected') || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const prevNode = node.previousElementSibling;\n\n if (prevNode) {\n const prevNodeButton = prevNode.querySelector('button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return prevNode;\n }\n\n return this.findBeforeClickableNode(prevNode);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n else delete selectionKeys[this.nodeKey(node)];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onCheckboxChange(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.node.parentElement, 'tr')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.node.styleClass, this.cx('row')];\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.nodeKey(this.node)] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;\n },\n isSelectedWithContextMenu() {\n if (this.node && this.contextMenuSelection) {\n return equals(this.node, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].partialChecked : false;\n },\n getAriaSelected() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : null;\n },\n ptmOptions() {\n return {\n context: {\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.selected,\n scrollable: this.$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n TTBodyCell: BodyCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-treetable-scrollable-body\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading && loadingMode === 'mask'\" :class=\"cx('loading')\" v-bind=\"ptm('loading')\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <component :is=\"loadingIcon ? 'span' : 'SpinnerIcon'\" spin :class=\"[cx('loadingIcon'), loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <TTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: scrollHeight }]\" v-bind=\"ptm('tableContainer')\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"tableStyle\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"ptm('thead')\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTHeaderCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :resizableColumns=\"resizableColumns\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :sortMode=\"sortMode\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n :index=\"i\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTHeaderCell>\n </template>\n </tr>\n <tr v-if=\"hasColumnFilter()\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th v-if=\"!columnProp(col, 'hidden')\" :class=\"getFilterColumnHeaderClass(col)\" :style=\"[columnProp(col, 'style'), columnProp(col, 'filterHeaderStyle')]\" v-bind=\"ptm('headerCell', ptHeaderCellOptions(col))\">\n <component v-if=\"col.children && col.children.filter\" :is=\"col.children.filter\" :column=\"col\" :index=\"i\" />\n </th>\n </template>\n </tr>\n </thead>\n <tbody :class=\"cx('tbody')\" role=\"rowgroup\" v-bind=\"ptm('tbody')\">\n <template v-if=\"!empty\">\n <TTRow\n v-for=\"(node, index) of dataToRender\"\n :key=\"nodeKey(node)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"node\"\n :level=\"0\"\n :expandedKeys=\"d_expandedKeys\"\n :indentation=\"indentation\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :ariaSetSize=\"dataToRender.length\"\n :ariaPosInset=\"index + 1\"\n :tabindex=\"setTabindex(node, index)\"\n :loadingMode=\"loadingMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :templates=\"$slots\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n @checkbox-change=\"onCheckboxChange\"\n @row-rightclick=\"onRowRightClick($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTRow>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columns.length\" v-bind=\"ptm('emptyMessageCell')\">\n <slot name=\"empty\"></slot>\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"ptm('tfoot')\">\n <tr role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :unstyled=\"unstyled\" :pt=\"pt\"></TTFooterCell>\n </template>\n </tr>\n </tfoot>\n </table>\n </div>\n <TTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n </div>\n</template>\n\n<script>\nimport { addStyle, clearSelection, find, getAttribute, getIndex, getOffset, getOuterWidth, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { getVNodeProp, HelperSet } from '@primevue/core/utils';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport BaseTreeTable from './BaseTreeTable.vue';\nimport FooterCell from './FooterCell.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport TreeTableRow from './TreeTableRow.vue';\n\nexport default {\n name: 'TreeTable',\n extends: BaseTreeTable,\n inheritAttrs: false,\n emits: [\n 'node-expand',\n 'node-collapse',\n 'update:expandedKeys',\n 'update:selectionKeys',\n 'node-select',\n 'node-unselect',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'column-resize-end',\n 'update:contextMenuSelection',\n 'row-contextmenu'\n ],\n provide() {\n return {\n $columns: this.d_columns\n };\n },\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n hasASelectedNode: false,\n d_columns: new HelperSet({ type: 'Column' })\n };\n },\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n },\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n }\n },\n beforeUnmount() {\n this.destroyStyleElement();\n this.d_columns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n ptHeaderCellOptions(column) {\n return {\n context: {\n frozen: this.columnProp(column, 'frozen')\n }\n };\n },\n onNodeToggle(node) {\n const key = this.nodeKey(node);\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.rowSelectionMode && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[nodeKey] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.node);\n this.$emit('row-contextmenu', event);\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n onPage(event) {\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.d_expandedKeys = {};\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass')];\n },\n onColumnHeaderClick(e) {\n let event = e.originalEvent;\n let column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n targetNode.closest('[data-p-sortable-column=\"true\"]')\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n }\n }\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n sortSingle(nodes) {\n return this.sortNodesSingle(nodes);\n },\n sortNodesSingle(nodes) {\n let _nodes = [...nodes];\n const comparer = localeComparator();\n\n _nodes.sort((node1, node2) => {\n const value1 = resolveFieldData(node1.data, this.d_sortField);\n const value2 = resolveFieldData(node2.data, this.d_sortField);\n\n return sort(value1, value2, this.d_sortOrder, comparer);\n });\n\n return _nodes;\n },\n sortMultiple(nodes) {\n return this.sortNodesMultiple(nodes);\n },\n sortNodesMultiple(nodes) {\n let _nodes = [...nodes];\n\n _nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, 0);\n });\n\n return _nodes;\n },\n multisortField(node1, node2, index) {\n const value1 = resolveFieldData(node1.data, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(node2.data, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer);\n },\n filter(value) {\n let filteredNodes = [];\n const strict = this.filterMode === 'strict';\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n\n for (let j = 0; j < this.columns.length; j++) {\n let col = this.columns[j];\n let filterField = this.columnProp(col, 'filterField') || this.columnProp(col, 'field');\n\n //local\n if (Object.prototype.hasOwnProperty.call(this.filters, filterField)) {\n let filterMatchMode = this.columnProp(col, 'filterMatchMode') || 'startsWith';\n let filterValue = this.filters[filterField];\n let filterConstraint = FilterService.filters[filterMatchMode];\n let paramsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!strict && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n //global\n if (this.hasGlobalFilter() && !globalMatch) {\n let copyNodeForGlobal = { ...copyNode };\n let filterValue = this.filters['global'];\n let filterConstraint = FilterService.filters['contains'];\n let globalFilterParamsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && (this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode))) ||\n (!strict && (this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n\n if (this.hasGlobalFilter()) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredNodes.push(copyNode);\n }\n }\n\n let filterEvent = this.createLazyLoadEvent(event);\n\n filterEvent.filteredValue = filteredNodes;\n this.$emit('filter', filterEvent);\n\n return filteredNodes;\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { filterField, filterValue, filterConstraint, strict }) {\n let matched = false;\n let dataFieldValue = resolveFieldData(node.data, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { filterField, filterValue, filterConstraint, strict }) || matched;\n }\n\n return matched;\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)] === true : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n createLazyLoadEvent(event) {\n let filterMatchModes;\n\n if (this.hasFilters()) {\n filterMatchModes = {};\n this.columns.forEach((col) => {\n if (this.columnProp(col, 'field')) {\n filterMatchModes[col.props.field] = this.columnProp(col, 'filterMatchMode');\n }\n });\n }\n\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.filters,\n filterMatchModes: filterMatchModes\n };\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"treetable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n });\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnKeyDown(event, col) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.onColumnHeaderClick(event, col);\n }\n },\n hasColumnFilter() {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.children && col.children.filter) {\n return true;\n }\n }\n }\n\n return false;\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n getItemLabel(node) {\n return node.data.name;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n setTabindex(node, index) {\n if (this.isNodeSelected(node)) {\n this.hasASelectedNode = true;\n\n return 0;\n }\n\n if (this.selectionMode) {\n if (!this.isNodeSelected(node) && index === 0 && !this.hasASelectedNode) return 0;\n } else if (!this.selectionMode && index === 0) {\n return 0;\n }\n\n return -1;\n }\n },\n computed: {\n columns() {\n return this.d_columns.get(this);\n },\n processedData() {\n if (this.lazy) {\n return this.value;\n } else {\n if (this.value && this.value.length) {\n let data = this.value;\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n\n if (this.hasFilters()) {\n data = this.filter(data);\n }\n\n return data;\n } else {\n return null;\n }\n }\n },\n dataToRender() {\n const data = this.processedData;\n\n if (this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return data.slice(first, first + this.d_rows);\n } else {\n return data;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n hasFooter() {\n let hasFooter = false;\n\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n\n return hasFooter;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n singleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'single';\n },\n multipleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'multiple';\n },\n rowSelectionMode() {\n return this.singleSelectionMode || this.multipleSelectionMode;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n }\n },\n components: {\n TTRow: TreeTableRow,\n TTPaginator: Paginator,\n TTHeaderCell: HeaderCell,\n TTFooterCell: FooterCell,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-treetable-scrollable-body\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading && loadingMode === 'mask'\" :class=\"cx('loading')\" v-bind=\"ptm('loading')\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <component :is=\"loadingIcon ? 'span' : 'SpinnerIcon'\" spin :class=\"[cx('loadingIcon'), loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <TTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: scrollHeight }]\" v-bind=\"ptm('tableContainer')\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"tableStyle\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"ptm('thead')\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTHeaderCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :resizableColumns=\"resizableColumns\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :sortMode=\"sortMode\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n :index=\"i\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTHeaderCell>\n </template>\n </tr>\n <tr v-if=\"hasColumnFilter()\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th v-if=\"!columnProp(col, 'hidden')\" :class=\"getFilterColumnHeaderClass(col)\" :style=\"[columnProp(col, 'style'), columnProp(col, 'filterHeaderStyle')]\" v-bind=\"ptm('headerCell', ptHeaderCellOptions(col))\">\n <component v-if=\"col.children && col.children.filter\" :is=\"col.children.filter\" :column=\"col\" :index=\"i\" />\n </th>\n </template>\n </tr>\n </thead>\n <tbody :class=\"cx('tbody')\" role=\"rowgroup\" v-bind=\"ptm('tbody')\">\n <template v-if=\"!empty\">\n <TTRow\n v-for=\"(node, index) of dataToRender\"\n :key=\"nodeKey(node)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"node\"\n :level=\"0\"\n :expandedKeys=\"d_expandedKeys\"\n :indentation=\"indentation\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :ariaSetSize=\"dataToRender.length\"\n :ariaPosInset=\"index + 1\"\n :tabindex=\"setTabindex(node, index)\"\n :loadingMode=\"loadingMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :templates=\"$slots\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n @checkbox-change=\"onCheckboxChange\"\n @row-rightclick=\"onRowRightClick($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTRow>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columns.length\" v-bind=\"ptm('emptyMessageCell')\">\n <slot name=\"empty\"></slot>\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"ptm('tfoot')\">\n <tr role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :unstyled=\"unstyled\" :pt=\"pt\"></TTFooterCell>\n </template>\n </tr>\n </tfoot>\n </table>\n </div>\n <TTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n </div>\n</template>\n\n<script>\nimport { addStyle, clearSelection, find, getAttribute, getIndex, getOffset, getOuterWidth, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { getVNodeProp, HelperSet } from '@primevue/core/utils';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport BaseTreeTable from './BaseTreeTable.vue';\nimport FooterCell from './FooterCell.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport TreeTableRow from './TreeTableRow.vue';\n\nexport default {\n name: 'TreeTable',\n extends: BaseTreeTable,\n inheritAttrs: false,\n emits: [\n 'node-expand',\n 'node-collapse',\n 'update:expandedKeys',\n 'update:selectionKeys',\n 'node-select',\n 'node-unselect',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'column-resize-end',\n 'update:contextMenuSelection',\n 'row-contextmenu'\n ],\n provide() {\n return {\n $columns: this.d_columns\n };\n },\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n hasASelectedNode: false,\n d_columns: new HelperSet({ type: 'Column' })\n };\n },\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n },\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n }\n },\n beforeUnmount() {\n this.destroyStyleElement();\n this.d_columns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n ptHeaderCellOptions(column) {\n return {\n context: {\n frozen: this.columnProp(column, 'frozen')\n }\n };\n },\n onNodeToggle(node) {\n const key = this.nodeKey(node);\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.rowSelectionMode && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[nodeKey] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.node);\n this.$emit('row-contextmenu', event);\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n onPage(event) {\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.d_expandedKeys = {};\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass')];\n },\n onColumnHeaderClick(e) {\n let event = e.originalEvent;\n let column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n targetNode.closest('[data-p-sortable-column=\"true\"]')\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n }\n }\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n sortSingle(nodes) {\n return this.sortNodesSingle(nodes);\n },\n sortNodesSingle(nodes) {\n let _nodes = [...nodes];\n const comparer = localeComparator();\n\n _nodes.sort((node1, node2) => {\n const value1 = resolveFieldData(node1.data, this.d_sortField);\n const value2 = resolveFieldData(node2.data, this.d_sortField);\n\n return sort(value1, value2, this.d_sortOrder, comparer);\n });\n\n return _nodes;\n },\n sortMultiple(nodes) {\n return this.sortNodesMultiple(nodes);\n },\n sortNodesMultiple(nodes) {\n let _nodes = [...nodes];\n\n _nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, 0);\n });\n\n return _nodes;\n },\n multisortField(node1, node2, index) {\n const value1 = resolveFieldData(node1.data, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(node2.data, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer);\n },\n filter(value) {\n let filteredNodes = [];\n const strict = this.filterMode === 'strict';\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n\n for (let j = 0; j < this.columns.length; j++) {\n let col = this.columns[j];\n let filterField = this.columnProp(col, 'filterField') || this.columnProp(col, 'field');\n\n //local\n if (Object.prototype.hasOwnProperty.call(this.filters, filterField)) {\n let filterMatchMode = this.columnProp(col, 'filterMatchMode') || 'startsWith';\n let filterValue = this.filters[filterField];\n let filterConstraint = FilterService.filters[filterMatchMode];\n let paramsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!strict && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n //global\n if (this.hasGlobalFilter() && !globalMatch) {\n let copyNodeForGlobal = { ...copyNode };\n let filterValue = this.filters['global'];\n let filterConstraint = FilterService.filters['contains'];\n let globalFilterParamsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && (this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode))) ||\n (!strict && (this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n\n if (this.hasGlobalFilter()) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredNodes.push(copyNode);\n }\n }\n\n let filterEvent = this.createLazyLoadEvent(event);\n\n filterEvent.filteredValue = filteredNodes;\n this.$emit('filter', filterEvent);\n\n return filteredNodes;\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { filterField, filterValue, filterConstraint, strict }) {\n let matched = false;\n let dataFieldValue = resolveFieldData(node.data, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { filterField, filterValue, filterConstraint, strict }) || matched;\n }\n\n return matched;\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)] === true : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n createLazyLoadEvent(event) {\n let filterMatchModes;\n\n if (this.hasFilters()) {\n filterMatchModes = {};\n this.columns.forEach((col) => {\n if (this.columnProp(col, 'field')) {\n filterMatchModes[col.props.field] = this.columnProp(col, 'filterMatchMode');\n }\n });\n }\n\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.filters,\n filterMatchModes: filterMatchModes\n };\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"treetable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n });\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnKeyDown(event, col) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.onColumnHeaderClick(event, col);\n }\n },\n hasColumnFilter() {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.children && col.children.filter) {\n return true;\n }\n }\n }\n\n return false;\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n getItemLabel(node) {\n return node.data.name;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n setTabindex(node, index) {\n if (this.isNodeSelected(node)) {\n this.hasASelectedNode = true;\n\n return 0;\n }\n\n if (this.selectionMode) {\n if (!this.isNodeSelected(node) && index === 0 && !this.hasASelectedNode) return 0;\n } else if (!this.selectionMode && index === 0) {\n return 0;\n }\n\n return -1;\n }\n },\n computed: {\n columns() {\n return this.d_columns.get(this);\n },\n processedData() {\n if (this.lazy) {\n return this.value;\n } else {\n if (this.value && this.value.length) {\n let data = this.value;\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n\n if (this.hasFilters()) {\n data = this.filter(data);\n }\n\n return data;\n } else {\n return null;\n }\n }\n },\n dataToRender() {\n const data = this.processedData;\n\n if (this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return data.slice(first, first + this.d_rows);\n } else {\n return data;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n hasFooter() {\n let hasFooter = false;\n\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n\n return hasFooter;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n singleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'single';\n },\n multipleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'multiple';\n },\n rowSelectionMode() {\n return this.singleSelectionMode || this.multipleSelectionMode;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n }\n },\n components: {\n TTRow: TreeTableRow,\n TTPaginator: Paginator,\n TTHeaderCell: HeaderCell,\n TTFooterCell: FooterCell,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","dataKey","String","Function","expandedKeys","selectionKeys","selectionMode","metaKeySelection","Boolean","contextMenu","contextMenuSelection","Object","rows","Number","first","totalRecords","paginator","paginatorPosition","alwaysShowPaginator","paginatorTemplate","pageLinkSize","rowsPerPageOptions","Array","currentPageReportTemplate","lazy","loading","loadingIcon","undefined","loadingMode","rowHover","autoLayout","sortField","sortOrder","defaultSortOrder","multiSortMeta","sortMode","removableSort","filters","filterMode","filterLocale","resizableColumns","columnResizeMode","indentation","showGridlines","scrollable","scrollHeight","size","tableStyle","tableClass","tableProps","style","TreeTableStyle","provide","$pcTreeTable","$parentInstance","hostName","column","index","data","styleObject","mounted","columnProp","updateStickyPosition","updated","methods","prop","getVNodeProp","getColumnPT","key","_this$$parentInstance","columnMetaData","parent","instance","$props","state","$data","context","frozen","mergeProps","ptm","concat","ptmo","getColumnProp","pt","align","right","next","getNextElementSibling","$el","getOuterWidth","parseFloat","left","prev","getPreviousElementSibling","computed","containerClass","cx","containerStyle","bodyStyle","columnStyle","_openBlock","_createElementBlock","_mergeProps","$options","role","_objectSpread","children","footer","_createBlock","_resolveDynamicComponent","_ctx","emits","sorted","isColumnSorted","resizable","filterRow","parentElement","nextElementSibling","getIndex","onClick","event","$emit","originalEvent","onKeyDown","code","currentTarget","nodeName","getAttribute","preventDefault","onResizeStart","getMultiSortMetaIndex","i","length","meta","field","isMultiSorted","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","components","Badge","apply","arguments","onKeydown","tabindex","onMousedown","_createElementVNode","header","sorticon","_component_Badge","node","level","leaf","expanded","checked","partialChecked","templates","toggle","selectable","rowSelectionMode","selected","$parent","getColumnCheckboxPT","resolveFieldData","rowData","toggleCheckbox","togglerStyle","marginLeft","visibility","checkboxSelectionMode","Checkbox","ChevronRightIcon","ChevronDownIcon","CheckIcon","MinusIcon","SpinnerIcon","directives","ripple","Ripple","_withDirectives","_Fragment","_component_SpinnerIcon","spin","rowtoggleicon","rowtogglericon","expandedIcon","collapsedIcon","_component_Checkbox","modelValue","binary","onChange","indeterminate","unstyled","icon","_withCtx","slotProps","_normalizeClass","body","_createTextVNode","_toDisplayString","parentNode","columns","ariaSetSize","ariaPosInset","nodeTouched","col","isClickable","target","tagName","setTabIndexForSelectionMode","onRowRightClick","onTouchEnd","nodeKey","item","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onEnterKey","onTabKey","focusRowChange","previousElementSibling","_this","ishiddenIcon","findSingle","togglerElement","$refs","click","$nextTick","findBeforeClickableNode","findFirstElement","focus","nodes","find","_toConsumableArray","hasSelectedRow","some","row","forEach","tabIndex","selectedNodes","filter","firstFocusableRow","currentFocusedRow","prevNode","prevNodeButton","querySelector","_selectionKeys","_check","propagateDown","check","_iterator","_createForOfIteratorHelper","_step","s","n","done","child","err","e","f","propagateUp","checkedChildCount","childPartialSelected","_iterator2","_step2","onCheckboxChange","_iterator3","_step3","elements","every","element","styleClass","isSelectedWithContextMenu","equals","getAriaSelected","ptmOptions","TTBodyCell","BodyCell","ref","onTouchend","onContextmenu","_renderList","_component_TTBodyCell","onNodeToggle","_cache","$event","onCheckboxToggle","childNode","_component_TreeTableRow","indexOf","onNodeClick","onRowRightclick","BaseTreeTable","inheritAttrs","$columns","d_columns","d_expandedKeys","d_first","d_rows","d_sortField","d_sortOrder","d_multiSortMeta","hasASelectedNode","HelperSet","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","watch","newValue","beforeUnmount","destroyStyleElement","clear","ptHeaderCellOptions","metaSelection","handleSelectionWithMetaKey","handleSelectionWithoutMetaKey","metaKey","ctrlKey","isNodeSelected","isSingleSelectionMode","isMultipleSelectionMode","clearSelection","onPage","pageEvent","createLazyLoadEvent","pageCount","page","resetPage","getFilterColumnHeaderClass","onColumnHeaderClick","targetNode","columnField","closest","addMultiSortField","findIndex","splice","push","sortSingle","sortNodesSingle","_nodes","comparer","localeComparator","sort","node1","node2","value1","value2","sortMultiple","sortNodesMultiple","_this2","multisortField","filteredNodes","strict","copyNode","localMatch","globalMatch","j","filterField","prototype","hasOwnProperty","call","filterMatchMode","filterValue","filterConstraint","FilterService","paramsWithoutNode","findFilteredNodes","isFilterMatched","hasGlobalFilter","copyNodeForGlobal","globalFilterParamsWithoutNode","matches","filterEvent","filteredValue","matched","childNodes","copyChildNode","_ref","dataFieldValue","isNodeLeaf","_this3","filterMatchModes","hasFilters","onColumnResizeStart","containerLeft","getOffset","columnResizing","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","setAttribute","isUnstyled","addStyle","resizeHelper","height","offsetHeight","top","display","onColumnResizeEnd","delta","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","table","updateTableWidth","el","width","resizeColumn","removeAttribute","unbindColumnResizeEvents","colIndex","widths","headers","createStyleElement","innerHTML","selector","$attrSelector","colWidth","styleElement","_this4","document","addEventListener","removeEventListener","onColumnKeyDown","hasColumnFilter","keys","constructor","getItemLabel","_this$$primevue","createElement","$primevue","config","csp","nonce","head","appendChild","removeChild","setTabindex","get","processedData","dataToRender","slice","empty","hasFooter","_iterator4","_step4","paginatorTop","paginatorBottom","singleSelectionMode","multipleSelectionMode","totalRecordsLength","TTRow","TreeTableRow","TTPaginator","Paginator","TTHeaderCell","HeaderCell","TTFooterCell","FooterCell","ptmi","_renderSlot","$slots","_component_TTPaginator","template","position","alwaysShow","paginatorstart","paginatorend","paginatorfirstpagelinkicon","fn","paginatorprevpagelinkicon","paginatornextpagelinkicon","paginatorlastpagelinkicon","paginatorjumptopagedropdownicon","paginatorrowsperpagedropdownicon","sx","maxHeight","_component_TTHeaderCell","onColumnClick","onColumnResizestart","_component_TTRow","colspan","_component_TTFooterCell"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,eAAe;AACrB,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE;AACHC,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,OAAO,EAAE;AACLD,MAAAA,IAAI,EAAE,CAACE,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA,KAAA;KACZ;AACDC,IAAAA,YAAY,EAAE;AACVJ,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDK,IAAAA,aAAa,EAAE;AACXL,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDM,IAAAA,aAAa,EAAE;AACXN,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDK,IAAAA,gBAAgB,EAAE;AACdP,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDC,IAAAA,WAAW,EAAE;AACTT,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDE,IAAAA,oBAAoB,EAAE;AAClBV,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,IAAI,EAAE;AACFZ,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDC,IAAAA,KAAK,EAAE;AACHd,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDE,IAAAA,YAAY,EAAE;AACVf,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDG,IAAAA,SAAS,EAAE;AACPhB,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDS,IAAAA,iBAAiB,EAAE;AACfjB,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,QAAA;KACZ;AACDgB,IAAAA,mBAAmB,EAAE;AACjBlB,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,IAAA;KACZ;AACDW,IAAAA,iBAAiB,EAAE;AACfnB,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,oFAAA;KACZ;AACDkB,IAAAA,YAAY,EAAE;AACVpB,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDQ,IAAAA,kBAAkB,EAAE;AAChBrB,MAAAA,IAAI,EAAEsB,KAAK;MACX,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,yBAAyB,EAAE;AACvBvB,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,iCAAA;KACZ;AACDsB,IAAAA,IAAI,EAAE;AACFxB,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDiB,IAAAA,OAAO,EAAE;AACLzB,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDkB,IAAAA,WAAW,EAAE;AACT1B,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAASyB,EAAAA,SAAAA;KACZ;AACDC,IAAAA,WAAW,EAAE;AACT5B,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,MAAA;KACZ;AACD2B,IAAAA,QAAQ,EAAE;AACN7B,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDsB,IAAAA,UAAU,EAAE;AACR9B,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDuB,IAAAA,SAAS,EAAE;AACP/B,MAAAA,IAAI,EAAE,CAACE,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA,IAAA;KACZ;AACD6B,IAAAA,SAAS,EAAE;AACPhC,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDoB,IAAAA,gBAAgB,EAAE;AACdjC,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDqB,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEsB,KAAK;MACX,SAAS,EAAA,IAAA;KACZ;AACDa,IAAAA,QAAQ,EAAE;AACNnC,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,QAAA;KACZ;AACDkC,IAAAA,aAAa,EAAE;AACXpC,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACD6B,IAAAA,OAAO,EAAE;AACLrC,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD2B,IAAAA,UAAU,EAAE;AACRtC,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,SAAA;KACZ;AACDqC,IAAAA,YAAY,EAAE;AACVvC,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAASyB,EAAAA,SAAAA;KACZ;AACDa,IAAAA,gBAAgB,EAAE;AACdxC,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDiC,IAAAA,gBAAgB,EAAE;AACdzC,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,KAAA;KACZ;AACDwC,IAAAA,WAAW,EAAE;AACT1C,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACD8B,IAAAA,aAAa,EAAE;AACX3C,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDoC,IAAAA,UAAU,EAAE;AACR5C,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDqC,IAAAA,YAAY,EAAE;AACV7C,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD4C,IAAAA,IAAI,EAAE;AACF9C,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD6C,IAAAA,UAAU,EAAE;AACR/C,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDgD,IAAAA,UAAU,EAAE;AACRhD,MAAAA,IAAI,EAAE,CAACE,MAAM,EAAES,MAAM,CAAC;MACtB,SAAS,EAAA,IAAA;KACZ;AACDsC,IAAAA,UAAU,EAAE;AACRjD,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;AACb,KAAA;GACH;AACDuC,EAAAA,KAAK,EAAEC,cAAc;EACrBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,YAAY,EAAE,IAAI;AAClBC,MAAAA,eAAe,EAAE,IAAA;KACpB,CAAA;AACL,GAAA;AACJ,CAAC;;AC/KD,eAAe;AACX1D,EAAAA,IAAI,EAAE,YAAY;AAClB2D,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAAS1D,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACH0D,IAAAA,MAAM,EAAE;AACJxD,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD8C,IAAAA,KAAK,EAAE;AACHzD,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,IAAA;AACb,KAAA;GACH;EACD6C,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHC,MAAAA,WAAW,EAAE,EAAC;KACjB,CAAA;GACJ;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE,CAAA;AAC/B,KAAA;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE,CAAA;AAC/B,KAAA;GACH;AACDE,EAAAA,OAAO,EAAE;AACLH,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACI,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAACV,MAAM,EAAES,IAAI,CAAC,CAAA;KACzC;AACDE,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AAAA,MAAA,IAAAC,qBAAA,CAAA;AACb,MAAA,IAAMC,iBAAiB;AACnBxE,QAAAA,KAAK,EAAE,IAAI,CAAC0D,MAAM,CAAC1D,KAAK;AACxByE,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd1E,KAAK,EAAE,IAAI,CAAC2E,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC,KAAAA;SACf;AACDC,QAAAA,OAAO,EAAE;UACLnB,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBoB,UAAAA,MAAM,EAAE,IAAI,CAAChB,UAAU,CAAC,QAAQ,CAAC;UACjCf,IAAI,EAAA,CAAAuB,qBAAA,GAAE,IAAI,CAACf,eAAe,MAAAe,IAAAA,IAAAA,qBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAsBvB,IAAAA;AAChC,SAAA;OACH,CAAA;MAED,OAAOgC,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEZ,QAAAA,MAAM,EAAEc,cAAAA;OAAgB,CAAC,EAAE,IAAI,CAACS,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIE,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACW,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEE,cAAc,CAAC,CAAC,CAAA;KAC5K;IACDY,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAAC1B,MAAM,CAAC1D,KAAI,IAAK,IAAI,CAAC0D,MAAM,CAAC1D,KAAK,CAACqF,KAAK,IAAI,CAAC3B,MAAM,CAAC1D,KAAK,CAACqF,EAAG,GAAExD,SAAS,CAAA;KACtF;IACDmC,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAIuB,KAAM,GAAE,IAAI,CAACvB,UAAU,CAAC,aAAa,CAAC,CAAA;QAE1C,IAAIuB,KAAM,KAAI,OAAO,EAAE;UACnB,IAAIC,KAAI,GAAI,CAAC,CAAA;UACb,IAAIC,IAAK,GAAEC,qBAAqB,CAAC,IAAI,CAACC,GAAG,EAAE,+BAA+B,CAAC,CAAA;AAE3E,UAAA,IAAIF,IAAI,EAAE;AACND,YAAAA,KAAM,GAAEI,aAAa,CAACH,IAAI,CAAE,GAAEI,UAAU,CAACJ,IAAI,CAACpC,KAAK,CAACmC,KAAM,IAAG,CAAC,CAAC,CAAA;AACnE,WAAA;AAEA,UAAA,IAAI,CAAC1B,WAAW,CAAC0B,KAAI,GAAIA,KAAM,GAAE,IAAI,CAAA;AACzC,SAAE,MAAK;UACH,IAAIM,IAAG,GAAI,CAAC,CAAA;UACZ,IAAIC,IAAK,GAAEC,yBAAyB,CAAC,IAAI,CAACL,GAAG,EAAE,+BAA+B,CAAC,CAAA;AAE/E,UAAA,IAAII,IAAI,EAAE;AACND,YAAAA,IAAG,GAAIF,aAAa,CAACG,IAAI,CAAE,GAAEF,UAAU,CAACE,IAAI,CAAC1C,KAAK,CAACyC,IAAK,IAAG,CAAC,CAAC,CAAA;AACjE,WAAA;AAEA,UAAA,IAAI,CAAChC,WAAW,CAACgC,IAAG,GAAIA,IAAK,GAAE,IAAI,CAAA;AACvC,SAAA;AACJ,OAAA;AACJ,KAAA;GACH;AACDG,EAAAA,QAAQ,EAAE;IACNC,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,CAAC,IAAI,CAAClC,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAACmC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;KAC3F;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIC,SAAQ,GAAI,IAAI,CAACrC,UAAU,CAAC,aAAa,CAAC,CAAA;AAC9C,MAAA,IAAIsC,WAAU,GAAI,IAAI,CAACtC,UAAU,CAAC,OAAO,CAAC,CAAA;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,CAAE,GAAE,CAACsC,WAAW,EAAED,SAAS,EAAE,IAAI,CAACvC,WAAW,CAAA,GAAI,CAACwC,WAAW,EAAED,SAAS,CAAC,CAAA;AAC5G,KAAA;AACJ,GAAA;AACJ,CAAC;;;;;;;;;;ECtGG,OAAAE,SAAA,EAAA,EAAAC,kBAAA,CAGI,MAHJC,UAGI,CAAA;IAHCpD,KAAK,EAAEqD,QAAc,CAAAN,cAAA;IAAG,OAAOM,EAAAA,QAAc,CAAAR,cAAA;AAAES,IAAAA,IAAI,EAAC,MAAA;AAAoB,GAAA,EAAAC,eAAA,CAAAA,eAAA,CAAAF,EAAAA,EAAAA,QAAA,CAAApC,WAAW,WAAaoC,QAAW,CAAApC,WAAA,CAAA,YAAA,CAAA,CAAA,EAAA;AAAmB,IAAA,sBAAoB,EAAEoC,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA;OAC9IY,MAAA,CAAAjB,MAAM,CAACkD,YAAYjC,aAAM,CAACiC,QAAQ,CAACC,MAAM,IAA1DP,SAAA,EAAA,EAAAQ,WAAA,CAA2GC,uBAA1C,CAAApC,MAAA,CAAAjB,MAAM,CAACkD,QAAQ,CAACC,MAAM,CAAA,EAAA;;IAAGnD,MAAM,EAAEiB,MAAM,CAAAjB,MAAAA;2DAC5F+C,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA,IAAtBuC,SAAA,EAAA,EAAAC,kBAAA,CAAmI,QAAnIC,UAAmI,CAAA;;AAAhG,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,cAAA,CAAA;AAA0B,GAAA,EAAAO,QAAA,CAAApC,WAAW,mCAAqBoC,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA,CAAA;;;;;ACkCxH,eAAe;AACXjE,EAAAA,IAAI,EAAE,YAAY;AAClB2D,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAAS1D,aAAa;AACtBkH,EAAAA,KAAK,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC;AAC7CjH,EAAAA,KAAK,EAAE;AACH0D,IAAAA,MAAM,EAAE;AACJxD,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD6B,IAAAA,gBAAgB,EAAE;AACdxC,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDuB,IAAAA,SAAS,EAAE;AACP/B,MAAAA,IAAI,EAAE,CAACE,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA,IAAA;KACZ;AACD6B,IAAAA,SAAS,EAAE;AACPhC,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDqB,IAAAA,aAAa,EAAE;AACXlC,MAAAA,IAAI,EAAEsB,KAAK;MACX,SAAS,EAAA,IAAA;KACZ;AACDa,IAAAA,QAAQ,EAAE;AACNnC,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,QAAA;KACZ;AACDuD,IAAAA,KAAK,EAAE;AACHzD,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,IAAA;AACb,KAAA;GACH;EACD6C,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHC,MAAAA,WAAW,EAAE,EAAC;KACjB,CAAA;GACJ;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE,CAAA;AAC/B,KAAA;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE,CAAA;AAC/B,KAAA;GACH;AACDE,EAAAA,OAAO,EAAE;AACLH,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACI,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAACV,MAAM,EAAES,IAAI,CAAC,CAAA;KACzC;AACDE,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AAAA,MAAA,IAAAC,qBAAA,CAAA;AACb,MAAA,IAAMC,iBAAiB;AACnBxE,QAAAA,KAAK,EAAE,IAAI,CAAC0D,MAAM,CAAC1D,KAAK;AACxByE,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd1E,KAAK,EAAE,IAAI,CAAC2E,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC,KAAAA;SACf;AACDC,QAAAA,OAAO,EAAE;UACLnB,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBuD,UAAAA,MAAM,EAAE,IAAI,CAACC,cAAc,EAAE;AAC7BpC,UAAAA,MAAM,EAAE,IAAI,CAACvB,eAAe,CAACV,UAAS,IAAK,IAAI,CAACiB,UAAU,CAAC,QAAQ,CAAC;UACpEqD,SAAS,EAAE,IAAI,CAAC1E,gBAAgB;AAChCI,UAAAA,UAAU,EAAE,IAAI,CAACU,eAAe,CAACV,UAAU;AAC3CD,UAAAA,aAAa,EAAE,IAAI,CAACW,eAAe,CAACX,aAAa;UACjDG,IAAI,EAAA,CAAAuB,qBAAA,GAAE,IAAI,CAACf,eAAe,MAAAe,IAAAA,IAAAA,qBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAsBvB,IAAAA;AAChC,SAAA;OACH,CAAA;MAED,OAAOgC,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEZ,QAAAA,MAAM,EAAEc,cAAAA;OAAgB,CAAC,EAAE,IAAI,CAACS,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIE,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACW,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEE,cAAc,CAAC,CAAC,CAAA;KAC5K;IACDY,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAAC1B,MAAM,CAAC1D,SAAS,IAAI,CAAC0D,MAAM,CAAC1D,KAAK,CAACqF,KAAK,IAAI,CAAC3B,MAAM,CAAC1D,KAAK,CAACqF,KAAKxD,SAAS;KACtF;IACDmC,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAIuB,KAAM,GAAE,IAAI,CAACvB,UAAU,CAAC,aAAa,CAAC,CAAA;QAE1C,IAAIuB,KAAM,KAAI,OAAO,EAAE;UACnB,IAAIC,KAAI,GAAI,CAAC,CAAA;UACb,IAAIC,IAAK,GAAEC,qBAAqB,CAAC,IAAI,CAACC,GAAG,EAAE,+BAA+B,CAAC,CAAA;AAE3E,UAAA,IAAIF,IAAI,EAAE;AACND,YAAAA,KAAM,GAAEI,aAAa,CAACH,IAAI,CAAE,GAAEI,UAAU,CAACJ,IAAI,CAACpC,KAAK,CAACmC,KAAM,IAAG,CAAC,CAAC,CAAA;AACnE,WAAA;AAEA,UAAA,IAAI,CAAC1B,WAAW,CAAC0B,KAAI,GAAIA,KAAM,GAAE,IAAI,CAAA;AACzC,SAAE,MAAK;UACH,IAAIM,IAAG,GAAI,CAAC,CAAA;UACZ,IAAIC,IAAK,GAAEC,yBAAyB,CAAC,IAAI,CAACL,GAAG,EAAE,+BAA+B,CAAC,CAAA;AAE/E,UAAA,IAAII,IAAI,EAAE;AACND,YAAAA,IAAG,GAAIF,aAAa,CAACG,IAAI,CAAE,GAAEF,UAAU,CAACE,IAAI,CAAC1C,KAAK,CAACyC,IAAK,IAAG,CAAC,CAAC,CAAA;AACjE,WAAA;AAEA,UAAA,IAAI,CAAChC,WAAW,CAACgC,IAAG,GAAIA,IAAK,GAAE,IAAI,CAAA;AACvC,SAAA;QAEA,IAAIwB,SAAU,GAAE,IAAI,CAAC3B,GAAG,CAAC4B,aAAa,CAACC,kBAAkB,CAAA;AAEzD,QAAA,IAAIF,SAAS,EAAE;AACX,UAAA,IAAI1D,KAAM,GAAE6D,QAAQ,CAAC,IAAI,CAAC9B,GAAG,CAAC,CAAA;AAE9B2B,UAAAA,SAAS,CAACT,QAAQ,CAACjD,KAAK,CAAC,CAACP,KAAK,CAACyC,IAAG,GAAI,IAAI,CAAChC,WAAW,CAACgC,IAAI,CAAA;AAC5DwB,UAAAA,SAAS,CAACT,QAAQ,CAACjD,KAAK,CAAC,CAACP,KAAK,CAACmC,KAAI,GAAI,IAAI,CAAC1B,WAAW,CAAC0B,KAAK,CAAA;AAClE,SAAA;AACJ,OAAA;KACH;AACDkC,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACC,KAAK,EAAE;AACX,MAAA,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;AAAEC,QAAAA,aAAa,EAAEF,KAAK;QAAEhE,MAAM,EAAE,IAAI,CAACA,MAAAA;AAAO,OAAC,CAAC,CAAA;KAC5E;AACDmE,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACH,KAAK,EAAE;AACb,MAAA,IAAI,CAACA,KAAK,CAACI,IAAG,KAAM,OAAQ,IAAGJ,KAAK,CAACI,IAAG,KAAM,aAAc,IAAGJ,KAAK,CAACI,IAAG,KAAM,OAAO,KAAKJ,KAAK,CAACK,aAAa,CAACC,QAAO,KAAM,IAAK,IAAGC,YAAY,CAACP,KAAK,CAACK,aAAa,EAAE,wBAAwB,CAAC,EAAE;AAC5L,QAAA,IAAI,CAACJ,KAAK,CAAC,cAAc,EAAE;AAAEC,UAAAA,aAAa,EAAEF,KAAK;UAAEhE,MAAM,EAAE,IAAI,CAACA,MAAAA;AAAO,SAAC,CAAC,CAAA;QAEzEgE,KAAK,CAACQ,cAAc,EAAE,CAAA;AAC1B,OAAA;KACH;AACDC,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACT,KAAK,EAAE;AACjB,MAAA,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAED,KAAK,CAAC,CAAA;KAC1C;IACDU,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;MACpB,IAAIzE,KAAI,GAAI,CAAC,CAAC,CAAA;AAEd,MAAA,KAAK,IAAI0E,IAAI,CAAC,EAAEA,CAAA,GAAI,IAAI,CAACjG,aAAa,CAACkG,MAAM,EAAED,CAAC,EAAE,EAAE;AAChD,QAAA,IAAIE,IAAK,GAAE,IAAI,CAACnG,aAAa,CAACiG,CAAC,CAAC,CAAA;QAEhC,IAAIE,IAAI,CAACC,KAAM,KAAI,IAAI,CAACzE,UAAU,CAAC,OAAO,KAAKwE,IAAI,CAACC,KAAI,KAAM,IAAI,CAACzE,UAAU,CAAC,WAAW,CAAC,EAAE;AACxFJ,UAAAA,KAAI,GAAI0E,CAAC,CAAA;AACT,UAAA,MAAA;AACJ,SAAA;AACJ,OAAA;AAEA,MAAA,OAAO1E,KAAK,CAAA;KACf;IACD8E,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACZ,MAAA,OAAO,IAAI,CAAC1E,UAAU,CAAC,UAAU,CAAA,IAAK,IAAI,CAACqE,qBAAqB,EAAG,GAAE,CAAC,CAAC,CAAA;KAC1E;IACDjB,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAAC9E,QAAO,KAAM,QAAS,GAAE,IAAI,CAACJ,SAAU,KAAI,IAAI,CAACA,cAAc,IAAI,CAAC8B,UAAU,CAAC,OAAO,CAAA,IAAK,IAAI,CAAC9B,SAAU,KAAI,IAAI,CAAC8B,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC0E,aAAa,EAAE,CAAA;AACjL,KAAA;GACH;AACDzC,EAAAA,QAAQ,EAAE;IACNC,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,CAAC,IAAI,CAAClC,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAACmC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;KAC3F;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIuC,cAAc,IAAI,CAAC3E,UAAU,CAAC,aAAa,CAAC,CAAA;AAChD,MAAA,IAAIsC,WAAU,GAAI,IAAI,CAACtC,UAAU,CAAC,OAAO,CAAC,CAAA;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,IAAI,CAACsC,WAAW,EAAEqC,WAAW,EAAE,IAAI,CAAC7E,WAAW,CAAE,GAAE,CAACwC,WAAW,EAAEqC,WAAW,CAAC,CAAA;KAC/G;IACDC,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAIzB,MAAK,GAAI,KAAK,CAAA;MAClB,IAAIhF,SAAU,GAAE,IAAI,CAAA;AAEpB,MAAA,IAAI,IAAI,CAACG,QAAS,KAAI,QAAQ,EAAE;QAC5B6E,MAAK,GAAI,IAAI,CAACjF,cAAc,IAAI,CAACA,SAAU,KAAI,IAAI,CAAC8B,UAAU,CAAC,OAAO,CAAE,IAAG,IAAI,CAAC9B,SAAQ,KAAM,IAAI,CAAC8B,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;AAC3H7B,QAAAA,SAAQ,GAAIgF,MAAK,GAAI,IAAI,CAAChF,SAAQ,GAAI,CAAC,CAAA;AAC3C,OAAA,MAAO,IAAI,IAAI,CAACG,QAAO,KAAM,UAAU,EAAE;AACrC,QAAA,IAAIuG,YAAY,IAAI,CAACR,qBAAqB,EAAE,CAAA;AAE5C,QAAA,IAAIQ,SAAQ,GAAI,CAAC,CAAC,EAAE;AAChB1B,UAAAA,SAAS,IAAI,CAAA;UACbhF,SAAU,GAAE,IAAI,CAACE,aAAa,CAACwG,SAAS,CAAC,CAACC,KAAK,CAAA;AACnD,SAAA;AACJ,OAAA;MAEA,OAAO;AACH3B,QAAAA,MAAM,EAANA,MAAM;AACNhF,QAAAA,SAAQ,EAARA,SAAAA;OACH,CAAA;KACJ;IACD4G,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,IAAAC,eAAA,GAA8B,IAAI,CAACJ,SAAS;QAApCzB,MAAM,GAAA6B,eAAA,CAAN7B,MAAM;QAAEhF,4BAAAA;MAEhB,IAAI,CAACgF,MAAM,EAAE,OAAO8B,WAAW,CAAA,KAC1B,IAAI9B,UAAUhF,SAAQ,GAAI,CAAC,EAAE,OAAO+G,mBAAmB,CAAA,KACvD,IAAI/B,UAAUhF,SAAU,GAAE,CAAC,EAAE,OAAOgH,kBAAkB,CAAA;AAE3D,MAAA,OAAO,IAAI,CAAA;KACd;IACDC,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAI,IAAI,CAACpF,UAAU,CAAC,UAAU,CAAC,EAAE;AAC7B,QAAA,IAAAqF,gBAAA,GAA8B,IAAI,CAACT,SAAS;UAApCzB,MAAM,GAAAkC,gBAAA,CAANlC,MAAM;UAAEhF,6BAAAA;QAEhB,IAAIgF,MAAK,IAAKhF,SAAQ,GAAI,CAAC,EAAE,OAAO,YAAY,CAAA,KAC3C,IAAIgF,MAAK,IAAKhF,SAAQ,GAAI,CAAC,EAAE,OAAO,WAAW,CAAA,KAC/C,OAAO,MAAM,CAAA;AACtB,OAAE,MAAK;AACH,QAAA,OAAO,IAAI,CAAA;AACf,OAAA;AACJ,KAAA;GACH;AACDmH,EAAAA,UAAU,EAAE;AACRC,IAAAA,KAAK,EAALA,KAAK;AACLN,IAAAA,WAAW,EAAEA,WAAW;AACxBC,IAAAA,mBAAmB,EAAEA,mBAAmB;AACxCC,IAAAA,kBAAkB,EAAEA,kBAAAA;AACxB,GAAA;AACJ,CAAC;;;;;;;;;;;EChPG,OAAA5C,SAAA,EAAA,EAAAC,kBAAA,CAuBI,MAvBJC,UAuBI,CAAA;IAtBC,OAAOC,EAAAA,QAAc,CAAAR,cAAA;AACrB7C,IAAAA,KAAK,GAAGqD,QAAc,CAAAN,cAAA,CAAA;IACtBsB,OAAK;aAAEhB,QAAO,CAAAgB,OAAA,IAAAhB,QAAA,CAAAgB,OAAA,CAAA8B,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IACdC,SAAO;aAAEhD,QAAS,CAAAoB,SAAA,IAAApB,QAAA,CAAAoB,SAAA,CAAA0B,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IAClBE,QAAQ,EAAEjD,QAAU,CAAA1C,UAAA,CAAA,UAAA,CAAA,GAAA,GAAA,GAAA,IAAA;IACpB,WAAS,EAAE0C,QAAQ,CAAA0C,QAAA;AACpBzC,IAAAA,IAAI,EAAC,cAAA;AACQ,GAAA,EAAAC,eAAA,CAAAA,eAAA,CAAAF,EAAAA,EAAAA,QAAA,CAAApC,WAAW,WAAaoC,QAAW,CAAApC,WAAA,CAAA,YAAA,CAAA,CAAA,EAAA;AAC/C,IAAA,wBAAsB,EAAEoC,QAAU,CAAA1C,UAAA,CAAA,UAAA,CAAA;IAClC,yBAAuB,EAAEY,MAAgB,CAAAjC,gBAAA;AACzC,IAAA,eAAa,EAAE+D,QAAc,CAAAU,cAAA,EAAA;AAC7B,IAAA,sBAAoB,EAAEV,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA;OAErBY,MAAA,CAAAjC,gBAAiB,KAAI+D,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA,IAA3CuC,SAAA,EAAA,EAAAC,kBAAA,CAA2J,QAA3JC,UAA2J,CAAA;;AAAnG,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,eAAA,CAAA;IAAoByD,WAAS;aAAElD,QAAa,CAAA0B,aAAA,IAAA1B,QAAA,CAAA0B,aAAA,CAAAoB,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;KAAA,CAAA;KAAU/C,QAAW,CAAApC,WAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAClIuF,kBAAA,CAOK,OAPLpD,UAOK,CAAA;AAPC,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,qBAAA,CAAA;KAAiCO,QAAW,CAAApC,WAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,CACtCM,MAAA,CAAAjB,MAAM,CAACkD,YAAYjC,aAAM,CAACiC,QAAQ,CAACiD,MAAM,IAA1DvD,SAAA,EAAA,EAAAQ,WAAA,CAA2GC,uBAA1C,CAAApC,MAAA,CAAAjB,MAAM,CAACkD,QAAQ,CAACiD,MAAM,CAAA,EAAA;;IAAGnG,MAAM,EAAEiB,MAAM,CAAAjB,MAAAA;2DAC5F+C,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA,IAAtBuC,SAAA,EAAA,EAAAC,kBAAA,CAAiI,QAAjIC,UAAiI,CAAA;;AAA9F,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,aAAA,CAAA;GAAyB,EAAAO,QAAA,CAAApC,WAAW,kCAAoBoC,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA,CAAA,kCAClG0C,QAAU,CAAA1C,UAAA,CAAA,UAAA,CAAA,IAAtBuC,SAAA,EAAA,EAAAC,kBAAA,CAEM;;KAFsCE,QAAW,CAAApC,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,EACnDiC,SAAA,EAAA,EAAAQ,WAAA,CAA2MC,uBAA1L,CAAApC,MAAA,CAAAjB,MAAM,CAACkD,QAAS,IAAGjC,MAAA,CAAAjB,MAAM,CAACkD,QAAQ,CAACkD,QAAQ,IAAKrD,QAAA,CAAAqC,kBAAkB,GAAnFtC,UAA2M,CAAA;AAArHU,IAAAA,MAAM,EAAET,QAAS,CAAAkC,SAAA,CAACzB,MAAM;AAAGhF,IAAAA,SAAS,EAAEuE,QAAS,CAAAkC,SAAA,CAACzG,SAAS;AAAG,IAAA,OAAA,EAAO8E,IAAE,CAAAd,EAAA,CAAA,UAAA,CAAA;KAAsBO,QAAW,CAAApC,WAAA,CAAA,UAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,OAAA,CAAA,CAAA,yCAEnLoC,QAAa,CAAAgC,aAAA,EAAA,IAA1BnC,SAAA,EAAA,EAAAQ,WAAA,CAAgJiD,kBAAhJvD,UAAgJ,CAAA;;AAAjH,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,aAAA,CAAA;KAAyBO,QAAW,CAAApC,WAAA,CAAA,aAAA,CAAA,EAAA;AAAkBpE,IAAAA,KAAK,EAAEwG,QAAqB,CAAA2B,qBAAA,EAAA,GAAA,CAAA;AAAQpF,IAAAA,IAAI,EAAC,OAAA;;;;;;ACgCnJ,eAAe;AACXlD,EAAAA,IAAI,EAAE,UAAU;AAChB2D,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAAS1D,aAAa;AACtBkH,EAAAA,KAAK,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;AACzCjH,EAAAA,KAAK,EAAE;AACHgK,IAAAA,IAAI,EAAE;AACF9J,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD6C,IAAAA,MAAM,EAAE;AACJxD,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDoJ,IAAAA,KAAK,EAAE;AACH/J,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACD6B,IAAAA,WAAW,EAAE;AACT1C,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDmJ,IAAAA,IAAI,EAAE;AACFhK,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDyJ,IAAAA,QAAQ,EAAE;AACNjK,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDF,IAAAA,aAAa,EAAE;AACXN,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDgK,IAAAA,OAAO,EAAE;AACLlK,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACD2J,IAAAA,cAAc,EAAE;AACZnK,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACD4J,IAAAA,SAAS,EAAE;AACPpK,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD8C,IAAAA,KAAK,EAAE;AACHzD,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDe,IAAAA,WAAW,EAAE;AACT5B,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,MAAA;AACb,KAAA;GACH;EACDwD,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHC,MAAAA,WAAW,EAAE,EAAC;KACjB,CAAA;GACJ;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE,CAAA;AAC/B,KAAA;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAI,IAAI,CAACF,UAAU,CAAC,QAAQ,CAAC,EAAE;MAC3B,IAAI,CAACC,oBAAoB,EAAE,CAAA;AAC/B,KAAA;GACH;AACDE,EAAAA,OAAO,EAAE;IACLqG,MAAM,EAAA,SAANA,MAAMA,GAAG;MACL,IAAI,CAAC5C,KAAK,CAAC,aAAa,EAAE,IAAI,CAACqC,IAAI,CAAC,CAAA;KACvC;AACDjG,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACI,IAAI,EAAE;AACb,MAAA,OAAOC,YAAY,CAAC,IAAI,CAACV,MAAM,EAAES,IAAI,CAAC,CAAA;KACzC;AACDE,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,GAAG,EAAE;AAAA,MAAA,IAAAC,qBAAA,CAAA;AACb,MAAA,IAAMC,iBAAiB;AACnBxE,QAAAA,KAAK,EAAE,IAAI,CAAC0D,MAAM,CAAC1D,KAAK;AACxByE,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd1E,KAAK,EAAE,IAAI,CAAC2E,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC,KAAAA;SACf;AACDC,QAAAA,OAAO,EAAE;UACLnB,KAAK,EAAE,IAAI,CAACA,KAAK;UACjB6G,UAAU,EAAE,IAAI,CAAChH,eAAe,CAACzB,QAAS,IAAG,IAAI,CAACyB,eAAe,CAACiH,gBAAgB;AAClFC,UAAAA,QAAQ,EAAE,IAAI,CAACC,OAAO,CAACD,QAAQ;AAC/B3F,UAAAA,MAAM,EAAE,IAAI,CAAChB,UAAU,CAAC,QAAQ,CAAC;AACjCjB,UAAAA,UAAU,EAAE,IAAI,CAACU,eAAe,CAACV,UAAU;AAC3CD,UAAAA,aAAa,EAAE,IAAI,CAACW,eAAe,CAACX,aAAa;UACjDG,IAAI,EAAA,CAAAuB,qBAAA,GAAE,IAAI,CAACf,eAAe,MAAAe,IAAAA,IAAAA,qBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAsBvB,IAAAA;AAChC,SAAA;OACH,CAAA;MAED,OAAOgC,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEZ,QAAAA,MAAM,EAAEc,cAAAA;OAAgB,CAAC,EAAE,IAAI,CAACS,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIE,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACW,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEE,cAAc,CAAC,CAAC,CAAA;KAC5K;IACDY,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAAC1B,MAAM,CAAC1D,SAAS,IAAI,CAAC0D,MAAM,CAAC1D,KAAK,CAACqF,EAAG,GAAE,IAAI,CAAC3B,MAAM,CAAC1D,KAAK,CAACqF,EAAG,GAAExD,SAAS,CAAE;KACxF;AACD+I,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACtG,GAAG,EAAE;AACrB,MAAA,IAAME,iBAAiB;AACnBxE,QAAAA,KAAK,EAAE,IAAI,CAAC0D,MAAM,CAAC1D,KAAK;AACxByE,QAAAA,MAAM,EAAE;AACJC,UAAAA,QAAQ,EAAE,IAAI;UACd1E,KAAK,EAAE,IAAI,CAAC2E,MAAM;UAClBC,KAAK,EAAE,IAAI,CAACC,KAAAA;SACf;AACDC,QAAAA,OAAO,EAAE;UACLsF,OAAO,EAAE,IAAI,CAACA,OAAO;UACrBC,cAAc,EAAE,IAAI,CAACA,cAAAA;AACzB,SAAA;OACH,CAAA;MAED,OAAOrF,UAAU,CAAC,IAAI,CAACC,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAI,EAAA;AAAEZ,QAAAA,MAAM,EAAEc,cAAAA;OAAgB,CAAC,EAAE,IAAI,CAACS,GAAG,CAAAC,SAAAA,CAAAA,MAAA,CAAWZ,GAAG,CAAIE,EAAAA,cAAc,CAAC,EAAE,IAAI,CAACW,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE,EAAEd,GAAG,EAAEE,cAAc,CAAC,CAAC,CAAA;KAC5K;IACDR,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,IAAI,IAAI,CAACD,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,IAAIuB,KAAM,GAAE,IAAI,CAACvB,UAAU,CAAC,aAAa,CAAC,CAAA;QAE1C,IAAIuB,KAAM,KAAI,OAAO,EAAE;UACnB,IAAIC,KAAI,GAAI,CAAC,CAAA;UACb,IAAIC,IAAK,GAAEC,qBAAqB,CAAC,IAAI,CAACC,GAAG,EAAE,+BAA+B,CAAC,CAAA;AAE3E,UAAA,IAAIF,IAAI,EAAE;AACND,YAAAA,KAAM,GAAEI,aAAa,CAACH,IAAI,CAAE,GAAEI,UAAU,CAACJ,IAAI,CAACpC,KAAK,CAACmC,KAAM,IAAG,CAAC,CAAC,CAAA;AACnE,WAAA;AAEA,UAAA,IAAI,CAAC1B,WAAW,CAAC0B,KAAI,GAAIA,KAAM,GAAE,IAAI,CAAA;AACzC,SAAE,MAAK;UACH,IAAIM,IAAG,GAAI,CAAC,CAAA;UACZ,IAAIC,IAAK,GAAEC,yBAAyB,CAAC,IAAI,CAACL,GAAG,EAAE,+BAA+B,CAAC,CAAA;AAE/E,UAAA,IAAII,IAAI,EAAE;AACND,YAAAA,IAAG,GAAIF,aAAa,CAACG,IAAI,CAAE,GAAEF,UAAU,CAACE,IAAI,CAAC1C,KAAK,CAACyC,IAAK,IAAG,CAAC,CAAC,CAAA;AACjE,WAAA;AAEA,UAAA,IAAI,CAAChC,WAAW,CAACgC,IAAG,GAAIA,IAAK,GAAE,IAAI,CAAA;AACvC,SAAA;AACJ,OAAA;KACH;AACDgF,IAAAA,gBAAgB,WAAhBA,kBAAgBA,CAACC,OAAO,EAAEtC,KAAK,EAAE;AAC7B,MAAA,OAAOqC,gBAAgB,CAACC,OAAO,EAAEtC,KAAK,CAAC,CAAA;KAC1C;IACDuC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAI,CAACpD,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACjC,KAAA;GACH;AACD3B,EAAAA,QAAQ,EAAE;IACNC,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,OAAO,CAAC,IAAI,CAAClC,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,CAACA,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAACmC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;KACvF;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIC,YAAY,IAAI,CAACrC,UAAU,CAAC,WAAW,CAAC,CAAA;AAC5C,MAAA,IAAIsC,WAAU,GAAI,IAAI,CAACtC,UAAU,CAAC,OAAO,CAAC,CAAA;MAE1C,OAAO,IAAI,CAACA,UAAU,CAAC,QAAQ,CAAE,GAAE,CAACsC,WAAW,EAAED,SAAS,EAAE,IAAI,CAACvC,WAAW,CAAA,GAAI,CAACwC,WAAW,EAAED,SAAS,CAAC,CAAA;KAC3G;IACD4E,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,OAAO;QACHC,UAAU,EAAE,IAAI,CAAChB,KAAM,GAAE,IAAI,CAACrH,WAAY,GAAE,KAAK;AACjDsI,QAAAA,UAAU,EAAE,IAAI,CAAChB,IAAK,GAAE,QAAO,GAAI,SAAA;OACtC,CAAA;KACJ;IACDiB,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAAC3K,aAAc,KAAI,UAAU,CAAA;AAC5C,KAAA;GACH;AACD6I,EAAAA,UAAU,EAAE;AACR+B,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,WAAU,EAAVA,WAAAA;GACH;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAM,EAAEC,MAAAA;AACZ,GAAA;AACJ,CAAC;;;;;;;;;;;;;ECzOG,OAAAtF,SAAA,EAAA,EAAAC,kBAAA,CAoCI,MApCJC,UAoCI,CAAA;IApCCpD,KAAK,EAAEqD,QAAc,CAAAN,cAAA;IAAG,OAAOM,EAAAA,QAAc,CAAAR,cAAA;AAAES,IAAAA,IAAI,EAAC,MAAA;AAAoB,GAAA,EAAAC,eAAA,CAAAA,eAAA,CAAAF,EAAAA,EAAAA,QAAA,CAAApC,WAAW,WAAaoC,QAAW,CAAApC,WAAA,CAAA,UAAA,CAAA,CAAA,EAAA;AAAiB,IAAA,sBAAoB,EAAEoC,QAAU,CAAA1C,UAAA,CAAA,QAAA,CAAA;OAC7J6F,kBAAA,CAkCK,OAlCLpD,UAkCK,CAAA;AAlCC,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,iBAAA,CAAA;KAA6BO,QAAW,CAAApC,WAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,CACrCoC,QAAU,CAAA1C,UAAA,CAAA,UAAA,CAAA,GAAxB8H,cAAA,EAAAvF,SAAA,EAAA,EAAAC,kBAAA,CAcQ,UAdRC,UAcQ,CAAA;;AAduCtG,IAAAA,IAAI,EAAC;AAAU,IAAA,OAAA,EAAO8G,IAAE,CAAAd,EAAA,CAAA,kBAAA,CAAA;IAAuBuB,OAAK;aAAEhB,QAAM,CAAA8D,MAAA,IAAA9D,QAAA,CAAA8D,MAAA,CAAAhB,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IAAGpG,KAAK,EAAEqD,QAAY,CAAAuE,YAAA;AAAEtB,IAAAA,QAAQ,EAAC,IAAA;KAAajD,QAAW,CAAApC,WAAA,CAAA,kBAAA,CAAA,EAAA;AAAsB,IAAA,uBAAqB,EAAC,iBAAA;GAAiB,CAAA,EAAA,CAC7MM,MAAI,CAAAqF,IAAA,CAACrI,OAAQ,IAAGgD,MAAY,CAAA7C,WAAA,KAAA,MAAA,iBAA5CyE,kBAKU,CAAAuF,QAAA,EAAA;AAAAxH,IAAAA,GAAA,EAAA,CAAA;GAAA,EAAA,CAJWK,MAAS,CAAA2F,SAAA,CAAA,gBAAA,CAAA,IAA1BhE,SAAA,EAAA,EAAAQ,WAAA,CAAiFC,wBAA9BpC,MAAS,CAAA2F,SAAA,CAAA,gBAAA,CAAA,CAAA,EAAA;AAAAhG,IAAAA,GAAA,EAAA,CAAA;AAAA,GAAA,CAAA,kCAE3CK,MAAS,CAAA2F,SAAA,CAAA,iBAAA,CAAA,IAA1BhE,SAAA,EAAA,EAAAQ,WAAA,CAAmFC,wBAA/BpC,MAAS,CAAA2F,SAAA,CAAA,iBAAA,CAAA,CAAA,EAAA;AAAAhG,IAAAA,GAAA,EAAA,CAAA;GAAA,CAAA,KAC7DgC,SAAA,EAAA,EAAAQ,WAAA,CAAyDiF,wBAAzDvF,UAAyD,CAAA;;AAArCwF,IAAAA,IAAG,EAAH,EAAA;KAAahF,IAAG,CAAA/B,GAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA,wBAExCsB,kBAMU,CAAAuF,QAAA,EAAA;AAAAxH,IAAAA,GAAA,EAAA,CAAA;AAAA,GAAA,EAAA,CALWK,MAAA,CAAAjB,MAAM,CAACkD,QAAO,IAAKjC,aAAM,CAACiC,QAAQ,CAACqF,aAAa,IAAjE3F,SAAA,EAAA,EAAAQ,WAAA,CAAuKC,uBAA/F,CAAApC,MAAA,CAAAjB,MAAM,CAACkD,QAAQ,CAACqF,aAAa,CAAA,EAAA;;IAAGjC,IAAI,EAAErF,MAAI,CAAAqF,IAAA;IAAGG,QAAQ,EAAExF,MAAQ,CAAAwF,QAAA;AAAG,IAAA,OAAA,iBAAOnD,IAAE,CAAAd,EAAA,CAAA,eAAA,CAAA,CAAA;8EAElIvB,MAAA,CAAAjB,MAAM,CAACkD,QAAO,IAAKjC,aAAM,CAACiC,QAAQ,CAACsF,cAAc,IAAlE5F,SAAA,EAAA,EAAAQ,WAAA,CAAyKC,uBAAhG,CAAApC,MAAA,CAAAjB,MAAM,CAACkD,QAAQ,CAACsF,cAAc,CAAA,EAAA;;IAAGlC,IAAI,EAAErF,MAAI,CAAAqF,IAAA;IAAGG,QAAQ,EAAExF,MAAQ,CAAAwF,QAAA;AAAG,IAAA,OAAA,iBAAOnD,IAAE,CAAAd,EAAA,CAAA,eAAA,CAAA,CAAA;gDAC/HvB,MAAQ,CAAAwF,QAAA,IAA9B7D,SAAA,EAAA,EAAAQ,WAAA,CAAyJC,uBAApH,CAAApC,MAAA,CAAAqF,IAAI,CAACmC,YAAa,gCAAvD3F,UAAyJ,CAAA;;AAAnE,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,eAAA,CAAA;KAA2BO,QAAW,CAAApC,WAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,KACrIiC,SAAA,EAAA,EAAAQ,WAAA,CAA6IC,uBAAtH,CAAApC,MAAA,CAAAqF,IAAI,CAACoC,aAAc,iCAA1C5F,UAA6I,CAAA;;AAAnE,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,eAAA,CAAA;KAA2BO,QAAW,CAAApC,WAAA,CAAA,eAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,uEAIvHoC,QAAA,CAAA0E,qBAAsB,IAAG1E,QAAU,CAAA1C,UAAA,CAAA,UAAA,CAAA,iBAD7C+C,WAeU,CAAAuF,mBAAA,EAAA;;IAbLC,UAAU,EAAE3H,MAAO,CAAAyF,OAAA;AACnBmC,IAAAA,MAAM,EAAE,IAAI;IACZ,wBAAOvF,IAAE,CAAAd,EAAA,CAAA,gBAAA,CAAA,CAAA;IACTsG,QAAM,EAAE/F,QAAc,CAAAsE,cAAA;IACtBrB,QAAQ,EAAE,CAAE,CAAA;IACZ+C,aAAa,EAAE9H,MAAc,CAAA0F,cAAA;IAC7BqC,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;AAClBrH,IAAAA,EAAE,EAAEoB,QAAmB,CAAAmE,mBAAA,CAAA,gBAAA,CAAA;IACvB,uBAAqB,EAAEjG,MAAc,CAAA0F,cAAAA;;AAE3BsC,IAAAA,IAAI,EAAAC,OAAA,CACX,UAAoKC,SAD9I,EAAA;MAAA,OAAA,CACLlI,MAAS,CAAA2F,SAAA,CAAA,cAAA,CAAA,IAA1BhE,SAAA,EAAA,EAAAQ,WAAA,CAAoKC,wBAAnHpC,MAAS,CAAA2F,SAAA,CAAA,cAAA,CAAA,CAAA,EAAA;;QAAmBF,OAAO,EAAEyC,SAAS,CAACzC,OAAO;QAAGC,cAAc,EAAE1F,MAAc,CAAA0F,cAAA;QAAG,OAAKyC,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;0IAGxJlI,MAAA,CAAAjB,MAAM,CAACkD,QAAO,IAAKjC,aAAM,CAACiC,QAAQ,CAACmG,IAAI,IAAxDzG,SAAA,EAAA,EAAAQ,WAAA,CAAoHC,uBAArD,CAAApC,MAAA,CAAAjB,MAAM,CAACkD,QAAQ,CAACmG,IAAI,CAAA,EAAA;;IAAG/C,IAAI,EAAErF,MAAI,CAAAqF,IAAA;IAAGtG,MAAM,EAAEiB,MAAM,CAAAjB,MAAAA;mDACjH6C,kBAAiF,CAAAuF,QAAA,EAAA;AAAAxH,IAAAA,GAAA,EAAA,CAAA;AAAA,GAAA,EAAA,CAA7D0I,eAAA,CAAAC,eAAA,CAAAxG,QAAA,CAAAoE,gBAAgB,CAAClG,MAAA,CAAAqF,IAAI,CAACpG,IAAI,EAAE6C,QAAU,CAAA1C,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;AC2CtE,eAAe;AACXjE,EAAAA,IAAI,EAAE,cAAc;AACpB2D,EAAAA,QAAQ,EAAE,WAAW;AACrB,EAAA,SAAA,EAAS1D,aAAa;AACtBkH,EAAAA,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,CAAC;AACvIjH,EAAAA,KAAK,EAAE;AACHgK,IAAAA,IAAI,EAAE;AACF9J,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,OAAO,EAAE;AACLD,MAAAA,IAAI,EAAE,CAACE,MAAM,EAAEC,QAAQ,CAAC;MACxB,SAAS,EAAA,KAAA;KACZ;AACD6M,IAAAA,UAAU,EAAE;AACRhN,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDiN,IAAAA,OAAO,EAAE;AACLjN,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDI,IAAAA,YAAY,EAAE;AACVJ,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDK,IAAAA,aAAa,EAAE;AACXL,MAAAA,IAAI,EAAE,IAAI;MACV,SAAS,EAAA,IAAA;KACZ;AACDM,IAAAA,aAAa,EAAE;AACXN,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACD6J,IAAAA,KAAK,EAAE;AACH/J,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACD6B,IAAAA,WAAW,EAAE;AACT1C,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACD2I,IAAAA,QAAQ,EAAE;AACNxJ,MAAAA,IAAI,EAAEa,MAAM;AACZ,MAAA,SAAA,EAAS,CAAC,CAAA;KACb;AACDqM,IAAAA,WAAW,EAAE;AACTlN,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDsM,IAAAA,YAAY,EAAE;AACVnN,MAAAA,IAAI,EAAEa,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDe,IAAAA,WAAW,EAAE;AACT5B,MAAAA,IAAI,EAAEE,MAAM;MACZ,SAAS,EAAA,MAAA;KACZ;AACDkK,IAAAA,SAAS,EAAE;AACPpK,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDF,IAAAA,WAAW,EAAE;AACTT,MAAAA,IAAI,EAAEQ,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDE,IAAAA,oBAAoB,EAAE;AAClBV,MAAAA,IAAI,EAAEW,MAAM;MACZ,SAAS,EAAA,IAAA;AACb,KAAA;GACH;AACDyM,EAAAA,WAAW,EAAE,KAAK;AAClBpJ,EAAAA,OAAO,EAAE;AACLH,IAAAA,UAAU,WAAVA,UAAUA,CAACwJ,GAAG,EAAEpJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACmJ,GAAG,EAAEpJ,IAAI,CAAC,CAAA;KACjC;IACDoG,MAAM,EAAA,SAANA,MAAMA,GAAG;MACL,IAAI,CAAC5C,KAAK,CAAC,aAAa,EAAE,IAAI,CAACqC,IAAI,CAAC,CAAA;KACvC;AACDvC,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACC,KAAK,EAAE;AACX,MAAA,IAAI8F,WAAW,CAAC9F,KAAK,CAAC+F,MAAM,CAAE,IAAGxF,YAAY,CAACP,KAAK,CAAC+F,MAAM,EAAE,iBAAiB,CAAA,KAAM,kBAAiB,IAAKxF,YAAY,CAACP,KAAK,CAAC+F,MAAM,EAAE,iBAAiB,MAAM,mBAAmB/F,KAAK,CAAC+F,MAAM,CAACC,OAAQ,KAAI,MAAM,EAAE;AAC3M,QAAA,OAAA;AACJ,OAAA;MAEA,IAAI,CAACC,2BAA2B,CAACjG,KAAK,EAAE,IAAI,CAAC4F,WAAW,CAAC,CAAA;AAEzD,MAAA,IAAI,CAAC3F,KAAK,CAAC,YAAY,EAAE;AACrBC,QAAAA,aAAa,EAAEF,KAAK;QACpB4F,WAAW,EAAE,IAAI,CAACA,WAAW;QAC7BtD,IAAI,EAAE,IAAI,CAACA,IAAAA;AACf,OAAC,CAAC,CAAA;MACF,IAAI,CAACsD,WAAY,GAAE,KAAK,CAAA;KAC3B;AACDM,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAClG,KAAK,EAAE;AACnB,MAAA,IAAI,CAACC,KAAK,CAAC,gBAAgB,EAAE;AACzBC,QAAAA,aAAa,EAAEF,KAAK;QACpBsC,IAAI,EAAE,IAAI,CAACA,IAAAA;AACf,OAAC,CAAC,CAAA;KACL;IACD6D,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,IAAI,CAACP,WAAU,GAAI,IAAI,CAAA;KAC1B;AACDQ,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAAC9D,IAAI,EAAE;AACV,MAAA,OAAOa,gBAAgB,CAACb,IAAI,EAAE,IAAI,CAAC7J,OAAO,CAAC,CAAA;KAC9C;AACD0H,IAAAA,SAAS,WAATA,SAASA,CAACH,KAAK,EAAEqG,IAAI,EAAE;MACnB,QAAQrG,KAAK,CAACI,IAAI;AACd,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACkG,cAAc,CAACtG,KAAK,CAAC,CAAA;AAC1B,UAAA,MAAA;AAEJ,QAAA,KAAK,SAAS;AACV,UAAA,IAAI,CAACuG,YAAY,CAACvG,KAAK,CAAC,CAAA;AACxB,UAAA,MAAA;AAEJ,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACwG,cAAc,CAACxG,KAAK,CAAC,CAAA;AAC1B,UAAA,MAAA;AAEJ,QAAA,KAAK,YAAY;AACb,UAAA,IAAI,CAACyG,eAAe,CAACzG,KAAK,CAAC,CAAA;AAC3B,UAAA,MAAA;AAEJ,QAAA,KAAK,MAAM;AACP,UAAA,IAAI,CAAC0G,SAAS,CAAC1G,KAAK,CAAC,CAAA;AACrB,UAAA,MAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAAC2G,QAAQ,CAAC3G,KAAK,CAAC,CAAA;AACpB,UAAA,MAAA;AAEJ,QAAA,KAAK,OAAO,CAAA;AACZ,QAAA,KAAK,aAAa,CAAA;AAClB,QAAA,KAAK,OAAO;AACR,UAAA,IAAI,CAAC8F,WAAW,CAAC9F,KAAK,CAAC+F,MAAM,CAAC,EAAE;AAC5B,YAAA,IAAI,CAACa,UAAU,CAAC5G,KAAK,EAAEqG,IAAI,CAAC,CAAA;AAChC,WAAA;AAEA,UAAA,MAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAACQ,QAAQ,CAAC7G,KAAK,CAAC,CAAA;AACpB,UAAA,MAAA;AAIR,OAAA;KACH;AACDsG,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACtG,KAAK,EAAE;AAClB,MAAA,IAAMH,kBAAiB,GAAIG,KAAK,CAACK,aAAa,CAACR,kBAAkB,CAAA;MAEjEA,kBAAmB,IAAG,IAAI,CAACiH,cAAc,CAAC9G,KAAK,CAACK,aAAa,EAAER,kBAAkB,CAAC,CAAA;MAElFG,KAAK,CAACQ,cAAc,EAAE,CAAA;KACzB;AACD+F,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACvG,KAAK,EAAE;AAChB,MAAA,IAAM+G,sBAAuB,GAAE/G,KAAK,CAACK,aAAa,CAAC0G,sBAAsB,CAAA;MAEzEA,sBAAuB,IAAG,IAAI,CAACD,cAAc,CAAC9G,KAAK,CAACK,aAAa,EAAE0G,sBAAsB,CAAC,CAAA;MAE1F/G,KAAK,CAACQ,cAAc,EAAE,CAAA;KACzB;AACDiG,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAACzG,KAAK,EAAE;AAAA,MAAA,IAAAgH,KAAA,GAAA,IAAA,CAAA;AACnB,MAAA,IAAMC,YAAa,GAAEC,UAAU,CAAClH,KAAK,CAACK,aAAa,EAAE,QAAQ,CAAC,CAAC3E,KAAK,CAAC8H,UAAW,KAAI,QAAQ,CAAA;MAC5F,IAAM2D,iBAAiBD,UAAU,CAAC,IAAI,CAACE,KAAK,CAAC9E,IAAI,EAAE,sCAAsC,CAAC,CAAA;AAE1F,MAAA,IAAI2E,YAAY,EAAE,OAAA;MAElB,CAAC,IAAI,CAACxE,QAAO,IAAK0E,cAAc,CAACE,KAAK,EAAE,CAAA;MAExC,IAAI,CAACC,SAAS,CAAC,YAAM;AACjBN,QAAAA,KAAI,CAACV,cAAc,CAACtG,KAAK,CAAC,CAAA;AAC9B,OAAC,CAAC,CAAA;MAEFA,KAAK,CAACQ,cAAc,EAAE,CAAA;KACzB;AACDgG,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACxG,KAAK,EAAE;MAClB,IAAI,IAAI,CAACuC,KAAM,KAAI,CAAA,IAAK,CAAC,IAAI,CAACE,QAAQ,EAAE;AACpC,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMpC,aAAc,GAAEL,KAAK,CAACK,aAAa,CAAA;AACzC,MAAA,IAAM4G,eAAeC,UAAU,CAAC7G,aAAa,EAAE,QAAQ,CAAC,CAAC3E,KAAK,CAAC8H,UAAW,KAAI,QAAQ,CAAA;AACtF,MAAA,IAAM2D,cAAe,GAAED,UAAU,CAAC7G,aAAa,EAAE,sCAAsC,CAAC,CAAA;AAExF,MAAA,IAAI,IAAI,CAACoC,QAAO,IAAK,CAACwE,YAAY,EAAE;QAChCE,cAAc,CAACE,KAAK,EAAE,CAAA;AAEtB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMtB,MAAK,GAAI,IAAI,CAACwB,uBAAuB,CAAClH,aAAa,CAAC,CAAA;MAE1D0F,UAAU,IAAI,CAACe,cAAc,CAACzG,aAAa,EAAE0F,MAAM,CAAC,CAAA;KACvD;AACDW,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAAC1G,KAAK,EAAE;AACb,MAAA,IAAMwH,gBAAe,GAAIN,UAAU,CAAClH,KAAK,CAACK,aAAa,CAACT,aAAa,EAAApC,kBAAAA,CAAAA,MAAA,CAAoB,IAAI,CAAC+E,KAAM,GAAE,CAAC,QAAI,CAAC,CAAA;AAE5GiF,MAAAA,gBAAiB,IAAGC,KAAK,CAACD,gBAAgB,CAAC,CAAA;MAE3CxH,KAAK,CAACQ,cAAc,EAAE,CAAA;KACzB;AACDmG,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAAC3G,KAAK,EAAE;AACZ,MAAA,IAAM0H,KAAM,GAAEC,IAAI,CAAC3H,KAAK,CAACK,aAAa,CAACT,aAAa,EAAApC,kBAAAA,CAAAA,MAAA,CAAoB,IAAI,CAAC+E,QAAQ,CAAC,QAAI,CAAC,CAAA;MAC3F,IAAMiF,gBAAe,GAAIE,KAAK,CAACA,KAAK,CAAC9G,MAAO,GAAE,CAAC,CAAC,CAAA;MAEhD6G,KAAK,CAACD,gBAAgB,CAAC,CAAA;MAEvBxH,KAAK,CAACQ,cAAc,EAAE,CAAA;KACzB;AACDoG,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC5G,KAAK,EAAE;MACdA,KAAK,CAACQ,cAAc,EAAE,CAAA;MACtB,IAAI,CAACyF,2BAA2B,CAACjG,KAAK,EAAE,IAAI,CAAC4F,WAAW,CAAC,CAAA;AAEzD,MAAA,IAAI,IAAI,CAAC9M,aAAY,KAAM,UAAU,EAAE;QACnC,IAAI,CAACuK,cAAc,EAAE,CAAA;AAErB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAI,CAACpD,KAAK,CAAC,YAAY,EAAE;AACrBC,QAAAA,aAAa,EAAEF,KAAK;QACpB4F,WAAW,EAAE,IAAI,CAACA,WAAW;QAC7BtD,IAAI,EAAE,IAAI,CAACA,IAAAA;AACf,OAAC,CAAC,CAAA;MAEF,IAAI,CAACsD,WAAY,GAAE,KAAK,CAAA;KAC3B;IACDiB,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAMzN,IAAG,GAAAwO,oBAAA,CAAQD,IAAI,CAAC,IAAI,CAACP,KAAK,CAAC9E,IAAI,CAAC1C,aAAa,EAAE,IAAI,CAAC,CAAC,CAAA;AAC3D,MAAA,IAAMiI,cAAe,GAAEzO,IAAI,CAAC0O,IAAI,CAAC,UAACC,GAAG,EAAA;AAAA,QAAA,OAAKxH,YAAY,CAACwH,GAAG,EAAE,iBAAiB,CAAA,IAAKA,GAAG,CAACxH,YAAY,CAAC,cAAc,CAAE,KAAI,MAAM,CAAA;OAAC,CAAA,CAAA;AAE9HnH,MAAAA,IAAI,CAAC4O,OAAO,CAAC,UAACD,GAAG,EAAK;AAClBA,QAAAA,GAAG,CAACE,QAAS,GAAE,CAAC,CAAC,CAAA;AACrB,OAAC,CAAC,CAAA;AAEF,MAAA,IAAIJ,cAAc,EAAE;AAChB,QAAA,IAAMK,aAAc,GAAE9O,IAAI,CAAC+O,MAAM,CAAC,UAAC7F,IAAI,EAAA;AAAA,UAAA,OAAK/B,YAAY,CAAC+B,IAAI,EAAE,iBAAiB,CAAA,IAAKA,IAAI,CAAC/B,YAAY,CAAC,cAAc,CAAE,KAAI,MAAM,CAAA;SAAC,CAAA,CAAA;AAElI2H,QAAAA,aAAa,CAAC,CAAC,CAAC,CAACD,QAAS,GAAE,CAAC,CAAA;AAE7B,QAAA,OAAA;AACJ,OAAA;AAEA7O,MAAAA,IAAI,CAAC,CAAC,CAAC,CAAC6O,QAAO,GAAI,CAAC,CAAA;KACvB;AACDnB,IAAAA,cAAc,WAAdA,cAAcA,CAACsB,iBAAiB,EAAEC,iBAAiB,EAAE;MACjDD,iBAAiB,CAACH,QAAS,GAAE,IAAI,CAAA;MACjCI,iBAAiB,CAACJ,QAAS,GAAE,GAAG,CAAA;MAChCR,KAAK,CAACY,iBAAiB,CAAC,CAAA;KAC3B;AACDd,IAAAA,uBAAuB,EAAvBA,SAAAA,uBAAuBA,CAACjF,IAAI,EAAE;AAC1B,MAAA,IAAMgG,QAAS,GAAEhG,IAAI,CAACyE,sBAAsB,CAAA;AAE5C,MAAA,IAAIuB,QAAQ,EAAE;AACV,QAAA,IAAMC,cAAa,GAAID,QAAQ,CAACE,aAAa,CAAC,QAAQ,CAAC,CAAA;QAEvD,IAAID,cAAa,IAAKA,cAAc,CAAC7M,KAAK,CAAC8H,UAAW,KAAI,QAAQ,EAAE;AAChE,UAAA,OAAO8E,QAAQ,CAAA;AACnB,SAAA;AAEA,QAAA,OAAO,IAAI,CAACf,uBAAuB,CAACe,QAAQ,CAAC,CAAA;AACjD,OAAA;AAEA,MAAA,OAAO,IAAI,CAAA;KACd;IACDjF,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,IAAIoF,cAAa,GAAI,IAAI,CAAC5P,aAAc,GAAAoG,eAAA,CAAA,EAAA,EAAO,IAAI,CAACpG,aAAY,CAAA,GAAM,EAAE,CAAA;AACxE,MAAA,IAAM6P,MAAO,GAAE,CAAC,IAAI,CAAChG,OAAO,CAAA;MAE5B,IAAI,CAACiG,aAAa,CAAC,IAAI,CAACrG,IAAI,EAAEoG,MAAM,EAAED,cAAc,CAAC,CAAA;AAErD,MAAA,IAAI,CAACxI,KAAK,CAAC,iBAAiB,EAAE;QAC1BqC,IAAI,EAAE,IAAI,CAACA,IAAI;AACfsG,QAAAA,KAAK,EAAEF,MAAM;AACb7P,QAAAA,aAAa,EAAE4P,cAAAA;AACnB,OAAC,CAAC,CAAA;KACL;IACDE,aAAa,EAAA,SAAbA,aAAaA,CAACrG,IAAI,EAAEsG,KAAK,EAAE/P,aAAa,EAAE;MACtC,IAAI+P,KAAK,EAAE/P,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC9D,IAAI,CAAC,IAAI;AAAEI,QAAAA,OAAO,EAAE,IAAI;AAAEC,QAAAA,cAAc,EAAE,KAAA;OAAO,CAAA,KAClF,OAAO9J,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC9D,IAAI,CAAC,CAAC,CAAA;MAE7C,IAAIA,IAAI,CAACpD,QAAO,IAAKoD,IAAI,CAACpD,QAAQ,CAAC0B,MAAM,EAAE;AAAA,QAAA,IAAAiI,SAAA,GAAAC,4BAAA,CACrBxG,IAAI,CAACpD,QAAQ,CAAA;UAAA6J,KAAA,CAAA;AAAA,QAAA,IAAA;UAA/B,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAAiC;AAAA,YAAA,IAAxBC,KAAI,GAAAJ,KAAA,CAAAxQ,KAAA,CAAA;YACT,IAAI,CAACoQ,aAAa,CAACQ,KAAK,EAAEP,KAAK,EAAE/P,aAAa,CAAC,CAAA;AACnD,WAAA;AAAA,SAAA,CAAA,OAAAuQ,GAAA,EAAA;UAAAP,SAAA,CAAAQ,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,SAAA,SAAA;AAAAP,UAAAA,SAAA,CAAAS,CAAA,EAAA,CAAA;AAAA,SAAA;AACJ,OAAA;KACH;AACDC,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACvJ,KAAK,EAAE;AACf,MAAA,IAAI4I,QAAQ5I,KAAK,CAAC4I,KAAK,CAAA;AACvB,MAAA,IAAIH,cAAe,GAAAxJ,eAAA,KAAOe,KAAK,CAACnH,cAAe,CAAA;MAC/C,IAAI2Q,iBAAgB,GAAI,CAAC,CAAA;MACzB,IAAIC,oBAAqB,GAAE,KAAK,CAAA;MAAA,IAAAC,UAAA,GAAAZ,4BAAA,CAEd,IAAI,CAACxG,IAAI,CAACpD,QAAQ,CAAA;QAAAyK,MAAA,CAAA;AAAA,MAAA,IAAA;QAApC,KAAAD,UAAA,CAAAV,CAAA,EAAAW,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAT,CAAA,EAAAC,EAAAA,IAAA,GAAsC;AAAA,UAAA,IAA7BC,KAAM,GAAAQ,MAAA,CAAApR,KAAA,CAAA;UACX,IAAIkQ,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAA,IAAKV,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAC,CAACzG,OAAO,EAAE8G,iBAAiB,EAAE,CAAA,KACtG,IAAIf,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAA,IAAKV,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAC,CAACxG,cAAc,EAAE8G,oBAAmB,GAAI,IAAI,CAAA;AACnI,SAAA;AAAA,OAAA,CAAA,OAAAL,GAAA,EAAA;QAAAM,UAAA,CAAAL,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,OAAA,SAAA;AAAAM,QAAAA,UAAA,CAAAJ,CAAA,EAAA,CAAA;AAAA,OAAA;MAEA,IAAIV,KAAM,IAAGY,iBAAkB,KAAI,IAAI,CAAClH,IAAI,CAACpD,QAAQ,CAAC0B,MAAM,EAAE;QAC1D6H,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAA,GAAI;AAAEI,UAAAA,OAAO,EAAE,IAAI;AAAEC,UAAAA,cAAc,EAAE,KAAA;SAAO,CAAA;AACtF,OAAE,MAAK;QACH,IAAI,CAACiG,KAAK,EAAE;UACR,OAAOH,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAC,CAAA;AAClD,SAAA;QAEA,IAAImH,wBAAyBD,iBAAgB,GAAI,CAAE,IAAGA,iBAAgB,KAAM,IAAI,CAAClH,IAAI,CAACpD,QAAQ,CAAC0B,MAAO,EAAE6H,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAE,GAAE;AAAEI,UAAAA,OAAO,EAAE,KAAK;AAAEC,UAAAA,cAAc,EAAE,IAAA;AAAK,SAAC,CAAA,KACrL8F,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,IAAI;AAAEI,UAAAA,OAAO,EAAE,KAAK;AAAEC,UAAAA,cAAc,EAAE,KAAA;SAAO,CAAA;AAC5F,OAAA;AAEA,MAAA,IAAI,CAAC1C,KAAK,CAAC,iBAAiB,EAAE;QAC1BqC,IAAI,EAAEtC,KAAK,CAACsC,IAAI;QAChBsG,KAAK,EAAE5I,KAAK,CAAC4I,KAAK;AAClB/P,QAAAA,aAAa,EAAE4P,cAAAA;AACnB,OAAC,CAAC,CAAA;KACL;AACDmB,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC5J,KAAK,EAAE;AACpB,MAAA,IAAI4I,QAAQ5I,KAAK,CAAC4I,KAAK,CAAA;AACvB,MAAA,IAAIH,cAAe,GAAAxJ,eAAA,KAAOe,KAAK,CAACnH,cAAe,CAAA;MAC/C,IAAI2Q,iBAAgB,GAAI,CAAC,CAAA;MACzB,IAAIC,oBAAqB,GAAE,KAAK,CAAA;MAAA,IAAAI,UAAA,GAAAf,4BAAA,CAEd,IAAI,CAACxG,IAAI,CAACpD,QAAQ,CAAA;QAAA4K,MAAA,CAAA;AAAA,MAAA,IAAA;QAApC,KAAAD,UAAA,CAAAb,CAAA,EAAAc,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAZ,CAAA,EAAAC,EAAAA,IAAA,GAAsC;AAAA,UAAA,IAA7BC,KAAM,GAAAW,MAAA,CAAAvR,KAAA,CAAA;UACX,IAAIkQ,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAA,IAAKV,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAC,CAACzG,OAAO,EAAE8G,iBAAiB,EAAE,CAAA,KACtG,IAAIf,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAA,IAAKV,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC+C,KAAK,CAAC,CAAC,CAACxG,cAAc,EAAE8G,oBAAmB,GAAI,IAAI,CAAA;AACnI,SAAA;AAAA,OAAA,CAAA,OAAAL,GAAA,EAAA;QAAAS,UAAA,CAAAR,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,OAAA,SAAA;AAAAS,QAAAA,UAAA,CAAAP,CAAA,EAAA,CAAA;AAAA,OAAA;MAEA,IAAIV,KAAM,IAAGY,iBAAkB,KAAI,IAAI,CAAClH,IAAI,CAACpD,QAAQ,CAAC0B,MAAM,EAAE;QAC1D6H,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAA,GAAI;AAAEI,UAAAA,OAAO,EAAE,IAAI;AAAEC,UAAAA,cAAc,EAAE,KAAA;SAAO,CAAA;AACtF,OAAE,MAAK;QACH,IAAI,CAACiG,KAAK,EAAE;UACR,OAAOH,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAC,CAAA;AAClD,SAAA;QAEA,IAAImH,wBAAyBD,iBAAgB,GAAI,CAAE,IAAGA,iBAAgB,KAAM,IAAI,CAAClH,IAAI,CAACpD,QAAQ,CAAC0B,MAAO,EAAE6H,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAE,GAAE;AAAEI,UAAAA,OAAO,EAAE,KAAK;AAAEC,UAAAA,cAAc,EAAE,IAAA;AAAK,SAAC,CAAA,KACrL8F,cAAc,CAAC,IAAI,CAACrC,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,IAAI;AAAEI,UAAAA,OAAO,EAAE,KAAK;AAAEC,UAAAA,cAAc,EAAE,KAAA;SAAO,CAAA;AAC5F,OAAA;AAEA,MAAA,IAAI,CAAC1C,KAAK,CAAC,iBAAiB,EAAE;QAC1BqC,IAAI,EAAEtC,KAAK,CAACsC,IAAI;QAChBsG,KAAK,EAAE5I,KAAK,CAAC4I,KAAK;AAClB/P,QAAAA,aAAa,EAAE4P,cAAAA;AACnB,OAAC,CAAC,CAAA;KACL;AACDxC,IAAAA,2BAA2B,WAA3BA,2BAA2BA,CAACjG,KAAK,EAAE4F,WAAW,EAAE;AAC5C,MAAA,IAAI,IAAI,CAAC9M,aAAc,KAAI,IAAI,EAAE;AAC7B,QAAA,IAAMiR,QAAS,GAAAnC,oBAAA,CAAMD,IAAI,CAAC,IAAI,CAACP,KAAK,CAAC9E,IAAI,CAAC1C,aAAa,EAAE,IAAI,CAAC,CAAC,CAAA;AAE/DI,QAAAA,KAAK,CAACK,aAAa,CAAC4H,QAAS,GAAErC,WAAU,KAAM,QAAQ,CAAC,CAAE,GAAE,CAAC,CAAA;AAE7D,QAAA,IAAImE,QAAQ,CAACC,KAAK,CAAC,UAACC,OAAO,EAAA;AAAA,UAAA,OAAKA,OAAO,CAAChC,QAAS,KAAI,CAAC,CAAC,CAAA;AAAA,SAAA,CAAC,EAAE;AACtD8B,UAAAA,QAAQ,CAAC,CAAC,CAAC,CAAC9B,QAAO,GAAI,CAAC,CAAA;AAC5B,SAAA;AACJ,OAAA;AACJ,KAAA;GACH;AACD3J,EAAAA,QAAQ,EAAE;IACNC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,CAAC,IAAI,CAAC+D,IAAI,CAAC4H,UAAU,EAAE,IAAI,CAAC1L,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;KAChD;IACDiE,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,OAAO,IAAI,CAAC7J,YAAa,IAAG,IAAI,CAACA,YAAY,CAAC,IAAI,CAACwN,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAA,KAAM,IAAI,CAAA;KAClF;IACDE,IAAI,EAAA,SAAJA,IAAIA,GAAG;MACH,OAAO,IAAI,CAACF,IAAI,CAACE,IAAG,KAAM,QAAQ,KAAM,GAAE,EAAE,IAAI,CAACF,IAAI,CAACpD,QAAS,IAAG,IAAI,CAACoD,IAAI,CAACpD,QAAQ,CAAC0B,MAAM,CAAC,CAAA;KAC/F;IACDoC,QAAQ,EAAA,SAARA,QAAQA,GAAG;MACP,OAAO,IAAI,CAAClK,aAAY,IAAK,IAAI,CAACD,gBAAgB,IAAI,CAACA,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAE,KAAI,IAAG,GAAI,KAAK,CAAA;KACjH;IACD6H,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;AACxB,MAAA,IAAI,IAAI,CAAC7H,QAAQ,IAAI,CAACpJ,oBAAoB,EAAE;AACxC,QAAA,OAAOkR,MAAM,CAAC,IAAI,CAAC9H,IAAI,EAAE,IAAI,CAACpJ,oBAAoB,EAAE,IAAI,CAACT,OAAO,CAAC,CAAA;AACrE,OAAA;AAEA,MAAA,OAAO,KAAK,CAAA;KACf;IACDiK,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,MAAA,OAAO,IAAI,CAAC7J,aAAc,GAAE,IAAI,CAACA,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAE,IAAG,IAAI,CAACzJ,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAC,CAACI,OAAM,GAAI,KAAK,CAAA;KACzI;IACDC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAAC9J,aAAY,GAAI,IAAI,CAACA,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAE,IAAG,IAAI,CAACzJ,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC,IAAI,CAAC9D,IAAI,CAAC,CAAC,CAACK,cAAa,GAAI,KAAK,CAAA;KAChJ;IACD0H,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAACvR,kBAAkB,YAAY,IAAI,CAACA,aAAc,KAAI,aAAa,IAAI,CAACkK,QAAO,GAAI,IAAI,CAAA;KACrG;IACDsH,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,OAAO;AACHlN,QAAAA,OAAO,EAAE;UACL0F,UAAU,EAAE,IAAI,CAAChH,eAAe,CAACzB,QAAS,IAAG,IAAI,CAACyB,eAAe,CAACiH,gBAAgB;UAClFC,QAAQ,EAAE,IAAI,CAACA,QAAQ;AACvB5H,UAAAA,UAAU,EAAE,IAAI,CAACU,eAAe,CAACV,UAAAA;AACrC,SAAA;OACH,CAAA;AACL,KAAA;GACH;AACDuG,EAAAA,UAAU,EAAE;AACR4I,IAAAA,UAAU,EAAEC,QAAAA;AAChB,GAAA;AACJ,CAAC;;;;;;0DC3dGtI,kBAAA,CAyCI,MAzCJpD,UAyCI,CAAA;AAxCA2L,IAAAA,GAAG,EAAC,MAAK;IACR,OAAO1L,EAAAA,QAAc,CAAAR,cAAA;AACrB7C,IAAAA,KAAK,EAAEuB,MAAI,CAAAqF,IAAA,CAAC5G,KAAK;IACjBsG,QAAQ,EAAE/E,MAAQ,CAAA+E,QAAA;AACnBhD,IAAAA,IAAI,EAAC,KAAI;AACR,IAAA,eAAa,EAAE/B,MAAA,CAAAqF,IAAI,CAACpD,QAAS,IAAGjC,MAAA,CAAAqF,IAAI,CAACpD,QAAQ,CAAC0B,SAAS7B,QAAA,CAAA0D,WAAWtI,SAAS;AAC3E,IAAA,YAAU,EAAE8C,MAAI,CAAAsF,KAAA,GAAA,CAAA;IAChB,cAAY,EAAEtF,MAAW,CAAAyI,WAAA;IACzB,eAAa,EAAEzI,MAAY,CAAA0I,YAAA;IAC3B,eAAa,EAAE5G,QAAe,CAAAsL,eAAA;AAC9B,IAAA,cAAY,EAAEtL,QAAM,CAAA2D,OAAA,IAAKvI,SAAS;IAClC4F,OAAK;aAAEhB,QAAO,CAAAgB,OAAA,IAAAhB,QAAA,CAAAgB,OAAA,CAAA8B,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IACdC,SAAO;aAAEhD,QAAS,CAAAoB,SAAA,IAAApB,QAAA,CAAAoB,SAAA,CAAA0B,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IAClB4I,UAAQ;aAAE3L,QAAU,CAAAoH,UAAA,IAAApH,QAAA,CAAAoH,UAAA,CAAAtE,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;IACpB6I,aAAW;aAAE5L,QAAe,CAAAmH,eAAA,IAAAnH,QAAA,CAAAmH,eAAA,CAAArE,KAAA,CAAA9C,QAAA,EAAA+C,SAAA,CAAA,CAAA;KAAA,CAAA;GACrB,EAAAxC,IAAA,CAAA/B,GAAG,QAAQwB,QAAU,CAAAuL,UAAA,CAAA,EAAA;IAC5B,iBAAe,EAAEvL,QAAQ,CAAAiE,QAAA;AACzB,IAAA,6BAA2B,EAAE/F,MAAmB,CAAA/D,oBAAA,IAAK6F,QAAyB,CAAAoL,yBAAAA;QAE/EvL,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAoBUuF,QApBmB,EAAA,IAAA,EAAAwG,UAAA,CAAA3N,MAAA,CAAAwI,OAAO,EAAlB,UAAAI,GAAG,EAAElF,CAAC,EAAA;;AAAoB/D,MAAAA,GAAA,EAAAmC,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,WAAA,CAAA,IAAkB9G,mBAAU,CAAC8G,GAAG,cAAclF,CAAAA;QAEzF,CAAA5B,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,QAAA,CAAA,iBADzBzG,WAkBa,CAAAyL,qBAAA,EAAA;;AAhBR7O,MAAAA,MAAM,EAAE6J,GAAG;MACXvD,IAAI,EAAErF,MAAI,CAAAqF,IAAA;MACVC,KAAK,EAAEtF,MAAK,CAAAsF,KAAA;MACZC,IAAI,EAAEzD,QAAI,CAAAyD,IAAA;MACVtH,WAAW,EAAE+B,MAAW,CAAA/B,WAAA;MACxBuH,QAAQ,EAAE1D,QAAQ,CAAA0D,QAAA;MAClB3J,aAAa,EAAEmE,MAAa,CAAAnE,aAAA;MAC5B4J,OAAO,EAAE3D,QAAO,CAAA2D,OAAA;MAChBC,cAAc,EAAE5D,QAAc,CAAA4D,cAAA;MAC9BC,SAAS,EAAE3F,MAAS,CAAA2F,SAAA;AACpBkI,MAAAA,YAAW,EAAAC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE1L,IAAK,CAAAW,KAAA,CAAA,aAAA,EAAgB+K,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;MACxCC,gBAAe,EAAElM,QAAc,CAAAsE,cAAA;AAC/BpH,MAAAA,KAAK,EAAE0E,CAAC;MACRvG,WAAW,EAAE6C,MAAW,CAAA7C,WAAA;MACxB4K,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;MAClBrH,EAAE,EAAE2B,IAAE,CAAA3B,EAAAA;;iCAIHoB,QAAS,CAAA0D,QAAA,IAAGxF,WAAI,CAACiC,QAAO,IAAKjC,MAAI,CAAAqF,IAAA,CAACpD,QAAQ,CAAC0B,MAAM,IAC7DhC,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAuBCuF,QAtBuB,EAAA;AAAAxH,IAAAA,GAAA,EAAA,CAAA;GAAA,EAAAgO,UAAA,CAAA3N,MAAA,CAAAqF,IAAI,CAACpD,QAAQ,YAA1BgM,SAAU,EAAA;wBADrB9L,WAuBC,CAAA+L,uBAAA,EAAA;AArBIvO,MAAAA,GAAG,EAAEmC,QAAO,CAAAqH,OAAA,CAAC8E,SAAS,CAAA;MACtBzS,OAAO,EAAEwE,MAAO,CAAAxE,OAAA;MAChBgN,OAAO,EAAExI,MAAO,CAAAwI,OAAA;AAChBnD,MAAAA,IAAI,EAAE4I,SAAS;MACf1F,UAAU,EAAEvI,MAAI,CAAAqF,IAAA;AAChBC,MAAAA,KAAK,EAAEtF,MAAI,CAAAsF,KAAA,GAAA,CAAA;MACX3J,YAAY,EAAEqE,MAAY,CAAArE,YAAA;MAC1BE,aAAa,EAAEmE,MAAa,CAAAnE,aAAA;MAC5BD,aAAa,EAAEoE,MAAa,CAAApE,aAAA;MAC5BI,WAAW,EAAEgE,MAAW,CAAAhE,WAAA;MACxBC,oBAAoB,EAAE+D,MAAoB,CAAA/D,oBAAA;MAC1CgC,WAAW,EAAE+B,MAAW,CAAA/B,WAAA;AACxByK,MAAAA,YAAY,EAAE1I,MAAI,CAAAqF,IAAA,CAACpD,QAAQ,CAACkM,OAAO,CAACF,SAAS,CAAA,GAAA,CAAA;AAC7CxF,MAAAA,WAAW,EAAEzI,MAAA,CAAAqF,IAAI,CAACpD,QAAQ,CAAC0B,MAAM;MACjCgC,SAAS,EAAE3F,MAAS,CAAA2F,SAAA;AACpBkI,MAAAA,YAAW,EAAAC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE1L,IAAK,CAAAW,KAAA,CAAA,aAAA,EAAgB+K,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;AACxCK,MAAAA,WAAU,EAAAN,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE1L,IAAK,CAAAW,KAAA,CAAA,YAAA,EAAe+K,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;AACtCM,MAAAA,eAAc,EAAAP,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAE1L,IAAK,CAAAW,KAAA,CAAA,gBAAA,EAAmB+K,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;MAC9CpB,gBAAe,EAAE7K,QAAgB,CAAA6K,gBAAA;MACjC5E,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;MAClBrH,EAAE,EAAE2B,IAAE,CAAA3B,EAAAA;;;;;;;;;;;;;;;;;;;;ACsHnB,aAAe;AACXvF,EAAAA,IAAI,EAAE,WAAW;AACjB,EAAA,SAAA,EAASmT,QAAa;AACtBC,EAAAA,YAAY,EAAE,KAAK;AACnBjM,EAAAA,KAAK,EAAE,CACH,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,6BAA6B,EAC7B,iBAAgB,CACnB;EACD3D,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;MACH6P,QAAQ,EAAE,IAAI,CAACC,SAAAA;KAClB,CAAA;GACJ;EACDxP,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHyP,MAAAA,cAAc,EAAE,IAAI,CAAC/S,YAAW,IAAK,EAAE;MACvCgT,OAAO,EAAE,IAAI,CAACtS,KAAK;MACnBuS,MAAM,EAAE,IAAI,CAACzS,IAAI;MACjB0S,WAAW,EAAE,IAAI,CAACvR,SAAS;MAC3BwR,WAAW,EAAE,IAAI,CAACvR,SAAS;MAC3BwR,eAAe,EAAE,IAAI,CAACtR,aAAY,GAAAkN,kBAAA,CAAQ,IAAI,CAAClN,aAAa,CAAA,GAAI,EAAE;AAClEuR,MAAAA,gBAAgB,EAAE,KAAK;MACvBP,SAAS,EAAE,IAAIQ,SAAS,CAAC;AAAE1T,QAAAA,IAAI,EAAE,QAAA;OAAU,CAAA;KAC9C,CAAA;GACJ;AACD2T,EAAAA,4BAA4B,EAAE,IAAI;AAClCC,EAAAA,+BAA+B,EAAE,IAAI;AACrCC,EAAAA,iBAAiB,EAAE,IAAI;AACvBC,EAAAA,mBAAmB,EAAE,IAAI;AACzBC,EAAAA,KAAK,EAAE;AACH3T,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAAC4T,QAAQ,EAAE;MACnB,IAAI,CAACb,cAAa,GAAIa,QAAQ,CAAA;KACjC;AACDlT,IAAAA,KAAK,EAALA,SAAAA,KAAKA,CAACkT,QAAQ,EAAE;MACZ,IAAI,CAACZ,OAAQ,GAAEY,QAAQ,CAAA;KAC1B;AACDpT,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAACoT,QAAQ,EAAE;MACX,IAAI,CAACX,MAAO,GAAEW,QAAQ,CAAA;KACzB;AACDjS,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACiS,QAAQ,EAAE;MAChB,IAAI,CAACV,WAAY,GAAEU,QAAQ,CAAA;KAC9B;AACDhS,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACgS,QAAQ,EAAE;MAChB,IAAI,CAACT,WAAY,GAAES,QAAQ,CAAA;KAC9B;AACD9R,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAC8R,QAAQ,EAAE;MACpB,IAAI,CAACR,eAAc,GAAIQ,QAAQ,CAAA;AACnC,KAAA;GACH;EACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,CAACC,mBAAmB,EAAE,CAAA;AAC1B,IAAA,IAAI,CAAChB,SAAS,CAACiB,KAAK,EAAE,CAAA;GACzB;AACDnQ,EAAAA,OAAO,EAAE;AACLH,IAAAA,UAAU,WAAVA,UAAUA,CAACwJ,GAAG,EAAEpJ,IAAI,EAAE;AAClB,MAAA,OAAOC,YAAY,CAACmJ,GAAG,EAAEpJ,IAAI,CAAC,CAAA;KACjC;AACDmQ,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAAC5Q,MAAM,EAAE;MACxB,OAAO;AACHoB,QAAAA,OAAO,EAAE;AACLC,UAAAA,MAAM,EAAE,IAAI,CAAChB,UAAU,CAACL,MAAM,EAAE,QAAQ,CAAA;AAC5C,SAAA;OACH,CAAA;KACJ;AACD8O,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACxI,IAAI,EAAE;AACf,MAAA,IAAM1F,GAAI,GAAE,IAAI,CAACwJ,OAAO,CAAC9D,IAAI,CAAC,CAAA;AAE9B,MAAA,IAAI,IAAI,CAACqJ,cAAc,CAAC/O,GAAG,CAAC,EAAE;AAC1B,QAAA,OAAO,IAAI,CAAC+O,cAAc,CAAC/O,GAAG,CAAC,CAAA;AAC/B,QAAA,IAAI,CAACqD,KAAK,CAAC,eAAe,EAAEqC,IAAI,CAAC,CAAA;AACrC,OAAE,MAAK;AACH,QAAA,IAAI,CAACqJ,cAAc,CAAC/O,GAAG,CAAA,GAAI,IAAI,CAAA;AAC/B,QAAA,IAAI,CAACqD,KAAK,CAAC,aAAa,EAAEqC,IAAI,CAAC,CAAA;AACnC,OAAA;MAEA,IAAI,CAACqJ,cAAa,GAAA1M,eAAA,KAAS,IAAI,CAAC0M,eAAgB,CAAA;MAChD,IAAI,CAAC1L,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC0L,cAAc,CAAC,CAAA;KACzD;AACDN,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACrL,KAAK,EAAE;MACf,IAAI,IAAI,CAAC+C,gBAAe,IAAK/C,KAAK,CAACsC,IAAI,CAACQ,UAAS,KAAM,KAAK,EAAE;QAC1D,IAAM+J,aAAc,GAAE7M,KAAK,CAAC4F,WAAU,GAAI,KAAI,GAAI,IAAI,CAAC7M,gBAAgB,CAAA;AACvE,QAAA,IAAM0P,cAAe,GAAEoE,aAAY,GAAI,IAAI,CAACC,0BAA0B,CAAC9M,KAAK,IAAI,IAAI,CAAC+M,6BAA6B,CAAC/M,KAAK,CAAC,CAAA;AAEzH,QAAA,IAAI,CAACC,KAAK,CAAC,sBAAsB,EAAEwI,cAAc,CAAC,CAAA;AACtD,OAAA;KACH;AACDrC,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAAC9D,IAAI,EAAE;AACV,MAAA,OAAOa,gBAAgB,CAACb,IAAI,EAAE,IAAI,CAAC7J,OAAO,CAAC,CAAA;KAC9C;AACDqU,IAAAA,0BAA0B,EAA1BA,SAAAA,0BAA0BA,CAAC9M,KAAK,EAAE;AAC9B,MAAA,IAAME,aAAc,GAAEF,KAAK,CAACE,aAAa,CAAA;AACzC,MAAA,IAAMoC,IAAK,GAAEtC,KAAK,CAACsC,IAAI,CAAA;AACvB,MAAA,IAAM8D,OAAQ,GAAE,IAAI,CAACA,OAAO,CAAC9D,IAAI,CAAC,CAAA;MAClC,IAAM0K,OAAQ,GAAE9M,aAAa,CAAC8M,OAAQ,IAAG9M,aAAa,CAAC+M,OAAO,CAAA;AAC9D,MAAA,IAAMjK,QAAS,GAAE,IAAI,CAACkK,cAAc,CAAC5K,IAAI,CAAC,CAAA;AAC1C,MAAA,IAAImG,cAAc,CAAA;MAElB,IAAIzF,YAAYgK,OAAO,EAAE;AACrB,QAAA,IAAI,IAAI,CAACG,qBAAqB,EAAE,EAAE;UAC9B1E,cAAe,GAAE,EAAE,CAAA;AACvB,SAAE,MAAK;AACHA,UAAAA,cAAa,GAAAxJ,eAAA,CAAA,EAAA,EAAS,IAAI,CAACpG,cAAe,CAAA;UAC1C,OAAO4P,cAAc,CAACrC,OAAO,CAAC,CAAA;AAClC,SAAA;AAEA,QAAA,IAAI,CAACnG,KAAK,CAAC,eAAe,EAAEqC,IAAI,CAAC,CAAA;AACrC,OAAE,MAAK;AACH,QAAA,IAAI,IAAI,CAAC6K,qBAAqB,EAAE,EAAE;UAC9B1E,cAAe,GAAE,EAAE,CAAA;AACvB,SAAA,MAAO,IAAI,IAAI,CAAC2E,uBAAuB,EAAE,EAAE;AACvC3E,UAAAA,cAAa,GAAI,CAACuE,OAAM,GAAI,EAAC,GAAI,IAAI,CAACnU,aAAY,GAAAoG,eAAA,CAAS,EAAA,EAAA,IAAI,CAACpG,aAAY,CAAA,GAAM,EAAE,CAAA;AACxF,SAAA;AAEA4P,QAAAA,cAAc,CAACrC,OAAO,CAAA,GAAI,IAAI,CAAA;AAC9B,QAAA,IAAI,CAACnG,KAAK,CAAC,aAAa,EAAEqC,IAAI,CAAC,CAAA;AACnC,OAAA;AAEA,MAAA,OAAOmG,cAAc,CAAA;KACxB;AACDsE,IAAAA,6BAA6B,EAA7BA,SAAAA,6BAA6BA,CAAC/M,KAAK,EAAE;AACjC,MAAA,IAAMsC,IAAK,GAAEtC,KAAK,CAACsC,IAAI,CAAA;AACvB,MAAA,IAAM8D,OAAQ,GAAE,IAAI,CAACA,OAAO,CAAC9D,IAAI,CAAC,CAAA;AAClC,MAAA,IAAMU,QAAS,GAAE,IAAI,CAACkK,cAAc,CAAC5K,IAAI,CAAC,CAAA;AAC1C,MAAA,IAAImG,cAAc,CAAA;AAElB,MAAA,IAAI,IAAI,CAAC0E,qBAAqB,EAAE,EAAE;AAC9B,QAAA,IAAInK,QAAQ,EAAE;UACVyF,cAAe,GAAE,EAAE,CAAA;AACnB,UAAA,IAAI,CAACxI,KAAK,CAAC,eAAe,EAAEqC,IAAI,CAAC,CAAA;AACrC,SAAE,MAAK;UACHmG,cAAe,GAAE,EAAE,CAAA;AACnBA,UAAAA,cAAc,CAACrC,OAAO,CAAA,GAAI,IAAI,CAAA;AAC9B,UAAA,IAAI,CAACnG,KAAK,CAAC,aAAa,EAAEqC,IAAI,CAAC,CAAA;AACnC,SAAA;AACJ,OAAE,MAAK;AACH,QAAA,IAAIU,QAAQ,EAAE;AACVyF,UAAAA,cAAa,GAAAxJ,eAAA,CAAA,EAAA,EAAS,IAAI,CAACpG,cAAe,CAAA;UAC1C,OAAO4P,cAAc,CAACrC,OAAO,CAAC,CAAA;AAE9B,UAAA,IAAI,CAACnG,KAAK,CAAC,eAAe,EAAEqC,IAAI,CAAC,CAAA;AACrC,SAAE,MAAK;AACHmG,UAAAA,cAAa,GAAI,IAAI,CAAC5P,aAAY,GAAAoG,eAAA,CAAS,EAAA,EAAA,IAAI,CAACpG,aAAc,CAAI,GAAA,EAAE,CAAA;AACpE4P,UAAAA,cAAc,CAACrC,OAAO,CAAA,GAAI,IAAI,CAAA;AAE9B,UAAA,IAAI,CAACnG,KAAK,CAAC,aAAa,EAAEqC,IAAI,CAAC,CAAA;AACnC,SAAA;AACJ,OAAA;AAEA,MAAA,OAAOmG,cAAc,CAAA;KACxB;AACDmB,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC5J,KAAK,EAAE;MACpB,IAAI,CAACC,KAAK,CAAC,sBAAsB,EAAED,KAAK,CAACnH,aAAa,CAAC,CAAA;MAEvD,IAAImH,KAAK,CAAC4I,KAAK,EAAE,IAAI,CAAC3I,KAAK,CAAC,aAAa,EAAED,KAAK,CAACsC,IAAI,CAAC,CAAA,KACjD,IAAI,CAACrC,KAAK,CAAC,eAAe,EAAED,KAAK,CAACsC,IAAI,CAAC,CAAA;KAC/C;AACD4D,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAClG,KAAK,EAAE;MACnB,IAAI,IAAI,CAAC/G,WAAW,EAAE;AAClBoU,QAAAA,cAAc,EAAE,CAAA;AAChBrN,QAAAA,KAAK,CAACE,aAAa,CAAC6F,MAAM,CAAC0B,KAAK,EAAE,CAAA;AACtC,OAAA;MAEA,IAAI,CAACxH,KAAK,CAAC,6BAA6B,EAAED,KAAK,CAACsC,IAAI,CAAC,CAAA;AACrD,MAAA,IAAI,CAACrC,KAAK,CAAC,iBAAiB,EAAED,KAAK,CAAC,CAAA;KACvC;IACDmN,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;AACpB,MAAA,OAAO,IAAI,CAACrU,kBAAkB,QAAQ,CAAA;KACzC;IACDsU,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAACtU,aAAc,KAAI,UAAU,CAAA;KAC3C;AACDwU,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAACtN,KAAK,EAAE;AACV,MAAA,IAAI,CAAC4L,OAAM,GAAI5L,KAAK,CAAC1G,KAAK,CAAA;AAC1B,MAAA,IAAI,CAACuS,MAAK,GAAI7L,KAAK,CAAC5G,IAAI,CAAA;AAExB,MAAA,IAAImU,SAAU,GAAE,IAAI,CAACC,mBAAmB,CAACxN,KAAK,CAAC,CAAA;AAE/CuN,MAAAA,SAAS,CAACE,SAAQ,GAAIzN,KAAK,CAACyN,SAAS,CAAA;AACrCF,MAAAA,SAAS,CAACG,IAAK,GAAE1N,KAAK,CAAC0N,IAAI,CAAA;AAE3B,MAAA,IAAI,CAAC/B,cAAe,GAAE,EAAE,CAAA;MACxB,IAAI,CAAC1L,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC0L,cAAc,CAAC,CAAA;MACtD,IAAI,CAAC1L,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC2L,OAAO,CAAC,CAAA;MACxC,IAAI,CAAC3L,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC4L,MAAM,CAAC,CAAA;AACtC,MAAA,IAAI,CAAC5L,KAAK,CAAC,MAAM,EAAEsN,SAAS,CAAC,CAAA;KAChC;IACDI,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,CAAC/B,OAAQ,GAAE,CAAC,CAAA;MAChB,IAAI,CAAC3L,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC2L,OAAO,CAAC,CAAA;KAC3C;AACDgC,IAAAA,0BAA0B,EAA1BA,SAAAA,0BAA0BA,CAAC5R,MAAM,EAAE;AAC/B,MAAA,OAAO,CAAC,IAAI,CAACwC,EAAE,CAAC,YAAY,EAAE;AAAExC,QAAAA,MAAK,EAALA,MAAAA;OAAQ,CAAC,EAAE,IAAI,CAACK,UAAU,CAACL,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAA;KAC3F;AACD6R,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACxE,CAAC,EAAE;AACnB,MAAA,IAAIrJ,KAAI,GAAIqJ,CAAC,CAACnJ,aAAa,CAAA;AAC3B,MAAA,IAAIlE,MAAK,GAAIqN,CAAC,CAACrN,MAAM,CAAA;MAErB,IAAI,IAAI,CAACK,UAAU,CAACL,MAAM,EAAE,UAAU,CAAC,EAAE;AACrC,QAAA,IAAM8R,aAAa9N,KAAK,CAAC+F,MAAM,CAAA;AAC/B,QAAA,IAAMgI,WAAY,GAAE,IAAI,CAAC1R,UAAU,CAACL,MAAM,EAAE,WAAW,CAAE,IAAG,IAAI,CAACK,UAAU,CAACL,MAAM,EAAE,OAAO,CAAC,CAAA;AAE5F,QAAA,IACIuE,YAAY,CAACuN,UAAU,EAAE,wBAAwB,CAAE,KAAI,IAAG,IAC1DvN,YAAY,CAACuN,UAAU,EAAE,iBAAiB,CAAA,KAAM,aAAY,IAC5DvN,YAAY,CAACuN,UAAU,EAAE,iBAAiB,CAAE,KAAI,yBAChDvN,YAAY,CAACuN,UAAU,EAAE,iBAAiB,CAAA,KAAM,UAAS,IACzDvN,YAAY,CAACuN,UAAU,CAAClO,aAAa,EAAE,iBAAiB,CAAE,KAAI,cAC9DW,YAAY,CAACuN,UAAU,CAAClO,aAAa,CAACA,aAAa,EAAE,iBAAiB,CAAE,KAAI,cAC5EkO,UAAU,CAACE,OAAO,CAAC,iCAAiC,CAAA,EACtD;AACEX,UAAAA,cAAc,EAAE,CAAA;AAEhB,UAAA,IAAI,IAAI,CAAC1S,QAAS,KAAI,QAAQ,EAAE;AAC5B,YAAA,IAAI,IAAI,CAACmR,WAAU,KAAMiC,WAAW,EAAE;AAClC,cAAA,IAAI,IAAI,CAACnT,aAAc,IAAG,IAAI,CAACmR,WAAU,GAAI,CAAC,CAAE,KAAI,IAAI,CAACtR,gBAAgB,EAAE;gBACvE,IAAI,CAACsR,WAAU,GAAI,IAAI,CAAA;gBACvB,IAAI,CAACD,WAAU,GAAI,IAAI,CAAA;AAC3B,eAAE,MAAK;gBACH,IAAI,CAACC,cAAc,IAAI,CAACA,WAAY,GAAE,CAAC,CAAC,CAAA;AAC5C,eAAA;AACJ,aAAE,MAAK;AACH,cAAA,IAAI,CAACA,WAAU,GAAI,IAAI,CAACtR,gBAAgB,CAAA;cACxC,IAAI,CAACqR,WAAY,GAAEiC,WAAW,CAAA;AAClC,aAAA;YAEA,IAAI,CAAC9N,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC6L,WAAW,CAAC,CAAA;YAChD,IAAI,CAAC7L,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC8L,WAAW,CAAC,CAAA;YAChD,IAAI,CAAC4B,SAAS,EAAE,CAAA;AACpB,WAAA,MAAO,IAAI,IAAI,CAAChT,QAAO,KAAM,UAAU,EAAE;YACrC,IAAIqS,OAAQ,GAAEhN,KAAK,CAACgN,OAAM,IAAKhN,KAAK,CAACiN,OAAO,CAAA;YAE5C,IAAI,CAACD,OAAO,EAAE;cACV,IAAI,CAAChB,eAAc,GAAI,IAAI,CAACA,eAAe,CAAC7D,MAAM,CAAC,UAACtH,IAAI,EAAA;AAAA,gBAAA,OAAKA,IAAI,CAACC,KAAI,KAAMiN,WAAW,CAAA;eAAC,CAAA,CAAA;AAC5F,aAAA;AAEA,YAAA,IAAI,CAACE,iBAAiB,CAACF,WAAW,CAAC,CAAA;YACnC,IAAI,CAAC9N,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC+L,eAAe,CAAC,CAAA;AAC5D,WAAA;UAEA,IAAI,CAAC/L,KAAK,CAAC,MAAM,EAAE,IAAI,CAACuN,mBAAmB,CAACxN,KAAK,CAAC,CAAC,CAAA;AACvD,SAAA;AACJ,OAAA;KACH;AACDiO,IAAAA,iBAAiB,EAAjBA,SAAAA,iBAAiBA,CAACnN,KAAK,EAAE;MACrB,IAAI7E,KAAM,GAAE,IAAI,CAAC+P,eAAe,CAACkC,SAAS,CAAC,UAACrN,IAAI,EAAA;AAAA,QAAA,OAAKA,IAAI,CAACC,KAAM,KAAIA,KAAK,CAAA;OAAC,CAAA,CAAA;MAE1E,IAAI7E,KAAM,IAAG,CAAC,EAAE;AACZ,QAAA,IAAI,IAAI,CAACrB,aAAY,IAAK,IAAI,CAACoR,eAAe,CAAC/P,KAAK,CAAC,CAACkF,KAAI,GAAI,CAAC,CAAE,KAAI,IAAI,CAAC1G,gBAAgB,EAAE,IAAI,CAACuR,eAAe,CAACmC,MAAM,CAAClS,KAAK,EAAE,CAAC,CAAC,CAAA,KAC5H,IAAI,CAAC+P,eAAe,CAAC/P,KAAK,CAAE,GAAE;AAAE6E,UAAAA,KAAK,EAAEA,KAAK;UAAEK,KAAK,EAAE,IAAI,CAAC6K,eAAe,CAAC/P,KAAK,CAAC,CAACkF,QAAQ,CAAC,CAAA;SAAG,CAAA;AACtG,OAAE,MAAK;AACH,QAAA,IAAI,CAAC6K,eAAe,CAACoC,IAAI,CAAC;AAAEtN,UAAAA,KAAK,EAAEA,KAAK;UAAEK,KAAK,EAAE,IAAI,CAAC1G,gBAAAA;AAAiB,SAAC,CAAC,CAAA;AAC7E,OAAA;MAEA,IAAI,CAACuR,eAAc,GAAApE,kBAAA,CAAQ,IAAI,CAACoE,eAAe,CAAC,CAAA;KACnD;AACDqC,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAC3G,KAAK,EAAE;AACd,MAAA,OAAO,IAAI,CAAC4G,eAAe,CAAC5G,KAAK,CAAC,CAAA;KACrC;AACD4G,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC5G,KAAK,EAAE;AAAA,MAAA,IAAAV,KAAA,GAAA,IAAA,CAAA;AACnB,MAAA,IAAIuH,MAAO,GAAA3G,kBAAA,CAAMF,KAAK,CAAC,CAAA;AACvB,MAAA,IAAM8G,QAAO,GAAIC,gBAAgB,EAAE,CAAA;AAEnCF,MAAAA,MAAM,CAACG,IAAI,CAAC,UAACC,KAAK,EAAEC,KAAK,EAAK;QAC1B,IAAMC,MAAK,GAAI1L,gBAAgB,CAACwL,KAAK,CAACzS,IAAI,EAAE8K,KAAI,CAAC8E,WAAW,CAAC,CAAA;QAC7D,IAAMgD,MAAK,GAAI3L,gBAAgB,CAACyL,KAAK,CAAC1S,IAAI,EAAE8K,KAAI,CAAC8E,WAAW,CAAC,CAAA;QAE7D,OAAO4C,IAAI,CAACG,MAAM,EAAEC,MAAM,EAAE9H,KAAI,CAAC+E,WAAW,EAAEyC,QAAQ,CAAC,CAAA;AAC3D,OAAC,CAAC,CAAA;AAEF,MAAA,OAAOD,MAAM,CAAA;KAChB;AACDQ,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACrH,KAAK,EAAE;AAChB,MAAA,OAAO,IAAI,CAACsH,iBAAiB,CAACtH,KAAK,CAAC,CAAA;KACvC;AACDsH,IAAAA,iBAAiB,EAAjBA,SAAAA,iBAAiBA,CAACtH,KAAK,EAAE;AAAA,MAAA,IAAAuH,MAAA,GAAA,IAAA,CAAA;AACrB,MAAA,IAAIV,MAAO,GAAA3G,kBAAA,CAAMF,KAAK,CAAC,CAAA;AAEvB6G,MAAAA,MAAM,CAACG,IAAI,CAAC,UAACC,KAAK,EAAEC,KAAK,EAAK;QAC1B,OAAOK,MAAI,CAACC,cAAc,CAACP,KAAK,EAAEC,KAAK,EAAE,CAAC,CAAC,CAAA;AAC/C,OAAC,CAAC,CAAA;AAEF,MAAA,OAAOL,MAAM,CAAA;KAChB;IACDW,cAAc,EAAA,SAAdA,cAAcA,CAACP,KAAK,EAAEC,KAAK,EAAE3S,KAAK,EAAE;AAChC,MAAA,IAAM4S,SAAS1L,gBAAgB,CAACwL,KAAK,CAACzS,IAAI,EAAE,IAAI,CAAC8P,eAAe,CAAC/P,KAAK,CAAC,CAAC6E,KAAK,CAAC,CAAA;AAC9E,MAAA,IAAMgO,SAAS3L,gBAAgB,CAACyL,KAAK,CAAC1S,IAAI,EAAE,IAAI,CAAC8P,eAAe,CAAC/P,KAAK,CAAC,CAAC6E,KAAK,CAAC,CAAA;AAC9E,MAAA,IAAM0N,QAAO,GAAIC,gBAAgB,EAAE,CAAA;MAEnC,IAAII,MAAK,KAAMC,MAAM,EAAE;QACnB,OAAO,IAAI,CAAC9C,eAAe,CAACpL,MAAK,GAAI,CAAE,GAAE3E,KAAM,GAAE,IAAI,CAACiT,cAAc,CAACP,KAAK,EAAEC,KAAK,EAAE3S,KAAI,GAAI,CAAC,CAAA,GAAI,CAAC,CAAA;AACrG,OAAA;AAEA,MAAA,OAAOyS,IAAI,CAACG,MAAM,EAAEC,MAAM,EAAE,IAAI,CAAC9C,eAAe,CAAC/P,KAAK,CAAC,CAACkF,KAAK,EAAEqN,QAAQ,CAAC,CAAA;KAC3E;AACDrG,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAAC5P,KAAK,EAAE;MACV,IAAI4W,aAAc,GAAE,EAAE,CAAA;AACtB,MAAA,IAAMC,MAAK,GAAI,IAAI,CAACtU,eAAe,QAAQ,CAAA;AAAA,MAAA,IAAA+N,SAAA,GAAAC,0BAAA,CAE1BvQ,KAAK,CAAA;QAAAwQ,KAAA,CAAA;AAAA,MAAA,IAAA;QAAtB,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAAwB;AAAA,UAAA,IAAf5G,IAAG,GAAAyG,KAAA,CAAAxQ,KAAA,CAAA;AACR,UAAA,IAAI8W,+BAAgB/M,KAAM,CAAA;UAC1B,IAAIgN,UAAW,GAAE,IAAI,CAAA;UACrB,IAAIC,WAAY,GAAE,KAAK,CAAA;AAEvB,UAAA,KAAK,IAAIC,CAAA,GAAI,CAAC,EAAEA,CAAE,GAAE,IAAI,CAAC/J,OAAO,CAAC7E,MAAM,EAAE4O,CAAC,EAAE,EAAE;AAC1C,YAAA,IAAI3J,MAAM,IAAI,CAACJ,OAAO,CAAC+J,CAAC,CAAC,CAAA;AACzB,YAAA,IAAIC,WAAU,GAAI,IAAI,CAACpT,UAAU,CAACwJ,GAAG,EAAE,aAAa,CAAA,IAAK,IAAI,CAACxJ,UAAU,CAACwJ,GAAG,EAAE,OAAO,CAAC,CAAA;;AAEtF;AACA,YAAA,IAAI1M,MAAM,CAACuW,SAAS,CAACC,cAAc,CAACC,IAAI,CAAC,IAAI,CAAC/U,OAAO,EAAE4U,WAAW,CAAC,EAAE;cACjE,IAAII,eAAgB,GAAE,IAAI,CAACxT,UAAU,CAACwJ,GAAG,EAAE,iBAAiB,CAAA,IAAK,YAAY,CAAA;AAC7E,cAAA,IAAIiK,WAAU,GAAI,IAAI,CAACjV,OAAO,CAAC4U,WAAW,CAAC,CAAA;AAC3C,cAAA,IAAIM,gBAAe,GAAIC,aAAa,CAACnV,OAAO,CAACgV,eAAe,CAAC,CAAA;AAC7D,cAAA,IAAII,iBAAkB,GAAE;AAAER,gBAAAA,WAAW,EAAXA,WAAW;AAAEK,gBAAAA,WAAW,EAAXA,WAAW;AAAEC,gBAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEX,gBAAAA,QAAAA,MAAAA;eAAQ,CAAA;cAE9E,IACKA,UAAU,EAAE,IAAI,CAACc,iBAAiB,CAACb,QAAQ,EAAEY,iBAAiB,CAAE,IAAG,IAAI,CAACE,eAAe,CAACd,QAAQ,EAAEY,iBAAiB,CAAC,CAAC,IACrH,CAACb,MAAO,IAAG,EAAE,IAAI,CAACe,eAAe,CAACd,QAAQ,EAAEY,iBAAiB,CAAE,IAAG,IAAI,CAACC,iBAAiB,CAACb,QAAQ,EAAEY,iBAAiB,CAAC,CAAC,EACzH;AACEX,gBAAAA,UAAS,GAAI,KAAK,CAAA;AACtB,eAAA;cAEA,IAAI,CAACA,UAAU,EAAE;AACb,gBAAA,MAAA;AACJ,eAAA;AACJ,aAAA;;AAEA;YACA,IAAI,IAAI,CAACc,eAAe,EAAC,IAAK,CAACb,WAAW,EAAE;AACxC,cAAA,IAAIc,iBAAkB,GAAApR,eAAA,CAAA,EAAA,EAAOoQ,SAAU,CAAA;AACvC,cAAA,IAAIS,YAAY,GAAE,IAAI,CAACjV,OAAO,CAAC,QAAQ,CAAC,CAAA;AACxC,cAAA,IAAIkV,iBAAe,GAAIC,aAAa,CAACnV,OAAO,CAAC,UAAU,CAAC,CAAA;AACxD,cAAA,IAAIyV,6BAA4B,GAAI;AAAEb,gBAAAA,WAAW,EAAXA,WAAW;AAAEK,gBAAAA,WAAW,EAAXA,YAAW;AAAEC,gBAAAA,gBAAgB,EAAhBA,iBAAgB;AAAEX,gBAAAA,QAAAA,MAAAA;eAAQ,CAAA;AAE1F,cAAA,IACKA,MAAO,KAAI,IAAI,CAACc,iBAAiB,CAACG,iBAAiB,EAAEC,6BAA6B,CAAA,IAAK,IAAI,CAACH,eAAe,CAACE,iBAAiB,EAAEC,6BAA6B,CAAC,CAAC,IAC9J,CAAClB,MAAK,KAAM,IAAI,CAACe,eAAe,CAACE,iBAAiB,EAAEC,6BAA6B,CAAE,IAAG,IAAI,CAACJ,iBAAiB,CAACG,iBAAiB,EAAEC,6BAA6B,CAAC,CAAC,EAClK;AACEf,gBAAAA,WAAY,GAAE,IAAI,CAAA;AAClBF,gBAAAA,QAAS,GAAEgB,iBAAiB,CAAA;AAChC,eAAA;AACJ,aAAA;AACJ,WAAA;UAEA,IAAIE,OAAM,GAAIjB,UAAU,CAAA;AAExB,UAAA,IAAI,IAAI,CAACc,eAAe,EAAE,EAAE;YACxBG,OAAM,GAAIjB,UAAW,IAAGC,WAAW,CAAA;AACvC,WAAA;AAEA,UAAA,IAAIgB,OAAO,EAAE;AACTpB,YAAAA,aAAa,CAACf,IAAI,CAACiB,QAAQ,CAAC,CAAA;AAChC,WAAA;AACJ,SAAA;AAAA,OAAA,CAAA,OAAAjG,GAAA,EAAA;QAAAP,SAAA,CAAAQ,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,OAAA,SAAA;AAAAP,QAAAA,SAAA,CAAAS,CAAA,EAAA,CAAA;AAAA,OAAA;AAEA,MAAA,IAAIkH,WAAU,GAAI,IAAI,CAAChD,mBAAmB,CAACxN,KAAK,CAAC,CAAA;MAEjDwQ,WAAW,CAACC,aAAc,GAAEtB,aAAa,CAAA;AACzC,MAAA,IAAI,CAAClP,KAAK,CAAC,QAAQ,EAAEuQ,WAAW,CAAC,CAAA;AAEjC,MAAA,OAAOrB,aAAa,CAAA;KACvB;AACDe,IAAAA,iBAAiB,WAAjBA,iBAAiBA,CAAC5N,IAAI,EAAE2N,iBAAiB,EAAE;AACvC,MAAA,IAAI3N,IAAI,EAAE;QACN,IAAIoO,OAAM,GAAI,KAAK,CAAA;QAEnB,IAAIpO,IAAI,CAACpD,QAAQ,EAAE;AACf,UAAA,IAAIyR,UAAS,GAAA/I,kBAAA,CAAQtF,IAAI,CAACpD,QAAQ,CAAC,CAAA;UAEnCoD,IAAI,CAACpD,QAAS,GAAE,EAAE,CAAA;AAAA,UAAA,IAAAwK,UAAA,GAAAZ,0BAAA,CAEI6H,UAAU,CAAA;YAAAhH,MAAA,CAAA;AAAA,UAAA,IAAA;YAAhC,KAAAD,UAAA,CAAAV,CAAA,EAAAW,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAT,CAAA,EAAAC,EAAAA,IAAA,GAAkC;AAAA,cAAA,IAAzBgC,SAAQ,GAAAvB,MAAA,CAAApR,KAAA,CAAA;AACb,cAAA,IAAIqY,aAAc,GAAA3R,eAAA,CAAA,EAAA,EAAOiM,UAAW,CAAA;cAEpC,IAAI,IAAI,CAACiF,eAAe,CAACS,aAAa,EAAEX,iBAAiB,CAAC,EAAE;AACxDS,gBAAAA,UAAU,IAAI,CAAA;AACdpO,gBAAAA,IAAI,CAACpD,QAAQ,CAACkP,IAAI,CAACwC,aAAa,CAAC,CAAA;AACrC,eAAA;AACJ,aAAA;AAAA,WAAA,CAAA,OAAAxH,GAAA,EAAA;YAAAM,UAAA,CAAAL,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,WAAA,SAAA;AAAAM,YAAAA,UAAA,CAAAJ,CAAA,EAAA,CAAA;AAAA,WAAA;AACJ,SAAA;AAEA,QAAA,IAAIoH,OAAO,EAAE;AACT,UAAA,OAAO,IAAI,CAAA;AACf,SAAA;AACJ,OAAA;KACH;AACDP,IAAAA,eAAe,WAAfA,eAAeA,CAAC7N,IAAI,EAAAuO,IAAA,EAA0D;AAAA,MAAA,IAAtDpB,WAAW,GAAAoB,IAAA,CAAXpB,WAAW;QAAEK,WAAW,GAAAe,IAAA,CAAXf,WAAW;QAAEC,gBAAgB,GAAAc,IAAA,CAAhBd,gBAAgB;QAAEX,MAAK,GAAAyB,IAAA,CAALzB,MAAK,CAAA;MACrE,IAAIsB,OAAM,GAAI,KAAK,CAAA;MACnB,IAAII,cAAe,GAAE3N,gBAAgB,CAACb,IAAI,CAACpG,IAAI,EAAEuT,WAAW,CAAC,CAAA;MAE7D,IAAIM,gBAAgB,CAACe,cAAc,EAAEhB,WAAW,EAAE,IAAI,CAAC/U,YAAY,CAAC,EAAE;AAClE2V,QAAAA,UAAU,IAAI,CAAA;AAClB,OAAA;AAEA,MAAA,IAAI,CAACA,OAAM,IAAMtB,MAAK,IAAK,CAAC,IAAI,CAAC2B,UAAU,CAACzO,IAAI,CAAE,EAAE;AAChDoO,QAAAA,OAAQ,GAAE,IAAI,CAACR,iBAAiB,CAAC5N,IAAI,EAAE;AAAEmN,UAAAA,WAAW,EAAXA,WAAW;AAAEK,UAAAA,WAAW,EAAXA,WAAW;AAAEC,UAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEX,UAAAA,QAAAA,MAAAA;SAAQ,CAAA,IAAKsB,OAAO,CAAA;AAC7G,OAAA;AAEA,MAAA,OAAOA,OAAO,CAAA;KACjB;AACDxD,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC5K,IAAI,EAAE;MACjB,OAAO,IAAI,CAACxJ,iBAAiB,IAAI,CAACD,aAAY,GAAI,IAAI,CAACA,aAAa,CAAC,IAAI,CAACuN,OAAO,CAAC9D,IAAI,CAAC,CAAE,KAAI,IAAG,GAAI,KAAK,CAAA;KAC5G;AACDyO,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACzO,IAAI,EAAE;AACb,MAAA,OAAOA,IAAI,CAACE,IAAK,KAAI,QAAQ,KAAI,GAAI,EAAEF,IAAI,CAACpD,QAAS,IAAGoD,IAAI,CAACpD,QAAQ,CAAC0B,MAAM,CAAC,CAAA;KAChF;AACD4M,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACxN,KAAK,EAAE;AAAA,MAAA,IAAAgR,MAAA,GAAA,IAAA,CAAA;AACvB,MAAA,IAAIC,gBAAgB,CAAA;AAEpB,MAAA,IAAI,IAAI,CAACC,UAAU,EAAE,EAAE;QACnBD,gBAAiB,GAAE,EAAE,CAAA;AACrB,QAAA,IAAI,CAACxL,OAAO,CAACuC,OAAO,CAAC,UAACnC,GAAG,EAAK;UAC1B,IAAImL,MAAI,CAAC3U,UAAU,CAACwJ,GAAG,EAAE,OAAO,CAAC,EAAE;AAC/BoL,YAAAA,gBAAgB,CAACpL,GAAG,CAACvN,KAAK,CAACwI,KAAK,CAAA,GAAIkQ,MAAI,CAAC3U,UAAU,CAACwJ,GAAG,EAAE,iBAAiB,CAAC,CAAA;AAC/E,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;MAEA,OAAO;AACH3F,QAAAA,aAAa,EAAEF,KAAK;QACpB1G,KAAK,EAAE,IAAI,CAACsS,OAAO;QACnBxS,IAAI,EAAE,IAAI,CAACyS,MAAM;QACjBtR,SAAS,EAAE,IAAI,CAACuR,WAAW;QAC3BtR,SAAS,EAAE,IAAI,CAACuR,WAAW;QAC3BrR,aAAa,EAAE,IAAI,CAACsR,eAAe;QACnCnR,OAAO,EAAE,IAAI,CAACA,OAAO;AACrBoW,QAAAA,gBAAgB,EAAEA,gBAAAA;OACrB,CAAA;KACJ;AACDE,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACnR,KAAK,EAAE;MACvB,IAAIoR,aAAc,GAAEC,SAAS,CAAC,IAAI,CAACrT,GAAG,CAAC,CAACG,IAAI,CAAA;AAE5C,MAAA,IAAI,CAACmO,mBAAoB,GAAEtM,KAAK,CAAC+F,MAAM,CAACnG,aAAa,CAAA;MACrD,IAAI,CAAC0R,iBAAiB,IAAI,CAAA;AAC1B,MAAA,IAAI,CAACjF,iBAAgB,GAAIrM,KAAK,CAACuR,KAAI,GAAIH,aAAY,GAAI,IAAI,CAACpT,GAAG,CAACwT,UAAU,CAAA;MAE1E,IAAI,CAACC,sBAAsB,EAAE,CAAA;KAChC;AACDC,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC1R,KAAK,EAAE;MAClB,IAAIoR,aAAc,GAAEC,SAAS,CAAC,IAAI,CAACrT,GAAG,CAAC,CAACG,IAAI,CAAA;MAE5C,IAAI,CAACH,GAAG,CAAC2T,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;MACzD,CAAC,IAAI,CAACC,UAAW,IAAGC,QAAQ,CAAC,IAAI,CAAC7T,GAAG,EAAE;AAAE,QAAA,aAAa,EAAE,MAAA;AAAO,OAAC,CAAC,CAAA;AACjE,MAAA,IAAI,CAACoJ,KAAK,CAAC0K,YAAY,CAACpW,KAAK,CAACqW,MAAO,GAAE,IAAI,CAAC/T,GAAG,CAACgU,YAAa,GAAE,IAAI,CAAA;MACnE,IAAI,CAAC5K,KAAK,CAAC0K,YAAY,CAACpW,KAAK,CAACuW,MAAM,CAAA,GAAI,IAAI,CAAA;MAC5C,IAAI,CAAC7K,KAAK,CAAC0K,YAAY,CAACpW,KAAK,CAACyC,OAAO6B,KAAK,CAACuR,KAAM,GAAEH,aAAc,GAAE,IAAI,CAACpT,GAAG,CAACwT,UAAS,GAAI,IAAI,CAAA;MAE7F,IAAI,CAACpK,KAAK,CAAC0K,YAAY,CAACpW,KAAK,CAACwW,OAAM,GAAI,OAAO,CAAA;KAClD;IACDC,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,IAAIC,KAAM,GAAE,IAAI,CAAChL,KAAK,CAAC0K,YAAY,CAACO,UAAS,GAAI,IAAI,CAAChG,iBAAiB,CAAA;AACvE,MAAA,IAAIiG,WAAY,GAAE,IAAI,CAAChG,mBAAmB,CAACiG,WAAW,CAAA;AACtD,MAAA,IAAIC,cAAa,GAAIF,cAAcF,KAAK,CAAA;MACxC,IAAIK,QAAO,GAAI,IAAI,CAACnG,mBAAmB,CAAC5Q,KAAK,CAAC+W,QAAS,IAAG,EAAE,CAAA;MAE5D,IAAIH,WAAY,GAAEF,KAAM,GAAEM,QAAQ,CAACD,QAAQ,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAA,IAAI,IAAI,CAACxX,gBAAiB,KAAI,KAAK,EAAE;AACjC,UAAA,IAAI0X,UAAS,GAAI,IAAI,CAACrG,mBAAmB,CAACzM,kBAAkB,CAAA;AAC5D,UAAA,IAAI+S,kBAAkBD,UAAU,CAACJ,WAAU,GAAIH,KAAK,CAAA;AAEpD,UAAA,IAAII,cAAa,GAAI,EAAC,IAAKI,kBAAkB,EAAE,EAAE;AAC7C,YAAA,IAAI,CAACC,gBAAgB,CAACL,cAAc,EAAEI,eAAe,CAAC,CAAA;AAC1D,WAAA;AACJ,SAAA,MAAO,IAAI,IAAI,CAAC3X,qBAAqB,QAAQ,EAAE;AAC3C,UAAA,IAAM6X,UAAW,GAAE,IAAI,CAAC1L,KAAK,CAAC2L,KAAK,CAACR,WAAU,GAAIH,KAAI,GAAI,IAAI,CAAA;AAE9D,UAAA,IAAMY,gBAAe,GAAI,SAAnBA,gBAAeA,CAAKC,EAAE,EAAK;AAC7B,YAAA,CAAC,CAACA,EAAG,KAAIA,EAAE,CAACvX,KAAK,CAACwX,KAAI,GAAID,EAAE,CAACvX,KAAK,CAAC+W,WAAWK,UAAU,CAAC,CAAA;WAC5D,CAAA;;AAED;AACA,UAAA,IAAI,CAACD,gBAAgB,CAACL,cAAc,CAAC,CAAA;AACrCQ,UAAAA,gBAAgB,CAAC,IAAI,CAAC5L,KAAK,CAAC2L,KAAK,CAAC,CAAA;AACtC,SAAA;AAEA,QAAA,IAAI,CAAC9S,KAAK,CAAC,mBAAmB,EAAE;UAC5BgK,OAAO,EAAE,IAAI,CAACqC,mBAAmB;AACjC8F,UAAAA,KAAK,EAAEA,KAAAA;AACX,SAAC,CAAC,CAAA;AACN,OAAA;MAEA,IAAI,CAAChL,KAAK,CAAC0K,YAAY,CAACpW,KAAK,CAACwW,UAAU,MAAM,CAAA;MAC9C,IAAI,CAACiB,YAAW,GAAI,IAAI,CAAA;AACxB,MAAA,IAAI,CAACnV,GAAG,CAACoV,eAAe,CAAC,0BAA0B,CAAC,CAAA;AACpD,MAAA,CAAC,IAAI,CAACxB,UAAW,KAAI,IAAI,CAAC5T,GAAG,CAACtC,KAAK,CAAC,aAAa,CAAE,GAAE,EAAE,CAAC,CAAA;MAExD,IAAI,CAAC2X,wBAAwB,EAAE,CAAA;KAClC;AACDR,IAAAA,gBAAgB,WAAhBA,gBAAgBA,CAACL,cAAc,EAAEI,eAAe,EAAE;AAC9C,MAAA,IAAIU,QAAO,GAAIxT,QAAQ,CAAC,IAAI,CAACwM,mBAAmB,CAAC,CAAA;MACjD,IAAIiH,MAAK,GAAI,EAAE,CAAA;MACf,IAAIC,OAAM,GAAI7L,IAAI,CAAC,IAAI,CAACP,KAAK,CAAC2L,KAAK,EAAE,0CAA0C,CAAC,CAAA;AAEhFS,MAAAA,OAAO,CAACxL,OAAO,CAAC,UAAC7F,MAAM,EAAA;QAAA,OAAKoR,MAAM,CAACnF,IAAI,CAACnQ,aAAa,CAACkE,MAAM,CAAC,CAAC,CAAA;OAAC,CAAA,CAAA;MAE/D,IAAI,CAACuK,mBAAmB,EAAE,CAAA;MAC1B,IAAI,CAAC+G,kBAAkB,EAAE,CAAA;MAEzB,IAAIC,SAAU,GAAE,EAAE,CAAA;AAClB,MAAA,IAAIC,QAAO,GAAAnW,+BAAAA,CAAAA,MAAA,CAAkC,IAAI,CAACoW,aAAa,EAAyE,6EAAA,CAAA,CAAA;AAExIL,MAAAA,MAAM,CAACvL,OAAO,CAAC,UAACkL,KAAK,EAAEjX,KAAK,EAAK;AAC7B,QAAA,IAAI4X,QAAO,GAAI5X,KAAI,KAAMqX,WAAWd,cAAa,GAAII,eAAc,IAAK3W,KAAI,KAAMqX,WAAW,CAAA,GAAIV,eAAc,GAAIM,KAAK,CAAA;QACxH,IAAIxX,KAAI,aAAA8B,MAAA,CAAcqW,QAAQ,EAAArW,4BAAAA,CAAAA,CAAAA,MAAA,CAA6BqW,QAAQ,EAAe,eAAA,CAAA,CAAA;AAElFH,QAAAA,SAAU,IAAAlW,wBAAAA,CAAAA,MAAA,CACJmW,QAAQ,8DAAAnW,MAAA,CAAyDvB,KAAI,GAAI,CAAC,EAAAuB,0BAAAA,CAAAA,CAAAA,MAAA,CAC1EmW,QAAQ,8DAAAnW,MAAA,CAAyDvB,KAAI,GAAI,CAAC,EAAA,0BAAA,CAAA,CAAAuB,MAAA,CAC1EmW,QAAQ,EAAAnW,0DAAAA,CAAAA,CAAAA,MAAA,CAAyDvB,KAAI,GAAI,CAAC,EAAA,+BAAA,CAAA,CAAAuB,MAAA,CACtE9B,KAAK,EAEd,2CAAA,CAAA,CAAA;AACL,OAAC,CAAC,CAAA;AAEF,MAAA,IAAI,CAACoY,YAAY,CAACJ,SAAU,GAAEA,SAAS,CAAA;KAC1C;IACDjC,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;AAAA,MAAA,IAAAsC,MAAA,GAAA,IAAA,CAAA;AACrB,MAAA,IAAI,CAAC,IAAI,CAAC5H,4BAA4B,EAAE;QACpC,IAAI,CAACA,4BAA6B,GAAE6H,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAE,UAACjU,KAAK,EAAK;UAClF,IAAI+T,MAAI,CAACzC,cAAc,EAAE;AACrByC,YAAAA,MAAI,CAACrC,cAAc,CAAC1R,KAAK,CAAC,CAAA;AAC9B,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;AAEA,MAAA,IAAI,CAAC,IAAI,CAACoM,+BAA+B,EAAE;QACvC,IAAI,CAACA,kCAAkC4H,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAE,YAAM;UAC9E,IAAIF,MAAI,CAACzC,cAAc,EAAE;YACrByC,MAAI,CAACzC,cAAa,GAAI,KAAK,CAAA;YAC3ByC,MAAI,CAAC5B,iBAAiB,EAAE,CAAA;AAC5B,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;KACH;IACDkB,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;MACvB,IAAI,IAAI,CAAClH,4BAA4B,EAAE;QACnC6H,QAAQ,CAACE,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC/H,4BAA4B,CAAC,CAAA;QAC3E,IAAI,CAACA,4BAA6B,GAAE,IAAI,CAAA;AAC5C,OAAA;MAEA,IAAI,IAAI,CAACC,+BAA+B,EAAE;QACtC4H,QAAQ,CAACE,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC9H,+BAA+B,CAAC,CAAA;QAC9E,IAAI,CAACA,+BAA8B,GAAI,IAAI,CAAA;AAC/C,OAAA;KACH;AACD+H,IAAAA,eAAe,WAAfA,eAAeA,CAACnU,KAAK,EAAE6F,GAAG,EAAE;AACxB,MAAA,IAAI,CAAC7F,KAAK,CAACI,IAAK,KAAI,OAAM,IAAKJ,KAAK,CAACI,IAAK,KAAI,aAAa,KAAKJ,KAAK,CAACK,aAAa,CAACC,QAAS,KAAI,IAAK,IAAGC,YAAY,CAACP,KAAK,CAACK,aAAa,EAAE,wBAAwB,CAAC,EAAE;AAClK,QAAA,IAAI,CAACwN,mBAAmB,CAAC7N,KAAK,EAAE6F,GAAG,CAAC,CAAA;AACxC,OAAA;KACH;IACDuO,eAAe,EAAA,SAAfA,eAAeA,GAAG;MACd,IAAI,IAAI,CAAC3O,OAAO,EAAE;AAAA,QAAA,IAAAoE,UAAA,GAAAf,0BAAA,CACE,IAAI,CAACrD,OAAO,CAAA;UAAAqE,MAAA,CAAA;AAAA,QAAA,IAAA;UAA5B,KAAAD,UAAA,CAAAb,CAAA,EAAAc,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAZ,CAAA,EAAAC,EAAAA,IAAA,GAA8B;AAAA,YAAA,IAArBrD,GAAE,GAAAiE,MAAA,CAAAvR,KAAA,CAAA;YACP,IAAIsN,GAAG,CAAC3G,QAAO,IAAK2G,GAAG,CAAC3G,QAAQ,CAACiJ,MAAM,EAAE;AACrC,cAAA,OAAO,IAAI,CAAA;AACf,aAAA;AACJ,WAAA;AAAA,SAAA,CAAA,OAAAiB,GAAA,EAAA;UAAAS,UAAA,CAAAR,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,SAAA,SAAA;AAAAS,UAAAA,UAAA,CAAAP,CAAA,EAAA,CAAA;AAAA,SAAA;AACJ,OAAA;AAEA,MAAA,OAAO,KAAK,CAAA;KACf;IACD4H,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,OAAO,IAAI,CAACrW,OAAM,IAAK1B,MAAM,CAACkb,IAAI,CAAC,IAAI,CAACxZ,OAAO,CAAC,CAAC+F,MAAK,GAAI,CAAE,IAAG,IAAI,CAAC/F,OAAO,CAACyZ,WAAY,KAAInb,MAAM,CAAA;KACrG;IACDiX,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAACvV,OAAQ,IAAG1B,MAAM,CAACuW,SAAS,CAACC,cAAc,CAACC,IAAI,CAAC,IAAI,CAAC/U,OAAO,EAAE,QAAQ,CAAC,CAAA;KACtF;AACD0Z,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACjS,IAAI,EAAE;AACf,MAAA,OAAOA,IAAI,CAACpG,IAAI,CAAC9D,IAAI,CAAA;KACxB;IACDqb,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAe,eAAA,CAAA;MACjB,IAAI,CAACV,YAAW,GAAIE,QAAQ,CAACS,aAAa,CAAC,OAAO,CAAC,CAAA;AACnD,MAAA,IAAI,CAACX,YAAY,CAACtb,IAAG,GAAI,UAAU,CAAA;AACnCmZ,MAAAA,YAAY,CAAC,IAAI,CAACmC,YAAY,EAAE,OAAO,EAAA,CAAAU,eAAA,GAAE,IAAI,CAACE,SAAS,MAAAF,IAAAA,IAAAA,eAAA,gBAAAA,eAAA,GAAdA,eAAA,CAAgBG,MAAM,MAAA,IAAA,IAAAH,eAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,eAAA,GAAtBA,eAAA,CAAwBI,GAAG,cAAAJ,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA3BA,eAAA,CAA6BK,KAAK,CAAC,CAAA;MAC5Eb,QAAQ,CAACc,IAAI,CAACC,WAAW,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAA;KAC/C;IACDpH,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAACoH,YAAY,EAAE;QACnBE,QAAQ,CAACc,IAAI,CAACE,WAAW,CAAC,IAAI,CAAClB,YAAY,CAAC,CAAA;QAC5C,IAAI,CAACA,YAAW,GAAI,IAAI,CAAA;AAC5B,OAAA;KACH;AACDmB,IAAAA,WAAW,WAAXA,WAAWA,CAAC3S,IAAI,EAAErG,KAAK,EAAE;AACrB,MAAA,IAAI,IAAI,CAACiR,cAAc,CAAC5K,IAAI,CAAC,EAAE;QAC3B,IAAI,CAAC2J,mBAAmB,IAAI,CAAA;AAE5B,QAAA,OAAO,CAAC,CAAA;AACZ,OAAA;MAEA,IAAI,IAAI,CAACnT,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,IAAI,CAACoU,cAAc,CAAC5K,IAAI,KAAKrG,KAAI,KAAM,CAAA,IAAK,CAAC,IAAI,CAACgQ,gBAAgB,EAAE,OAAO,CAAC,CAAA;OACrF,MAAO,IAAI,CAAC,IAAI,CAACnT,iBAAiBmD,KAAI,KAAM,CAAC,EAAE;AAC3C,QAAA,OAAO,CAAC,CAAA;AACZ,OAAA;AAEA,MAAA,OAAO,CAAC,CAAC,CAAA;AACb,KAAA;GACH;AACDqC,EAAAA,QAAQ,EAAE;IACNmH,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,MAAA,OAAO,IAAI,CAACiG,SAAS,CAACwJ,GAAG,CAAC,IAAI,CAAC,CAAA;KAClC;IACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,IAAI,CAACnb,IAAI,EAAE;QACX,OAAO,IAAI,CAACzB,KAAK,CAAA;AACrB,OAAE,MAAK;QACH,IAAI,IAAI,CAACA,KAAI,IAAK,IAAI,CAACA,KAAK,CAACqI,MAAM,EAAE;AACjC,UAAA,IAAI1E,OAAO,IAAI,CAAC3D,KAAK,CAAA;UAErB,IAAI,IAAI,CAACiH,MAAM,EAAE;AACb,YAAA,IAAI,IAAI,CAAC7E,QAAO,KAAM,QAAQ,EAAEuB,IAAG,GAAI,IAAI,CAACmS,UAAU,CAACnS,IAAI,CAAC,CAAA,KACvD,IAAI,IAAI,CAACvB,QAAS,KAAI,UAAU,EAAEuB,IAAK,GAAE,IAAI,CAAC6S,YAAY,CAAC7S,IAAI,CAAC,CAAA;AACzE,WAAA;AAEA,UAAA,IAAI,IAAI,CAACgV,UAAU,EAAE,EAAE;AACnBhV,YAAAA,IAAK,GAAE,IAAI,CAACiM,MAAM,CAACjM,IAAI,CAAC,CAAA;AAC5B,WAAA;AAEA,UAAA,OAAOA,IAAI,CAAA;AACf,SAAE,MAAK;AACH,UAAA,OAAO,IAAI,CAAA;AACf,SAAA;AACJ,OAAA;KACH;IACDkZ,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAMlZ,IAAK,GAAE,IAAI,CAACiZ,aAAa,CAAA;MAE/B,IAAI,IAAI,CAAC3b,SAAS,EAAE;QAChB,IAAMF,KAAI,GAAI,IAAI,CAACU,IAAK,GAAE,CAAE,GAAE,IAAI,CAAC4R,OAAO,CAAA;QAE1C,OAAO1P,IAAI,CAACmZ,KAAK,CAAC/b,KAAK,EAAEA,KAAI,GAAI,IAAI,CAACuS,MAAM,CAAC,CAAA;AACjD,OAAE,MAAK;AACH,QAAA,OAAO3P,IAAI,CAAA;AACf,OAAA;KACH;IACDoZ,KAAK,EAAA,SAALA,KAAKA,GAAG;AACJ,MAAA,IAAMpZ,IAAK,GAAE,IAAI,CAACiZ,aAAa,CAAA;AAE/B,MAAA,OAAO,CAACjZ,IAAK,IAAGA,IAAI,CAAC0E,MAAO,KAAI,CAAC,CAAA;KACpC;IACDpB,MAAM,EAAA,SAANA,MAAMA,GAAG;AACL,MAAA,OAAO,IAAI,CAACsM,WAAY,IAAI,IAAI,CAACE,eAAc,IAAK,IAAI,CAACA,eAAe,CAACpL,MAAO,GAAE,CAAE,CAAA;KACvF;IACD2U,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAIA,YAAY,KAAK,CAAA;AAAA,MAAA,IAAAC,UAAA,GAAA1M,0BAAA,CAEL,IAAI,CAACrD,OAAO,CAAA;QAAAgQ,MAAA,CAAA;AAAA,MAAA,IAAA;QAA5B,KAAAD,UAAA,CAAAxM,CAAA,EAAAyM,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAvM,CAAA,EAAAC,EAAAA,IAAA,GAA8B;AAAA,UAAA,IAArBrD,GAAE,GAAA4P,MAAA,CAAAld,KAAA,CAAA;AACP,UAAA,IAAI,IAAI,CAAC8D,UAAU,CAACwJ,GAAG,EAAE,QAAQ,CAAA,IAAMA,GAAG,CAAC3G,QAAS,IAAG2G,GAAG,CAAC3G,QAAQ,CAACC,MAAO,EAAE;AACzEoW,YAAAA,SAAQ,GAAI,IAAI,CAAA;AAChB,YAAA,MAAA;AACJ,WAAA;AACJ,SAAA;AAAA,OAAA,CAAA,OAAAnM,GAAA,EAAA;QAAAoM,UAAA,CAAAnM,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,OAAA,SAAA;AAAAoM,QAAAA,UAAA,CAAAlM,CAAA,EAAA,CAAA;AAAA,OAAA;AAEA,MAAA,OAAOiM,SAAS,CAAA;KACnB;IACDG,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,OAAO,IAAI,CAAClc,cAAc,IAAI,CAACC,iBAAgB,KAAM,QAAO,IAAK,IAAI,CAACA,sBAAsB,MAAM,CAAC,CAAA;KACtG;IACDkc,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAACnc,SAAU,KAAI,IAAI,CAACC,iBAAgB,KAAM,KAAM,IAAG,IAAI,CAACA,sBAAsB,MAAM,CAAC,CAAA;KACnG;IACDmc,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAAC9c,aAAc,IAAG,IAAI,CAACA,aAAY,KAAM,QAAQ,CAAA;KAC/D;IACD+c,qBAAqB,EAAA,SAArBA,qBAAqBA,GAAG;MACpB,OAAO,IAAI,CAAC/c,aAAY,IAAK,IAAI,CAACA,kBAAkB,UAAU,CAAA;KACjE;IACDiK,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAAC6S,uBAAuB,IAAI,CAACC,qBAAqB,CAAA;KAChE;IACDC,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,IAAI,IAAI,CAAC9b,IAAI,EAAE;QACX,OAAO,IAAI,CAACT,YAAY,CAAA;AAC5B,OAAE,MAAK;AACH,QAAA,IAAM2C,IAAK,GAAE,IAAI,CAACiZ,aAAa,CAAA;AAE/B,QAAA,OAAOjZ,IAAG,GAAIA,IAAI,CAAC0E,MAAO,GAAE,CAAC,CAAA;AACjC,OAAA;AACJ,KAAA;GACH;AACDe,EAAAA,UAAU,EAAE;AACRoU,IAAAA,KAAK,EAAEC,QAAY;AACnBC,IAAAA,WAAW,EAAEC,SAAS;AACtBC,IAAAA,YAAY,EAAEC,QAAU;AACxBC,IAAAA,YAAY,EAAEC,QAAU;AACxBvS,IAAAA,WAAW,EAAEA,WAAAA;AACjB,GAAA;AACJ,CAAC;;;;;;;;;;;;;;ECp3BG,OAAAnF,SAAA,EAAA,EAAAC,kBAAA,CAwKK,OAxKLC,UAwKK,CAAA;AAxKC,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,MAAA,CAAA;AAAU,IAAA,sBAAoB,EAAC,8BAAA;KAAuCc,IAAI,CAAAiX,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CACrFC,UAAY,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,SAAA,CAAA,EACDnX,IAAA,CAAArF,OAAM,IAAKqF,IAAY,CAAAlF,WAAA,KAAA,MAAA,IAAlCwE,SAAA,EAAA,EAAAC,kBAAA,CAMK,OANLC,UAMK,CAAA;;AAN0C,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,SAAA,CAAA;KAAqBc,IAAG,CAAA/B,GAAA,CAAA,SAAA,CAAA,CAAA,EAAA,CAC5E2E,kBAAA,CAIK,OAJLpD,UAIK,CAAA;AAJC,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,MAAA,CAAA;KAAkBc,IAAG,CAAA/B,GAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAChCiZ,UAEM,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,aAAA,EAAA;AAFoB,IAAA,OAAA,iBAAOnX,IAAE,CAAAd,EAAA,CAAA,aAAA,CAAA,CAAA;KAAnC,YAAA;AAAA,IAAA,OAEM,eADFY,WAAkI,CAAAC,uBAAA,CAAlHC,IAAY,CAAApF,WAAA,GAAA,MAAA,GAAA,aAAA,CAAA,EAA5B4E,UAAkI,CAAA;AAA5EwF,MAAAA,IAAG,EAAH,EAAG;MAAG,OAAK,EAAA,CAAGhF,IAAE,CAAAd,EAAA,CAAA,aAAA,CAAA,EAAiBc,IAAW,CAAApF,WAAA,CAAA;OAAWoF,IAAG,CAAA/B,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;kDAIjH+B,IAAA,CAAAmX,MAAM,CAACtU,MAAM,IAAxBvD,SAAA,EAAA,EAAAC,kBAAA,CAEK,OAFLC,UAEK,CAAA;;AAFsB,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,QAAA,CAAA;KAAoBc,IAAG,CAAA/B,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CACvDiZ,UAA0B,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,QAAA,CAAA,wCAGpB1X,QAAY,CAAA2W,YAAA,iBADtBtW,WAuCa,CAAAsX,sBAAA,EAAA;;IArCRtd,IAAI,EAAE+D,KAAM,CAAA0O,MAAA;IACZvS,KAAK,EAAE6D,KAAO,CAAAyO,OAAA;IACdrS,YAAY,EAAEwF,QAAkB,CAAA+W,kBAAA;IAChClc,YAAY,EAAE0F,IAAY,CAAA1F,YAAA;IAC1B+c,QAAQ,EAAErX,IAAiB,CAAA3F,iBAAA;IAC3BE,kBAAkB,EAAEyF,IAAkB,CAAAzF,kBAAA;IACtCE,yBAAyB,EAAEuF,IAAyB,CAAAvF,yBAAA;AACpD,IAAA,OAAA,iBAAOuF,IAAE,CAAAd,EAAA,CAAA,aAAA,EAAA;AAAAoY,MAAAA,QAAA,EAAA,KAAA;AAAA,KAAA,CAAA,CAAA;AACTtJ,IAAAA,MAAI,EAAAvC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAEjM,QAAM,CAAAuO,MAAA,CAACtC,MAAM,CAAA,CAAA;AAAA,KAAA,CAAA;IACnB6L,UAAU,EAAEvX,IAAmB,CAAA5F,mBAAA;IAC/BsL,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;AAClBrH,IAAAA,EAAE,EAAE2B,IAAG,CAAA/B,GAAA,CAAA,aAAA,CAAA;;;MAEQ+B,IAAA,CAAAmX,MAAM,CAACK,cAAc;UAAG,OAAK;gBACzC,YAAA;MAAA,OAAkC,CAAlCN,UAAkC,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,gBAAA,CAAA;;;iBAEtBnX,IAAA,CAAAmX,MAAM,CAACM,YAAY;UAAG,KAAG;gBACrC,YAAA;MAAA,OAAgC,CAAhCP,UAAgC,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,cAAA,CAAA;;;iBAEpBnX,IAAA,CAAAmX,MAAM,CAACO,0BAA0B;UAAG,mBAAiB;AACjEC,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADmEC,SAAS,EAAA;MAAA,OAAA,CAC5EqR,UAAuE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,4BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAEnD7F,IAAA,CAAAmX,MAAM,CAACS,yBAAyB;UAAG,kBAAgB;AAC/DD,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1EqR,UAAsE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAElD7F,IAAA,CAAAmX,MAAM,CAACU,yBAAyB;UAAG,kBAAgB;AAC/DF,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1EqR,UAAsE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAElD7F,IAAA,CAAAmX,MAAM,CAACW,yBAAyB;UAAG,kBAAgB;AAC/DH,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1EqR,UAAsE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAElD7F,IAAA,CAAAmX,MAAM,CAACY,+BAA+B;UAAG,wBAAsB;AAC3EJ,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UAD6EC,SAAS,EAAA;MAAA,OAAA,CACtFqR,UAA4E,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,iCAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAExD7F,IAAA,CAAAmX,MAAM,CAACa,gCAAgC;UAAG,yBAAuB;AAC7EL,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UAD+EC,SAAS,EAAA;MAAA,OAAA,CACxFqR,UAA6E,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,kCAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;qNAG7EjD,kBAAA,CAuEK,OAvELpD,UAuEK,CAAA;AAvEC,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,gBAAA,CAAA;IAAqB9C,KAAK,EAAA,CAAG4D,IAAE,CAAAiY,EAAA,CAAA,gBAAA,CAAA,EAAA;MAAAC,SAAA,EAAiClY,IAAa,CAAAjE,YAAAA;KAAA,CAAA;KAAYiE,IAAG,CAAA/B,GAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CACvG2E,kBAAA,CAqEO,SArEPpD,UAqEO,CAAA;AArEA2L,IAAAA,GAAG,EAAC,OAAM;AAAEzL,IAAAA,IAAI,EAAC,OAAM;IAAG,OAAK,EAAA,CAAGM,IAAE,CAAAd,EAAA,CAAA,OAAA,CAAA,EAAWc,IAAU,CAAA9D,UAAA,CAAA;IAAIE,KAAK,EAAE4D,IAAU,CAAA/D,UAAAA;GAAe,EAAA0D,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAK,IAAA,CAAA7D,UAAU,CAAK6D,EAAAA,IAAG,CAAA/B,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,CAClH2E,kBAAA,CA0BO,SA1BPpD,UA0BO,CAAA;AA1BC,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,OAAA,CAAA;AAAY9C,IAAAA,KAAK,EAAE4D,IAAE,CAAAiY,EAAA,CAAA,OAAA,CAAA;AAAWvY,IAAAA,IAAI,EAAC,UAAA;KAAmBM,IAAG,CAAA/B,GAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CACxE2E,kBAAA,CAiBI,MAjBJpD,UAiBI,CAAA;AAjBAE,IAAAA,IAAI,EAAC,KAAA;KAAcM,IAAG,CAAA/B,GAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EACtBqB,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAeUuF,QAfmB,EAAA,IAAA,EAAAwG,UAAA,CAAA7L,QAAA,CAAA0G,OAAO,EAAlB,UAAAI,GAAG,EAAElF,CAAC,EAAA;;AAAoB/D,MAAAA,GAAA,EAAAmC,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,WAAA,CAAA,IAAkB9G,mBAAU,CAAC8G,GAAG,cAAclF,CAAAA;QAEzF,CAAA5B,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,QAAA,CAAA,iBADzBzG,WAae,CAAAqY,uBAAA,EAAA;;AAXVzb,MAAAA,MAAM,EAAE6J,GAAG;MACX7K,gBAAgB,EAAEsE,IAAgB,CAAAtE,gBAAA;MAClCT,SAAS,EAAE4C,KAAW,CAAA2O,WAAA;MACtBtR,SAAS,EAAE2C,KAAW,CAAA4O,WAAA;MACtBrR,aAAa,EAAEyC,KAAe,CAAA6O,eAAA;MAC9BrR,QAAQ,EAAE2E,IAAQ,CAAA3E,QAAA;AAClB+c,MAAAA,aAAY,EAAA3M,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAEjM,QAAmB,CAAA8O,mBAAA,CAAC7C,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;AACxC2M,MAAAA,mBAAkB,EAAA5M,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAEjM,QAAmB,CAAAoS,mBAAA,CAACnG,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;AAC9C/O,MAAAA,KAAK,EAAE0E,CAAC;MACRqE,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;MAClBrH,EAAE,EAAE2B,IAAE,CAAA3B,EAAAA;;mBAIToB,QAAe,CAAAqV,eAAA,EAAA,IAAzBxV,SAAA,EAAA,EAAAC,kBAAA,CAMI;;KANiCS,IAAG,CAAA/B,GAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAA,EACpCqB,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAIUuF,QAJmB,EAAA,IAAA,EAAAwG,UAAA,CAAA7L,QAAA,CAAA0G,OAAO,EAAlB,UAAAI,GAAG,EAAElF,CAAC,EAAA;;AAAoB/D,MAAAA,GAAA,EAAAmC,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,WAAA,CAAA,IAAkB9G,mBAAU,CAAC8G,GAAG,cAAclF,CAAAA;QACzF,CAAA5B,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,QAAA,CAAA,IAAzBjH,SAAA,EAAA,EAAAC,kBAAA,CAEI,MAFJC,UAEI,CAAA;;AAFmC,MAAA,OAAA,EAAOC,QAA0B,CAAA6O,0BAAA,CAAC/H,GAAG,CAAA;AAAInK,MAAAA,KAAK,GAAGqD,QAAU,CAAA1C,UAAA,CAACwJ,GAAG,EAAY,OAAA,CAAA,EAAA9G,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,mBAAA,CAAA,CAAA;;OAAiCvG,IAAG,CAAA/B,GAAA,CAAA,YAAA,EAAewB,QAAmB,CAAA6N,mBAAA,CAAC/G,GAAG,CAAA,CAAA,CAAA,EAAA,CACrLA,GAAG,CAAC3G,YAAY2G,GAAG,CAAC3G,QAAQ,CAACiJ,MAAM,IAApDvJ,SAAA,EAAA,EAAAQ,WAAA,CAA0GC,uBAA/C,CAAAwG,GAAG,CAAC3G,QAAQ,CAACiJ,MAAM,CAAA,EAAA;;AAAGnM,MAAAA,MAAM,EAAE6J,GAAG;AAAG5J,MAAAA,KAAK,EAAE0E,CAAAA;;yDAKtHuB,kBAAA,CAiCO,SAjCPpD,UAiCO,CAAA;AAjCC,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,OAAA,CAAA;AAAWQ,IAAAA,IAAI,EAAC,UAAA;KAAmBM,IAAG,CAAA/B,GAAA,CAAA,OAAA,CAAA,CAAA,EAAA,EAClCwB,QAAK,CAAAuW,KAAA,IAClB1W,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAwBQuF,QAvBoB,EAAA;AAAAxH,IAAAA,GAAA,EAAA,CAAA;GAAA,EAAAgO,UAAA,CAAA7L,QAAA,CAAAqW,YAAY,EAA5B,UAAA9S,IAAI,EAAErG,KAAK,EAAA;wBADvBmD,WAwBQ,CAAAwY,gBAAA,EAAA;AAtBHhb,MAAAA,GAAG,EAAEmC,QAAO,CAAAqH,OAAA,CAAC9D,IAAI,CAAA;MACjB7J,OAAO,EAAE6G,IAAO,CAAA7G,OAAA;MAChBgN,OAAO,EAAE1G,QAAO,CAAA0G,OAAA;AAChBnD,MAAAA,IAAI,EAAEA,IAAI;AACVC,MAAAA,KAAK,EAAE,CAAC;MACR3J,YAAY,EAAEuE,KAAc,CAAAwO,cAAA;MAC5BzQ,WAAW,EAAEoE,IAAW,CAAApE,WAAA;MACxBpC,aAAa,EAAEwG,IAAa,CAAAxG,aAAA;MAC5BD,aAAa,EAAEyG,IAAa,CAAAzG,aAAA;AAC5B6M,MAAAA,WAAW,EAAE3G,QAAY,CAAAqW,YAAA,CAACxU,MAAM;MAChC+E,YAAY,EAAE1J,KAAI,GAAA,CAAA;MAClB+F,QAAQ,EAAEjD,QAAA,CAAAkW,WAAW,CAAC3S,IAAI,EAAErG,KAAK,CAAA;MACjC7B,WAAW,EAAEkF,IAAW,CAAAlF,WAAA;MACxBnB,WAAW,EAAEqG,IAAW,CAAArG,WAAA;MACxBC,oBAAoB,EAAEoG,IAAoB,CAAApG,oBAAA;MAC1C0J,SAAS,EAAEtD,IAAM,CAAAmX,MAAA;MACjB3L,YAAW,EAAE/L,QAAY,CAAA+L,YAAA;MACzBO,WAAU,EAAEtM,QAAW,CAAAsM,WAAA;MACvBzB,gBAAe,EAAE7K,QAAgB,CAAA6K,gBAAA;AACjC0B,MAAAA,eAAc,EAAAP,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,QAAA,OAAEjM,QAAe,CAAAmH,eAAA,CAAC8E,MAAM,CAAA,CAAA;AAAA,OAAA,CAAA;MACtChG,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;MAClBrH,EAAE,EAAE2B,IAAE,CAAA3B,EAAAA;;eAGfiB,SAAA,EAAA,EAAAC,kBAAA,CAII,MAJJC,UAII,CAAA;;AAJQ,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,cAAA,CAAA;KAA0Bc,IAAG,CAAA/B,GAAA,CAAA,cAAA,CAAA,CAAA,EAAA,CAC9C2E,kBAAA,CAEI,MAFJpD,UAEI,CAAA;AAFC+Y,IAAAA,OAAO,EAAE9Y,QAAO,CAAA0G,OAAA,CAAC7E,MAAAA;KAAgBtB,IAAG,CAAA/B,GAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,CACrCiZ,UAAyB,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,OAAA,CAAA,iCAIxB1X,QAAS,CAAAwW,SAAA,IAAtB3W,SAAA,EAAA,EAAAC,kBAAA,CAMO,SANPC,UAMO,CAAA;;AANkB,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,OAAA,CAAA;AAAY9C,IAAAA,KAAK,EAAE4D,IAAE,CAAAiY,EAAA,CAAA,OAAA,CAAA;AAAWvY,IAAAA,IAAI,EAAC,UAAA;KAAmBM,IAAG,CAAA/B,GAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CACzF2E,kBAAA,CAII,MAJJpD,UAII,CAAA;AAJAE,IAAAA,IAAI,EAAC,KAAA;KAAcM,IAAG,CAAA/B,GAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EACtBqB,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAEUuF,QAFmB,EAAA,IAAA,EAAAwG,UAAA,CAAA7L,QAAA,CAAA0G,OAAO,EAAlB,UAAAI,GAAG,EAAElF,CAAC,EAAA;;AAAoB/D,MAAAA,GAAA,EAAAmC,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,WAAA,CAAA,IAAkB9G,mBAAU,CAAC8G,GAAG,cAAclF,CAAAA;QAC/E,CAAA5B,QAAA,CAAA1C,UAAU,CAACwJ,GAAG,EAAA,QAAA,CAAA,iBAAnCzG,WAAqH,CAAA0Y,uBAAA,EAAA;;AAApE9b,MAAAA,MAAM,EAAE6J,GAAG;AAAG5J,MAAAA,KAAK,EAAE0E,CAAC;MAAGqE,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;MAAGrH,EAAE,EAAE2B,IAAE,CAAA3B,EAAAA;;qEAO/GoB,QAAe,CAAA4W,eAAA,iBADzBvW,WAuCa,CAAAsX,sBAAA,EAAA;;IArCRtd,IAAI,EAAE+D,KAAM,CAAA0O,MAAA;IACZvS,KAAK,EAAE6D,KAAO,CAAAyO,OAAA;IACdrS,YAAY,EAAEwF,QAAkB,CAAA+W,kBAAA;IAChClc,YAAY,EAAE0F,IAAY,CAAA1F,YAAA;IAC1B+c,QAAQ,EAAErX,IAAiB,CAAA3F,iBAAA;IAC3BE,kBAAkB,EAAEyF,IAAkB,CAAAzF,kBAAA;IACtCE,yBAAyB,EAAEuF,IAAyB,CAAAvF,yBAAA;AACpD,IAAA,OAAA,iBAAOuF,IAAE,CAAAd,EAAA,CAAA,aAAA,EAAA;AAAAoY,MAAAA,QAAA,EAAA,QAAA;AAAA,KAAA,CAAA,CAAA;AACTtJ,IAAAA,MAAI,EAAAvC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,MAAA,OAAEjM,QAAM,CAAAuO,MAAA,CAACtC,MAAM,CAAA,CAAA;AAAA,KAAA,CAAA;IACnB6L,UAAU,EAAEvX,IAAmB,CAAA5F,mBAAA;IAC/BsL,QAAQ,EAAE1F,IAAQ,CAAA0F,QAAA;AAClBrH,IAAAA,EAAE,EAAE2B,IAAG,CAAA/B,GAAA,CAAA,aAAA,CAAA;;;MAEQ+B,IAAA,CAAAmX,MAAM,CAACK,cAAc;UAAG,OAAK;gBACzC,YAAA;MAAA,OAAkC,CAAlCN,UAAkC,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,gBAAA,CAAA;;;iBAEtBnX,IAAA,CAAAmX,MAAM,CAACM,YAAY;UAAG,KAAG;gBACrC,YAAA;MAAA,OAAgC,CAAhCP,UAAgC,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,cAAA,CAAA;;;iBAEpBnX,IAAA,CAAAmX,MAAM,CAACO,0BAA0B;UAAG,mBAAiB;AACjEC,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADmEC,SAAS,EAAA;MAAA,OAAA,CAC5EqR,UAAuE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,4BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAEnD7F,IAAA,CAAAmX,MAAM,CAACS,yBAAyB;UAAG,kBAAgB;AAC/DD,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1EqR,UAAsE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAElD7F,IAAA,CAAAmX,MAAM,CAACU,yBAAyB;UAAG,kBAAgB;AAC/DF,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1EqR,UAAsE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAElD7F,IAAA,CAAAmX,MAAM,CAACW,yBAAyB;UAAG,kBAAgB;AAC/DH,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UADiEC,SAAS,EAAA;MAAA,OAAA,CAC1EqR,UAAsE,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,2BAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAElD7F,IAAA,CAAAmX,MAAM,CAACY,+BAA+B;UAAG,wBAAsB;AAC3EJ,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UAD6EC,SAAS,EAAA;MAAA,OAAA,CACtFqR,UAA4E,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,iCAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;iBAExD7F,IAAA,CAAAmX,MAAM,CAACa,gCAAgC;UAAG,yBAAuB;AAC7EL,IAAAA,EAAA,EAAA/R,OAAA,CAAA,UAD+EC,SAAS,EAAA;MAAA,OAAA,CACxFqR,UAA6E,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,kCAAA,EAAA;QAA9B,OAAKrR,EAAAA,cAAA,CAAED,SAAS,CAAM,OAAA,CAAA,CAAA;;;;qNAGlE7F,IAAA,CAAAmX,MAAM,CAACtX,MAAM,IAAxBP,SAAA,EAAA,EAAAC,kBAAA,CAEK,OAFLC,UAEK,CAAA;;AAFsB,IAAA,OAAA,EAAOQ,IAAE,CAAAd,EAAA,CAAA,QAAA,CAAA;KAAoBc,IAAG,CAAA/B,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CACvDiZ,UAA0B,CAAAlX,IAAA,CAAAmX,MAAA,EAAA,QAAA,CAAA,wCAE9BvU,kBAAA,CAA8H,OAA9HpD,UAA8H,CAAA;AAAzH2L,IAAAA,GAAG,EAAC,cAAe;AAAC,IAAA,OAAA,EAAOnL,IAAE,CAAAd,EAAA,CAAA,uBAAA,CAAA;AAA2B9C,IAAAA,KAAsB,EAAtB;AAAsB,MAAA,SAAA,EAAA,MAAA;AAAA,KAAA;KAAQ4D,IAAG,CAAA/B,GAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/treetable/BaseTreeTable.vue","../../src/treetable/FooterCell.vue","../../src/treetable/FooterCell.vue?vue&type=template&id=65904c9a&lang.js","../../src/treetable/HeaderCell.vue","../../src/treetable/HeaderCell.vue?vue&type=template&id=e9d25e02&lang.js","../../src/treetable/BodyCell.vue","../../src/treetable/BodyCell.vue?vue&type=template&id=444448c2&lang.js","../../src/treetable/TreeTableRow.vue","../../src/treetable/TreeTableRow.vue?vue&type=template&id=577a9632&lang.js","../../src/treetable/TreeTable.vue","../../src/treetable/TreeTable.vue?vue&type=template&id=d4e4529e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TreeTableStyle from 'primevue/treetable/style';\n\nexport default {\n name: 'BaseTreeTable',\n extends: BaseComponent,\n props: {\n value: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rows: {\n type: Number,\n default: 0\n },\n first: {\n type: Number,\n default: 0\n },\n totalRecords: {\n type: Number,\n default: 0\n },\n paginator: {\n type: Boolean,\n default: false\n },\n paginatorPosition: {\n type: String,\n default: 'bottom'\n },\n alwaysShowPaginator: {\n type: Boolean,\n default: true\n },\n paginatorTemplate: {\n type: String,\n default: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n pageLinkSize: {\n type: Number,\n default: 5\n },\n rowsPerPageOptions: {\n type: Array,\n default: null\n },\n currentPageReportTemplate: {\n type: String,\n default: '({currentPage} of {totalPages})'\n },\n lazy: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n autoLayout: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n defaultSortOrder: {\n type: Number,\n default: 1\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n removableSort: {\n type: Boolean,\n default: false\n },\n filters: {\n type: Object,\n default: null\n },\n filterMode: {\n type: String,\n default: 'lenient'\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n columnResizeMode: {\n type: String,\n default: 'fit'\n },\n indentation: {\n type: Number,\n default: 1\n },\n showGridlines: {\n type: Boolean,\n default: false\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n scrollHeight: {\n type: String,\n default: null\n },\n size: {\n type: String,\n default: null\n },\n tableStyle: {\n type: null,\n default: null\n },\n tableClass: {\n type: [String, Object],\n default: null\n },\n tableProps: {\n type: Object,\n default: null\n }\n },\n style: TreeTableStyle,\n provide() {\n return {\n $pcTreeTable: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n frozen: this.columnProp('frozen'),\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let isRTL = this.$parentInstance.isRTL;\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n frozen: this.columnProp('frozen'),\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let isRTL = this.$parentInstance.isRTL;\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <th\n :class=\"containerClass\"\n :style=\"[containerStyle]\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n :aria-sort=\"ariaSort\"\n role=\"columnheader\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sortIcon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"getColumnPT('pcSortBadge')\" :value=\"getMultiSortMetaIndex() + 1\" size=\"small\" />\n </div>\n </th>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth, getAttribute, getIndex } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['column-click', 'column-resizestart'],\n props: {\n column: {\n type: Object,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sorted: this.isColumnSorted(),\n frozen: this.$parentInstance.scrollable && this.columnProp('frozen'),\n resizable: this.resizableColumns,\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let isRTL = this.$parentInstance.isRTL;\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n\n event.preventDefault();\n }\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n let index = -1;\n\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n let meta = this.multiSortMeta[i];\n\n if (meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')) {\n index = i;\n break;\n }\n }\n\n return index;\n },\n isMultiSorted() {\n return this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('headerClass'), this.columnProp('class'), this.cx('headerCell')];\n },\n containerStyle() {\n let headerStyle = this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :class=\"containerClass\"\n :style=\"[containerStyle]\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n :aria-sort=\"ariaSort\"\n role=\"columnheader\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sortIcon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"getColumnPT('pcSortBadge')\" :value=\"getMultiSortMetaIndex() + 1\" size=\"small\" />\n </div>\n </th>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getNextElementSibling, getPreviousElementSibling, getOuterWidth, getAttribute, getIndex } from '@primeuix/utils/dom';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['column-click', 'column-resizestart'],\n props: {\n column: {\n type: Object,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sorted: this.isColumnSorted(),\n frozen: this.$parentInstance.scrollable && this.columnProp('frozen'),\n resizable: this.resizableColumns,\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let isRTL = this.$parentInstance.isRTL;\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n\n event.preventDefault();\n }\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n let index = -1;\n\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n let meta = this.multiSortMeta[i];\n\n if (meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')) {\n index = i;\n break;\n }\n }\n\n return index;\n },\n isMultiSorted() {\n return this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('headerClass'), this.columnProp('class'), this.cx('headerCell')];\n },\n containerStyle() {\n let headerStyle = this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <div :class=\"cx('bodyCellContent')\" v-bind=\"getColumnPT('bodyCellContent')\">\n <button v-if=\"columnProp('expander')\" v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" :style=\"togglerStyle\" tabindex=\"-1\" v-bind=\"getColumnPT('nodeToggleButton')\" data-pc-group-section=\"rowactionbutton\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <component v-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"templates['nodetogglericon']\" :is=\"templates['nodetogglericon']\" />\n <SpinnerIcon v-else spin v-bind=\"ptm('nodetoggleicon')\" />\n </template>\n <template v-else>\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox\n v-if=\"checkboxSelectionMode && columnProp('expander')\"\n :modelValue=\"checked\"\n :binary=\"true\"\n :class=\"cx('pcNodeCheckbox')\"\n @change=\"toggleCheckbox\"\n :tabindex=\"-1\"\n :indeterminate=\"partialChecked\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnCheckboxPT('pcNodeCheckbox')\"\n :data-p-partialchecked=\"partialChecked\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"column.children && column.children.body\" :is=\"column.children.body\" :node=\"node\" :column=\"column\" />\n <template v-else>{{ resolveFieldData(node.data, columnProp('field')) }}</template>\n </div>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-toggle', 'checkbox-toggle'],\n props: {\n node: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n leaf: {\n type: Boolean,\n default: false\n },\n expanded: {\n type: Boolean,\n default: false\n },\n selectionMode: {\n type: String,\n default: null\n },\n checked: {\n type: Boolean,\n default: false\n },\n partialChecked: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.$parent.selected,\n frozen: this.columnProp('frozen'),\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n getColumnCheckboxPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n partialChecked: this.partialChecked\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let isRTL = this.$parentInstance.isRTL;\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n }\n },\n resolveFieldData(rowData, field) {\n return resolveFieldData(rowData, field);\n },\n toggleCheckbox() {\n this.$emit('checkbox-toggle');\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n togglerStyle() {\n return {\n marginLeft: this.level * this.indentation + 'rem',\n visibility: this.leaf ? 'hidden' : 'visible'\n };\n },\n checkboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n }\n },\n components: {\n Checkbox,\n ChevronRightIcon,\n ChevronDownIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <div :class=\"cx('bodyCellContent')\" v-bind=\"getColumnPT('bodyCellContent')\">\n <button v-if=\"columnProp('expander')\" v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" :style=\"togglerStyle\" tabindex=\"-1\" v-bind=\"getColumnPT('nodeToggleButton')\" data-pc-group-section=\"rowactionbutton\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <component v-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"templates['nodetogglericon']\" :is=\"templates['nodetogglericon']\" />\n <SpinnerIcon v-else spin v-bind=\"ptm('nodetoggleicon')\" />\n </template>\n <template v-else>\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox\n v-if=\"checkboxSelectionMode && columnProp('expander')\"\n :modelValue=\"checked\"\n :binary=\"true\"\n :class=\"cx('pcNodeCheckbox')\"\n @change=\"toggleCheckbox\"\n :tabindex=\"-1\"\n :indeterminate=\"partialChecked\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnCheckboxPT('pcNodeCheckbox')\"\n :data-p-partialchecked=\"partialChecked\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"column.children && column.children.body\" :is=\"column.children.body\" :node=\"node\" :column=\"column\" />\n <template v-else>{{ resolveFieldData(node.data, columnProp('field')) }}</template>\n </div>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-toggle', 'checkbox-toggle'],\n props: {\n node: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n leaf: {\n type: Boolean,\n default: false\n },\n expanded: {\n type: Boolean,\n default: false\n },\n selectionMode: {\n type: String,\n default: null\n },\n checked: {\n type: Boolean,\n default: false\n },\n partialChecked: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.$parent.selected,\n frozen: this.columnProp('frozen'),\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n getColumnCheckboxPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n partialChecked: this.partialChecked\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let isRTL = this.$parentInstance.isRTL;\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n }\n },\n resolveFieldData(rowData, field) {\n return resolveFieldData(rowData, field);\n },\n toggleCheckbox() {\n this.$emit('checkbox-toggle');\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n togglerStyle() {\n return {\n marginLeft: this.level * this.indentation + 'rem',\n visibility: this.leaf ? 'hidden' : 'visible'\n };\n },\n checkboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n }\n },\n components: {\n Checkbox,\n ChevronRightIcon,\n ChevronDownIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <tr\n ref=\"node\"\n :class=\"containerClass\"\n :style=\"node.style\"\n :tabindex=\"tabindex\"\n role=\"row\"\n :aria-expanded=\"node.children && node.children.length ? expanded : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"ariaPosInset\"\n :aria-selected=\"getAriaSelected\"\n :aria-checked=\"checked || undefined\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @touchend=\"onTouchEnd\"\n @contextmenu=\"onRowRightClick\"\n v-bind=\"ptm('row', ptmOptions)\"\n :data-p-selected=\"selected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTBodyCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :node=\"node\"\n :level=\"level\"\n :leaf=\"leaf\"\n :indentation=\"indentation\"\n :expanded=\"expanded\"\n :selectionMode=\"selectionMode\"\n :checked=\"checked\"\n :partialChecked=\"partialChecked\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @checkbox-toggle=\"toggleCheckbox\"\n :index=\"i\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTBodyCell>\n </template>\n </tr>\n <template v-if=\"expanded && node.children && node.children.length\">\n <TreeTableRow\n v-for=\"childNode of node.children\"\n :key=\"nodeKey(childNode)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"childNode\"\n :parentNode=\"node\"\n :level=\"level + 1\"\n :expandedKeys=\"expandedKeys\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :indentation=\"indentation\"\n :ariaPosInset=\"node.children.indexOf(childNode) + 1\"\n :ariaSetSize=\"node.children.length\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @node-click=\"$emit('node-click', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @checkbox-change=\"onCheckboxChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n</template>\n\n<script>\nimport { find, findSingle, focus, getAttribute, isClickable } from '@primeuix/utils/dom';\nimport { equals, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'TreeTableRow',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],\n props: {\n node: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n parentNode: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n tabindex: {\n type: Number,\n default: -1\n },\n ariaSetSize: {\n type: Number,\n default: null\n },\n ariaPosInset: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n templates: {\n type: Object,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n }\n },\n nodeTouched: false,\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n onClick(event) {\n if (isClickable(event.target) || getAttribute(event.target, 'data-pc-section') === 'nodetogglebutton' || getAttribute(event.target, 'data-pc-section') === 'rowtoggleicon' || event.target.tagName === 'path') {\n return;\n }\n\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n this.nodeTouched = false;\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n node: this.node\n });\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n onKeyDown(event, item) {\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 'Enter':\n case 'NumpadEnter':\n case 'Space':\n if (!isClickable(event.target)) {\n this.onEnterKey(event, item);\n }\n\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextElementSibling = event.currentTarget.nextElementSibling;\n\n nextElementSibling && this.focusRowChange(event.currentTarget, nextElementSibling);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const previousElementSibling = event.currentTarget.previousElementSibling;\n\n previousElementSibling && this.focusRowChange(event.currentTarget, previousElementSibling);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const ishiddenIcon = findSingle(event.currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(this.$refs.node, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (ishiddenIcon) return;\n\n !this.expanded && togglerElement.click();\n\n this.$nextTick(() => {\n this.onArrowDownKey(event);\n });\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (this.level === 0 && !this.expanded) {\n return;\n }\n\n const currentTarget = event.currentTarget;\n const ishiddenIcon = findSingle(currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.expanded && !ishiddenIcon) {\n togglerElement.click();\n\n return;\n }\n\n const target = this.findBeforeClickableNode(currentTarget);\n\n target && this.focusRowChange(currentTarget, target);\n },\n onHomeKey(event) {\n const findFirstElement = findSingle(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n\n findFirstElement && focus(findFirstElement);\n\n event.preventDefault();\n },\n onEndKey(event) {\n const nodes = find(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n const findFirstElement = nodes[nodes.length - 1];\n\n focus(findFirstElement);\n\n event.preventDefault();\n },\n onEnterKey(event) {\n event.preventDefault();\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n if (this.selectionMode === 'checkbox') {\n this.toggleCheckbox();\n\n return;\n }\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n\n this.nodeTouched = false;\n },\n onTabKey() {\n const rows = [...find(this.$refs.node.parentElement, 'tr')];\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-p-selected') || row.getAttribute('aria-checked') === 'true');\n\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-selected') || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const prevNode = node.previousElementSibling;\n\n if (prevNode) {\n const prevNodeButton = prevNode.querySelector('button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return prevNode;\n }\n\n return this.findBeforeClickableNode(prevNode);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n else delete selectionKeys[this.nodeKey(node)];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onCheckboxChange(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.node.parentElement, 'tr')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.node.styleClass, this.cx('row')];\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.nodeKey(this.node)] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;\n },\n isSelectedWithContextMenu() {\n if (this.node && this.contextMenuSelection) {\n return equals(this.node, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].partialChecked : false;\n },\n getAriaSelected() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : null;\n },\n ptmOptions() {\n return {\n context: {\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.selected,\n scrollable: this.$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n TTBodyCell: BodyCell\n }\n};\n</script>\n","<template>\n <tr\n ref=\"node\"\n :class=\"containerClass\"\n :style=\"node.style\"\n :tabindex=\"tabindex\"\n role=\"row\"\n :aria-expanded=\"node.children && node.children.length ? expanded : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"ariaPosInset\"\n :aria-selected=\"getAriaSelected\"\n :aria-checked=\"checked || undefined\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @touchend=\"onTouchEnd\"\n @contextmenu=\"onRowRightClick\"\n v-bind=\"ptm('row', ptmOptions)\"\n :data-p-selected=\"selected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTBodyCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :node=\"node\"\n :level=\"level\"\n :leaf=\"leaf\"\n :indentation=\"indentation\"\n :expanded=\"expanded\"\n :selectionMode=\"selectionMode\"\n :checked=\"checked\"\n :partialChecked=\"partialChecked\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @checkbox-toggle=\"toggleCheckbox\"\n :index=\"i\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTBodyCell>\n </template>\n </tr>\n <template v-if=\"expanded && node.children && node.children.length\">\n <TreeTableRow\n v-for=\"childNode of node.children\"\n :key=\"nodeKey(childNode)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"childNode\"\n :parentNode=\"node\"\n :level=\"level + 1\"\n :expandedKeys=\"expandedKeys\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :indentation=\"indentation\"\n :ariaPosInset=\"node.children.indexOf(childNode) + 1\"\n :ariaSetSize=\"node.children.length\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @node-click=\"$emit('node-click', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @checkbox-change=\"onCheckboxChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n</template>\n\n<script>\nimport { find, findSingle, focus, getAttribute, isClickable } from '@primeuix/utils/dom';\nimport { equals, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'TreeTableRow',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],\n props: {\n node: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n parentNode: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n tabindex: {\n type: Number,\n default: -1\n },\n ariaSetSize: {\n type: Number,\n default: null\n },\n ariaPosInset: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n templates: {\n type: Object,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n }\n },\n nodeTouched: false,\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n onClick(event) {\n if (isClickable(event.target) || getAttribute(event.target, 'data-pc-section') === 'nodetogglebutton' || getAttribute(event.target, 'data-pc-section') === 'rowtoggleicon' || event.target.tagName === 'path') {\n return;\n }\n\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n this.nodeTouched = false;\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n node: this.node\n });\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n onKeyDown(event, item) {\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 'Enter':\n case 'NumpadEnter':\n case 'Space':\n if (!isClickable(event.target)) {\n this.onEnterKey(event, item);\n }\n\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextElementSibling = event.currentTarget.nextElementSibling;\n\n nextElementSibling && this.focusRowChange(event.currentTarget, nextElementSibling);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const previousElementSibling = event.currentTarget.previousElementSibling;\n\n previousElementSibling && this.focusRowChange(event.currentTarget, previousElementSibling);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const ishiddenIcon = findSingle(event.currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(this.$refs.node, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (ishiddenIcon) return;\n\n !this.expanded && togglerElement.click();\n\n this.$nextTick(() => {\n this.onArrowDownKey(event);\n });\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (this.level === 0 && !this.expanded) {\n return;\n }\n\n const currentTarget = event.currentTarget;\n const ishiddenIcon = findSingle(currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.expanded && !ishiddenIcon) {\n togglerElement.click();\n\n return;\n }\n\n const target = this.findBeforeClickableNode(currentTarget);\n\n target && this.focusRowChange(currentTarget, target);\n },\n onHomeKey(event) {\n const findFirstElement = findSingle(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n\n findFirstElement && focus(findFirstElement);\n\n event.preventDefault();\n },\n onEndKey(event) {\n const nodes = find(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n const findFirstElement = nodes[nodes.length - 1];\n\n focus(findFirstElement);\n\n event.preventDefault();\n },\n onEnterKey(event) {\n event.preventDefault();\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n if (this.selectionMode === 'checkbox') {\n this.toggleCheckbox();\n\n return;\n }\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n\n this.nodeTouched = false;\n },\n onTabKey() {\n const rows = [...find(this.$refs.node.parentElement, 'tr')];\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-p-selected') || row.getAttribute('aria-checked') === 'true');\n\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-selected') || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const prevNode = node.previousElementSibling;\n\n if (prevNode) {\n const prevNodeButton = prevNode.querySelector('button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return prevNode;\n }\n\n return this.findBeforeClickableNode(prevNode);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n else delete selectionKeys[this.nodeKey(node)];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onCheckboxChange(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.node.parentElement, 'tr')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.node.styleClass, this.cx('row')];\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.nodeKey(this.node)] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;\n },\n isSelectedWithContextMenu() {\n if (this.node && this.contextMenuSelection) {\n return equals(this.node, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].partialChecked : false;\n },\n getAriaSelected() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : null;\n },\n ptmOptions() {\n return {\n context: {\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.selected,\n scrollable: this.$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n TTBodyCell: BodyCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-treetable-scrollable-body\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading && loadingMode === 'mask'\" :class=\"cx('loading')\" v-bind=\"ptm('loading')\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <component :is=\"loadingIcon ? 'span' : 'SpinnerIcon'\" spin :class=\"[cx('loadingIcon'), loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <TTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: scrollHeight }]\" v-bind=\"ptm('tableContainer')\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"tableStyle\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"ptm('thead')\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTHeaderCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :resizableColumns=\"resizableColumns\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :sortMode=\"sortMode\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n :index=\"i\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTHeaderCell>\n </template>\n </tr>\n <tr v-if=\"hasColumnFilter()\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th v-if=\"!columnProp(col, 'hidden')\" :class=\"getFilterColumnHeaderClass(col)\" :style=\"[columnProp(col, 'style'), columnProp(col, 'filterHeaderStyle')]\" v-bind=\"ptm('headerCell', ptHeaderCellOptions(col))\">\n <component v-if=\"col.children && col.children.filter\" :is=\"col.children.filter\" :column=\"col\" :index=\"i\" />\n </th>\n </template>\n </tr>\n </thead>\n <tbody :class=\"cx('tbody')\" role=\"rowgroup\" v-bind=\"ptm('tbody')\">\n <template v-if=\"!empty\">\n <TTRow\n v-for=\"(node, index) of dataToRender\"\n :key=\"nodeKey(node)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"node\"\n :level=\"0\"\n :expandedKeys=\"d_expandedKeys\"\n :indentation=\"indentation\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :ariaSetSize=\"dataToRender.length\"\n :ariaPosInset=\"index + 1\"\n :tabindex=\"setTabindex(node, index)\"\n :loadingMode=\"loadingMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :templates=\"$slots\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n @checkbox-change=\"onCheckboxChange\"\n @row-rightclick=\"onRowRightClick($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTRow>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columns.length\" v-bind=\"ptm('emptyMessageCell')\">\n <slot name=\"empty\"></slot>\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"ptm('tfoot')\">\n <tr role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :unstyled=\"unstyled\" :pt=\"pt\"></TTFooterCell>\n </template>\n </tr>\n </tfoot>\n </table>\n </div>\n <TTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n </div>\n</template>\n\n<script>\nimport { addStyle, clearSelection, find, getAttribute, getIndex, getOffset, getOuterWidth, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { getVNodeProp, HelperSet } from '@primevue/core/utils';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport BaseTreeTable from './BaseTreeTable.vue';\nimport FooterCell from './FooterCell.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport TreeTableRow from './TreeTableRow.vue';\n\nexport default {\n name: 'TreeTable',\n extends: BaseTreeTable,\n inheritAttrs: false,\n emits: [\n 'node-expand',\n 'node-collapse',\n 'update:expandedKeys',\n 'update:selectionKeys',\n 'node-select',\n 'node-unselect',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'column-resize-end',\n 'update:contextMenuSelection',\n 'row-contextmenu'\n ],\n provide() {\n return {\n $columns: this.d_columns\n };\n },\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n hasASelectedNode: false,\n d_columns: new HelperSet({ type: 'Column' }),\n isRTL: false\n };\n },\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n mutationObserver: null,\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n },\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n }\n },\n mounted() {\n this.updateDirection();\n this.observeDirectionChanges();\n },\n beforeUnmount() {\n this.destroyStyleElement();\n this.d_columns.clear();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n methods: {\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n },\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n ptHeaderCellOptions(column) {\n return {\n context: {\n frozen: this.columnProp(column, 'frozen')\n }\n };\n },\n onNodeToggle(node) {\n const key = this.nodeKey(node);\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.rowSelectionMode && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[nodeKey] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.node);\n this.$emit('row-contextmenu', event);\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n onPage(event) {\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.d_expandedKeys = {};\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass')];\n },\n onColumnHeaderClick(e) {\n let event = e.originalEvent;\n let column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n targetNode.closest('[data-p-sortable-column=\"true\"]')\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n }\n }\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n sortSingle(nodes) {\n return this.sortNodesSingle(nodes);\n },\n sortNodesSingle(nodes) {\n let _nodes = [...nodes];\n const comparer = localeComparator();\n\n _nodes.sort((node1, node2) => {\n const value1 = resolveFieldData(node1.data, this.d_sortField);\n const value2 = resolveFieldData(node2.data, this.d_sortField);\n\n return sort(value1, value2, this.d_sortOrder, comparer);\n });\n\n return _nodes;\n },\n sortMultiple(nodes) {\n return this.sortNodesMultiple(nodes);\n },\n sortNodesMultiple(nodes) {\n let _nodes = [...nodes];\n\n _nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, 0);\n });\n\n return _nodes;\n },\n multisortField(node1, node2, index) {\n const value1 = resolveFieldData(node1.data, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(node2.data, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer);\n },\n filter(value) {\n let filteredNodes = [];\n const strict = this.filterMode === 'strict';\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n\n for (let j = 0; j < this.columns.length; j++) {\n let col = this.columns[j];\n let filterField = this.columnProp(col, 'filterField') || this.columnProp(col, 'field');\n\n //local\n if (Object.prototype.hasOwnProperty.call(this.filters, filterField)) {\n let filterMatchMode = this.columnProp(col, 'filterMatchMode') || 'startsWith';\n let filterValue = this.filters[filterField];\n let filterConstraint = FilterService.filters[filterMatchMode];\n let paramsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!strict && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n //global\n if (this.hasGlobalFilter() && !globalMatch) {\n let copyNodeForGlobal = { ...copyNode };\n let filterValue = this.filters['global'];\n let filterConstraint = FilterService.filters['contains'];\n let globalFilterParamsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && (this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode))) ||\n (!strict && (this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n\n if (this.hasGlobalFilter()) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredNodes.push(copyNode);\n }\n }\n\n let filterEvent = this.createLazyLoadEvent(event);\n\n filterEvent.filteredValue = filteredNodes;\n this.$emit('filter', filterEvent);\n\n return filteredNodes;\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { filterField, filterValue, filterConstraint, strict }) {\n let matched = false;\n let dataFieldValue = resolveFieldData(node.data, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { filterField, filterValue, filterConstraint, strict }) || matched;\n }\n\n return matched;\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)] === true : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n createLazyLoadEvent(event) {\n let filterMatchModes;\n\n if (this.hasFilters()) {\n filterMatchModes = {};\n this.columns.forEach((col) => {\n if (this.columnProp(col, 'field')) {\n filterMatchModes[col.props.field] = this.columnProp(col, 'filterMatchMode');\n }\n });\n }\n\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.filters,\n filterMatchModes: filterMatchModes\n };\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = this.isRTL ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"treetable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n });\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnKeyDown(event, col) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.onColumnHeaderClick(event, col);\n }\n },\n hasColumnFilter() {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.children && col.children.filter) {\n return true;\n }\n }\n }\n\n return false;\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n getItemLabel(node) {\n return node.data.name;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n setTabindex(node, index) {\n if (this.isNodeSelected(node)) {\n this.hasASelectedNode = true;\n\n return 0;\n }\n\n if (this.selectionMode) {\n if (!this.isNodeSelected(node) && index === 0 && !this.hasASelectedNode) return 0;\n } else if (!this.selectionMode && index === 0) {\n return 0;\n }\n\n return -1;\n }\n },\n computed: {\n columns() {\n return this.d_columns.get(this);\n },\n processedData() {\n if (this.lazy) {\n return this.value;\n } else {\n if (this.value && this.value.length) {\n let data = this.value;\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n\n if (this.hasFilters()) {\n data = this.filter(data);\n }\n\n return data;\n } else {\n return null;\n }\n }\n },\n dataToRender() {\n const data = this.processedData;\n\n if (this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return data.slice(first, first + this.d_rows);\n } else {\n return data;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n hasFooter() {\n let hasFooter = false;\n\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n\n return hasFooter;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n singleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'single';\n },\n multipleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'multiple';\n },\n rowSelectionMode() {\n return this.singleSelectionMode || this.multipleSelectionMode;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n }\n },\n components: {\n TTRow: TreeTableRow,\n TTPaginator: Paginator,\n TTHeaderCell: HeaderCell,\n TTFooterCell: FooterCell,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-treetable-scrollable-body\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading && loadingMode === 'mask'\" :class=\"cx('loading')\" v-bind=\"ptm('loading')\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <component :is=\"loadingIcon ? 'span' : 'SpinnerIcon'\" spin :class=\"[cx('loadingIcon'), loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <TTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: scrollHeight }]\" v-bind=\"ptm('tableContainer')\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"tableStyle\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"ptm('thead')\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTHeaderCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :resizableColumns=\"resizableColumns\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :sortMode=\"sortMode\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n :index=\"i\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTHeaderCell>\n </template>\n </tr>\n <tr v-if=\"hasColumnFilter()\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th v-if=\"!columnProp(col, 'hidden')\" :class=\"getFilterColumnHeaderClass(col)\" :style=\"[columnProp(col, 'style'), columnProp(col, 'filterHeaderStyle')]\" v-bind=\"ptm('headerCell', ptHeaderCellOptions(col))\">\n <component v-if=\"col.children && col.children.filter\" :is=\"col.children.filter\" :column=\"col\" :index=\"i\" />\n </th>\n </template>\n </tr>\n </thead>\n <tbody :class=\"cx('tbody')\" role=\"rowgroup\" v-bind=\"ptm('tbody')\">\n <template v-if=\"!empty\">\n <TTRow\n v-for=\"(node, index) of dataToRender\"\n :key=\"nodeKey(node)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"node\"\n :level=\"0\"\n :expandedKeys=\"d_expandedKeys\"\n :indentation=\"indentation\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :ariaSetSize=\"dataToRender.length\"\n :ariaPosInset=\"index + 1\"\n :tabindex=\"setTabindex(node, index)\"\n :loadingMode=\"loadingMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :templates=\"$slots\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n @checkbox-change=\"onCheckboxChange\"\n @row-rightclick=\"onRowRightClick($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTRow>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columns.length\" v-bind=\"ptm('emptyMessageCell')\">\n <slot name=\"empty\"></slot>\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"ptm('tfoot')\">\n <tr role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :unstyled=\"unstyled\" :pt=\"pt\"></TTFooterCell>\n </template>\n </tr>\n </tfoot>\n </table>\n </div>\n <TTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n </div>\n</template>\n\n<script>\nimport { addStyle, clearSelection, find, getAttribute, getIndex, getOffset, getOuterWidth, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { getVNodeProp, HelperSet } from '@primevue/core/utils';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport BaseTreeTable from './BaseTreeTable.vue';\nimport FooterCell from './FooterCell.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport TreeTableRow from './TreeTableRow.vue';\n\nexport default {\n name: 'TreeTable',\n extends: BaseTreeTable,\n inheritAttrs: false,\n emits: [\n 'node-expand',\n 'node-collapse',\n 'update:expandedKeys',\n 'update:selectionKeys',\n 'node-select',\n 'node-unselect',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'column-resize-end',\n 'update:contextMenuSelection',\n 'row-contextmenu'\n ],\n provide() {\n return {\n $columns: this.d_columns\n };\n },\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n hasASelectedNode: false,\n d_columns: new HelperSet({ type: 'Column' }),\n isRTL: false\n };\n },\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n mutationObserver: null,\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n },\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n }\n },\n mounted() {\n this.updateDirection();\n this.observeDirectionChanges();\n },\n beforeUnmount() {\n this.destroyStyleElement();\n this.d_columns.clear();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n methods: {\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n },\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n ptHeaderCellOptions(column) {\n return {\n context: {\n frozen: this.columnProp(column, 'frozen')\n }\n };\n },\n onNodeToggle(node) {\n const key = this.nodeKey(node);\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.rowSelectionMode && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[nodeKey] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.node);\n this.$emit('row-contextmenu', event);\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n onPage(event) {\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.d_expandedKeys = {};\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass')];\n },\n onColumnHeaderClick(e) {\n let event = e.originalEvent;\n let column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n targetNode.closest('[data-p-sortable-column=\"true\"]')\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n }\n }\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n sortSingle(nodes) {\n return this.sortNodesSingle(nodes);\n },\n sortNodesSingle(nodes) {\n let _nodes = [...nodes];\n const comparer = localeComparator();\n\n _nodes.sort((node1, node2) => {\n const value1 = resolveFieldData(node1.data, this.d_sortField);\n const value2 = resolveFieldData(node2.data, this.d_sortField);\n\n return sort(value1, value2, this.d_sortOrder, comparer);\n });\n\n return _nodes;\n },\n sortMultiple(nodes) {\n return this.sortNodesMultiple(nodes);\n },\n sortNodesMultiple(nodes) {\n let _nodes = [...nodes];\n\n _nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, 0);\n });\n\n return _nodes;\n },\n multisortField(node1, node2, index) {\n const value1 = resolveFieldData(node1.data, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(node2.data, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer);\n },\n filter(value) {\n let filteredNodes = [];\n const strict = this.filterMode === 'strict';\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n\n for (let j = 0; j < this.columns.length; j++) {\n let col = this.columns[j];\n let filterField = this.columnProp(col, 'filterField') || this.columnProp(col, 'field');\n\n //local\n if (Object.prototype.hasOwnProperty.call(this.filters, filterField)) {\n let filterMatchMode = this.columnProp(col, 'filterMatchMode') || 'startsWith';\n let filterValue = this.filters[filterField];\n let filterConstraint = FilterService.filters[filterMatchMode];\n let paramsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!strict && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n //global\n if (this.hasGlobalFilter() && !globalMatch) {\n let copyNodeForGlobal = { ...copyNode };\n let filterValue = this.filters['global'];\n let filterConstraint = FilterService.filters['contains'];\n let globalFilterParamsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && (this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode))) ||\n (!strict && (this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n\n if (this.hasGlobalFilter()) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredNodes.push(copyNode);\n }\n }\n\n let filterEvent = this.createLazyLoadEvent(event);\n\n filterEvent.filteredValue = filteredNodes;\n this.$emit('filter', filterEvent);\n\n return filteredNodes;\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched(node, { filterField, filterValue, filterConstraint, strict }) {\n let matched = false;\n let dataFieldValue = resolveFieldData(node.data, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { filterField, filterValue, filterConstraint, strict }) || matched;\n }\n\n return matched;\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)] === true : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n createLazyLoadEvent(event) {\n let filterMatchModes;\n\n if (this.hasFilters()) {\n filterMatchModes = {};\n this.columns.forEach((col) => {\n if (this.columnProp(col, 'field')) {\n filterMatchModes[col.props.field] = this.columnProp(col, 'filterMatchMode');\n }\n });\n }\n\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.filters,\n filterMatchModes: filterMatchModes\n };\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = this.isRTL ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"treetable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n });\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnKeyDown(event, col) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.onColumnHeaderClick(event, col);\n }\n },\n hasColumnFilter() {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.children && col.children.filter) {\n return true;\n }\n }\n }\n\n return false;\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n getItemLabel(node) {\n return node.data.name;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n setTabindex(node, index) {\n if (this.isNodeSelected(node)) {\n this.hasASelectedNode = true;\n\n return 0;\n }\n\n if (this.selectionMode) {\n if (!this.isNodeSelected(node) && index === 0 && !this.hasASelectedNode) return 0;\n } else if (!this.selectionMode && index === 0) {\n return 0;\n }\n\n return -1;\n }\n },\n computed: {\n columns() {\n return this.d_columns.get(this);\n },\n processedData() {\n if (this.lazy) {\n return this.value;\n } else {\n if (this.value && this.value.length) {\n let data = this.value;\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n\n if (this.hasFilters()) {\n data = this.filter(data);\n }\n\n return data;\n } else {\n return null;\n }\n }\n },\n dataToRender() {\n const data = this.processedData;\n\n if (this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return data.slice(first, first + this.d_rows);\n } else {\n return data;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n hasFooter() {\n let hasFooter = false;\n\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n\n return hasFooter;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n singleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'single';\n },\n multipleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'multiple';\n },\n rowSelectionMode() {\n return this.singleSelectionMode || this.multipleSelectionMode;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n }\n },\n components: {\n TTRow: TreeTableRow,\n TTPaginator: Paginator,\n TTHeaderCell: HeaderCell,\n TTFooterCell: FooterCell,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","dataKey","String","Function","expandedKeys","selectionKeys","selectionMode","metaKeySelection","Boolean","contextMenu","contextMenuSelection","Object","rows","Number","first","totalRecords","paginator","paginatorPosition","alwaysShowPaginator","paginatorTemplate","pageLinkSize","rowsPerPageOptions","Array","currentPageReportTemplate","lazy","loading","loadingIcon","undefined","loadingMode","rowHover","autoLayout","sortField","sortOrder","defaultSortOrder","multiSortMeta","sortMode","removableSort","filters","filterMode","filterLocale","resizableColumns","columnResizeMode","indentation","showGridlines","scrollable","scrollHeight","size","tableStyle","tableClass","tableProps","style","TreeTableStyle","provide","$pcTreeTable","$parentInstance","hostName","column","index","data","styleObject","mounted","columnProp","updateStickyPosition","updated","methods","prop","getVNodeProp","getColumnPT","key","_this$$parentInstance","columnMetaData","parent","instance","$props","state","$data","context","frozen","mergeProps","ptm","concat","ptmo","getColumnProp","pt","isRTL","align","pos","next","getNextElementSibling","$el","getOuterWidth","parseFloat","right","left","prev","getPreviousElementSibling","computed","containerClass","cx","containerStyle","bodyStyle","columnStyle","_openBlock","_createElementBlock","_mergeProps","$options","role","_objectSpread","children","footer","_createBlock","_resolveDynamicComponent","_ctx","emits","sorted","isColumnSorted","resizable","filterRow","parentElement","nextElementSibling","getIndex","onClick","event","$emit","originalEvent","onKeyDown","code","currentTarget","nodeName","getAttribute","preventDefault","onResizeStart","getMultiSortMetaIndex","i","length","meta","field","isMultiSorted","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","components","Badge","apply","arguments","onKeydown","tabindex","onMousedown","_createElementVNode","header","sorticon","_component_Badge","node","level","leaf","expanded","checked","partialChecked","templates","toggle","selectable","rowSelectionMode","selected","$parent","getColumnCheckboxPT","resolveFieldData","rowData","toggleCheckbox","togglerStyle","marginLeft","visibility","checkboxSelectionMode","Checkbox","ChevronRightIcon","ChevronDownIcon","CheckIcon","MinusIcon","SpinnerIcon","directives","ripple","Ripple","_withDirectives","_Fragment","_component_SpinnerIcon","spin","rowtoggleicon","rowtogglericon","expandedIcon","collapsedIcon","_component_Checkbox","modelValue","binary","onChange","indeterminate","unstyled","icon","_withCtx","slotProps","_normalizeClass","body","_createTextVNode","_toDisplayString","parentNode","columns","ariaSetSize","ariaPosInset","nodeTouched","col","isClickable","target","tagName","setTabIndexForSelectionMode","onRowRightClick","onTouchEnd","nodeKey","item","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onEnterKey","onTabKey","focusRowChange","previousElementSibling","_this","ishiddenIcon","findSingle","togglerElement","$refs","click","$nextTick","findBeforeClickableNode","findFirstElement","focus","nodes","find","_toConsumableArray","hasSelectedRow","some","row","forEach","tabIndex","selectedNodes","filter","firstFocusableRow","currentFocusedRow","prevNode","prevNodeButton","querySelector","_selectionKeys","_check","propagateDown","check","_iterator","_createForOfIteratorHelper","_step","s","n","done","child","err","e","f","propagateUp","checkedChildCount","childPartialSelected","_iterator2","_step2","onCheckboxChange","_iterator3","_step3","elements","every","element","styleClass","isSelectedWithContextMenu","equals","getAriaSelected","ptmOptions","TTBodyCell","BodyCell","ref","onTouchend","onContextmenu","_renderList","_component_TTBodyCell","onNodeToggle","_cache","$event","onCheckboxToggle","childNode","_component_TreeTableRow","indexOf","onNodeClick","onRowRightclick","BaseTreeTable","inheritAttrs","$columns","d_columns","d_expandedKeys","d_first","d_rows","d_sortField","d_sortOrder","d_multiSortMeta","hasASelectedNode","HelperSet","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","mutationObserver","watch","newValue","updateDirection","observeDirectionChanges","beforeUnmount","destroyStyleElement","clear","disconnect","closest","targetNode","document","documentElement","config","attributes","attributeFilter","MutationObserver","observe","ptHeaderCellOptions","metaSelection","handleSelectionWithMetaKey","handleSelectionWithoutMetaKey","metaKey","ctrlKey","isNodeSelected","isSingleSelectionMode","isMultipleSelectionMode","clearSelection","onPage","pageEvent","createLazyLoadEvent","pageCount","page","resetPage","getFilterColumnHeaderClass","onColumnHeaderClick","columnField","addMultiSortField","findIndex","splice","push","sortSingle","sortNodesSingle","_this2","_nodes","comparer","localeComparator","sort","node1","node2","value1","value2","sortMultiple","sortNodesMultiple","_this3","multisortField","filteredNodes","strict","copyNode","localMatch","globalMatch","j","filterField","prototype","hasOwnProperty","call","filterMatchMode","filterValue","filterConstraint","FilterService","paramsWithoutNode","findFilteredNodes","isFilterMatched","hasGlobalFilter","copyNodeForGlobal","globalFilterParamsWithoutNode","matches","filterEvent","filteredValue","matched","childNodes","copyChildNode","_ref","dataFieldValue","isNodeLeaf","_this4","filterMatchModes","hasFilters","onColumnResizeStart","containerLeft","getOffset","columnResizing","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","setAttribute","isUnstyled","addStyle","resizeHelper","height","offsetHeight","top","display","onColumnResizeEnd","delta","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","table","updateTableWidth","el","width","resizeColumn","removeAttribute","unbindColumnResizeEvents","colIndex","widths","headers","createStyleElement","innerHTML","selector","$attrSelector","colWidth","styleElement","_this5","addEventListener","removeEventListener","onColumnKeyDown","hasColumnFilter","keys","constructor","getItemLabel","_this$$primevue","createElement","$primevue","csp","nonce","head","appendChild","removeChild","setTabindex","get","processedData","dataToRender","slice","empty","hasFooter","_iterator4","_step4","paginatorTop","paginatorBottom","singleSelectionMode","multipleSelectionMode","totalRecordsLength","TTRow","TreeTableRow","TTPaginator","Paginator","TTHeaderCell","HeaderCell","TTFooterCell","FooterCell","ptmi","_renderSlot","$slots","_component_TTPaginator","template","position","alwaysShow","paginatorcontainer","fn","last","firstPageCallback","lastPageCallback","prevPageCallback","nextPageCallback","rowChangeCallback","paginatorstart","paginatorend","paginatorfirstpagelinkicon","paginatorprevpagelinkicon","paginatornextpagelinkicon","paginatorlastpagelinkicon","paginatorjumptopagedropdownicon","paginatorrowsperpagedropdownicon","sx","maxHeight","_component_TTHeaderCell","onColumnClick","onColumnResizestart","_component_TTRow","colspan","_component_TTFooterCell"],"mappings":"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"}
|