primevue 4.1.1 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/useconfirm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/useconfirm/UseConfirm.js"],"sourcesContent":["import { inject } from 'vue';\n\nexport const PrimeVueConfirmSymbol = Symbol();\n\nexport function useConfirm() {\n const PrimeVueConfirm = inject(PrimeVueConfirmSymbol);\n\n if (!PrimeVueConfirm) {\n throw new Error('No PrimeVue Confirmation provided!');\n }\n\n return PrimeVueConfirm;\n}\n"],"names":["PrimeVueConfirmSymbol","Symbol","useConfirm","PrimeVueConfirm","inject","Error"],"mappings":";;AAEaA,IAAAA,qBAAqB,GAAGC,MAAM
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/useconfirm/UseConfirm.js"],"sourcesContent":["import { inject } from 'vue';\n\nexport const PrimeVueConfirmSymbol = Symbol();\n\nexport function useConfirm() {\n const PrimeVueConfirm = inject(PrimeVueConfirmSymbol);\n\n if (!PrimeVueConfirm) {\n throw new Error('No PrimeVue Confirmation provided!');\n }\n\n return PrimeVueConfirm;\n}\n"],"names":["PrimeVueConfirmSymbol","Symbol","useConfirm","PrimeVueConfirm","inject","Error"],"mappings":";;AAEaA,IAAAA,qBAAqB,GAAGC,MAAM;AAEpC,SAASC,UAAUA,GAAG;AACzB,EAAA,IAAMC,eAAe,GAAGC,MAAM,CAACJ,qBAAqB,CAAC;EAErD,IAAI,CAACG,eAAe,EAAE;AAClB,IAAA,MAAM,IAAIE,KAAK,CAAC,oCAAoC,CAAC;AACzD;AAEA,EAAA,OAAOF,eAAe;AAC1B;;;;"}
|
package/usedialog/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/usedialog/UseDialog.js"],"sourcesContent":["import { inject } from 'vue';\n\nexport const PrimeVueDialogSymbol = Symbol();\n\nexport function useDialog() {\n const PrimeVueDialog = inject(PrimeVueDialogSymbol);\n\n if (!PrimeVueDialog) {\n throw new Error('No PrimeVue Dialog provided!');\n }\n\n return PrimeVueDialog;\n}\n"],"names":["PrimeVueDialogSymbol","Symbol","useDialog","PrimeVueDialog","inject","Error"],"mappings":";;AAEaA,IAAAA,oBAAoB,GAAGC,MAAM
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/usedialog/UseDialog.js"],"sourcesContent":["import { inject } from 'vue';\n\nexport const PrimeVueDialogSymbol = Symbol();\n\nexport function useDialog() {\n const PrimeVueDialog = inject(PrimeVueDialogSymbol);\n\n if (!PrimeVueDialog) {\n throw new Error('No PrimeVue Dialog provided!');\n }\n\n return PrimeVueDialog;\n}\n"],"names":["PrimeVueDialogSymbol","Symbol","useDialog","PrimeVueDialog","inject","Error"],"mappings":";;AAEaA,IAAAA,oBAAoB,GAAGC,MAAM;AAEnC,SAASC,SAASA,GAAG;AACxB,EAAA,IAAMC,cAAc,GAAGC,MAAM,CAACJ,oBAAoB,CAAC;EAEnD,IAAI,CAACG,cAAc,EAAE;AACjB,IAAA,MAAM,IAAIE,KAAK,CAAC,8BAA8B,CAAC;AACnD;AAEA,EAAA,OAAOF,cAAc;AACzB;;;;"}
|
package/usetoast/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/usetoast/UseToast.js"],"sourcesContent":["import { inject } from 'vue';\n\nexport const PrimeVueToastSymbol = Symbol();\n\nexport function useToast() {\n const PrimeVueToast = inject(PrimeVueToastSymbol);\n\n if (!PrimeVueToast) {\n throw new Error('No PrimeVue Toast provided!');\n }\n\n return PrimeVueToast;\n}\n"],"names":["PrimeVueToastSymbol","Symbol","useToast","PrimeVueToast","inject","Error"],"mappings":";;AAEaA,IAAAA,mBAAmB,GAAGC,MAAM
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/usetoast/UseToast.js"],"sourcesContent":["import { inject } from 'vue';\n\nexport const PrimeVueToastSymbol = Symbol();\n\nexport function useToast() {\n const PrimeVueToast = inject(PrimeVueToastSymbol);\n\n if (!PrimeVueToast) {\n throw new Error('No PrimeVue Toast provided!');\n }\n\n return PrimeVueToast;\n}\n"],"names":["PrimeVueToastSymbol","Symbol","useToast","PrimeVueToast","inject","Error"],"mappings":";;AAEaA,IAAAA,mBAAmB,GAAGC,MAAM;AAElC,SAASC,QAAQA,GAAG;AACvB,EAAA,IAAMC,aAAa,GAAGC,MAAM,CAACJ,mBAAmB,CAAC;EAEjD,IAAI,CAACG,aAAa,EAAE;AAChB,IAAA,MAAM,IAAIE,KAAK,CAAC,6BAA6B,CAAC;AAClD;AAEA,EAAA,OAAOF,aAAa;AACxB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/virtualscroller/BaseVirtualScroller.vue","../../src/virtualscroller/VirtualScroller.vue","../../src/virtualscroller/VirtualScroller.vue?vue&type=template&id=81b1e8fe&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport VirtualScrollerStyle from 'primevue/virtualscroller/style';\n\nexport default {\n name: 'BaseVirtualScroller',\n extends: BaseComponent,\n props: {\n id: {\n type: String,\n default: null\n },\n style: null,\n class: null,\n items: {\n type: Array,\n default: null\n },\n itemSize: {\n type: [Number, Array],\n default: 0\n },\n scrollHeight: null,\n scrollWidth: null,\n orientation: {\n type: String,\n default: 'vertical'\n },\n numToleratedItems: {\n type: Number,\n default: null\n },\n delay: {\n type: Number,\n default: 0\n },\n resizeDelay: {\n type: Number,\n default: 10\n },\n lazy: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n loaderDisabled: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Array,\n default: null\n },\n loading: {\n type: Boolean,\n default: false\n },\n showSpacer: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n inline: {\n type: Boolean,\n default: false\n },\n step: {\n type: Number,\n default: 0\n },\n appendOnly: {\n type: Boolean,\n default: false\n },\n autoSize: {\n type: Boolean,\n default: false\n }\n },\n style: VirtualScrollerStyle,\n provide() {\n return {\n $pcVirtualScroller: this,\n $parentInstance: this\n };\n },\n beforeMount() {\n VirtualScrollerStyle.loadCSS({ nonce: this.$primevueConfig?.csp?.nonce });\n }\n};\n</script>\n","<template>\n <template v-if=\"!disabled\">\n <div :ref=\"elementRef\" :class=\"containerClass\" :tabindex=\"tabindex\" :style=\"style\" @scroll=\"onScroll\" v-bind=\"ptmi('root')\">\n <slot\n name=\"content\"\n :styleClass=\"contentClass\"\n :items=\"loadedItems\"\n :getItemOptions=\"getOptions\"\n :loading=\"d_loading\"\n :getLoaderOptions=\"getLoaderOptions\"\n :itemSize=\"itemSize\"\n :rows=\"loadedRows\"\n :columns=\"loadedColumns\"\n :contentRef=\"contentRef\"\n :spacerStyle=\"spacerStyle\"\n :contentStyle=\"contentStyle\"\n :vertical=\"isVertical()\"\n :horizontal=\"isHorizontal()\"\n :both=\"isBoth()\"\n >\n <div :ref=\"contentRef\" :class=\"contentClass\" :style=\"contentStyle\" v-bind=\"ptm('content')\">\n <template v-for=\"(item, index) of loadedItems\" :key=\"index\">\n <slot name=\"item\" :item=\"item\" :options=\"getOptions(index)\"></slot>\n </template>\n </div>\n </slot>\n <div v-if=\"showSpacer\" class=\"p-virtualscroller-spacer\" :style=\"spacerStyle\" v-bind=\"ptm('spacer')\"></div>\n <div v-if=\"!loaderDisabled && showLoader && d_loading\" :class=\"loaderClass\" v-bind=\"ptm('loader')\">\n <template v-if=\"$slots && $slots.loader\">\n <template v-for=\"(_, index) of loaderArr\" :key=\"index\">\n <slot name=\"loader\" :options=\"getLoaderOptions(index, isBoth() && { numCols: d_numItemsInViewport.cols })\"></slot>\n </template>\n </template>\n <slot name=\"loadingicon\">\n <SpinnerIcon spin class=\"p-virtualscroller-loading-icon\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n </template>\n <template v-else>\n <slot></slot>\n <slot name=\"content\" :items=\"items\" :rows=\"items\" :columns=\"loadedColumns\"></slot>\n </template>\n</template>\n\n<script>\nimport { findSingle, getHeight, getWidth, isVisible } from '@primeuix/utils/dom';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport BaseVirtualScroller from './BaseVirtualScroller.vue';\n\nexport default {\n name: 'VirtualScroller',\n extends: BaseVirtualScroller,\n inheritAttrs: false,\n emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n data() {\n const both = this.isBoth();\n\n return {\n first: both ? { rows: 0, cols: 0 } : 0,\n last: both ? { rows: 0, cols: 0 } : 0,\n page: both ? { rows: 0, cols: 0 } : 0,\n numItemsInViewport: both ? { rows: 0, cols: 0 } : 0,\n lastScrollPos: both ? { top: 0, left: 0 } : 0,\n d_numToleratedItems: this.numToleratedItems,\n d_loading: this.loading,\n loaderArr: [],\n spacerStyle: {},\n contentStyle: {}\n };\n },\n element: null,\n content: null,\n lastScrollPos: null,\n scrollTimeout: null,\n resizeTimeout: null,\n defaultWidth: 0,\n defaultHeight: 0,\n defaultContentWidth: 0,\n defaultContentHeight: 0,\n isRangeChanged: false,\n lazyLoadState: {},\n resizeListener: null,\n initialized: false,\n watch: {\n numToleratedItems(newValue) {\n this.d_numToleratedItems = newValue;\n },\n loading(newValue, oldValue) {\n if (this.lazy && newValue !== oldValue && newValue !== this.d_loading) {\n this.d_loading = newValue;\n }\n },\n items(newValue, oldValue) {\n if (!oldValue || oldValue.length !== (newValue || []).length) {\n this.init();\n this.calculateAutoSize();\n }\n },\n itemSize() {\n this.init();\n this.calculateAutoSize();\n },\n orientation() {\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n },\n scrollHeight() {\n this.init();\n this.calculateAutoSize();\n },\n scrollWidth() {\n this.init();\n this.calculateAutoSize();\n }\n },\n mounted() {\n this.viewInit();\n\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n this.lazyLoadState = this.lazyLoadState || {};\n },\n updated() {\n !this.initialized && this.viewInit();\n },\n unmounted() {\n this.unbindResizeListener();\n\n this.initialized = false;\n },\n methods: {\n viewInit() {\n if (isVisible(this.element)) {\n this.setContentEl(this.content);\n this.init();\n this.calculateAutoSize();\n this.bindResizeListener();\n\n this.defaultWidth = getWidth(this.element);\n this.defaultHeight = getHeight(this.element);\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n this.initialized = true;\n }\n },\n init() {\n if (!this.disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n }\n },\n isVertical() {\n return this.orientation === 'vertical';\n },\n isHorizontal() {\n return this.orientation === 'horizontal';\n },\n isBoth() {\n return this.orientation === 'both';\n },\n scrollTo(options) {\n //this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.element && this.element.scrollTo(options);\n },\n scrollToIndex(index, behavior = 'auto') {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.element;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize;\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (both) {\n newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index, numToleratedItems);\n horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n },\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n },\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n let firstInViewport = this.first;\n let lastInViewport = 0;\n\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const { scrollTop, scrollLeft } = this.element;\n\n if (both) {\n firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };\n lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n\n firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n },\n calculateNumItems() {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const itemSize = this.itemSize;\n const contentPos = this.getContentPosition();\n const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));\n const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);\n const numItemsInViewport = both\n ? { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) }\n : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);\n\n const numToleratedItems = this.d_numToleratedItems || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n },\n calculateOptions() {\n const both = this.isBoth();\n const first = this.first;\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const last = both\n ? { rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true) }\n : calculateLast(first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n\n if (this.showLoader) {\n this.loaderArr = both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this.step ? (both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this.step ? this.step : last, this.items?.length || 0)\n };\n\n this.$emit('lazy-load', this.lazyLoadState);\n });\n }\n },\n calculateAutoSize() {\n if (this.autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.content) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const vertical = this.isVertical();\n\n this.content.style.minHeight = this.content.style.minWidth = 'auto';\n this.content.style.position = 'relative';\n this.element.style.contain = 'none';\n\n /*const [contentWidth, contentHeight] = [getWidth(this.content), getHeight(this.content)];\n\n contentWidth !== this.defaultContentWidth && (this.element.style.width = '');\n contentHeight !== this.defaultContentHeight && (this.element.style.height = '');*/\n\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n\n (both || horizontal) && (this.element.style.width = width < this.defaultWidth ? width + 'px' : this.scrollWidth || this.defaultWidth + 'px');\n (both || vertical) && (this.element.style.height = height < this.defaultHeight ? height + 'px' : this.scrollHeight || this.defaultHeight + 'px');\n\n this.content.style.minHeight = this.content.style.minWidth = '';\n this.content.style.position = '';\n this.element.style.contain = '';\n }\n });\n }\n },\n getLast(last = 0, isCols) {\n return this.items ? Math.min(isCols ? (this.columns || this.items[0])?.length || 0 : this.items?.length || 0, last) : 0;\n },\n getContentPosition() {\n if (this.content) {\n const style = getComputedStyle(this.content);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n },\n setSize() {\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const parentElement = this.element.parentElement;\n const width = this.scrollWidth || `${this.element.offsetWidth || parentElement.offsetWidth}px`;\n const height = this.scrollHeight || `${this.element.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name, _value) => (this.element.style[_name] = _value);\n\n if (both || horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n },\n setSpacerSize() {\n const items = this.items;\n\n if (items) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } });\n\n if (both) {\n setProp('height', items, this.itemSize[0], contentPos.y);\n setProp('width', this.columns || items[1], this.itemSize[1], contentPos.x);\n } else {\n horizontal ? setProp('width', this.columns || items, this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);\n }\n }\n },\n setContentPosition(pos) {\n if (this.content && !this.appendOnly) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (both) {\n setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));\n } else {\n const translateVal = calculateTranslateVal(first, this.itemSize);\n\n horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n },\n onScrollPositionChange(event) {\n const target = event.target;\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this.appendOnly || (this.appendOnly && (isScrollDown || isScrollRight))) {\n const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this.appendOnly || (this.appendOnly && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n },\n onScrollChange(event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.$emit('scroll-index-change', newState);\n\n if (this.lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this.step ? Math.min(this.getPageByFirst(first) * this.step, (this.items?.length || 0) - this.step) : first,\n last: Math.min(this.step ? (this.getPageByFirst(first) + 1) * this.step : last, this.items?.length || 0)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.$emit('lazy-load', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n },\n onScroll(event) {\n this.$emit('scroll', event);\n\n if (this.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (this.isPageChanged()) {\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this.step ? this.isPageChanged() : false);\n\n changed && (this.d_loading = true);\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader && (!this.lazy || this.loading === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n }, this.delay);\n }\n } else {\n this.onScrollChange(event);\n }\n },\n onResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (isVisible(this.element)) {\n const both = this.isBoth();\n const vertical = this.isVertical();\n const horizontal = this.isHorizontal();\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;\n\n if (reinit) {\n this.d_numToleratedItems = this.numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n\n this.init();\n }\n }\n }, this.resizeDelay);\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = this.onResize.bind(this);\n\n window.addEventListener('resize', this.resizeListener);\n window.addEventListener('orientationchange', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n window.removeEventListener('orientationchange', this.resizeListener);\n this.resizeListener = null;\n }\n },\n getOptions(renderedIndex) {\n const count = (this.items || []).length;\n const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n },\n getLoaderOptions(index, extOptions) {\n let count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n };\n },\n getPageByFirst(first) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this.step || 1));\n },\n isPageChanged(first) {\n return this.step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n },\n setContentEl(el) {\n this.content = el || this.content || findSingle(this.element, '[data-pc-section=\"content\"]');\n },\n elementRef(el) {\n this.element = el;\n },\n contentRef(el) {\n this.content = el;\n }\n },\n computed: {\n containerClass() {\n return [\n 'p-virtualscroller',\n this.class,\n {\n 'p-virtualscroller-inline': this.inline,\n 'p-virtualscroller-both p-both-scroll': this.isBoth(),\n 'p-virtualscroller-horizontal p-horizontal-scroll': this.isHorizontal()\n }\n ];\n },\n contentClass() {\n return [\n 'p-virtualscroller-content',\n {\n 'p-virtualscroller-loading': this.d_loading\n }\n ];\n },\n loaderClass() {\n return [\n 'p-virtualscroller-loader',\n {\n 'p-virtualscroller-loader-mask': !this.$slots.loader\n }\n ];\n },\n loadedItems() {\n if (this.items && !this.d_loading) {\n if (this.isBoth()) return this.items.slice(this.appendOnly ? 0 : this.first.rows, this.last.rows).map((item) => (this.columns ? item : item.slice(this.appendOnly ? 0 : this.first.cols, this.last.cols)));\n else if (this.isHorizontal() && this.columns) return this.items;\n else return this.items.slice(this.appendOnly ? 0 : this.first, this.last);\n }\n\n return [];\n },\n loadedRows() {\n return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n },\n loadedColumns() {\n if (this.columns) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n\n if (both || horizontal) {\n return this.d_loading && this.loaderDisabled ? (both ? this.loaderArr[0] : this.loaderArr) : this.columns.slice(both ? this.first.cols : this.first, both ? this.last.cols : this.last);\n }\n }\n\n return this.columns;\n }\n },\n components: {\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <template v-if=\"!disabled\">\n <div :ref=\"elementRef\" :class=\"containerClass\" :tabindex=\"tabindex\" :style=\"style\" @scroll=\"onScroll\" v-bind=\"ptmi('root')\">\n <slot\n name=\"content\"\n :styleClass=\"contentClass\"\n :items=\"loadedItems\"\n :getItemOptions=\"getOptions\"\n :loading=\"d_loading\"\n :getLoaderOptions=\"getLoaderOptions\"\n :itemSize=\"itemSize\"\n :rows=\"loadedRows\"\n :columns=\"loadedColumns\"\n :contentRef=\"contentRef\"\n :spacerStyle=\"spacerStyle\"\n :contentStyle=\"contentStyle\"\n :vertical=\"isVertical()\"\n :horizontal=\"isHorizontal()\"\n :both=\"isBoth()\"\n >\n <div :ref=\"contentRef\" :class=\"contentClass\" :style=\"contentStyle\" v-bind=\"ptm('content')\">\n <template v-for=\"(item, index) of loadedItems\" :key=\"index\">\n <slot name=\"item\" :item=\"item\" :options=\"getOptions(index)\"></slot>\n </template>\n </div>\n </slot>\n <div v-if=\"showSpacer\" class=\"p-virtualscroller-spacer\" :style=\"spacerStyle\" v-bind=\"ptm('spacer')\"></div>\n <div v-if=\"!loaderDisabled && showLoader && d_loading\" :class=\"loaderClass\" v-bind=\"ptm('loader')\">\n <template v-if=\"$slots && $slots.loader\">\n <template v-for=\"(_, index) of loaderArr\" :key=\"index\">\n <slot name=\"loader\" :options=\"getLoaderOptions(index, isBoth() && { numCols: d_numItemsInViewport.cols })\"></slot>\n </template>\n </template>\n <slot name=\"loadingicon\">\n <SpinnerIcon spin class=\"p-virtualscroller-loading-icon\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n </template>\n <template v-else>\n <slot></slot>\n <slot name=\"content\" :items=\"items\" :rows=\"items\" :columns=\"loadedColumns\"></slot>\n </template>\n</template>\n\n<script>\nimport { findSingle, getHeight, getWidth, isVisible } from '@primeuix/utils/dom';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport BaseVirtualScroller from './BaseVirtualScroller.vue';\n\nexport default {\n name: 'VirtualScroller',\n extends: BaseVirtualScroller,\n inheritAttrs: false,\n emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n data() {\n const both = this.isBoth();\n\n return {\n first: both ? { rows: 0, cols: 0 } : 0,\n last: both ? { rows: 0, cols: 0 } : 0,\n page: both ? { rows: 0, cols: 0 } : 0,\n numItemsInViewport: both ? { rows: 0, cols: 0 } : 0,\n lastScrollPos: both ? { top: 0, left: 0 } : 0,\n d_numToleratedItems: this.numToleratedItems,\n d_loading: this.loading,\n loaderArr: [],\n spacerStyle: {},\n contentStyle: {}\n };\n },\n element: null,\n content: null,\n lastScrollPos: null,\n scrollTimeout: null,\n resizeTimeout: null,\n defaultWidth: 0,\n defaultHeight: 0,\n defaultContentWidth: 0,\n defaultContentHeight: 0,\n isRangeChanged: false,\n lazyLoadState: {},\n resizeListener: null,\n initialized: false,\n watch: {\n numToleratedItems(newValue) {\n this.d_numToleratedItems = newValue;\n },\n loading(newValue, oldValue) {\n if (this.lazy && newValue !== oldValue && newValue !== this.d_loading) {\n this.d_loading = newValue;\n }\n },\n items(newValue, oldValue) {\n if (!oldValue || oldValue.length !== (newValue || []).length) {\n this.init();\n this.calculateAutoSize();\n }\n },\n itemSize() {\n this.init();\n this.calculateAutoSize();\n },\n orientation() {\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n },\n scrollHeight() {\n this.init();\n this.calculateAutoSize();\n },\n scrollWidth() {\n this.init();\n this.calculateAutoSize();\n }\n },\n mounted() {\n this.viewInit();\n\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n this.lazyLoadState = this.lazyLoadState || {};\n },\n updated() {\n !this.initialized && this.viewInit();\n },\n unmounted() {\n this.unbindResizeListener();\n\n this.initialized = false;\n },\n methods: {\n viewInit() {\n if (isVisible(this.element)) {\n this.setContentEl(this.content);\n this.init();\n this.calculateAutoSize();\n this.bindResizeListener();\n\n this.defaultWidth = getWidth(this.element);\n this.defaultHeight = getHeight(this.element);\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n this.initialized = true;\n }\n },\n init() {\n if (!this.disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n }\n },\n isVertical() {\n return this.orientation === 'vertical';\n },\n isHorizontal() {\n return this.orientation === 'horizontal';\n },\n isBoth() {\n return this.orientation === 'both';\n },\n scrollTo(options) {\n //this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.element && this.element.scrollTo(options);\n },\n scrollToIndex(index, behavior = 'auto') {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.element;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize;\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (both) {\n newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index, numToleratedItems);\n horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n },\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n },\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n let firstInViewport = this.first;\n let lastInViewport = 0;\n\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const { scrollTop, scrollLeft } = this.element;\n\n if (both) {\n firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };\n lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n\n firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n },\n calculateNumItems() {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const itemSize = this.itemSize;\n const contentPos = this.getContentPosition();\n const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));\n const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);\n const numItemsInViewport = both\n ? { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) }\n : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);\n\n const numToleratedItems = this.d_numToleratedItems || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n },\n calculateOptions() {\n const both = this.isBoth();\n const first = this.first;\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const last = both\n ? { rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true) }\n : calculateLast(first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n\n if (this.showLoader) {\n this.loaderArr = both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this.step ? (both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this.step ? this.step : last, this.items?.length || 0)\n };\n\n this.$emit('lazy-load', this.lazyLoadState);\n });\n }\n },\n calculateAutoSize() {\n if (this.autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.content) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const vertical = this.isVertical();\n\n this.content.style.minHeight = this.content.style.minWidth = 'auto';\n this.content.style.position = 'relative';\n this.element.style.contain = 'none';\n\n /*const [contentWidth, contentHeight] = [getWidth(this.content), getHeight(this.content)];\n\n contentWidth !== this.defaultContentWidth && (this.element.style.width = '');\n contentHeight !== this.defaultContentHeight && (this.element.style.height = '');*/\n\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n\n (both || horizontal) && (this.element.style.width = width < this.defaultWidth ? width + 'px' : this.scrollWidth || this.defaultWidth + 'px');\n (both || vertical) && (this.element.style.height = height < this.defaultHeight ? height + 'px' : this.scrollHeight || this.defaultHeight + 'px');\n\n this.content.style.minHeight = this.content.style.minWidth = '';\n this.content.style.position = '';\n this.element.style.contain = '';\n }\n });\n }\n },\n getLast(last = 0, isCols) {\n return this.items ? Math.min(isCols ? (this.columns || this.items[0])?.length || 0 : this.items?.length || 0, last) : 0;\n },\n getContentPosition() {\n if (this.content) {\n const style = getComputedStyle(this.content);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n },\n setSize() {\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const parentElement = this.element.parentElement;\n const width = this.scrollWidth || `${this.element.offsetWidth || parentElement.offsetWidth}px`;\n const height = this.scrollHeight || `${this.element.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name, _value) => (this.element.style[_name] = _value);\n\n if (both || horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n },\n setSpacerSize() {\n const items = this.items;\n\n if (items) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } });\n\n if (both) {\n setProp('height', items, this.itemSize[0], contentPos.y);\n setProp('width', this.columns || items[1], this.itemSize[1], contentPos.x);\n } else {\n horizontal ? setProp('width', this.columns || items, this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);\n }\n }\n },\n setContentPosition(pos) {\n if (this.content && !this.appendOnly) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (both) {\n setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));\n } else {\n const translateVal = calculateTranslateVal(first, this.itemSize);\n\n horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n },\n onScrollPositionChange(event) {\n const target = event.target;\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this.appendOnly || (this.appendOnly && (isScrollDown || isScrollRight))) {\n const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this.appendOnly || (this.appendOnly && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n },\n onScrollChange(event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.$emit('scroll-index-change', newState);\n\n if (this.lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this.step ? Math.min(this.getPageByFirst(first) * this.step, (this.items?.length || 0) - this.step) : first,\n last: Math.min(this.step ? (this.getPageByFirst(first) + 1) * this.step : last, this.items?.length || 0)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.$emit('lazy-load', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n },\n onScroll(event) {\n this.$emit('scroll', event);\n\n if (this.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (this.isPageChanged()) {\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this.step ? this.isPageChanged() : false);\n\n changed && (this.d_loading = true);\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader && (!this.lazy || this.loading === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n }, this.delay);\n }\n } else {\n this.onScrollChange(event);\n }\n },\n onResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (isVisible(this.element)) {\n const both = this.isBoth();\n const vertical = this.isVertical();\n const horizontal = this.isHorizontal();\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;\n\n if (reinit) {\n this.d_numToleratedItems = this.numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n\n this.init();\n }\n }\n }, this.resizeDelay);\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = this.onResize.bind(this);\n\n window.addEventListener('resize', this.resizeListener);\n window.addEventListener('orientationchange', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n window.removeEventListener('orientationchange', this.resizeListener);\n this.resizeListener = null;\n }\n },\n getOptions(renderedIndex) {\n const count = (this.items || []).length;\n const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n },\n getLoaderOptions(index, extOptions) {\n let count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n };\n },\n getPageByFirst(first) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this.step || 1));\n },\n isPageChanged(first) {\n return this.step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n },\n setContentEl(el) {\n this.content = el || this.content || findSingle(this.element, '[data-pc-section=\"content\"]');\n },\n elementRef(el) {\n this.element = el;\n },\n contentRef(el) {\n this.content = el;\n }\n },\n computed: {\n containerClass() {\n return [\n 'p-virtualscroller',\n this.class,\n {\n 'p-virtualscroller-inline': this.inline,\n 'p-virtualscroller-both p-both-scroll': this.isBoth(),\n 'p-virtualscroller-horizontal p-horizontal-scroll': this.isHorizontal()\n }\n ];\n },\n contentClass() {\n return [\n 'p-virtualscroller-content',\n {\n 'p-virtualscroller-loading': this.d_loading\n }\n ];\n },\n loaderClass() {\n return [\n 'p-virtualscroller-loader',\n {\n 'p-virtualscroller-loader-mask': !this.$slots.loader\n }\n ];\n },\n loadedItems() {\n if (this.items && !this.d_loading) {\n if (this.isBoth()) return this.items.slice(this.appendOnly ? 0 : this.first.rows, this.last.rows).map((item) => (this.columns ? item : item.slice(this.appendOnly ? 0 : this.first.cols, this.last.cols)));\n else if (this.isHorizontal() && this.columns) return this.items;\n else return this.items.slice(this.appendOnly ? 0 : this.first, this.last);\n }\n\n return [];\n },\n loadedRows() {\n return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n },\n loadedColumns() {\n if (this.columns) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n\n if (both || horizontal) {\n return this.d_loading && this.loaderDisabled ? (both ? this.loaderArr[0] : this.loaderArr) : this.columns.slice(both ? this.first.cols : this.first, both ? this.last.cols : this.last);\n }\n }\n\n return this.columns;\n }\n },\n components: {\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","id","type","String","style","items","Array","itemSize","Number","scrollHeight","scrollWidth","orientation","numToleratedItems","delay","resizeDelay","lazy","Boolean","disabled","loaderDisabled","columns","loading","showSpacer","showLoader","tabindex","inline","step","appendOnly","autoSize","VirtualScrollerStyle","provide","$pcVirtualScroller","$parentInstance","beforeMount","_this$$primevueConfig","loadCSS","nonce","$primevueConfig","csp","BaseVirtualScroller","inheritAttrs","emits","data","both","isBoth","first","rows","cols","last","page","numItemsInViewport","lastScrollPos","top","left","d_numToleratedItems","d_loading","loaderArr","spacerStyle","contentStyle","element","content","scrollTimeout","resizeTimeout","defaultWidth","defaultHeight","defaultContentWidth","defaultContentHeight","isRangeChanged","lazyLoadState","resizeListener","initialized","watch","newValue","oldValue","length","init","calculateAutoSize","mounted","viewInit","updated","unmounted","unbindResizeListener","methods","isVisible","setContentEl","bindResizeListener","getWidth","getHeight","setSize","calculateOptions","setSpacerSize","isVertical","isHorizontal","scrollTo","options","scrollToIndex","index","_this","behavior","arguments","undefined","horizontal","valid","every","i","_this$element","_this$element$scrollT","scrollTop","_this$element$scrollL","scrollLeft","_this$calculateNumIte","calculateNumItems","contentPos","getContentPosition","calculateFirst","_index","_numT","calculateCoord","_first","_size","_cpos","newFirst","isScrollChanged","scrollInView","to","_this2","_this$getRenderedRang","getRenderedRange","viewport","isToStart","isToEnd","pos","calculateFirstInViewport","_pos","Math","floor","firstInViewport","lastInViewport","_this$element2","scrollPos","contentWidth","offsetWidth","contentHeight","offsetHeight","calculateNumItemsInViewport","_contentSize","_itemSize","ceil","calculateNumToleratedItems","_numItems","_this3","_this$calculateNumIte2","calculateLast","_num","_isCols","getLast","$emit","from","map","Promise","resolve","then","_this3$items","min","_this4","vertical","minHeight","minWidth","position","contain","_ref","width","height","_ref2","_this$items","isCols","getComputedStyle","parseFloat","paddingLeft","max","right","paddingRight","paddingTop","bottom","paddingBottom","x","y","_this5","parentElement","concat","setProp","_name","_value","_this6","_objectSpread","_defineProperty","setContentPosition","_this7","calculateTranslateVal","setTransform","_x","_y","transform","translateVal","onScrollPositionChange","event","_this8","target","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","lastValue","newLast","newScrollPos","isScrollDown","isScrollRight","currentIndex","triggerIndex","isScrollDownOrRight","onScrollChange","_this$onScrollPositio","newState","isPageChanged","_this$items2","_this$items3","getPageByFirst","isLazyStateChanged","onScroll","_this9","clearTimeout","_this$onScrollPositio2","changed","setTimeout","onResize","_this10","_ref3","isDiffWidth","isDiffHeight","reinit","bind","window","addEventListener","removeEventListener","getOptions","renderedIndex","count","even","odd","getLoaderOptions","extOptions","el","findSingle","elementRef","contentRef","computed","containerClass","contentClass","loaderClass","$slots","loader","loadedItems","_this11","slice","item","loadedRows","loadedColumns","components","SpinnerIcon","_ctx","_openBlock","_createElementBlock","_mergeProps","ref","$options","apply","ptmi","_renderSlot","styleClass","getItemOptions","$data","_createElementVNode","ptm","_Fragment","_renderList","key","_","numCols","d_numItemsInViewport","_createVNode","_component_SpinnerIcon","spin"],"mappings":";;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,qBAAqB;AAC3B,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,EAAE,EAAE;AACAC,MAAAA,IAAI,EAAEC,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAA,EAAO,IAAI;AACXC,IAAAA,KAAK,EAAE;AACHH,MAAAA,IAAI,EAAEI,KAAK;MACX,SAAS,EAAA,IAAA;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNL,MAAAA,IAAI,EAAE,CAACM,MAAM,EAAEF,KAAK,CAAC;MACrB,SAAS,EAAA,CAAA;KACZ;AACDG,IAAAA,YAAY,EAAE,IAAI;AAClBC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,WAAW,EAAE;AACTT,MAAAA,IAAI,EAAEC,MAAM;MACZ,SAAS,EAAA,UAAA;KACZ;AACDS,IAAAA,iBAAiB,EAAE;AACfV,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA,IAAA;KACZ;AACDK,IAAAA,KAAK,EAAE;AACHX,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDM,IAAAA,WAAW,EAAE;AACTZ,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA,EAAA;KACZ;AACDO,IAAAA,IAAI,EAAE;AACFb,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNf,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDE,IAAAA,cAAc,EAAE;AACZhB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDG,IAAAA,OAAO,EAAE;AACLjB,MAAAA,IAAI,EAAEI,KAAK;MACX,SAAS,EAAA,IAAA;KACZ;AACDc,IAAAA,OAAO,EAAE;AACLlB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDK,IAAAA,UAAU,EAAE;AACRnB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,IAAA;KACZ;AACDM,IAAAA,UAAU,EAAE;AACRpB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDO,IAAAA,QAAQ,EAAE;AACNrB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDgB,IAAAA,MAAM,EAAE;AACJtB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDS,IAAAA,IAAI,EAAE;AACFvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA,CAAA;KACZ;AACDkB,IAAAA,UAAU,EAAE;AACRxB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;KACZ;AACDW,IAAAA,QAAQ,EAAE;AACNzB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA,KAAA;AACb,KAAA;GACH;AACDZ,EAAAA,KAAK,EAAEwB,oBAAoB;EAC3BC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,kBAAkB,EAAE,IAAI;AACxBC,MAAAA,eAAe,EAAE,IAAA;KACpB,CAAA;GACJ;EACDC,WAAW,EAAA,SAAXA,WAAWA,GAAG;AAAA,IAAA,IAAAC,qBAAA,CAAA;IACVL,oBAAoB,CAACM,OAAO,CAAC;AAAEC,MAAAA,KAAK,GAAAF,qBAAA,GAAE,IAAI,CAACG,eAAe,cAAAH,qBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBI,GAAG,cAAAJ,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAzBA,qBAAA,CAA2BE,KAAAA;AAAM,KAAC,CAAC,CAAA;AAC7E,GAAA;AACJ,CAAC;;;;;;;;ACjDD,aAAe;AACXrC,EAAAA,IAAI,EAAE,iBAAiB;AACvB,EAAA,SAAA,EAASwC,QAAmB;AAC5BC,EAAAA,YAAY,EAAE,KAAK;EACnBC,KAAK,EAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,CAAC;EACjFC,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACH,IAAA,IAAMC,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;IAE1B,OAAO;MACHC,KAAK,EAAEF,IAAG,GAAI;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE,CAAA;AAAE,OAAE,GAAE,CAAC;MACtCC,IAAI,EAAEL,IAAG,GAAI;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE,CAAA;AAAE,OAAE,GAAE,CAAC;MACrCE,IAAI,EAAEN,IAAG,GAAI;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE,CAAA;AAAE,OAAE,GAAE,CAAC;MACrCG,kBAAkB,EAAEP,OAAO;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE,CAAA;AAAE,OAAA,GAAI,CAAC;MACnDI,aAAa,EAAER,IAAK,GAAE;AAAES,QAAAA,GAAG,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE,CAAA;AAAE,OAAA,GAAI,CAAC;MAC7CC,mBAAmB,EAAE,IAAI,CAACzC,iBAAiB;MAC3C0C,SAAS,EAAE,IAAI,CAAClC,OAAO;AACvBmC,MAAAA,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE,EAAE;AACfC,MAAAA,YAAY,EAAE,EAAC;KAClB,CAAA;GACJ;AACDC,EAAAA,OAAO,EAAE,IAAI;AACbC,EAAAA,OAAO,EAAE,IAAI;AACbT,EAAAA,aAAa,EAAE,IAAI;AACnBU,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,YAAY,EAAE,CAAC;AACfC,EAAAA,aAAa,EAAE,CAAC;AAChBC,EAAAA,mBAAmB,EAAE,CAAC;AACtBC,EAAAA,oBAAoB,EAAE,CAAC;AACvBC,EAAAA,cAAc,EAAE,KAAK;EACrBC,aAAa,EAAE,EAAE;AACjBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,KAAK,EAAE;AACH1D,IAAAA,iBAAiB,EAAjBA,SAAAA,iBAAiBA,CAAC2D,QAAQ,EAAE;MACxB,IAAI,CAAClB,mBAAoB,GAAEkB,QAAQ,CAAA;KACtC;AACDnD,IAAAA,OAAO,WAAPA,OAAOA,CAACmD,QAAQ,EAAEC,QAAQ,EAAE;AACxB,MAAA,IAAI,IAAI,CAACzD,IAAG,IAAKwD,QAAO,KAAMC,QAAS,IAAGD,QAAS,KAAI,IAAI,CAACjB,SAAS,EAAE;QACnE,IAAI,CAACA,SAAQ,GAAIiB,QAAQ,CAAA;AAC7B,OAAA;KACH;AACDlE,IAAAA,KAAK,WAALA,KAAKA,CAACkE,QAAQ,EAAEC,QAAQ,EAAE;AACtB,MAAA,IAAI,CAACA,QAAS,IAAGA,QAAQ,CAACC,MAAO,KAAI,CAACF,QAAO,IAAK,EAAE,EAAEE,MAAM,EAAE;QAC1D,IAAI,CAACC,IAAI,EAAE,CAAA;QACX,IAAI,CAACC,iBAAiB,EAAE,CAAA;AAC5B,OAAA;KACH;IACDpE,QAAQ,EAAA,SAARA,QAAQA,GAAG;MACP,IAAI,CAACmE,IAAI,EAAE,CAAA;MACX,IAAI,CAACC,iBAAiB,EAAE,CAAA;KAC3B;IACDhE,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,IAAI,CAACuC,gBAAgB,IAAI,CAACP,MAAM,EAAG,GAAE;AAAEQ,QAAAA,GAAG,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE,CAAA;AAAE,OAAE,GAAE,CAAC,CAAA;KAC/D;IACD3C,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,IAAI,CAACiE,IAAI,EAAE,CAAA;MACX,IAAI,CAACC,iBAAiB,EAAE,CAAA;KAC3B;IACDjE,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,IAAI,CAACgE,IAAI,EAAE,CAAA;MACX,IAAI,CAACC,iBAAiB,EAAE,CAAA;AAC5B,KAAA;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,CAACC,QAAQ,EAAE,CAAA;IAEf,IAAI,CAAC3B,gBAAgB,IAAI,CAACP,MAAM,EAAG,GAAE;AAAEQ,MAAAA,GAAG,EAAE,CAAC;AAAEC,MAAAA,IAAI,EAAE,CAAA;AAAE,KAAE,GAAE,CAAC,CAAA;IAC5D,IAAI,CAACe,gBAAgB,IAAI,CAACA,iBAAiB,EAAE,CAAA;GAChD;EACDW,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,CAAC,IAAI,CAACT,WAAU,IAAK,IAAI,CAACQ,QAAQ,EAAE,CAAA;GACvC;EACDE,SAAS,EAAA,SAATA,SAASA,GAAG;IACR,IAAI,CAACC,oBAAoB,EAAE,CAAA;IAE3B,IAAI,CAACX,WAAY,GAAE,KAAK,CAAA;GAC3B;AACDY,EAAAA,OAAO,EAAE;IACLJ,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAIK,SAAS,CAAC,IAAI,CAACxB,OAAO,CAAC,EAAE;AACzB,QAAA,IAAI,CAACyB,YAAY,CAAC,IAAI,CAACxB,OAAO,CAAC,CAAA;QAC/B,IAAI,CAACe,IAAI,EAAE,CAAA;QACX,IAAI,CAACC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAACS,kBAAkB,EAAE,CAAA;QAEzB,IAAI,CAACtB,YAAW,GAAIuB,QAAQ,CAAC,IAAI,CAAC3B,OAAO,CAAC,CAAA;QAC1C,IAAI,CAACK,aAAY,GAAIuB,SAAS,CAAC,IAAI,CAAC5B,OAAO,CAAC,CAAA;QAC5C,IAAI,CAACM,sBAAsBqB,QAAQ,CAAC,IAAI,CAAC1B,OAAO,CAAC,CAAA;QACjD,IAAI,CAACM,uBAAuBqB,SAAS,CAAC,IAAI,CAAC3B,OAAO,CAAC,CAAA;QACnD,IAAI,CAACU,WAAU,GAAI,IAAI,CAAA;AAC3B,OAAA;KACH;IACDK,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACH,MAAA,IAAI,CAAC,IAAI,CAACzD,QAAQ,EAAE;QAChB,IAAI,CAACsE,OAAO,EAAE,CAAA;QACd,IAAI,CAACC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAACC,aAAa,EAAE,CAAA;AACxB,OAAA;KACH;IACDC,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAAC/E,WAAY,KAAI,UAAU,CAAA;KACzC;IACDgF,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,OAAO,IAAI,CAAChF,WAAY,KAAI,YAAY,CAAA;KAC3C;IACDgC,MAAM,EAAA,SAANA,MAAMA,GAAG;AACL,MAAA,OAAO,IAAI,CAAChC,WAAY,KAAI,MAAM,CAAA;KACrC;AACDiF,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACC,OAAO,EAAE;AACd;MACA,IAAI,CAACnC,OAAQ,IAAG,IAAI,CAACA,OAAO,CAACkC,QAAQ,CAACC,OAAO,CAAC,CAAA;KACjD;AACDC,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACC,KAAK,EAAqB;AAAA,MAAA,IAAAC,KAAA,GAAA,IAAA,CAAA;AAAA,MAAA,IAAnBC,QAAS,GAAAC,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,MAAM,CAAA;AAClC,MAAA,IAAMxD,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,MAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;MACtC,IAAMU,KAAM,GAAE3D,OAAOqD,KAAK,CAACO,KAAK,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAE,GAAE,CAAC,CAAC,CAAA;AAAA,OAAA,CAAA,GAAIR,KAAI,GAAI,CAAC,CAAC,CAAA;AAE5D,MAAA,IAAIM,KAAK,EAAE;AACP,QAAA,IAAMzD,KAAI,GAAI,IAAI,CAACA,KAAK,CAAA;AACxB,QAAA,IAAA4D,aAAA,GAA0C,IAAI,CAAC9C,OAAO;UAAA+C,qBAAA,GAAAD,aAAA,CAA9CE,SAAU;AAAVA,UAAAA,SAAU,GAAAD,qBAAA,KAAE,KAAA,CAAA,GAAA,CAAC,GAAAA,qBAAA;UAAAE,qBAAA,GAAAH,aAAA,CAAEI;AAAAA,UAAAA,uCAAa,KAAA,CAAA,GAAA,CAAA,GAAAD,qBAAA,CAAA;AACpC,QAAA,IAAAE,qBAAA,GAA8B,IAAI,CAACC,iBAAiB,EAAE;UAA9ClG,iBAAkB,GAAAiG,qBAAA,CAAlBjG,iBAAkB,CAAA;AAC1B,QAAA,IAAMmG,aAAa,IAAI,CAACC,kBAAkB,EAAE,CAAA;AAC5C,QAAA,IAAMzG,QAAO,GAAI,IAAI,CAACA,QAAQ,CAAA;AAC9B,QAAA,IAAM0G,cAAa,GAAI,SAAjBA,cAAaA,GAAA;AAAA,UAAA,IAAKC,MAAK,GAAAhB,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;UAAA,IAAEiB,KAAK,GAAAjB,SAAA,CAAAzB,MAAA,GAAAyB,CAAAA,GAAAA,SAAA,MAAAC,SAAA,CAAA;AAAA,UAAA,OAAMe,MAAK,IAAKC,KAAM,GAAE,CAAE,GAAED,MAAM,CAAA;SAAC,CAAA;QAC5E,IAAME,cAAe,GAAE,SAAjBA,cAAeA,CAAGC,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAA;AAAA,UAAA,OAAKF,MAAO,GAAEC,KAAM,GAAEC,KAAK,CAAA;AAAA,SAAA,CAAA;AACvE,QAAA,IAAM3B,QAAO,GAAI,SAAXA,QAAOA,GAAA;AAAA,UAAA,IAAKxC,IAAG,GAAA8C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;AAAA,UAAA,IAAE/C,GAAE,GAAA+C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;UAAA,OAAKF,KAAI,CAACJ,QAAQ,CAAC;AAAExC,YAAAA,IAAI,EAAJA,IAAI;AAAED,YAAAA,GAAG,EAAHA,GAAG;AAAE8C,YAAAA,QAAO,EAAPA,QAAAA;AAAS,WAAC,CAAC,CAAA;AAAA,SAAA,CAAA;QAC9E,IAAIuB,QAAS,GAAE9E,IAAK,GAAE;AAAEG,UAAAA,IAAI,EAAE,CAAC;AAAEC,UAAAA,IAAI,EAAE,CAAA;AAAE,SAAA,GAAI,CAAC,CAAA;QAC9C,IAAIoB,cAAa,GAAI,KAAK;AACtBuD,UAAAA,eAAgB,GAAE,KAAK,CAAA;AAE3B,QAAA,IAAI/E,IAAI,EAAE;AACN8E,UAAAA,QAAS,GAAE;AAAE3E,YAAAA,IAAI,EAAEoE,cAAc,CAAClB,KAAK,CAAC,CAAC,CAAC,EAAEnF,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAAEkC,IAAI,EAAEmE,cAAc,CAAClB,KAAK,CAAC,CAAC,CAAC,EAAEnF,iBAAiB,CAAC,CAAC,CAAC,CAAA;WAAG,CAAA;AACzHgF,UAAAA,QAAQ,CAACwB,cAAc,CAACI,QAAQ,CAAC1E,IAAI,EAAEvC,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAAC3D,IAAI,CAAC,EAAEgE,cAAc,CAACI,QAAQ,CAAC3E,IAAI,EAAEtC,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAAC5D,GAAG,CAAC,CAAC,CAAA;AACjIsE,UAAAA,eAAc,GAAI,IAAI,CAACvE,aAAa,CAACC,GAAE,KAAMuD,aAAa,IAAI,CAACxD,aAAa,CAACE,SAASwD,UAAU,CAAA;AAChG1C,UAAAA,iBAAiBsD,QAAQ,CAAC3E,IAAK,KAAID,KAAK,CAACC,QAAQ2E,QAAQ,CAAC1E,IAAG,KAAMF,KAAK,CAACE,IAAI,CAAA;AACjF,SAAE,MAAK;AACH0E,UAAAA,QAAO,GAAIP,cAAc,CAAClB,KAAK,EAAEnF,iBAAiB,CAAC,CAAA;AACnDwF,UAAAA,UAAS,GAAIR,QAAQ,CAACwB,cAAc,CAACI,QAAQ,EAAEjH,QAAQ,EAAEwG,UAAU,CAAC3D,IAAI,CAAC,EAAEsD,SAAS,CAAE,GAAEd,QAAQ,CAACgB,UAAU,EAAEQ,cAAc,CAACI,QAAQ,EAAEjH,QAAQ,EAAEwG,UAAU,CAAC5D,GAAG,CAAC,CAAC,CAAA;UAChKsE,kBAAkB,IAAI,CAACvE,aAAc,MAAKkD,UAAS,GAAIQ,UAAS,GAAIF,SAAS,CAAC,CAAA;UAC9ExC,cAAe,GAAEsD,QAAO,KAAM5E,KAAK,CAAA;AACvC,SAAA;QAEA,IAAI,CAACsB,cAAa,GAAIA,cAAc,CAAA;AACpCuD,QAAAA,eAAgB,KAAI,IAAI,CAAC7E,KAAM,GAAE4E,QAAQ,CAAC,CAAA;AAC9C,OAAA;KACH;AACDE,IAAAA,YAAY,WAAZA,YAAYA,CAAC3B,KAAK,EAAE4B,EAAE,EAAqB;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;AAAA,MAAA,IAAnB3B,QAAS,GAAAC,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,MAAM,CAAA;AACrC,MAAA,IAAIyB,EAAE,EAAE;AACJ,QAAA,IAAMjF,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;QACtC,IAAMU,KAAM,GAAE3D,OAAOqD,KAAK,CAACO,KAAK,CAAC,UAACC,CAAC,EAAA;UAAA,OAAKA,CAAE,GAAE,CAAC,CAAC,CAAA;AAAA,SAAA,CAAA,GAAIR,KAAI,GAAI,CAAC,CAAC,CAAA;AAE5D,QAAA,IAAIM,KAAK,EAAE;AACP,UAAA,IAAAwB,qBAAA,GAA4B,IAAI,CAACC,gBAAgB,EAAE;YAA3ClF,KAAK,GAAAiF,qBAAA,CAALjF,KAAK;YAAEmF,iCAAAA;AACf,UAAA,IAAMnC,QAAO,GAAI,SAAXA,QAAOA,GAAA;AAAA,YAAA,IAAKxC,IAAG,GAAA8C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;AAAA,YAAA,IAAE/C,GAAE,GAAA+C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;YAAA,OAAK0B,MAAI,CAAChC,QAAQ,CAAC;AAAExC,cAAAA,IAAI,EAAJA,IAAI;AAAED,cAAAA,GAAG,EAAHA,GAAG;AAAE8C,cAAAA,QAAO,EAAPA,QAAAA;AAAS,aAAC,CAAC,CAAA;AAAA,WAAA,CAAA;AAC9E,UAAA,IAAM+B,SAAU,GAAEL,EAAC,KAAM,UAAU,CAAA;AACnC,UAAA,IAAMM,OAAQ,GAAEN,EAAG,KAAI,QAAQ,CAAA;AAE/B,UAAA,IAAIK,SAAS,EAAE;AACX,YAAA,IAAItF,IAAI,EAAE;AACN,cAAA,IAAIqF,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAED,KAAK,CAACC,OAAOkD,KAAK,CAAC,CAAC,CAAC,EAAE;AAC7CH,gBAAAA,QAAQ,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAK,GAAE,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAACwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,CAAC,IAAI,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAClG,eAAE,MAAK,IAAIwH,QAAQ,CAACnF,KAAK,CAACE,IAAG,GAAIF,KAAK,CAACE,IAAK,GAAEiD,KAAK,CAAC,CAAC,CAAC,EAAE;AACpDH,gBAAAA,QAAQ,CAAC,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAG,GAAI,CAAC,IAAI,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAEwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAClG,eAAA;AACJ,aAAE,MAAK;AACH,cAAA,IAAIwH,QAAQ,CAACnF,KAAI,GAAIA,KAAI,GAAImD,KAAK,EAAE;gBAChC,IAAMmC,GAAI,GAAE,CAACH,QAAQ,CAACnF,KAAM,GAAE,CAAC,IAAI,IAAI,CAACrC,QAAQ,CAAA;AAEhD6F,gBAAAA,UAAS,GAAIR,QAAQ,CAACsC,GAAG,EAAE,CAAC,CAAA,GAAItC,QAAQ,CAAC,CAAC,EAAEsC,GAAG,CAAC,CAAA;AACpD,eAAA;AACJ,aAAA;WACJ,MAAO,IAAID,OAAO,EAAE;AAChB,YAAA,IAAIvF,IAAI,EAAE;AACN,cAAA,IAAIqF,QAAQ,CAAChF,IAAI,CAACF,IAAK,GAAED,KAAK,CAACC,QAAQkD,KAAK,CAAC,CAAC,CAAE,GAAE,CAAC,EAAE;AACjDH,gBAAAA,QAAQ,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAK,GAAE,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAACwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,CAAC,IAAI,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAClG,eAAE,MAAK,IAAIwH,QAAQ,CAAChF,IAAI,CAACD,OAAOF,KAAK,CAACE,IAAK,IAAGiD,KAAK,CAAC,CAAC,CAAA,GAAI,CAAC,EAAE;AACxDH,gBAAAA,QAAQ,CAAC,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAG,GAAI,CAAC,IAAI,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAEwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAClG,eAAA;AACJ,aAAE,MAAK;cACH,IAAIwH,QAAQ,CAAChF,IAAG,GAAIH,KAAI,IAAKmD,KAAM,GAAE,CAAC,EAAE;gBACpC,IAAMmC,KAAI,GAAE,CAACH,QAAQ,CAACnF,KAAM,GAAE,CAAC,IAAI,IAAI,CAACrC,QAAQ,CAAA;AAEhD6F,gBAAAA,UAAS,GAAIR,QAAQ,CAACsC,KAAG,EAAE,CAAC,CAAA,GAAItC,QAAQ,CAAC,CAAC,EAAEsC,KAAG,CAAC,CAAA;AACpD,eAAA;AACJ,aAAA;AACJ,WAAA;AACJ,SAAA;AACJ,OAAE,MAAK;AACH,QAAA,IAAI,CAACpC,aAAa,CAACC,KAAK,EAAEE,QAAQ,CAAC,CAAA;AACvC,OAAA;KACH;IACD6B,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,IAAMK,wBAAuB,GAAI,SAA3BA,wBAAuBA,CAAKC,IAAI,EAAEd,KAAK,EAAA;QAAA,OAAKe,IAAI,CAACC,KAAK,CAACF,IAAK,IAAGd,KAAM,IAAGc,IAAI,CAAC,CAAC,CAAA;AAAA,OAAA,CAAA;AAEpF,MAAA,IAAIG,eAAc,GAAI,IAAI,CAAC3F,KAAK,CAAA;MAChC,IAAI4F,cAAa,GAAI,CAAC,CAAA;MAEtB,IAAI,IAAI,CAAC9E,OAAO,EAAE;AACd,QAAA,IAAMhB,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;AACtC,QAAA,IAAA8C,cAAA,GAAkC,IAAI,CAAC/E,OAAO;UAAtCgD,SAAS,GAAA+B,cAAA,CAAT/B,SAAS;UAAEE,UAAW,GAAA6B,cAAA,CAAX7B,UAAW,CAAA;AAE9B,QAAA,IAAIlE,IAAI,EAAE;AACN6F,UAAAA,eAAgB,GAAE;YAAE1F,IAAI,EAAEsF,wBAAwB,CAACzB,SAAS,EAAE,IAAI,CAACnG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAEuC,IAAI,EAAEqF,wBAAwB,CAACvB,UAAU,EAAE,IAAI,CAACrG,QAAQ,CAAC,CAAC,CAAC,CAAA;WAAG,CAAA;AAC/IiI,UAAAA,cAAe,GAAE;YAAE3F,IAAI,EAAE0F,eAAe,CAAC1F,IAAG,GAAI,IAAI,CAACI,kBAAkB,CAACJ,IAAI;YAAEC,IAAI,EAAEyF,eAAe,CAACzF,IAAK,GAAE,IAAI,CAACG,kBAAkB,CAACH,IAAAA;WAAM,CAAA;AAC7I,SAAE,MAAK;AACH,UAAA,IAAM4F,SAAQ,GAAItC,UAAW,GAAEQ,aAAaF,SAAS,CAAA;UAErD6B,eAAc,GAAIJ,wBAAwB,CAACO,SAAS,EAAE,IAAI,CAACnI,QAAQ,CAAC,CAAA;AACpEiI,UAAAA,iBAAiBD,eAAc,GAAI,IAAI,CAACtF,kBAAkB,CAAA;AAC9D,SAAA;AACJ,OAAA;MAEA,OAAO;QACHL,KAAK,EAAE,IAAI,CAACA,KAAK;QACjBG,IAAI,EAAE,IAAI,CAACA,IAAI;AACfgF,QAAAA,QAAQ,EAAE;AACNnF,UAAAA,KAAK,EAAE2F,eAAe;AACtBxF,UAAAA,IAAI,EAAEyF,cAAAA;AACV,SAAA;OACH,CAAA;KACJ;IACD1B,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,IAAMpE,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,MAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;AACtC,MAAA,IAAMpF,QAAO,GAAI,IAAI,CAACA,QAAQ,CAAA;AAC9B,MAAA,IAAMwG,aAAa,IAAI,CAACC,kBAAkB,EAAE,CAAA;AAC5C,MAAA,IAAM2B,YAAW,GAAI,IAAI,CAACjF,OAAQ,GAAE,IAAI,CAACA,OAAO,CAACkF,WAAU,GAAI7B,UAAU,CAAC3D,IAAG,GAAI,CAAC,CAAA;AAClF,MAAA,IAAMyF,aAAY,GAAI,IAAI,CAACnF,OAAQ,GAAE,IAAI,CAACA,OAAO,CAACoF,YAAa,GAAE/B,UAAU,CAAC5D,GAAE,GAAI,CAAC,CAAA;AACnF,MAAA,IAAM4F,2BAA4B,GAAE,SAA9BA,2BAA4BA,CAAGC,YAAY,EAAEC,SAAS,EAAA;QAAA,OAAKZ,IAAI,CAACa,IAAI,CAACF,YAAW,IAAKC,SAAU,IAAGD,YAAY,CAAC,CAAC,CAAA;AAAA,OAAA,CAAA;AACtH,MAAA,IAAMG,6BAA6B,SAA7BA,2BAA8BC,SAAS,EAAA;AAAA,QAAA,OAAKf,IAAI,CAACa,IAAI,CAACE,SAAU,GAAE,CAAC,CAAC,CAAA;AAAA,OAAA,CAAA;MAC1E,IAAMnG,kBAAmB,GAAEP,IAAG,GACxB;QAAEG,IAAI,EAAEkG,2BAA2B,CAACF,aAAa,EAAEtI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAEuC,IAAI,EAAEiG,2BAA2B,CAACJ,YAAY,EAAEpI,QAAQ,CAAC,CAAC,CAAC,CAAA;OAAE,GAC9HwI,2BAA2B,CAAC3C,UAAW,GAAEuC,YAAW,GAAIE,aAAa,EAAEtI,QAAQ,CAAC,CAAA;AAEtF,MAAA,IAAMK,iBAAkB,GAAE,IAAI,CAACyC,mBAAkB,KAAMX,IAAG,GAAI,CAACyG,0BAA0B,CAAClG,kBAAkB,CAACJ,IAAI,CAAC,EAAEsG,0BAA0B,CAAClG,kBAAkB,CAACH,IAAI,CAAC,IAAIqG,0BAA0B,CAAClG,kBAAkB,CAAC,CAAC,CAAA;MAE1N,OAAO;AAAEA,QAAAA,kBAAkB,EAAlBA,kBAAkB;AAAErC,QAAAA,mBAAAA,iBAAAA;OAAmB,CAAA;KACnD;IACD4E,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AAAA,MAAA,IAAA6D,MAAA,GAAA,IAAA,CAAA;AACf,MAAA,IAAM3G,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,MAAA,IAAMC,KAAI,GAAI,IAAI,CAACA,KAAK,CAAA;AACxB,MAAA,IAAA0G,sBAAA,GAAkD,IAAI,CAACxC,iBAAiB,EAAE;QAAlE7D,kBAAkB,GAAAqG,sBAAA,CAAlBrG,kBAAkB;QAAErC,iBAAgB,GAAA0I,sBAAA,CAAhB1I,iBAAgB,CAAA;MAC5C,IAAM2I,aAAY,GAAI,SAAhBA,aAAYA,CAAKlC,MAAM,EAAEmC,IAAI,EAAErC,KAAK,EAAA;AAAA,QAAA,IAAEsC,OAAQ,GAAAvD,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,KAAK,CAAA;QAAA,OAAKmD,MAAI,CAACK,OAAO,CAACrC,MAAK,GAAImC,OAAO,CAACnC,MAAO,GAAEF,QAAQ,CAAA,GAAI,CAAC,IAAIA,KAAK,EAAEsC,OAAO,CAAC,CAAA;AAAA,OAAA,CAAA;MACvI,IAAM1G,IAAK,GAAEL,IAAG,GACV;AAAEG,QAAAA,IAAI,EAAE0G,aAAa,CAAC3G,KAAK,CAACC,IAAI,EAAEI,kBAAkB,CAACJ,IAAI,EAAEjC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAAEkC,QAAAA,IAAI,EAAEyG,aAAa,CAAC3G,KAAK,CAACE,IAAI,EAAEG,kBAAkB,CAACH,IAAI,EAAElC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;OAAE,GACvK2I,aAAa,CAAC3G,KAAK,EAAEK,kBAAkB,EAAErC,iBAAiB,CAAC,CAAA;MAEjE,IAAI,CAACmC,IAAG,GAAIA,IAAI,CAAA;MAChB,IAAI,CAACE,kBAAiB,GAAIA,kBAAkB,CAAA;MAC5C,IAAI,CAACI,sBAAsBzC,iBAAiB,CAAA;MAC5C,IAAI,CAAC+I,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAACtG,mBAAmB,CAAC,CAAA;MAEhE,IAAI,IAAI,CAAC/B,UAAU,EAAE;QACjB,IAAI,CAACiC,SAAQ,GAAIb,IAAG,GAAIpC,KAAK,CAACsJ,IAAI,CAAC;UAAEnF,MAAM,EAAExB,kBAAkB,CAACJ,IAAAA;SAAM,CAAC,CAACgH,GAAG,CAAC,YAAA;UAAA,OAAMvJ,KAAK,CAACsJ,IAAI,CAAC;YAAEnF,MAAM,EAAExB,kBAAkB,CAACH,IAAAA;AAAK,WAAC,CAAC,CAAA;AAAA,SAAA,CAAE,GAAExC,KAAK,CAACsJ,IAAI,CAAC;AAAEnF,UAAAA,MAAM,EAAExB,kBAAAA;AAAmB,SAAC,CAAC,CAAA;AACnL,OAAA;MAEA,IAAI,IAAI,CAAClC,IAAI,EAAE;AACX+I,QAAAA,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,YAAM;AAAA,UAAA,IAAAC,YAAA,CAAA;UACzBZ,MAAI,CAAClF,gBAAgB;AACjBvB,YAAAA,KAAK,EAAEyG,MAAI,CAAC5H,IAAK,GAAGiB,OAAO;AAAEG,cAAAA,IAAI,EAAE,CAAC;cAAEC,IAAI,EAAEF,KAAK,CAACE,IAAAA;aAAK,GAAI,CAAC,GAAIF,KAAK;AACrEG,YAAAA,IAAI,EAAEsF,IAAI,CAAC6B,GAAG,CAACb,MAAI,CAAC5H,IAAK,GAAE4H,MAAI,CAAC5H,IAAG,GAAIsB,IAAI,EAAE,CAAA,CAAAkH,YAAA,GAAAZ,MAAI,CAAChJ,KAAK,MAAA,IAAA,IAAA4J,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,YAAA,CAAYxF,MAAK,KAAK,CAAC,CAAA;WACvE,CAAA;UAED4E,MAAI,CAACM,KAAK,CAAC,WAAW,EAAEN,MAAI,CAAClF,aAAa,CAAC,CAAA;AAC/C,SAAC,CAAC,CAAA;AACN,OAAA;KACH;IACDQ,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAAA,MAAA,IAAAwF,MAAA,GAAA,IAAA,CAAA;MAChB,IAAI,IAAI,CAACxI,QAAS,IAAG,CAAC,IAAI,CAAC2B,SAAS,EAAE;AAClCwG,QAAAA,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,YAAM;UACzB,IAAIG,MAAI,CAACxG,OAAO,EAAE;AACd,YAAA,IAAMjB,OAAOyH,MAAI,CAACxH,MAAM,EAAE,CAAA;AAC1B,YAAA,IAAMyD,aAAa+D,MAAI,CAACxE,YAAY,EAAE,CAAA;AACtC,YAAA,IAAMyE,QAAO,GAAID,MAAI,CAACzE,UAAU,EAAE,CAAA;AAElCyE,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACiK,SAAU,GAAEF,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACkK,QAAS,GAAE,MAAM,CAAA;AACnEH,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACmK,WAAW,UAAU,CAAA;AACxCJ,YAAAA,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACoK,OAAQ,GAAE,MAAM,CAAA;;AAEnC;;AAEA;;AAGA,YAAA,IAAAC,IAAA,GAAwB,CAACpF,QAAQ,CAAC8E,MAAI,CAACzG,OAAO,CAAC,EAAE4B,SAAS,CAAC6E,MAAI,CAACzG,OAAO,CAAC,CAAC;AAAlEgH,cAAAA,KAAK,GAAAD,IAAA,CAAA,CAAA,CAAA;AAAEE,cAAAA,MAAM,GAAAF,IAAA,CAAA,CAAA,CAAA,CAAA;AAEpB,YAAA,CAAC/H,IAAK,IAAG0D,UAAU,MAAM+D,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACsK,KAAI,GAAIA,KAAI,GAAIP,MAAI,CAACrG,YAAa,GAAE4G,KAAM,GAAE,IAAG,GAAIP,MAAI,CAACzJ,WAAU,IAAKyJ,MAAI,CAACrG,YAAa,GAAE,IAAI,CAAC,CAAA;AAC5I,YAAA,CAACpB,IAAG,IAAK0H,QAAQ,MAAMD,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACuK,MAAO,GAAEA,MAAK,GAAIR,MAAI,CAACpG,aAAc,GAAE4G,MAAK,GAAI,IAAK,GAAER,MAAI,CAAC1J,YAAa,IAAG0J,MAAI,CAACpG,aAAc,GAAE,IAAI,CAAC,CAAA;AAEhJoG,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACiK,SAAU,GAAEF,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACkK,QAAO,GAAI,EAAE,CAAA;AAC/DH,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACmK,QAAO,GAAI,EAAE,CAAA;AAChCJ,YAAAA,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACoK,OAAM,GAAI,EAAE,CAAA;AACnC,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;KACH;IACDd,OAAO,EAAA,SAAPA,OAAOA,GAAmB;MAAA,IAAAkB,KAAA,EAAAC,WAAA,CAAA;AAAA,MAAA,IAAlB9H,2EAAO,CAAC,CAAA;MAAA,IAAE+H,MAAM,GAAA5E,SAAA,CAAAzB,MAAA,GAAAyB,CAAAA,GAAAA,SAAA,MAAAC,SAAA,CAAA;MACpB,OAAO,IAAI,CAAC9F,QAAQgI,IAAI,CAAC6B,GAAG,CAACY,SAAS,CAAA,CAAAF,KAAA,GAAC,IAAI,CAACzJ,OAAQ,IAAG,IAAI,CAACd,KAAK,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAuK,KAAA,KAA9BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAA,CAAiCnG,MAAK,KAAK,CAAA,GAAI,CAAA,CAAAoG,WAAA,GAAA,IAAI,CAACxK,KAAK,cAAAwK,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,WAAA,CAAYpG,MAAO,KAAG,CAAC,EAAE1B,IAAI,CAAE,GAAE,CAAC,CAAA;KAC1H;IACDiE,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,IAAI,IAAI,CAACrD,OAAO,EAAE;AACd,QAAA,IAAMvD,KAAM,GAAE2K,gBAAgB,CAAC,IAAI,CAACpH,OAAO,CAAC,CAAA;QAC5C,IAAMP,IAAK,GAAE4H,UAAU,CAAC5K,KAAK,CAAC6K,WAAW,CAAE,GAAE5C,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAACgD,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QACrF,IAAM+H,KAAM,GAAEH,UAAU,CAAC5K,KAAK,CAACgL,YAAY,CAAE,GAAE/C,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAAC+K,KAAK,CAAE,IAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACxF,IAAMhI,GAAE,GAAI6H,UAAU,CAAC5K,KAAK,CAACiL,UAAU,CAAA,GAAIhD,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAAC+C,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QAClF,IAAMmI,MAAK,GAAIN,UAAU,CAAC5K,KAAK,CAACmL,aAAa,CAAA,GAAIlD,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAACkL,MAAM,CAAE,IAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAE3F,OAAO;AAAElI,UAAAA,IAAI,EAAJA,IAAI;AAAE+H,UAAAA,KAAK,EAALA,KAAK;AAAEhI,UAAAA,GAAG,EAAHA,GAAG;AAAEmI,UAAAA,MAAM,EAANA,MAAM;UAAEE,CAAC,EAAEpI,OAAO+H,KAAK;UAAEM,CAAC,EAAEtI,GAAI,GAAEmI,MAAAA;SAAQ,CAAA;AACzE,OAAA;MAEA,OAAO;AAAElI,QAAAA,IAAI,EAAE,CAAC;AAAE+H,QAAAA,KAAK,EAAE,CAAC;AAAEhI,QAAAA,GAAG,EAAE,CAAC;AAAEmI,QAAAA,MAAM,EAAE,CAAC;AAAEE,QAAAA,CAAC,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE,CAAA;OAAG,CAAA;KAC9D;IACDlG,OAAO,EAAA,SAAPA,OAAOA,GAAG;AAAA,MAAA,IAAAmG,MAAA,GAAA,IAAA,CAAA;MACN,IAAI,IAAI,CAAChI,OAAO,EAAE;AACd,QAAA,IAAMhB,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;AACtC,QAAA,IAAMgG,aAAc,GAAE,IAAI,CAACjI,OAAO,CAACiI,aAAa,CAAA;AAChD,QAAA,IAAMjB,KAAI,GAAI,IAAI,CAAChK,yBAAkB,IAAI,CAACgD,OAAO,CAACkF,WAAU,IAAK+C,aAAa,CAAC/C,WAAW,EAAI,IAAA,CAAA,CAAA;AAC9F,QAAA,IAAM+B,SAAS,IAAI,CAAClK,YAAa,OAAAmL,MAAA,CAAM,IAAI,CAAClI,OAAO,CAACoF,YAAW,IAAK6C,aAAa,CAAC7C,YAAY,EAAI,IAAA,CAAA,CAAA;AAClG,QAAA,IAAM+C,OAAQ,GAAE,SAAVA,OAAQA,CAAGC,KAAK,EAAEC,MAAM,EAAA;UAAA,OAAML,MAAI,CAAChI,OAAO,CAACtD,KAAK,CAAC0L,KAAK,CAAA,GAAIC,MAAM,CAAA;SAAC,CAAA;QAEvE,IAAIrJ,IAAG,IAAK0D,UAAU,EAAE;AACpByF,UAAAA,OAAO,CAAC,QAAQ,EAAElB,MAAM,CAAC,CAAA;AACzBkB,UAAAA,OAAO,CAAC,OAAO,EAAEnB,KAAK,CAAC,CAAA;AAC3B,SAAE,MAAK;AACHmB,UAAAA,OAAO,CAAC,QAAQ,EAAElB,MAAM,CAAC,CAAA;AAC7B,SAAA;AACJ,OAAA;KACH;IACDlF,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAAuG,MAAA,GAAA,IAAA,CAAA;AACZ,MAAA,IAAM3L,KAAI,GAAI,IAAI,CAACA,KAAK,CAAA;AAExB,MAAA,IAAIA,KAAK,EAAE;AACP,QAAA,IAAMqC,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;AACtC,QAAA,IAAMoB,aAAa,IAAI,CAACC,kBAAkB,EAAE,CAAA;QAC5C,IAAM6E,OAAQ,GAAE,SAAVA,OAAQA,CAAGC,KAAK,EAAEC,MAAM,EAAEzE,KAAK,EAAA;AAAA,UAAA,IAAEC,KAAI,GAAArB,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;AAAA,UAAA,OAAM8F,MAAI,CAACxI,WAAU,GAAAyI,aAAA,CAAAA,aAAA,CAAA,EAAA,EAASD,MAAI,CAACxI,WAAW,CAAA,EAAA0I,eAAA,CAAAN,EAAAA,EAAAA,EAAAA,CAAAA,MAAA,CAAWE,KAAK,CAAK,EAAA,CAACC,MAAK,IAAK,EAAE,EAAEtH,MAAK,GAAI6C,KAAM,GAAEC,KAAI,GAAI,IAAK,CAAG,CAAA,CAAA;SAAC,CAAA;AAEpK,QAAA,IAAI7E,IAAI,EAAE;AACNmJ,UAAAA,OAAO,CAAC,QAAQ,EAAExL,KAAK,EAAE,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAAC0E,CAAC,CAAC,CAAA;UACxDI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC1K,OAAQ,IAAGd,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAACyE,CAAC,CAAC,CAAA;AAC9E,SAAE,MAAK;AACHpF,UAAAA,UAAS,GAAIyF,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC1K,OAAQ,IAAGd,KAAK,EAAE,IAAI,CAACE,QAAQ,EAAEwG,UAAU,CAACyE,CAAC,CAAA,GAAIK,OAAO,CAAC,QAAQ,EAAExL,KAAK,EAAE,IAAI,CAACE,QAAQ,EAAEwG,UAAU,CAAC0E,CAAC,CAAC,CAAA;AAC7I,SAAA;AACJ,OAAA;KACH;AACDU,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACjE,GAAG,EAAE;AAAA,MAAA,IAAAkE,MAAA,GAAA,IAAA,CAAA;MACpB,IAAI,IAAI,CAACzI,WAAW,CAAC,IAAI,CAACjC,UAAU,EAAE;AAClC,QAAA,IAAMgB,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;QACtC,IAAM/C,KAAI,GAAIsF,GAAE,GAAIA,GAAG,CAACtF,QAAQ,IAAI,CAACA,KAAK,CAAA;AAC1C,QAAA,IAAMyJ,qBAAsB,GAAE,SAAxBA,qBAAsBA,CAAGhF,MAAM,EAAEC,KAAK,EAAA;UAAA,OAAKD,MAAO,GAAEC,KAAK,CAAA;AAAA,SAAA,CAAA;AAC/D,QAAA,IAAMgF,YAAW,GAAI,SAAfA,YAAWA,GAAA;AAAA,UAAA,IAAKC,EAAC,GAAArG,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC,CAAA;AAAA,UAAA,IAAEsG,EAAG,GAAAtG,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,CAAC,CAAA;UAAA,OAAMkG,MAAI,CAAC3I,YAAa,GAAAwI,aAAA,CAAAA,aAAA,CAAOG,EAAAA,EAAAA,MAAI,CAAC3I,YAAY,CAAK,EAAA;AAAEgJ,YAAAA,SAAS,iBAAAb,MAAA,CAAiBW,EAAE,EAAAX,MAAAA,CAAAA,CAAAA,MAAA,CAAOY,EAAE,EAAA,QAAA,CAAA;AAAS,WAAE,CAAC,CAAA;SAAC,CAAA;AAE7I,QAAA,IAAI9J,IAAI,EAAE;AACN4J,UAAAA,YAAY,CAACD,qBAAqB,CAACzJ,KAAK,CAACE,IAAI,EAAE,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE8L,qBAAqB,CAACzJ,KAAK,CAACC,IAAI,EAAE,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1H,SAAE,MAAK;UACH,IAAMmM,YAAa,GAAEL,qBAAqB,CAACzJ,KAAK,EAAE,IAAI,CAACrC,QAAQ,CAAC,CAAA;AAEhE6F,UAAAA,UAAW,GAAEkG,YAAY,CAACI,YAAY,EAAE,CAAC,CAAE,GAAEJ,YAAY,CAAC,CAAC,EAAEI,YAAY,CAAC,CAAA;AAC9E,SAAA;AACJ,OAAA;KACH;AACDC,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACC,KAAK,EAAE;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;AAC1B,MAAA,IAAMC,MAAO,GAAEF,KAAK,CAACE,MAAM,CAAA;AAC3B,MAAA,IAAMpK,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,MAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;AACtC,MAAA,IAAMoB,aAAa,IAAI,CAACC,kBAAkB,EAAE,CAAA;AAC5C,MAAA,IAAM+F,kBAAmB,GAAE,SAArBA,kBAAmBA,CAAG3E,IAAI,EAAEb,KAAK,EAAA;AAAA,QAAA,OAAMa,IAAG,GAAKA,OAAOb,KAAM,GAAEa,IAAK,GAAEb,KAAI,GAAIa,IAAI,GAAI,CAAC,CAAA;OAAC,CAAA;AAC7F,MAAA,IAAM4E,qBAAoB,GAAI,SAAxBA,qBAAoBA,CAAK5E,IAAI,EAAEd,KAAK,EAAA;QAAA,OAAKe,IAAI,CAACC,KAAK,CAACF,IAAK,IAAGd,KAAM,IAAGc,IAAI,CAAC,CAAC,CAAA;AAAA,OAAA,CAAA;AAEjF,MAAA,IAAM6E,qBAAoB,GAAI,SAAxBA,qBAAoBA,CAAKC,aAAa,EAAE7F,MAAM,EAAE8F,KAAK,EAAE3D,IAAI,EAAErC,KAAK,EAAEiG,oBAAoB,EAAK;AAC/F,QAAA,OAAOF,aAAc,IAAG/F,QAAQA,KAAM,GAAEiG,oBAAmB,GAAID,QAAQ3D,IAAG,GAAIrC,QAAQE,MAAK,GAAIF,KAAI,GAAI,CAAC,CAAA;OAC3G,CAAA;AAED,MAAA,IAAMF,cAAe,GAAE,SAAjBA,cAAeA,CAAGiG,aAAa,EAAEG,aAAa,EAAEhG,MAAM,EAAE8F,KAAK,EAAE3D,IAAI,EAAErC,KAAK,EAAEiG,oBAAoB,EAAK;AACvG,QAAA,IAAIF,aAAc,IAAG/F,KAAK,EAAE,OAAO,CAAC,CAAA,KAC/B,OAAOkB,IAAI,CAAC6C,GAAG,CAAC,CAAC,EAAEkC,uBAAwBF,gBAAgBG,aAAY,GAAIhG,MAAO,GAAE6F,aAAc,GAAE/F,KAAK,GAAI+F,aAAY,GAAIG,aAAc,GAAEhG,MAAO,GAAE6F,aAAY,GAAI,CAAA,GAAI/F,KAAK,CAAC,CAAA;OACxL,CAAA;AAED,MAAA,IAAMoC,aAAY,GAAI,SAAhBA,aAAYA,CAAK2D,aAAa,EAAE7F,MAAM,EAAE8F,KAAK,EAAE3D,IAAI,EAAErC,KAAK,EAAEsC,OAAO,EAAK;QAC1E,IAAI6D,SAAU,GAAEjG,MAAO,GAAEmC,IAAG,GAAI,CAAA,GAAIrC,KAAK,CAAA;QAEzC,IAAI+F,iBAAiB/F,KAAK,EAAE;UACxBmG,SAAQ,IAAKnG,KAAI,GAAI,CAAC,CAAA;AAC1B,SAAA;AAEA,QAAA,OAAO0F,MAAI,CAACnD,OAAO,CAAC4D,SAAS,EAAE7D,OAAO,CAAC,CAAA;OAC1C,CAAA;MAED,IAAM/C,YAAYqG,kBAAkB,CAACD,MAAM,CAACpG,SAAS,EAAEK,UAAU,CAAC5D,GAAG,CAAC,CAAA;MACtE,IAAMyD,UAAW,GAAEmG,kBAAkB,CAACD,MAAM,CAAClG,UAAU,EAAEG,UAAU,CAAC3D,IAAI,CAAC,CAAA;MAEzE,IAAIoE,QAAS,GAAE9E,IAAK,GAAE;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE,CAAA;AAAE,OAAA,GAAI,CAAC,CAAA;AAC9C,MAAA,IAAIyK,OAAM,GAAI,IAAI,CAACxK,IAAI,CAAA;MACvB,IAAImB,cAAa,GAAI,KAAK,CAAA;AAC1B,MAAA,IAAIsJ,eAAe,IAAI,CAACtK,aAAa,CAAA;AAErC,MAAA,IAAIR,IAAI,EAAE;QACN,IAAM+K,YAAa,GAAE,IAAI,CAACvK,aAAa,CAACC,GAAI,IAAGuD,SAAS,CAAA;QACxD,IAAMgH,aAAY,GAAI,IAAI,CAACxK,aAAa,CAACE,QAAQwD,UAAU,CAAA;AAE3D,QAAA,IAAI,CAAC,IAAI,CAAClF,UAAS,IAAM,IAAI,CAACA,UAAS,KAAM+L,YAAa,IAAGC,aAAa,CAAE,EAAE;AAC1E,UAAA,IAAMC,YAAW,GAAI;YAAE9K,IAAI,EAAEmK,qBAAqB,CAACtG,SAAS,EAAE,IAAI,CAACnG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAEuC,IAAI,EAAEkK,qBAAqB,CAACpG,UAAU,EAAE,IAAI,CAACrG,QAAQ,CAAC,CAAC,CAAC,CAAA;WAAG,CAAA;AAC5I,UAAA,IAAMqN,eAAe;AACjB/K,YAAAA,IAAI,EAAEoK,qBAAqB,CAACU,YAAY,CAAC9K,IAAI,EAAE,IAAI,CAACD,KAAK,CAACC,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,EAAE,IAAI,CAACI,kBAAkB,CAACJ,IAAI,EAAE,IAAI,CAACQ,mBAAmB,CAAC,CAAC,CAAC,EAAEoK,YAAY,CAAC;AACxJ3K,YAAAA,IAAI,EAAEmK,qBAAqB,CAACU,YAAY,CAAC7K,IAAI,EAAE,IAAI,CAACF,KAAK,CAACE,IAAI,EAAE,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE,IAAI,CAACG,kBAAkB,CAACH,IAAI,EAAE,IAAI,CAACO,mBAAmB,CAAC,CAAC,CAAC,EAAEqK,aAAa,CAAA;WAC3J,CAAA;AAEDlG,UAAAA,WAAW;AACP3E,YAAAA,IAAI,EAAEoE,cAAc,CAAC0G,YAAY,CAAC9K,IAAI,EAAE+K,YAAY,CAAC/K,IAAI,EAAE,IAAI,CAACD,KAAK,CAACC,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,EAAE,IAAI,CAACI,kBAAkB,CAACJ,IAAI,EAAE,IAAI,CAACQ,mBAAmB,CAAC,CAAC,CAAC,EAAEoK,YAAY,CAAC;AACpK3K,YAAAA,IAAI,EAAEmE,cAAc,CAAC0G,YAAY,CAAC7K,IAAI,EAAE8K,YAAY,CAAC9K,IAAI,EAAE,IAAI,CAACF,KAAK,CAACE,IAAI,EAAE,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE,IAAI,CAACG,kBAAkB,CAACH,IAAI,EAAE,IAAI,CAACO,mBAAmB,CAAC,CAAC,CAAC,EAAEqK,aAAa,CAAA;WACvK,CAAA;AACDH,UAAAA,UAAU;AACN1K,YAAAA,IAAI,EAAE0G,aAAa,CAACoE,YAAY,CAAC9K,IAAI,EAAE2E,QAAQ,CAAC3E,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,EAAE,IAAI,CAACI,kBAAkB,CAACJ,IAAI,EAAE,IAAI,CAACQ,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAChIP,YAAAA,IAAI,EAAEyG,aAAa,CAACoE,YAAY,CAAC7K,IAAI,EAAE0E,QAAQ,CAAC1E,IAAI,EAAE,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE,IAAI,CAACG,kBAAkB,CAACH,IAAI,EAAE,IAAI,CAACO,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;WACxI,CAAA;AAEDa,UAAAA,cAAa,GAAIsD,QAAQ,CAAC3E,IAAK,KAAI,IAAI,CAACD,KAAK,CAACC,IAAK,IAAG0K,OAAO,CAAC1K,IAAG,KAAM,IAAI,CAACE,IAAI,CAACF,IAAK,IAAG2E,QAAQ,CAAC1E,IAAK,KAAI,IAAI,CAACF,KAAK,CAACE,IAAK,IAAGyK,OAAO,CAACzK,IAAG,KAAM,IAAI,CAACC,IAAI,CAACD,IAAK,IAAG,IAAI,CAACoB,cAAc,CAAA;AACpLsJ,UAAAA,YAAa,GAAE;AAAErK,YAAAA,GAAG,EAAEuD,SAAS;AAAEtD,YAAAA,IAAI,EAAEwD,UAAAA;WAAY,CAAA;AACvD,SAAA;AACJ,OAAE,MAAK;AACH,QAAA,IAAM8B,SAAQ,GAAItC,UAAW,GAAEQ,aAAaF,SAAS,CAAA;AACrD,QAAA,IAAMmH,mBAAoB,GAAE,IAAI,CAAC3K,aAAc,IAAGwF,SAAS,CAAA;QAE3D,IAAI,CAAC,IAAI,CAAChH,UAAW,IAAI,IAAI,CAACA,UAAS,IAAKmM,mBAAoB,EAAE;UAC9D,IAAMF,cAAW,GAAIX,qBAAqB,CAACtE,SAAS,EAAE,IAAI,CAACnI,QAAQ,CAAC,CAAA;UACpE,IAAMqN,cAAW,GAAIX,qBAAqB,CAACU,cAAY,EAAE,IAAI,CAAC/K,KAAK,EAAE,IAAI,CAACG,IAAI,EAAE,IAAI,CAACE,kBAAkB,EAAE,IAAI,CAACI,mBAAmB,EAAEwK,mBAAmB,CAAC,CAAA;UAEvJrG,QAAS,GAAEP,cAAc,CAAC0G,cAAY,EAAEC,cAAY,EAAE,IAAI,CAAChL,KAAK,EAAE,IAAI,CAACG,IAAI,EAAE,IAAI,CAACE,kBAAkB,EAAE,IAAI,CAACI,mBAAmB,EAAEwK,mBAAmB,CAAC,CAAA;AACpJN,UAAAA,OAAQ,GAAEhE,aAAa,CAACoE,cAAY,EAAEnG,QAAQ,EAAE,IAAI,CAACzE,IAAI,EAAE,IAAI,CAACE,kBAAkB,EAAE,IAAI,CAACI,mBAAmB,CAAC,CAAA;AAC7Ga,UAAAA,cAAa,GAAIsD,QAAS,KAAI,IAAI,CAAC5E,KAAI,IAAK2K,OAAQ,KAAI,IAAI,CAACxK,QAAQ,IAAI,CAACmB,cAAc,CAAA;AACxFsJ,UAAAA,eAAe9E,SAAS,CAAA;AAC5B,SAAA;AACJ,OAAA;MAEA,OAAO;AACH9F,QAAAA,KAAK,EAAE4E,QAAQ;AACfzE,QAAAA,IAAI,EAAEwK,OAAO;AACbrJ,QAAAA,cAAc,EAAdA,cAAc;AACdwE,QAAAA,SAAS,EAAE8E,YAAAA;OACd,CAAA;KACJ;AACDM,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAClB,KAAK,EAAE;AAClB,MAAA,IAAAmB,qBAAA,GAAmD,IAAI,CAACpB,sBAAsB,CAACC,KAAK,CAAC;QAA7EhK,KAAK,GAAAmL,qBAAA,CAALnL,KAAK;QAAEG,IAAI,GAAAgL,qBAAA,CAAJhL,IAAI;QAAEmB,cAAc,GAAA6J,qBAAA,CAAd7J,cAAc;QAAEwE,kCAAAA;AAErC,MAAA,IAAIxE,cAAc,EAAE;AAChB,QAAA,IAAM8J,QAAO,GAAI;AAAEpL,UAAAA,KAAK,EAALA,KAAK;AAAEG,UAAAA,IAAG,EAAHA,IAAAA;SAAM,CAAA;AAEhC,QAAA,IAAI,CAACoJ,kBAAkB,CAAC6B,QAAQ,CAAC,CAAA;QAEjC,IAAI,CAACpL,KAAI,GAAIA,KAAK,CAAA;QAClB,IAAI,CAACG,IAAG,GAAIA,IAAI,CAAA;QAChB,IAAI,CAACG,aAAc,GAAEwF,SAAS,CAAA;AAE9B,QAAA,IAAI,CAACiB,KAAK,CAAC,qBAAqB,EAAEqE,QAAQ,CAAC,CAAA;QAE3C,IAAI,IAAI,CAACjN,QAAQ,IAAI,CAACkN,aAAa,CAACrL,KAAK,CAAC,EAAE;UAAA,IAAAsL,YAAA,EAAAC,YAAA,CAAA;AACxC,UAAA,IAAMhK,gBAAgB;AAClBvB,YAAAA,KAAK,EAAE,IAAI,CAACnB,IAAG,GAAI4G,IAAI,CAAC6B,GAAG,CAAC,IAAI,CAACkE,cAAc,CAACxL,KAAK,CAAA,GAAI,IAAI,CAACnB,IAAI,EAAE,CAAC,CAAA,CAAAyM,YAAA,GAAI,IAAA,CAAC7N,KAAK,MAAA6N,IAAAA,IAAAA,YAAA,uBAAVA,YAAA,CAAYzJ,WAAU,CAAC,IAAI,IAAI,CAAChD,IAAI,CAAA,GAAImB,KAAK;AAClHG,YAAAA,IAAI,EAAEsF,IAAI,CAAC6B,GAAG,CAAC,IAAI,CAACzI,IAAK,GAAE,CAAC,IAAI,CAAC2M,cAAc,CAACxL,KAAK,IAAI,CAAC,IAAI,IAAI,CAACnB,IAAK,GAAEsB,IAAI,EAAE,EAAAoL,YAAA,GAAA,IAAI,CAAC9N,KAAK,cAAA8N,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,YAAA,CAAY1J,MAAO,KAAG,CAAC,CAAA;WAC1G,CAAA;UACD,IAAM4J,kBAAmB,GAAE,IAAI,CAAClK,aAAa,CAACvB,KAAI,KAAMuB,aAAa,CAACvB,KAAI,IAAK,IAAI,CAACuB,aAAa,CAACpB,IAAK,KAAIoB,aAAa,CAACpB,IAAI,CAAA;UAE7HsL,kBAAiB,IAAK,IAAI,CAAC1E,KAAK,CAAC,WAAW,EAAExF,aAAa,CAAC,CAAA;UAC5D,IAAI,CAACA,aAAY,GAAIA,aAAa,CAAA;AACtC,SAAA;AACJ,OAAA;KACH;AACDmK,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAAC1B,KAAK,EAAE;AAAA,MAAA,IAAA2B,MAAA,GAAA,IAAA,CAAA;AACZ,MAAA,IAAI,CAAC5E,KAAK,CAAC,QAAQ,EAAEiD,KAAK,CAAC,CAAA;MAE3B,IAAI,IAAI,CAAC/L,KAAK,EAAE;QACZ,IAAI,IAAI,CAAC+C,aAAa,EAAE;AACpB4K,UAAAA,YAAY,CAAC,IAAI,CAAC5K,aAAa,CAAC,CAAA;AACpC,SAAA;AAEA,QAAA,IAAI,IAAI,CAACqK,aAAa,EAAE,EAAE;UACtB,IAAI,CAAC,IAAI,CAAC3K,SAAQ,IAAK,IAAI,CAAChC,UAAU,EAAE;AACpC,YAAA,IAAAmN,sBAAA,GAA2B,IAAI,CAAC9B,sBAAsB,CAACC,KAAK,CAAC;cAArD1I,cAAa,GAAAuK,sBAAA,CAAbvK,cAAa,CAAA;AACrB,YAAA,IAAMwK,OAAQ,GAAExK,cAAe,KAAI,IAAI,CAACzC,IAAG,GAAI,IAAI,CAACwM,aAAa,EAAG,GAAE,KAAK,CAAC,CAAA;AAE5ES,YAAAA,OAAM,KAAM,IAAI,CAACpL,SAAU,GAAE,IAAI,CAAC,CAAA;AACtC,WAAA;AAEA,UAAA,IAAI,CAACM,aAAc,GAAE+K,UAAU,CAAC,YAAM;AAClCJ,YAAAA,MAAI,CAACT,cAAc,CAAClB,KAAK,CAAC,CAAA;AAE1B,YAAA,IAAI2B,MAAI,CAACjL,SAAU,IAAGiL,MAAI,CAACjN,UAAS,KAAM,CAACiN,MAAI,CAACxN,IAAK,IAAGwN,MAAI,CAACnN,OAAM,KAAM+E,SAAS,CAAC,EAAE;cACjFoI,MAAI,CAACjL,SAAU,GAAE,KAAK,CAAA;AACtBiL,cAAAA,MAAI,CAACvL,IAAG,GAAIuL,MAAI,CAACH,cAAc,EAAE,CAAA;AACrC,aAAA;AACJ,WAAC,EAAE,IAAI,CAACvN,KAAK,CAAC,CAAA;AAClB,SAAA;AACJ,OAAE,MAAK;AACH,QAAA,IAAI,CAACiN,cAAc,CAAClB,KAAK,CAAC,CAAA;AAC9B,OAAA;KACH;IACDgC,QAAQ,EAAA,SAARA,QAAQA,GAAG;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA,CAAA;MACP,IAAI,IAAI,CAAChL,aAAa,EAAE;AACpB2K,QAAAA,YAAY,CAAC,IAAI,CAAC3K,aAAa,CAAC,CAAA;AACpC,OAAA;AAEA,MAAA,IAAI,CAACA,aAAc,GAAE8K,UAAU,CAAC,YAAM;AAClC,QAAA,IAAIzJ,SAAS,CAAC2J,OAAI,CAACnL,OAAO,CAAC,EAAE;AACzB,UAAA,IAAMhB,OAAOmM,OAAI,CAAClM,MAAM,EAAE,CAAA;AAC1B,UAAA,IAAMyH,QAAO,GAAIyE,OAAI,CAACnJ,UAAU,EAAE,CAAA;AAClC,UAAA,IAAMU,aAAayI,OAAI,CAAClJ,YAAY,EAAE,CAAA;AACtC,UAAA,IAAAmJ,KAAA,GAAwB,CAACzJ,QAAQ,CAACwJ,OAAI,CAACnL,OAAO,CAAC,EAAE4B,SAAS,CAACuJ,OAAI,CAACnL,OAAO,CAAC,CAAC;AAAlEgH,YAAAA,KAAK,GAAAoE,KAAA,CAAA,CAAA,CAAA;AAAEnE,YAAAA,MAAM,GAAAmE,KAAA,CAAA,CAAA,CAAA,CAAA;AACpB,UAAA,IAAOC,WAAW,GAAmBrE,UAAUmE,OAAI,CAAC/K,YAAY;AAA5CkL,YAAAA,YAAY,GAAkCrE,MAAK,KAAMkE,OAAI,CAAC9K,aAAa,CAAA;AAC/F,UAAA,IAAMkL,SAASvM,IAAG,GAAIqM,WAAU,IAAKC,YAAa,GAAE5I,aAAa2I,cAAc3E,WAAW4E,YAAa,GAAE,KAAK,CAAA;AAE9G,UAAA,IAAIC,MAAM,EAAE;AACRJ,YAAAA,OAAI,CAACxL,sBAAsBwL,OAAI,CAACjO,iBAAiB,CAAA;YACjDiO,OAAI,CAAC/K,YAAW,GAAI4G,KAAK,CAAA;YACzBmE,OAAI,CAAC9K,aAAc,GAAE4G,MAAM,CAAA;YAC3BkE,OAAI,CAAC7K,sBAAsBqB,QAAQ,CAACwJ,OAAI,CAAClL,OAAO,CAAC,CAAA;YACjDkL,OAAI,CAAC5K,uBAAuBqB,SAAS,CAACuJ,OAAI,CAAClL,OAAO,CAAC,CAAA;YAEnDkL,OAAI,CAACnK,IAAI,EAAE,CAAA;AACf,WAAA;AACJ,SAAA;AACJ,OAAC,EAAE,IAAI,CAAC5D,WAAW,CAAC,CAAA;KACvB;IACDsE,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,IAAI,CAAC,IAAI,CAAChB,cAAc,EAAE;QACtB,IAAI,CAACA,cAAa,GAAI,IAAI,CAACwK,QAAQ,CAACM,IAAI,CAAC,IAAI,CAAC,CAAA;QAE9CC,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAChL,cAAc,CAAC,CAAA;QACtD+K,MAAM,CAACC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAChL,cAAc,CAAC,CAAA;AACrE,OAAA;KACH;IACDY,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACZ,cAAc,EAAE;QACrB+K,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACjL,cAAc,CAAC,CAAA;QACzD+K,MAAM,CAACE,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAACjL,cAAc,CAAC,CAAA;QACpE,IAAI,CAACA,iBAAiB,IAAI,CAAA;AAC9B,OAAA;KACH;AACDkL,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACC,aAAa,EAAE;MACtB,IAAMC,KAAI,GAAI,CAAC,IAAI,CAACnP,KAAM,IAAG,EAAE,EAAEoE,MAAM,CAAA;MACvC,IAAMsB,KAAM,GAAE,IAAI,CAACpD,MAAM,EAAC,GAAI,IAAI,CAACC,KAAK,CAACC,IAAK,GAAE0M,aAAY,GAAI,IAAI,CAAC3M,KAAM,GAAE2M,aAAa,CAAA;MAE1F,OAAO;AACHxJ,QAAAA,KAAK,EAALA,KAAK;AACLyJ,QAAAA,KAAK,EAALA,KAAK;QACL5M,KAAK,EAAEmD,KAAI,KAAM,CAAC;AAClBhD,QAAAA,IAAI,EAAEgD,KAAI,KAAMyJ,KAAI,GAAI,CAAC;AACzBC,QAAAA,IAAI,EAAE1J,KAAI,GAAI,CAAA,KAAM,CAAC;AACrB2J,QAAAA,GAAG,EAAE3J,KAAI,GAAI,CAAA,KAAM,CAAA;OACtB,CAAA;KACJ;AACD4J,IAAAA,gBAAgB,WAAhBA,gBAAgBA,CAAC5J,KAAK,EAAE6J,UAAU,EAAE;AAChC,MAAA,IAAIJ,KAAM,GAAE,IAAI,CAACjM,SAAS,CAACkB,MAAM,CAAA;AAEjC,MAAA,OAAAwH,aAAA,CAAA;AACIlG,QAAAA,KAAK,EAALA,KAAK;AACLyJ,QAAAA,KAAK,EAALA,KAAK;QACL5M,KAAK,EAAEmD,KAAI,KAAM,CAAC;AAClBhD,QAAAA,IAAI,EAAEgD,KAAI,KAAMyJ,KAAI,GAAI,CAAC;AACzBC,QAAAA,IAAI,EAAE1J,KAAI,GAAI,CAAA,KAAM,CAAC;AACrB2J,QAAAA,GAAG,EAAE3J,KAAI,GAAI,CAAA,KAAM,CAAA;AAAC,OAAA,EACjB6J,UAAS,CAAA,CAAA;KAEnB;AACDxB,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACxL,KAAK,EAAE;AAClB,MAAA,OAAOyF,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC1F,KAAI,KAAA,IAAA,IAAJA,KAAI,KAAA,KAAA,CAAA,GAAJA,KAAI,GAAK,IAAI,CAACA,KAAK,IAAI,IAAI,CAACS,mBAAoB,GAAE,CAAC,KAAK,IAAI,CAAC5B,IAAG,IAAK,CAAC,CAAC,CAAC,CAAA;KAC/F;AACDwM,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACrL,KAAK,EAAE;MACjB,OAAO,IAAI,CAACnB,OAAO,IAAI,CAACuB,IAAK,KAAI,IAAI,CAACoL,cAAc,CAACxL,KAAI,KAAA,IAAA,IAAJA,KAAI,KAAA,KAAA,CAAA,GAAJA,KAAI,GAAK,IAAI,CAACA,KAAK,CAAE,GAAE,IAAI,CAAA;KACnF;AACDuC,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAAC0K,EAAE,EAAE;AACb,MAAA,IAAI,CAAClM,UAAUkM,MAAM,IAAI,CAAClM,WAAWmM,UAAU,CAAC,IAAI,CAACpM,OAAO,EAAE,6BAA6B,CAAC,CAAA;KAC/F;AACDqM,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACF,EAAE,EAAE;MACX,IAAI,CAACnM,OAAQ,GAAEmM,EAAE,CAAA;KACpB;AACDG,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACH,EAAE,EAAE;MACX,IAAI,CAAClM,OAAQ,GAAEkM,EAAE,CAAA;AACrB,KAAA;GACH;AACDI,EAAAA,QAAQ,EAAE;IACNC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,CACH,mBAAmB,EACnB,IAAI,SAAM,EACV;QACI,0BAA0B,EAAE,IAAI,CAAC1O,MAAM;AACvC,QAAA,sCAAsC,EAAE,IAAI,CAACmB,MAAM,EAAE;AACrD,QAAA,kDAAkD,EAAE,IAAI,CAACgD,YAAY,EAAC;AAC1E,OAAA,CACH,CAAA;KACJ;IACDwK,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,OAAO,CACH,2BAA2B,EAC3B;QACI,2BAA2B,EAAE,IAAI,CAAC7M,SAAAA;AACtC,OAAA,CACH,CAAA;KACJ;IACD8M,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,OAAO,CACH,0BAA0B,EAC1B;AACI,QAAA,+BAA+B,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC,MAAAA;AAClD,OAAA,CACH,CAAA;KACJ;IACDC,WAAW,EAAA,SAAXA,WAAWA,GAAG;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA,CAAA;MACV,IAAI,IAAI,CAACnQ,KAAI,IAAK,CAAC,IAAI,CAACiD,SAAS,EAAE;AAC/B,QAAA,IAAI,IAAI,CAACX,MAAM,EAAE,EAAE,OAAO,IAAI,CAACtC,KAAK,CAACoQ,KAAK,CAAC,IAAI,CAAC/O,UAAW,GAAE,IAAI,IAAI,CAACkB,KAAK,CAACC,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,CAAC,CAACgH,GAAG,CAAC,UAAC6G,IAAI,EAAA;UAAA,OAAMF,OAAI,CAACrP,OAAQ,GAAEuP,OAAOA,IAAI,CAACD,KAAK,CAACD,OAAI,CAAC9O,UAAW,GAAE,IAAI8O,OAAI,CAAC5N,KAAK,CAACE,IAAI,EAAE0N,OAAI,CAACzN,IAAI,CAACD,IAAI,CAAC,CAAA;AAAA,SAAC,CAAC,CAAA,KACrM,IAAI,IAAI,CAAC6C,YAAY,EAAC,IAAK,IAAI,CAACxE,OAAO,EAAE,OAAO,IAAI,CAACd,KAAK,CAAA,KAC1D,OAAO,IAAI,CAACA,KAAK,CAACoQ,KAAK,CAAC,IAAI,CAAC/O,UAAW,GAAE,CAAE,GAAE,IAAI,CAACkB,KAAK,EAAE,IAAI,CAACG,IAAI,CAAC,CAAA;AAC7E,OAAA;AAEA,MAAA,OAAO,EAAE,CAAA;KACZ;IACD4N,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAACrN,SAAQ,GAAK,IAAI,CAACpC,iBAAiB,IAAI,CAACqC,YAAY,EAAE,GAAI,IAAI,CAACgN,WAAW,CAAA;KACzF;IACDK,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,IAAI,CAACzP,OAAO,EAAE;AACd,QAAA,IAAMuB,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE,CAAA;QAEtC,IAAIjD,IAAG,IAAK0D,UAAU,EAAE;UACpB,OAAO,IAAI,CAAC9C,SAAU,IAAG,IAAI,CAACpC,cAAe,GAAGwB,IAAG,GAAI,IAAI,CAACa,SAAS,CAAC,CAAC,CAAA,GAAI,IAAI,CAACA,SAAS,GAAI,IAAI,CAACpC,OAAO,CAACsP,KAAK,CAAC/N,IAAK,GAAE,IAAI,CAACE,KAAK,CAACE,IAAK,GAAE,IAAI,CAACF,KAAK,EAAEF,IAAG,GAAI,IAAI,CAACK,IAAI,CAACD,IAAK,GAAE,IAAI,CAACC,IAAI,CAAC,CAAA;AAC3L,SAAA;AACJ,OAAA;MAEA,OAAO,IAAI,CAAC5B,OAAO,CAAA;AACvB,KAAA;GACH;AACD0P,EAAAA,UAAU,EAAE;AACRC,IAAAA,WAAW,EAAEA,WAAAA;AACjB,GAAA;AACJ,CAAC;;;;;UClrBoBC,IAAQ,CAAA9P,QAAA,IACrB+P,SAAA,EAAA,EAAAC,kBAAA,CAmCK,OAnCLC,UAmCK,CAAA;;IAnCCC,GAAG,EAAEC,QAAU,CAAArB,UAAA;IAAG,OAAOqB,EAAAA,QAAc,CAAAlB,cAAA;IAAG3O,QAAQ,EAAEwP,IAAQ,CAAAxP,QAAA;IAAGnB,KAAK,EAAE2Q,IAAK,CAAA3Q,KAAA;IAAGkO,QAAM;aAAE8C,QAAQ,CAAA9C,QAAA,IAAA8C,QAAA,CAAA9C,QAAA,CAAA+C,KAAA,CAAAD,QAAA,EAAAlL,SAAA,CAAA,CAAA;KAAA,CAAA;KAAU6K,IAAI,CAAAO,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAC9GC,UAsBM,CAAAR,IAAA,CAAAV,MAAA,EAAA,SAAA,EAAA;IApBDmB,UAAU,EAAEJ,QAAY,CAAAjB,YAAA;IACxB9P,KAAK,EAAE+Q,QAAW,CAAAb,WAAA;IAClBkB,cAAc,EAAEL,QAAU,CAAA9B,UAAA;IAC1BlO,OAAO,EAAEsQ,KAAS,CAAApO,SAAA;IAClBqM,gBAAgB,EAAEyB,QAAgB,CAAAzB,gBAAA;IAClCpP,QAAQ,EAAEwQ,IAAQ,CAAAxQ,QAAA;IAClBsC,IAAI,EAAEuO,QAAU,CAAAT,UAAA;IAChBxP,OAAO,EAAEiQ,QAAa,CAAAR,aAAA;IACtBZ,UAAU,EAAEoB,QAAU,CAAApB,UAAA;IACtBxM,WAAW,EAAEkO,KAAW,CAAAlO,WAAA;IACxBC,YAAY,EAAEiO,KAAY,CAAAjO,YAAA;AAC1B2G,IAAAA,QAAQ,EAAEgH,QAAU,CAAA1L,UAAA,EAAA;AACpBU,IAAAA,UAAU,EAAEgL,QAAY,CAAAzL,YAAA,EAAA;AACxBjD,IAAAA,IAAI,EAAE0O,QAAM,CAAAzO,MAAA,EAAA;KAfjB,YAAA;AAAA,IAAA,OAsBM,CALFgP,kBAAA,CAIK,OAJLT,UAIK,CAAA;MAJCC,GAAG,EAAEC,QAAU,CAAApB,UAAA;MAAG,OAAOoB,EAAAA,QAAY,CAAAjB,YAAA;MAAG/P,KAAK,EAAEsR,KAAY,CAAAjO,YAAAA;OAAUsN,IAAG,CAAAa,GAAA,CAAA,SAAA,CAAA,CAAA,EAAA,EAC1EZ,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAEUY,QAFwB,EAAA,IAAA,EAAAC,UAAA,CAAAV,QAAA,CAAAb,WAAW,EAA3B,UAAAG,IAAI,EAAE3K,KAAK,EAAA;aACzBwL,UAAkE,CAAAR,IAAA,CAAAV,MAAA,EAAA,MAAA,EAAA;aADjBtK,KAAK;AACnC2K,QAAAA,IAAI,EAAEA,IAAI;AAAG7K,QAAAA,OAAO,EAAEuL,QAAU,CAAA9B,UAAA,CAACvJ,KAAK,CAAA;;;MAI1DgL,IAAU,CAAA1P,UAAA,IAArB2P,SAAA,EAAA,EAAAC,kBAAA,CAAyG,OAAzGC,UAAyG,CAAA;;AAAlF,IAAA,OAAA,EAAM,0BAAyB;IAAG9Q,KAAK,EAAEsR,KAAW,CAAAlO,WAAAA;KAAUuN,IAAG,CAAAa,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mCAC5Eb,uBAAkBA,mBAAcW,KAAS,CAAApO,SAAA,IAArD0N,SAAA,EAAA,EAAAC,kBAAA,CASK,OATLC,UASK,CAAA;;AATmD,IAAA,OAAA,EAAOE,QAAW,CAAAhB,WAAAA;KAAUW,IAAG,CAAAa,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CACnEb,eAAUA,IAAM,CAAAV,MAAA,CAACC,MAAM,IACnCU,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAEUY,QAFqB,EAAA;AAAAE,IAAAA,GAAA,EAAA,CAAA;GAAA,EAAAD,UAAA,CAAAJ,KAAA,CAAAnO,SAAS,EAAtB,UAAAyO,CAAC,EAAEjM,KAAK,EAAA;WACtBwL,UAAiH,CAAAR,IAAA,CAAAV,MAAA,EAAA,QAAA,EAAA;WADrEtK,KAAK;AAC5BF,MAAAA,OAAO,EAAEuL,yBAAgB,CAACrL,KAAK,EAAEqL,QAAM,CAAAzO,MAAA,EAAA,IAAA;AAAAsP,QAAAA,OAAA,EAAiBlB,IAAoB,CAAAmB,oBAAA,CAACpP,IAAAA;OAAG,CAAA;;4CAG7GyO,UAAA,CAEMR,gCAFN,YAAA;AAAA,IAAA,OAEM,CADFoB,WAAA,CAAsFC,wBAAtFlB,UAAsF,CAAA;AAAzEmB,MAAAA,IAAK,EAAL,EAAK;MAAA,OAAM,EAAA,gCAAA;OAAyCtB,IAAG,CAAAa,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA;8EAKpFX,kBAGU,CAAAY,QAAA,EAAA;AAAAE,IAAAA,GAAA,EAAA,CAAA;AAAA,GAAA,EAAA,CAFNR,UAAY,CAAAR,IAAA,CAAAV,MAAA,EAAA,SAAA,CAAA,EACZkB,UAAiF,CAAAR,IAAA,CAAAV,MAAA,EAAA,SAAA,EAAA;IAA3DhQ,KAAK,EAAE0Q,IAAK,CAAA1Q,KAAA;IAAGwC,IAAI,EAAEkO,IAAK,CAAA1Q,KAAA;IAAGc,OAAO,EAAEiQ,QAAa,CAAAR,aAAAA;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/virtualscroller/BaseVirtualScroller.vue","../../src/virtualscroller/VirtualScroller.vue","../../src/virtualscroller/VirtualScroller.vue?vue&type=template&id=81b1e8fe&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport VirtualScrollerStyle from 'primevue/virtualscroller/style';\n\nexport default {\n name: 'BaseVirtualScroller',\n extends: BaseComponent,\n props: {\n id: {\n type: String,\n default: null\n },\n style: null,\n class: null,\n items: {\n type: Array,\n default: null\n },\n itemSize: {\n type: [Number, Array],\n default: 0\n },\n scrollHeight: null,\n scrollWidth: null,\n orientation: {\n type: String,\n default: 'vertical'\n },\n numToleratedItems: {\n type: Number,\n default: null\n },\n delay: {\n type: Number,\n default: 0\n },\n resizeDelay: {\n type: Number,\n default: 10\n },\n lazy: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n loaderDisabled: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Array,\n default: null\n },\n loading: {\n type: Boolean,\n default: false\n },\n showSpacer: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n inline: {\n type: Boolean,\n default: false\n },\n step: {\n type: Number,\n default: 0\n },\n appendOnly: {\n type: Boolean,\n default: false\n },\n autoSize: {\n type: Boolean,\n default: false\n }\n },\n style: VirtualScrollerStyle,\n provide() {\n return {\n $pcVirtualScroller: this,\n $parentInstance: this\n };\n },\n beforeMount() {\n VirtualScrollerStyle.loadCSS({ nonce: this.$primevueConfig?.csp?.nonce });\n }\n};\n</script>\n","<template>\n <template v-if=\"!disabled\">\n <div :ref=\"elementRef\" :class=\"containerClass\" :tabindex=\"tabindex\" :style=\"style\" @scroll=\"onScroll\" v-bind=\"ptmi('root')\">\n <slot\n name=\"content\"\n :styleClass=\"contentClass\"\n :items=\"loadedItems\"\n :getItemOptions=\"getOptions\"\n :loading=\"d_loading\"\n :getLoaderOptions=\"getLoaderOptions\"\n :itemSize=\"itemSize\"\n :rows=\"loadedRows\"\n :columns=\"loadedColumns\"\n :contentRef=\"contentRef\"\n :spacerStyle=\"spacerStyle\"\n :contentStyle=\"contentStyle\"\n :vertical=\"isVertical()\"\n :horizontal=\"isHorizontal()\"\n :both=\"isBoth()\"\n >\n <div :ref=\"contentRef\" :class=\"contentClass\" :style=\"contentStyle\" v-bind=\"ptm('content')\">\n <template v-for=\"(item, index) of loadedItems\" :key=\"index\">\n <slot name=\"item\" :item=\"item\" :options=\"getOptions(index)\"></slot>\n </template>\n </div>\n </slot>\n <div v-if=\"showSpacer\" class=\"p-virtualscroller-spacer\" :style=\"spacerStyle\" v-bind=\"ptm('spacer')\"></div>\n <div v-if=\"!loaderDisabled && showLoader && d_loading\" :class=\"loaderClass\" v-bind=\"ptm('loader')\">\n <template v-if=\"$slots && $slots.loader\">\n <template v-for=\"(_, index) of loaderArr\" :key=\"index\">\n <slot name=\"loader\" :options=\"getLoaderOptions(index, isBoth() && { numCols: d_numItemsInViewport.cols })\"></slot>\n </template>\n </template>\n <slot name=\"loadingicon\">\n <SpinnerIcon spin class=\"p-virtualscroller-loading-icon\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n </template>\n <template v-else>\n <slot></slot>\n <slot name=\"content\" :items=\"items\" :rows=\"items\" :columns=\"loadedColumns\"></slot>\n </template>\n</template>\n\n<script>\nimport { findSingle, getHeight, getWidth, isVisible } from '@primeuix/utils/dom';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport BaseVirtualScroller from './BaseVirtualScroller.vue';\n\nexport default {\n name: 'VirtualScroller',\n extends: BaseVirtualScroller,\n inheritAttrs: false,\n emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n data() {\n const both = this.isBoth();\n\n return {\n first: both ? { rows: 0, cols: 0 } : 0,\n last: both ? { rows: 0, cols: 0 } : 0,\n page: both ? { rows: 0, cols: 0 } : 0,\n numItemsInViewport: both ? { rows: 0, cols: 0 } : 0,\n lastScrollPos: both ? { top: 0, left: 0 } : 0,\n d_numToleratedItems: this.numToleratedItems,\n d_loading: this.loading,\n loaderArr: [],\n spacerStyle: {},\n contentStyle: {}\n };\n },\n element: null,\n content: null,\n lastScrollPos: null,\n scrollTimeout: null,\n resizeTimeout: null,\n defaultWidth: 0,\n defaultHeight: 0,\n defaultContentWidth: 0,\n defaultContentHeight: 0,\n isRangeChanged: false,\n lazyLoadState: {},\n resizeListener: null,\n initialized: false,\n watch: {\n numToleratedItems(newValue) {\n this.d_numToleratedItems = newValue;\n },\n loading(newValue, oldValue) {\n if (this.lazy && newValue !== oldValue && newValue !== this.d_loading) {\n this.d_loading = newValue;\n }\n },\n items(newValue, oldValue) {\n if (!oldValue || oldValue.length !== (newValue || []).length) {\n this.init();\n this.calculateAutoSize();\n }\n },\n itemSize() {\n this.init();\n this.calculateAutoSize();\n },\n orientation() {\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n },\n scrollHeight() {\n this.init();\n this.calculateAutoSize();\n },\n scrollWidth() {\n this.init();\n this.calculateAutoSize();\n }\n },\n mounted() {\n this.viewInit();\n\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n this.lazyLoadState = this.lazyLoadState || {};\n },\n updated() {\n !this.initialized && this.viewInit();\n },\n unmounted() {\n this.unbindResizeListener();\n\n this.initialized = false;\n },\n methods: {\n viewInit() {\n if (isVisible(this.element)) {\n this.setContentEl(this.content);\n this.init();\n this.calculateAutoSize();\n this.bindResizeListener();\n\n this.defaultWidth = getWidth(this.element);\n this.defaultHeight = getHeight(this.element);\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n this.initialized = true;\n }\n },\n init() {\n if (!this.disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n }\n },\n isVertical() {\n return this.orientation === 'vertical';\n },\n isHorizontal() {\n return this.orientation === 'horizontal';\n },\n isBoth() {\n return this.orientation === 'both';\n },\n scrollTo(options) {\n //this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.element && this.element.scrollTo(options);\n },\n scrollToIndex(index, behavior = 'auto') {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.element;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize;\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (both) {\n newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index, numToleratedItems);\n horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n },\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n },\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n let firstInViewport = this.first;\n let lastInViewport = 0;\n\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const { scrollTop, scrollLeft } = this.element;\n\n if (both) {\n firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };\n lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n\n firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n },\n calculateNumItems() {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const itemSize = this.itemSize;\n const contentPos = this.getContentPosition();\n const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));\n const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);\n const numItemsInViewport = both\n ? { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) }\n : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);\n\n const numToleratedItems = this.d_numToleratedItems || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n },\n calculateOptions() {\n const both = this.isBoth();\n const first = this.first;\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const last = both\n ? { rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true) }\n : calculateLast(first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n\n if (this.showLoader) {\n this.loaderArr = both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this.step ? (both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this.step ? this.step : last, this.items?.length || 0)\n };\n\n this.$emit('lazy-load', this.lazyLoadState);\n });\n }\n },\n calculateAutoSize() {\n if (this.autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.content) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const vertical = this.isVertical();\n\n this.content.style.minHeight = this.content.style.minWidth = 'auto';\n this.content.style.position = 'relative';\n this.element.style.contain = 'none';\n\n /*const [contentWidth, contentHeight] = [getWidth(this.content), getHeight(this.content)];\n\n contentWidth !== this.defaultContentWidth && (this.element.style.width = '');\n contentHeight !== this.defaultContentHeight && (this.element.style.height = '');*/\n\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n\n (both || horizontal) && (this.element.style.width = width < this.defaultWidth ? width + 'px' : this.scrollWidth || this.defaultWidth + 'px');\n (both || vertical) && (this.element.style.height = height < this.defaultHeight ? height + 'px' : this.scrollHeight || this.defaultHeight + 'px');\n\n this.content.style.minHeight = this.content.style.minWidth = '';\n this.content.style.position = '';\n this.element.style.contain = '';\n }\n });\n }\n },\n getLast(last = 0, isCols) {\n return this.items ? Math.min(isCols ? (this.columns || this.items[0])?.length || 0 : this.items?.length || 0, last) : 0;\n },\n getContentPosition() {\n if (this.content) {\n const style = getComputedStyle(this.content);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n },\n setSize() {\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const parentElement = this.element.parentElement;\n const width = this.scrollWidth || `${this.element.offsetWidth || parentElement.offsetWidth}px`;\n const height = this.scrollHeight || `${this.element.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name, _value) => (this.element.style[_name] = _value);\n\n if (both || horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n },\n setSpacerSize() {\n const items = this.items;\n\n if (items) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } });\n\n if (both) {\n setProp('height', items, this.itemSize[0], contentPos.y);\n setProp('width', this.columns || items[1], this.itemSize[1], contentPos.x);\n } else {\n horizontal ? setProp('width', this.columns || items, this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);\n }\n }\n },\n setContentPosition(pos) {\n if (this.content && !this.appendOnly) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (both) {\n setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));\n } else {\n const translateVal = calculateTranslateVal(first, this.itemSize);\n\n horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n },\n onScrollPositionChange(event) {\n const target = event.target;\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this.appendOnly || (this.appendOnly && (isScrollDown || isScrollRight))) {\n const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this.appendOnly || (this.appendOnly && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n },\n onScrollChange(event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.$emit('scroll-index-change', newState);\n\n if (this.lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this.step ? Math.min(this.getPageByFirst(first) * this.step, (this.items?.length || 0) - this.step) : first,\n last: Math.min(this.step ? (this.getPageByFirst(first) + 1) * this.step : last, this.items?.length || 0)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.$emit('lazy-load', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n },\n onScroll(event) {\n this.$emit('scroll', event);\n\n if (this.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (this.isPageChanged()) {\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this.step ? this.isPageChanged() : false);\n\n changed && (this.d_loading = true);\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader && (!this.lazy || this.loading === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n }, this.delay);\n }\n } else {\n this.onScrollChange(event);\n }\n },\n onResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (isVisible(this.element)) {\n const both = this.isBoth();\n const vertical = this.isVertical();\n const horizontal = this.isHorizontal();\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;\n\n if (reinit) {\n this.d_numToleratedItems = this.numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n\n this.init();\n }\n }\n }, this.resizeDelay);\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = this.onResize.bind(this);\n\n window.addEventListener('resize', this.resizeListener);\n window.addEventListener('orientationchange', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n window.removeEventListener('orientationchange', this.resizeListener);\n this.resizeListener = null;\n }\n },\n getOptions(renderedIndex) {\n const count = (this.items || []).length;\n const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n },\n getLoaderOptions(index, extOptions) {\n let count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n };\n },\n getPageByFirst(first) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this.step || 1));\n },\n isPageChanged(first) {\n return this.step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n },\n setContentEl(el) {\n this.content = el || this.content || findSingle(this.element, '[data-pc-section=\"content\"]');\n },\n elementRef(el) {\n this.element = el;\n },\n contentRef(el) {\n this.content = el;\n }\n },\n computed: {\n containerClass() {\n return [\n 'p-virtualscroller',\n this.class,\n {\n 'p-virtualscroller-inline': this.inline,\n 'p-virtualscroller-both p-both-scroll': this.isBoth(),\n 'p-virtualscroller-horizontal p-horizontal-scroll': this.isHorizontal()\n }\n ];\n },\n contentClass() {\n return [\n 'p-virtualscroller-content',\n {\n 'p-virtualscroller-loading': this.d_loading\n }\n ];\n },\n loaderClass() {\n return [\n 'p-virtualscroller-loader',\n {\n 'p-virtualscroller-loader-mask': !this.$slots.loader\n }\n ];\n },\n loadedItems() {\n if (this.items && !this.d_loading) {\n if (this.isBoth()) return this.items.slice(this.appendOnly ? 0 : this.first.rows, this.last.rows).map((item) => (this.columns ? item : item.slice(this.appendOnly ? 0 : this.first.cols, this.last.cols)));\n else if (this.isHorizontal() && this.columns) return this.items;\n else return this.items.slice(this.appendOnly ? 0 : this.first, this.last);\n }\n\n return [];\n },\n loadedRows() {\n return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n },\n loadedColumns() {\n if (this.columns) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n\n if (both || horizontal) {\n return this.d_loading && this.loaderDisabled ? (both ? this.loaderArr[0] : this.loaderArr) : this.columns.slice(both ? this.first.cols : this.first, both ? this.last.cols : this.last);\n }\n }\n\n return this.columns;\n }\n },\n components: {\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <template v-if=\"!disabled\">\n <div :ref=\"elementRef\" :class=\"containerClass\" :tabindex=\"tabindex\" :style=\"style\" @scroll=\"onScroll\" v-bind=\"ptmi('root')\">\n <slot\n name=\"content\"\n :styleClass=\"contentClass\"\n :items=\"loadedItems\"\n :getItemOptions=\"getOptions\"\n :loading=\"d_loading\"\n :getLoaderOptions=\"getLoaderOptions\"\n :itemSize=\"itemSize\"\n :rows=\"loadedRows\"\n :columns=\"loadedColumns\"\n :contentRef=\"contentRef\"\n :spacerStyle=\"spacerStyle\"\n :contentStyle=\"contentStyle\"\n :vertical=\"isVertical()\"\n :horizontal=\"isHorizontal()\"\n :both=\"isBoth()\"\n >\n <div :ref=\"contentRef\" :class=\"contentClass\" :style=\"contentStyle\" v-bind=\"ptm('content')\">\n <template v-for=\"(item, index) of loadedItems\" :key=\"index\">\n <slot name=\"item\" :item=\"item\" :options=\"getOptions(index)\"></slot>\n </template>\n </div>\n </slot>\n <div v-if=\"showSpacer\" class=\"p-virtualscroller-spacer\" :style=\"spacerStyle\" v-bind=\"ptm('spacer')\"></div>\n <div v-if=\"!loaderDisabled && showLoader && d_loading\" :class=\"loaderClass\" v-bind=\"ptm('loader')\">\n <template v-if=\"$slots && $slots.loader\">\n <template v-for=\"(_, index) of loaderArr\" :key=\"index\">\n <slot name=\"loader\" :options=\"getLoaderOptions(index, isBoth() && { numCols: d_numItemsInViewport.cols })\"></slot>\n </template>\n </template>\n <slot name=\"loadingicon\">\n <SpinnerIcon spin class=\"p-virtualscroller-loading-icon\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n </template>\n <template v-else>\n <slot></slot>\n <slot name=\"content\" :items=\"items\" :rows=\"items\" :columns=\"loadedColumns\"></slot>\n </template>\n</template>\n\n<script>\nimport { findSingle, getHeight, getWidth, isVisible } from '@primeuix/utils/dom';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport BaseVirtualScroller from './BaseVirtualScroller.vue';\n\nexport default {\n name: 'VirtualScroller',\n extends: BaseVirtualScroller,\n inheritAttrs: false,\n emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n data() {\n const both = this.isBoth();\n\n return {\n first: both ? { rows: 0, cols: 0 } : 0,\n last: both ? { rows: 0, cols: 0 } : 0,\n page: both ? { rows: 0, cols: 0 } : 0,\n numItemsInViewport: both ? { rows: 0, cols: 0 } : 0,\n lastScrollPos: both ? { top: 0, left: 0 } : 0,\n d_numToleratedItems: this.numToleratedItems,\n d_loading: this.loading,\n loaderArr: [],\n spacerStyle: {},\n contentStyle: {}\n };\n },\n element: null,\n content: null,\n lastScrollPos: null,\n scrollTimeout: null,\n resizeTimeout: null,\n defaultWidth: 0,\n defaultHeight: 0,\n defaultContentWidth: 0,\n defaultContentHeight: 0,\n isRangeChanged: false,\n lazyLoadState: {},\n resizeListener: null,\n initialized: false,\n watch: {\n numToleratedItems(newValue) {\n this.d_numToleratedItems = newValue;\n },\n loading(newValue, oldValue) {\n if (this.lazy && newValue !== oldValue && newValue !== this.d_loading) {\n this.d_loading = newValue;\n }\n },\n items(newValue, oldValue) {\n if (!oldValue || oldValue.length !== (newValue || []).length) {\n this.init();\n this.calculateAutoSize();\n }\n },\n itemSize() {\n this.init();\n this.calculateAutoSize();\n },\n orientation() {\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n },\n scrollHeight() {\n this.init();\n this.calculateAutoSize();\n },\n scrollWidth() {\n this.init();\n this.calculateAutoSize();\n }\n },\n mounted() {\n this.viewInit();\n\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n this.lazyLoadState = this.lazyLoadState || {};\n },\n updated() {\n !this.initialized && this.viewInit();\n },\n unmounted() {\n this.unbindResizeListener();\n\n this.initialized = false;\n },\n methods: {\n viewInit() {\n if (isVisible(this.element)) {\n this.setContentEl(this.content);\n this.init();\n this.calculateAutoSize();\n this.bindResizeListener();\n\n this.defaultWidth = getWidth(this.element);\n this.defaultHeight = getHeight(this.element);\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n this.initialized = true;\n }\n },\n init() {\n if (!this.disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n }\n },\n isVertical() {\n return this.orientation === 'vertical';\n },\n isHorizontal() {\n return this.orientation === 'horizontal';\n },\n isBoth() {\n return this.orientation === 'both';\n },\n scrollTo(options) {\n //this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.element && this.element.scrollTo(options);\n },\n scrollToIndex(index, behavior = 'auto') {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.element;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize;\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (both) {\n newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index, numToleratedItems);\n horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n },\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const valid = both ? index.every((i) => i > -1) : index > -1;\n\n if (valid) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n },\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n let firstInViewport = this.first;\n let lastInViewport = 0;\n\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const { scrollTop, scrollLeft } = this.element;\n\n if (both) {\n firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };\n lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n\n firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n },\n calculateNumItems() {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const itemSize = this.itemSize;\n const contentPos = this.getContentPosition();\n const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));\n const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);\n const numItemsInViewport = both\n ? { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) }\n : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);\n\n const numToleratedItems = this.d_numToleratedItems || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n },\n calculateOptions() {\n const both = this.isBoth();\n const first = this.first;\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const last = both\n ? { rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true) }\n : calculateLast(first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n\n if (this.showLoader) {\n this.loaderArr = both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this.step ? (both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this.step ? this.step : last, this.items?.length || 0)\n };\n\n this.$emit('lazy-load', this.lazyLoadState);\n });\n }\n },\n calculateAutoSize() {\n if (this.autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.content) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const vertical = this.isVertical();\n\n this.content.style.minHeight = this.content.style.minWidth = 'auto';\n this.content.style.position = 'relative';\n this.element.style.contain = 'none';\n\n /*const [contentWidth, contentHeight] = [getWidth(this.content), getHeight(this.content)];\n\n contentWidth !== this.defaultContentWidth && (this.element.style.width = '');\n contentHeight !== this.defaultContentHeight && (this.element.style.height = '');*/\n\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n\n (both || horizontal) && (this.element.style.width = width < this.defaultWidth ? width + 'px' : this.scrollWidth || this.defaultWidth + 'px');\n (both || vertical) && (this.element.style.height = height < this.defaultHeight ? height + 'px' : this.scrollHeight || this.defaultHeight + 'px');\n\n this.content.style.minHeight = this.content.style.minWidth = '';\n this.content.style.position = '';\n this.element.style.contain = '';\n }\n });\n }\n },\n getLast(last = 0, isCols) {\n return this.items ? Math.min(isCols ? (this.columns || this.items[0])?.length || 0 : this.items?.length || 0, last) : 0;\n },\n getContentPosition() {\n if (this.content) {\n const style = getComputedStyle(this.content);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n },\n setSize() {\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const parentElement = this.element.parentElement;\n const width = this.scrollWidth || `${this.element.offsetWidth || parentElement.offsetWidth}px`;\n const height = this.scrollHeight || `${this.element.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name, _value) => (this.element.style[_name] = _value);\n\n if (both || horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n },\n setSpacerSize() {\n const items = this.items;\n\n if (items) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } });\n\n if (both) {\n setProp('height', items, this.itemSize[0], contentPos.y);\n setProp('width', this.columns || items[1], this.itemSize[1], contentPos.x);\n } else {\n horizontal ? setProp('width', this.columns || items, this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);\n }\n }\n },\n setContentPosition(pos) {\n if (this.content && !this.appendOnly) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (both) {\n setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));\n } else {\n const translateVal = calculateTranslateVal(first, this.itemSize);\n\n horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n },\n onScrollPositionChange(event) {\n const target = event.target;\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this.appendOnly || (this.appendOnly && (isScrollDown || isScrollRight))) {\n const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this.appendOnly || (this.appendOnly && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n },\n onScrollChange(event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.$emit('scroll-index-change', newState);\n\n if (this.lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this.step ? Math.min(this.getPageByFirst(first) * this.step, (this.items?.length || 0) - this.step) : first,\n last: Math.min(this.step ? (this.getPageByFirst(first) + 1) * this.step : last, this.items?.length || 0)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.$emit('lazy-load', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n },\n onScroll(event) {\n this.$emit('scroll', event);\n\n if (this.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (this.isPageChanged()) {\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this.step ? this.isPageChanged() : false);\n\n changed && (this.d_loading = true);\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader && (!this.lazy || this.loading === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n }, this.delay);\n }\n } else {\n this.onScrollChange(event);\n }\n },\n onResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (isVisible(this.element)) {\n const both = this.isBoth();\n const vertical = this.isVertical();\n const horizontal = this.isHorizontal();\n const [width, height] = [getWidth(this.element), getHeight(this.element)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;\n\n if (reinit) {\n this.d_numToleratedItems = this.numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n\n this.init();\n }\n }\n }, this.resizeDelay);\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = this.onResize.bind(this);\n\n window.addEventListener('resize', this.resizeListener);\n window.addEventListener('orientationchange', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n window.removeEventListener('orientationchange', this.resizeListener);\n this.resizeListener = null;\n }\n },\n getOptions(renderedIndex) {\n const count = (this.items || []).length;\n const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n },\n getLoaderOptions(index, extOptions) {\n let count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n };\n },\n getPageByFirst(first) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this.step || 1));\n },\n isPageChanged(first) {\n return this.step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n },\n setContentEl(el) {\n this.content = el || this.content || findSingle(this.element, '[data-pc-section=\"content\"]');\n },\n elementRef(el) {\n this.element = el;\n },\n contentRef(el) {\n this.content = el;\n }\n },\n computed: {\n containerClass() {\n return [\n 'p-virtualscroller',\n this.class,\n {\n 'p-virtualscroller-inline': this.inline,\n 'p-virtualscroller-both p-both-scroll': this.isBoth(),\n 'p-virtualscroller-horizontal p-horizontal-scroll': this.isHorizontal()\n }\n ];\n },\n contentClass() {\n return [\n 'p-virtualscroller-content',\n {\n 'p-virtualscroller-loading': this.d_loading\n }\n ];\n },\n loaderClass() {\n return [\n 'p-virtualscroller-loader',\n {\n 'p-virtualscroller-loader-mask': !this.$slots.loader\n }\n ];\n },\n loadedItems() {\n if (this.items && !this.d_loading) {\n if (this.isBoth()) return this.items.slice(this.appendOnly ? 0 : this.first.rows, this.last.rows).map((item) => (this.columns ? item : item.slice(this.appendOnly ? 0 : this.first.cols, this.last.cols)));\n else if (this.isHorizontal() && this.columns) return this.items;\n else return this.items.slice(this.appendOnly ? 0 : this.first, this.last);\n }\n\n return [];\n },\n loadedRows() {\n return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n },\n loadedColumns() {\n if (this.columns) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n\n if (both || horizontal) {\n return this.d_loading && this.loaderDisabled ? (both ? this.loaderArr[0] : this.loaderArr) : this.columns.slice(both ? this.first.cols : this.first, both ? this.last.cols : this.last);\n }\n }\n\n return this.columns;\n }\n },\n components: {\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","id","type","String","style","items","Array","itemSize","Number","scrollHeight","scrollWidth","orientation","numToleratedItems","delay","resizeDelay","lazy","Boolean","disabled","loaderDisabled","columns","loading","showSpacer","showLoader","tabindex","inline","step","appendOnly","autoSize","VirtualScrollerStyle","provide","$pcVirtualScroller","$parentInstance","beforeMount","_this$$primevueConfig","loadCSS","nonce","$primevueConfig","csp","BaseVirtualScroller","inheritAttrs","emits","data","both","isBoth","first","rows","cols","last","page","numItemsInViewport","lastScrollPos","top","left","d_numToleratedItems","d_loading","loaderArr","spacerStyle","contentStyle","element","content","scrollTimeout","resizeTimeout","defaultWidth","defaultHeight","defaultContentWidth","defaultContentHeight","isRangeChanged","lazyLoadState","resizeListener","initialized","watch","newValue","oldValue","length","init","calculateAutoSize","mounted","viewInit","updated","unmounted","unbindResizeListener","methods","isVisible","setContentEl","bindResizeListener","getWidth","getHeight","setSize","calculateOptions","setSpacerSize","isVertical","isHorizontal","scrollTo","options","scrollToIndex","index","_this","behavior","arguments","undefined","horizontal","valid","every","i","_this$element","_this$element$scrollT","scrollTop","_this$element$scrollL","scrollLeft","_this$calculateNumIte","calculateNumItems","contentPos","getContentPosition","calculateFirst","_index","_numT","calculateCoord","_first","_size","_cpos","newFirst","isScrollChanged","scrollInView","to","_this2","_this$getRenderedRang","getRenderedRange","viewport","isToStart","isToEnd","pos","calculateFirstInViewport","_pos","Math","floor","firstInViewport","lastInViewport","_this$element2","scrollPos","contentWidth","offsetWidth","contentHeight","offsetHeight","calculateNumItemsInViewport","_contentSize","_itemSize","ceil","calculateNumToleratedItems","_numItems","_this3","_this$calculateNumIte2","calculateLast","_num","_isCols","getLast","$emit","from","map","Promise","resolve","then","_this3$items","min","_this4","vertical","minHeight","minWidth","position","contain","_ref","width","height","_ref2","_this$items","isCols","getComputedStyle","parseFloat","paddingLeft","max","right","paddingRight","paddingTop","bottom","paddingBottom","x","y","_this5","parentElement","concat","setProp","_name","_value","_this6","_objectSpread","_defineProperty","setContentPosition","_this7","calculateTranslateVal","setTransform","_x","_y","transform","translateVal","onScrollPositionChange","event","_this8","target","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","lastValue","newLast","newScrollPos","isScrollDown","isScrollRight","currentIndex","triggerIndex","isScrollDownOrRight","onScrollChange","_this$onScrollPositio","newState","isPageChanged","_this$items2","_this$items3","getPageByFirst","isLazyStateChanged","onScroll","_this9","clearTimeout","_this$onScrollPositio2","changed","setTimeout","onResize","_this10","_ref3","isDiffWidth","isDiffHeight","reinit","bind","window","addEventListener","removeEventListener","getOptions","renderedIndex","count","even","odd","getLoaderOptions","extOptions","el","findSingle","elementRef","contentRef","computed","containerClass","contentClass","loaderClass","$slots","loader","loadedItems","_this11","slice","item","loadedRows","loadedColumns","components","SpinnerIcon","_ctx","_openBlock","_createElementBlock","_mergeProps","ref","$options","apply","ptmi","_renderSlot","styleClass","getItemOptions","$data","_createElementVNode","ptm","_Fragment","_renderList","key","_","numCols","d_numItemsInViewport","_createVNode","_component_SpinnerIcon","spin"],"mappings":";;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,qBAAqB;AAC3B,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,EAAE,EAAE;AACAC,MAAAA,IAAI,EAAEC,MAAM;MACZ,SAAS,EAAA;KACZ;AACDC,IAAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAA,EAAO,IAAI;AACXC,IAAAA,KAAK,EAAE;AACHH,MAAAA,IAAI,EAAEI,KAAK;MACX,SAAS,EAAA;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNL,MAAAA,IAAI,EAAE,CAACM,MAAM,EAAEF,KAAK,CAAC;MACrB,SAAS,EAAA;KACZ;AACDG,IAAAA,YAAY,EAAE,IAAI;AAClBC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,WAAW,EAAE;AACTT,MAAAA,IAAI,EAAEC,MAAM;MACZ,SAAS,EAAA;KACZ;AACDS,IAAAA,iBAAiB,EAAE;AACfV,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDK,IAAAA,KAAK,EAAE;AACHX,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDM,IAAAA,WAAW,EAAE;AACTZ,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDO,IAAAA,IAAI,EAAE;AACFb,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNf,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDE,IAAAA,cAAc,EAAE;AACZhB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDG,IAAAA,OAAO,EAAE;AACLjB,MAAAA,IAAI,EAAEI,KAAK;MACX,SAAS,EAAA;KACZ;AACDc,IAAAA,OAAO,EAAE;AACLlB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDK,IAAAA,UAAU,EAAE;AACRnB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDM,IAAAA,UAAU,EAAE;AACRpB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDO,IAAAA,QAAQ,EAAE;AACNrB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgB,IAAAA,MAAM,EAAE;AACJtB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDS,IAAAA,IAAI,EAAE;AACFvB,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAS,EAAA;KACZ;AACDkB,IAAAA,UAAU,EAAE;AACRxB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;KACZ;AACDW,IAAAA,QAAQ,EAAE;AACNzB,MAAAA,IAAI,EAAEc,OAAO;MACb,SAAS,EAAA;AACb;GACH;AACDZ,EAAAA,KAAK,EAAEwB,oBAAoB;EAC3BC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,kBAAkB,EAAE,IAAI;AACxBC,MAAAA,eAAe,EAAE;KACpB;GACJ;EACDC,WAAW,EAAA,SAAXA,WAAWA,GAAG;AAAA,IAAA,IAAAC,qBAAA;IACVL,oBAAoB,CAACM,OAAO,CAAC;AAAEC,MAAAA,KAAK,GAAAF,qBAAA,GAAE,IAAI,CAACG,eAAe,cAAAH,qBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,qBAAA,GAApBA,qBAAA,CAAsBI,GAAG,cAAAJ,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAzBA,qBAAA,CAA2BE;AAAM,KAAC,CAAC;AAC7E;AACJ,CAAC;;;;;;;;ACjDD,aAAe;AACXrC,EAAAA,IAAI,EAAE,iBAAiB;AACvB,EAAA,SAAA,EAASwC,QAAmB;AAC5BC,EAAAA,YAAY,EAAE,KAAK;EACnBC,KAAK,EAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,CAAC;EACjFC,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACH,IAAA,IAAMC,OAAO,IAAI,CAACC,MAAM,EAAE;IAE1B,OAAO;MACHC,KAAK,EAAEF,IAAG,GAAI;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE;AAAE,OAAE,GAAE,CAAC;MACtCC,IAAI,EAAEL,IAAG,GAAI;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE;AAAE,OAAE,GAAE,CAAC;MACrCE,IAAI,EAAEN,IAAG,GAAI;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE;AAAE,OAAE,GAAE,CAAC;MACrCG,kBAAkB,EAAEP,OAAO;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE;AAAE,OAAA,GAAI,CAAC;MACnDI,aAAa,EAAER,IAAK,GAAE;AAAES,QAAAA,GAAG,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE;AAAE,OAAA,GAAI,CAAC;MAC7CC,mBAAmB,EAAE,IAAI,CAACzC,iBAAiB;MAC3C0C,SAAS,EAAE,IAAI,CAAClC,OAAO;AACvBmC,MAAAA,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE,EAAE;AACfC,MAAAA,YAAY,EAAE;KACjB;GACJ;AACDC,EAAAA,OAAO,EAAE,IAAI;AACbC,EAAAA,OAAO,EAAE,IAAI;AACbT,EAAAA,aAAa,EAAE,IAAI;AACnBU,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,YAAY,EAAE,CAAC;AACfC,EAAAA,aAAa,EAAE,CAAC;AAChBC,EAAAA,mBAAmB,EAAE,CAAC;AACtBC,EAAAA,oBAAoB,EAAE,CAAC;AACvBC,EAAAA,cAAc,EAAE,KAAK;EACrBC,aAAa,EAAE,EAAE;AACjBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,KAAK,EAAE;AACH1D,IAAAA,iBAAiB,EAAjBA,SAAAA,iBAAiBA,CAAC2D,QAAQ,EAAE;MACxB,IAAI,CAAClB,mBAAoB,GAAEkB,QAAQ;KACtC;AACDnD,IAAAA,OAAO,WAAPA,OAAOA,CAACmD,QAAQ,EAAEC,QAAQ,EAAE;AACxB,MAAA,IAAI,IAAI,CAACzD,IAAG,IAAKwD,QAAO,KAAMC,QAAS,IAAGD,QAAS,KAAI,IAAI,CAACjB,SAAS,EAAE;QACnE,IAAI,CAACA,SAAQ,GAAIiB,QAAQ;AAC7B;KACH;AACDlE,IAAAA,KAAK,WAALA,KAAKA,CAACkE,QAAQ,EAAEC,QAAQ,EAAE;AACtB,MAAA,IAAI,CAACA,QAAS,IAAGA,QAAQ,CAACC,MAAO,KAAI,CAACF,QAAO,IAAK,EAAE,EAAEE,MAAM,EAAE;QAC1D,IAAI,CAACC,IAAI,EAAE;QACX,IAAI,CAACC,iBAAiB,EAAE;AAC5B;KACH;IACDpE,QAAQ,EAAA,SAARA,QAAQA,GAAG;MACP,IAAI,CAACmE,IAAI,EAAE;MACX,IAAI,CAACC,iBAAiB,EAAE;KAC3B;IACDhE,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,IAAI,CAACuC,gBAAgB,IAAI,CAACP,MAAM,EAAG,GAAE;AAAEQ,QAAAA,GAAG,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE;AAAE,OAAE,GAAE,CAAC;KAC/D;IACD3C,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,IAAI,CAACiE,IAAI,EAAE;MACX,IAAI,CAACC,iBAAiB,EAAE;KAC3B;IACDjE,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,IAAI,CAACgE,IAAI,EAAE;MACX,IAAI,CAACC,iBAAiB,EAAE;AAC5B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,CAACC,QAAQ,EAAE;IAEf,IAAI,CAAC3B,gBAAgB,IAAI,CAACP,MAAM,EAAG,GAAE;AAAEQ,MAAAA,GAAG,EAAE,CAAC;AAAEC,MAAAA,IAAI,EAAE;AAAE,KAAE,GAAE,CAAC;IAC5D,IAAI,CAACe,gBAAgB,IAAI,CAACA,iBAAiB,EAAE;GAChD;EACDW,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,CAAC,IAAI,CAACT,WAAU,IAAK,IAAI,CAACQ,QAAQ,EAAE;GACvC;EACDE,SAAS,EAAA,SAATA,SAASA,GAAG;IACR,IAAI,CAACC,oBAAoB,EAAE;IAE3B,IAAI,CAACX,WAAY,GAAE,KAAK;GAC3B;AACDY,EAAAA,OAAO,EAAE;IACLJ,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACP,MAAA,IAAIK,SAAS,CAAC,IAAI,CAACxB,OAAO,CAAC,EAAE;AACzB,QAAA,IAAI,CAACyB,YAAY,CAAC,IAAI,CAACxB,OAAO,CAAC;QAC/B,IAAI,CAACe,IAAI,EAAE;QACX,IAAI,CAACC,iBAAiB,EAAE;QACxB,IAAI,CAACS,kBAAkB,EAAE;QAEzB,IAAI,CAACtB,YAAW,GAAIuB,QAAQ,CAAC,IAAI,CAAC3B,OAAO,CAAC;QAC1C,IAAI,CAACK,aAAY,GAAIuB,SAAS,CAAC,IAAI,CAAC5B,OAAO,CAAC;QAC5C,IAAI,CAACM,sBAAsBqB,QAAQ,CAAC,IAAI,CAAC1B,OAAO,CAAC;QACjD,IAAI,CAACM,uBAAuBqB,SAAS,CAAC,IAAI,CAAC3B,OAAO,CAAC;QACnD,IAAI,CAACU,WAAU,GAAI,IAAI;AAC3B;KACH;IACDK,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACH,MAAA,IAAI,CAAC,IAAI,CAACzD,QAAQ,EAAE;QAChB,IAAI,CAACsE,OAAO,EAAE;QACd,IAAI,CAACC,gBAAgB,EAAE;QACvB,IAAI,CAACC,aAAa,EAAE;AACxB;KACH;IACDC,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAAC/E,WAAY,KAAI,UAAU;KACzC;IACDgF,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,OAAO,IAAI,CAAChF,WAAY,KAAI,YAAY;KAC3C;IACDgC,MAAM,EAAA,SAANA,MAAMA,GAAG;AACL,MAAA,OAAO,IAAI,CAAChC,WAAY,KAAI,MAAM;KACrC;AACDiF,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACC,OAAO,EAAE;AACd;MACA,IAAI,CAACnC,OAAQ,IAAG,IAAI,CAACA,OAAO,CAACkC,QAAQ,CAACC,OAAO,CAAC;KACjD;AACDC,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACC,KAAK,EAAqB;AAAA,MAAA,IAAAC,KAAA,GAAA,IAAA;AAAA,MAAA,IAAnBC,QAAS,GAAAC,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,MAAM;AAClC,MAAA,IAAMxD,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,MAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;MACtC,IAAMU,KAAM,GAAE3D,OAAOqD,KAAK,CAACO,KAAK,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAE,GAAE,CAAC,CAAC;AAAA,OAAA,CAAA,GAAIR,KAAI,GAAI,CAAC,CAAC;AAE5D,MAAA,IAAIM,KAAK,EAAE;AACP,QAAA,IAAMzD,KAAI,GAAI,IAAI,CAACA,KAAK;AACxB,QAAA,IAAA4D,aAAA,GAA0C,IAAI,CAAC9C,OAAO;UAAA+C,qBAAA,GAAAD,aAAA,CAA9CE,SAAU;AAAVA,UAAAA,SAAU,GAAAD,qBAAA,KAAE,KAAA,CAAA,GAAA,CAAC,GAAAA,qBAAA;UAAAE,qBAAA,GAAAH,aAAA,CAAEI;AAAAA,UAAAA,uCAAa,KAAA,CAAA,GAAA,CAAA,GAAAD,qBAAA;AACpC,QAAA,IAAAE,qBAAA,GAA8B,IAAI,CAACC,iBAAiB,EAAE;UAA9ClG,iBAAkB,GAAAiG,qBAAA,CAAlBjG,iBAAkB;AAC1B,QAAA,IAAMmG,aAAa,IAAI,CAACC,kBAAkB,EAAE;AAC5C,QAAA,IAAMzG,QAAO,GAAI,IAAI,CAACA,QAAQ;AAC9B,QAAA,IAAM0G,cAAa,GAAI,SAAjBA,cAAaA,GAAA;AAAA,UAAA,IAAKC,MAAK,GAAAhB,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC;UAAA,IAAEiB,KAAK,GAAAjB,SAAA,CAAAzB,MAAA,GAAAyB,CAAAA,GAAAA,SAAA,MAAAC,SAAA;AAAA,UAAA,OAAMe,MAAK,IAAKC,KAAM,GAAE,CAAE,GAAED,MAAM;SAAC;QAC5E,IAAME,cAAe,GAAE,SAAjBA,cAAeA,CAAGC,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAA;AAAA,UAAA,OAAKF,MAAO,GAAEC,KAAM,GAAEC,KAAK;AAAA,SAAA;AACvE,QAAA,IAAM3B,QAAO,GAAI,SAAXA,QAAOA,GAAA;AAAA,UAAA,IAAKxC,IAAG,GAAA8C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC;AAAA,UAAA,IAAE/C,GAAE,GAAA+C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC;UAAA,OAAKF,KAAI,CAACJ,QAAQ,CAAC;AAAExC,YAAAA,IAAI,EAAJA,IAAI;AAAED,YAAAA,GAAG,EAAHA,GAAG;AAAE8C,YAAAA,QAAO,EAAPA;AAAS,WAAC,CAAC;AAAA,SAAA;QAC9E,IAAIuB,QAAS,GAAE9E,IAAK,GAAE;AAAEG,UAAAA,IAAI,EAAE,CAAC;AAAEC,UAAAA,IAAI,EAAE;AAAE,SAAA,GAAI,CAAC;QAC9C,IAAIoB,cAAa,GAAI,KAAK;AACtBuD,UAAAA,eAAgB,GAAE,KAAK;AAE3B,QAAA,IAAI/E,IAAI,EAAE;AACN8E,UAAAA,QAAS,GAAE;AAAE3E,YAAAA,IAAI,EAAEoE,cAAc,CAAClB,KAAK,CAAC,CAAC,CAAC,EAAEnF,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAAEkC,IAAI,EAAEmE,cAAc,CAAClB,KAAK,CAAC,CAAC,CAAC,EAAEnF,iBAAiB,CAAC,CAAC,CAAC;WAAG;AACzHgF,UAAAA,QAAQ,CAACwB,cAAc,CAACI,QAAQ,CAAC1E,IAAI,EAAEvC,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAAC3D,IAAI,CAAC,EAAEgE,cAAc,CAACI,QAAQ,CAAC3E,IAAI,EAAEtC,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAAC5D,GAAG,CAAC,CAAC;AACjIsE,UAAAA,eAAc,GAAI,IAAI,CAACvE,aAAa,CAACC,GAAE,KAAMuD,aAAa,IAAI,CAACxD,aAAa,CAACE,SAASwD,UAAU;AAChG1C,UAAAA,iBAAiBsD,QAAQ,CAAC3E,IAAK,KAAID,KAAK,CAACC,QAAQ2E,QAAQ,CAAC1E,IAAG,KAAMF,KAAK,CAACE,IAAI;AACjF,SAAE,MAAK;AACH0E,UAAAA,QAAO,GAAIP,cAAc,CAAClB,KAAK,EAAEnF,iBAAiB,CAAC;AACnDwF,UAAAA,UAAS,GAAIR,QAAQ,CAACwB,cAAc,CAACI,QAAQ,EAAEjH,QAAQ,EAAEwG,UAAU,CAAC3D,IAAI,CAAC,EAAEsD,SAAS,CAAE,GAAEd,QAAQ,CAACgB,UAAU,EAAEQ,cAAc,CAACI,QAAQ,EAAEjH,QAAQ,EAAEwG,UAAU,CAAC5D,GAAG,CAAC,CAAC;UAChKsE,kBAAkB,IAAI,CAACvE,aAAc,MAAKkD,UAAS,GAAIQ,UAAS,GAAIF,SAAS,CAAC;UAC9ExC,cAAe,GAAEsD,QAAO,KAAM5E,KAAK;AACvC;QAEA,IAAI,CAACsB,cAAa,GAAIA,cAAc;AACpCuD,QAAAA,eAAgB,KAAI,IAAI,CAAC7E,KAAM,GAAE4E,QAAQ,CAAC;AAC9C;KACH;AACDE,IAAAA,YAAY,WAAZA,YAAYA,CAAC3B,KAAK,EAAE4B,EAAE,EAAqB;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA;AAAA,MAAA,IAAnB3B,QAAS,GAAAC,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,MAAM;AACrC,MAAA,IAAIyB,EAAE,EAAE;AACJ,QAAA,IAAMjF,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;QACtC,IAAMU,KAAM,GAAE3D,OAAOqD,KAAK,CAACO,KAAK,CAAC,UAACC,CAAC,EAAA;UAAA,OAAKA,CAAE,GAAE,CAAC,CAAC;AAAA,SAAA,CAAA,GAAIR,KAAI,GAAI,CAAC,CAAC;AAE5D,QAAA,IAAIM,KAAK,EAAE;AACP,UAAA,IAAAwB,qBAAA,GAA4B,IAAI,CAACC,gBAAgB,EAAE;YAA3ClF,KAAK,GAAAiF,qBAAA,CAALjF,KAAK;YAAEmF,iCAAAA;AACf,UAAA,IAAMnC,QAAO,GAAI,SAAXA,QAAOA,GAAA;AAAA,YAAA,IAAKxC,IAAG,GAAA8C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC;AAAA,YAAA,IAAE/C,GAAE,GAAA+C,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC;YAAA,OAAK0B,MAAI,CAAChC,QAAQ,CAAC;AAAExC,cAAAA,IAAI,EAAJA,IAAI;AAAED,cAAAA,GAAG,EAAHA,GAAG;AAAE8C,cAAAA,QAAO,EAAPA;AAAS,aAAC,CAAC;AAAA,WAAA;AAC9E,UAAA,IAAM+B,SAAU,GAAEL,EAAC,KAAM,UAAU;AACnC,UAAA,IAAMM,OAAQ,GAAEN,EAAG,KAAI,QAAQ;AAE/B,UAAA,IAAIK,SAAS,EAAE;AACX,YAAA,IAAItF,IAAI,EAAE;AACN,cAAA,IAAIqF,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAED,KAAK,CAACC,OAAOkD,KAAK,CAAC,CAAC,CAAC,EAAE;AAC7CH,gBAAAA,QAAQ,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAK,GAAE,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAACwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,CAAC,IAAI,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClG,eAAE,MAAK,IAAIwH,QAAQ,CAACnF,KAAK,CAACE,IAAG,GAAIF,KAAK,CAACE,IAAK,GAAEiD,KAAK,CAAC,CAAC,CAAC,EAAE;AACpDH,gBAAAA,QAAQ,CAAC,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAG,GAAI,CAAC,IAAI,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAEwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClG;AACJ,aAAE,MAAK;AACH,cAAA,IAAIwH,QAAQ,CAACnF,KAAI,GAAIA,KAAI,GAAImD,KAAK,EAAE;gBAChC,IAAMmC,GAAI,GAAE,CAACH,QAAQ,CAACnF,KAAM,GAAE,CAAC,IAAI,IAAI,CAACrC,QAAQ;AAEhD6F,gBAAAA,UAAS,GAAIR,QAAQ,CAACsC,GAAG,EAAE,CAAC,CAAA,GAAItC,QAAQ,CAAC,CAAC,EAAEsC,GAAG,CAAC;AACpD;AACJ;WACJ,MAAO,IAAID,OAAO,EAAE;AAChB,YAAA,IAAIvF,IAAI,EAAE;AACN,cAAA,IAAIqF,QAAQ,CAAChF,IAAI,CAACF,IAAK,GAAED,KAAK,CAACC,QAAQkD,KAAK,CAAC,CAAC,CAAE,GAAE,CAAC,EAAE;AACjDH,gBAAAA,QAAQ,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAK,GAAE,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAACwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,CAAC,IAAI,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClG,eAAE,MAAK,IAAIwH,QAAQ,CAAChF,IAAI,CAACD,OAAOF,KAAK,CAACE,IAAK,IAAGiD,KAAK,CAAC,CAAC,CAAA,GAAI,CAAC,EAAE;AACxDH,gBAAAA,QAAQ,CAAC,CAACmC,QAAQ,CAACnF,KAAK,CAACE,IAAG,GAAI,CAAC,IAAI,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,EAAEwH,QAAQ,CAACnF,KAAK,CAACC,IAAK,GAAE,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClG;AACJ,aAAE,MAAK;cACH,IAAIwH,QAAQ,CAAChF,IAAG,GAAIH,KAAI,IAAKmD,KAAM,GAAE,CAAC,EAAE;gBACpC,IAAMmC,KAAI,GAAE,CAACH,QAAQ,CAACnF,KAAM,GAAE,CAAC,IAAI,IAAI,CAACrC,QAAQ;AAEhD6F,gBAAAA,UAAS,GAAIR,QAAQ,CAACsC,KAAG,EAAE,CAAC,CAAA,GAAItC,QAAQ,CAAC,CAAC,EAAEsC,KAAG,CAAC;AACpD;AACJ;AACJ;AACJ;AACJ,OAAE,MAAK;AACH,QAAA,IAAI,CAACpC,aAAa,CAACC,KAAK,EAAEE,QAAQ,CAAC;AACvC;KACH;IACD6B,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AACf,MAAA,IAAMK,wBAAuB,GAAI,SAA3BA,wBAAuBA,CAAKC,IAAI,EAAEd,KAAK,EAAA;QAAA,OAAKe,IAAI,CAACC,KAAK,CAACF,IAAK,IAAGd,KAAM,IAAGc,IAAI,CAAC,CAAC;AAAA,OAAA;AAEpF,MAAA,IAAIG,eAAc,GAAI,IAAI,CAAC3F,KAAK;MAChC,IAAI4F,cAAa,GAAI,CAAC;MAEtB,IAAI,IAAI,CAAC9E,OAAO,EAAE;AACd,QAAA,IAAMhB,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;AACtC,QAAA,IAAA8C,cAAA,GAAkC,IAAI,CAAC/E,OAAO;UAAtCgD,SAAS,GAAA+B,cAAA,CAAT/B,SAAS;UAAEE,UAAW,GAAA6B,cAAA,CAAX7B,UAAW;AAE9B,QAAA,IAAIlE,IAAI,EAAE;AACN6F,UAAAA,eAAgB,GAAE;YAAE1F,IAAI,EAAEsF,wBAAwB,CAACzB,SAAS,EAAE,IAAI,CAACnG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAEuC,IAAI,EAAEqF,wBAAwB,CAACvB,UAAU,EAAE,IAAI,CAACrG,QAAQ,CAAC,CAAC,CAAC;WAAG;AAC/IiI,UAAAA,cAAe,GAAE;YAAE3F,IAAI,EAAE0F,eAAe,CAAC1F,IAAG,GAAI,IAAI,CAACI,kBAAkB,CAACJ,IAAI;YAAEC,IAAI,EAAEyF,eAAe,CAACzF,IAAK,GAAE,IAAI,CAACG,kBAAkB,CAACH;WAAM;AAC7I,SAAE,MAAK;AACH,UAAA,IAAM4F,SAAQ,GAAItC,UAAW,GAAEQ,aAAaF,SAAS;UAErD6B,eAAc,GAAIJ,wBAAwB,CAACO,SAAS,EAAE,IAAI,CAACnI,QAAQ,CAAC;AACpEiI,UAAAA,iBAAiBD,eAAc,GAAI,IAAI,CAACtF,kBAAkB;AAC9D;AACJ;MAEA,OAAO;QACHL,KAAK,EAAE,IAAI,CAACA,KAAK;QACjBG,IAAI,EAAE,IAAI,CAACA,IAAI;AACfgF,QAAAA,QAAQ,EAAE;AACNnF,UAAAA,KAAK,EAAE2F,eAAe;AACtBxF,UAAAA,IAAI,EAAEyF;AACV;OACH;KACJ;IACD1B,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,IAAMpE,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,MAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;AACtC,MAAA,IAAMpF,QAAO,GAAI,IAAI,CAACA,QAAQ;AAC9B,MAAA,IAAMwG,aAAa,IAAI,CAACC,kBAAkB,EAAE;AAC5C,MAAA,IAAM2B,YAAW,GAAI,IAAI,CAACjF,OAAQ,GAAE,IAAI,CAACA,OAAO,CAACkF,WAAU,GAAI7B,UAAU,CAAC3D,IAAG,GAAI,CAAC;AAClF,MAAA,IAAMyF,aAAY,GAAI,IAAI,CAACnF,OAAQ,GAAE,IAAI,CAACA,OAAO,CAACoF,YAAa,GAAE/B,UAAU,CAAC5D,GAAE,GAAI,CAAC;AACnF,MAAA,IAAM4F,2BAA4B,GAAE,SAA9BA,2BAA4BA,CAAGC,YAAY,EAAEC,SAAS,EAAA;QAAA,OAAKZ,IAAI,CAACa,IAAI,CAACF,YAAW,IAAKC,SAAU,IAAGD,YAAY,CAAC,CAAC;AAAA,OAAA;AACtH,MAAA,IAAMG,6BAA6B,SAA7BA,2BAA8BC,SAAS,EAAA;AAAA,QAAA,OAAKf,IAAI,CAACa,IAAI,CAACE,SAAU,GAAE,CAAC,CAAC;AAAA,OAAA;MAC1E,IAAMnG,kBAAmB,GAAEP,IAAG,GACxB;QAAEG,IAAI,EAAEkG,2BAA2B,CAACF,aAAa,EAAEtI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAEuC,IAAI,EAAEiG,2BAA2B,CAACJ,YAAY,EAAEpI,QAAQ,CAAC,CAAC,CAAC;OAAE,GAC9HwI,2BAA2B,CAAC3C,UAAW,GAAEuC,YAAW,GAAIE,aAAa,EAAEtI,QAAQ,CAAC;AAEtF,MAAA,IAAMK,iBAAkB,GAAE,IAAI,CAACyC,mBAAkB,KAAMX,IAAG,GAAI,CAACyG,0BAA0B,CAAClG,kBAAkB,CAACJ,IAAI,CAAC,EAAEsG,0BAA0B,CAAClG,kBAAkB,CAACH,IAAI,CAAC,IAAIqG,0BAA0B,CAAClG,kBAAkB,CAAC,CAAC;MAE1N,OAAO;AAAEA,QAAAA,kBAAkB,EAAlBA,kBAAkB;AAAErC,QAAAA,mBAAAA;OAAmB;KACnD;IACD4E,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;AAAA,MAAA,IAAA6D,MAAA,GAAA,IAAA;AACf,MAAA,IAAM3G,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,MAAA,IAAMC,KAAI,GAAI,IAAI,CAACA,KAAK;AACxB,MAAA,IAAA0G,sBAAA,GAAkD,IAAI,CAACxC,iBAAiB,EAAE;QAAlE7D,kBAAkB,GAAAqG,sBAAA,CAAlBrG,kBAAkB;QAAErC,iBAAgB,GAAA0I,sBAAA,CAAhB1I,iBAAgB;MAC5C,IAAM2I,aAAY,GAAI,SAAhBA,aAAYA,CAAKlC,MAAM,EAAEmC,IAAI,EAAErC,KAAK,EAAA;AAAA,QAAA,IAAEsC,OAAQ,GAAAvD,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,KAAK;QAAA,OAAKmD,MAAI,CAACK,OAAO,CAACrC,MAAK,GAAImC,OAAO,CAACnC,MAAO,GAAEF,QAAQ,CAAA,GAAI,CAAC,IAAIA,KAAK,EAAEsC,OAAO,CAAC;AAAA,OAAA;MACvI,IAAM1G,IAAK,GAAEL,IAAG,GACV;AAAEG,QAAAA,IAAI,EAAE0G,aAAa,CAAC3G,KAAK,CAACC,IAAI,EAAEI,kBAAkB,CAACJ,IAAI,EAAEjC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAAEkC,QAAAA,IAAI,EAAEyG,aAAa,CAAC3G,KAAK,CAACE,IAAI,EAAEG,kBAAkB,CAACH,IAAI,EAAElC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI;OAAE,GACvK2I,aAAa,CAAC3G,KAAK,EAAEK,kBAAkB,EAAErC,iBAAiB,CAAC;MAEjE,IAAI,CAACmC,IAAG,GAAIA,IAAI;MAChB,IAAI,CAACE,kBAAiB,GAAIA,kBAAkB;MAC5C,IAAI,CAACI,sBAAsBzC,iBAAiB;MAC5C,IAAI,CAAC+I,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAACtG,mBAAmB,CAAC;MAEhE,IAAI,IAAI,CAAC/B,UAAU,EAAE;QACjB,IAAI,CAACiC,SAAQ,GAAIb,IAAG,GAAIpC,KAAK,CAACsJ,IAAI,CAAC;UAAEnF,MAAM,EAAExB,kBAAkB,CAACJ;SAAM,CAAC,CAACgH,GAAG,CAAC,YAAA;UAAA,OAAMvJ,KAAK,CAACsJ,IAAI,CAAC;YAAEnF,MAAM,EAAExB,kBAAkB,CAACH;AAAK,WAAC,CAAC;AAAA,SAAA,CAAE,GAAExC,KAAK,CAACsJ,IAAI,CAAC;AAAEnF,UAAAA,MAAM,EAAExB;AAAmB,SAAC,CAAC;AACnL;MAEA,IAAI,IAAI,CAAClC,IAAI,EAAE;AACX+I,QAAAA,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,YAAM;AAAA,UAAA,IAAAC,YAAA;UACzBZ,MAAI,CAAClF,gBAAgB;AACjBvB,YAAAA,KAAK,EAAEyG,MAAI,CAAC5H,IAAK,GAAGiB,OAAO;AAAEG,cAAAA,IAAI,EAAE,CAAC;cAAEC,IAAI,EAAEF,KAAK,CAACE;aAAK,GAAI,CAAC,GAAIF,KAAK;AACrEG,YAAAA,IAAI,EAAEsF,IAAI,CAAC6B,GAAG,CAACb,MAAI,CAAC5H,IAAK,GAAE4H,MAAI,CAAC5H,IAAG,GAAIsB,IAAI,EAAE,CAAA,CAAAkH,YAAA,GAAAZ,MAAI,CAAChJ,KAAK,MAAA,IAAA,IAAA4J,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,YAAA,CAAYxF,MAAK,KAAK,CAAC;WACvE;UAED4E,MAAI,CAACM,KAAK,CAAC,WAAW,EAAEN,MAAI,CAAClF,aAAa,CAAC;AAC/C,SAAC,CAAC;AACN;KACH;IACDQ,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAAA,MAAA,IAAAwF,MAAA,GAAA,IAAA;MAChB,IAAI,IAAI,CAACxI,QAAS,IAAG,CAAC,IAAI,CAAC2B,SAAS,EAAE;AAClCwG,QAAAA,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,YAAM;UACzB,IAAIG,MAAI,CAACxG,OAAO,EAAE;AACd,YAAA,IAAMjB,OAAOyH,MAAI,CAACxH,MAAM,EAAE;AAC1B,YAAA,IAAMyD,aAAa+D,MAAI,CAACxE,YAAY,EAAE;AACtC,YAAA,IAAMyE,QAAO,GAAID,MAAI,CAACzE,UAAU,EAAE;AAElCyE,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACiK,SAAU,GAAEF,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACkK,QAAS,GAAE,MAAM;AACnEH,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACmK,WAAW,UAAU;AACxCJ,YAAAA,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACoK,OAAQ,GAAE,MAAM;;AAEnC;;AAEA;;AAGA,YAAA,IAAAC,IAAA,GAAwB,CAACpF,QAAQ,CAAC8E,MAAI,CAACzG,OAAO,CAAC,EAAE4B,SAAS,CAAC6E,MAAI,CAACzG,OAAO,CAAC,CAAC;AAAlEgH,cAAAA,KAAK,GAAAD,IAAA,CAAA,CAAA,CAAA;AAAEE,cAAAA,MAAM,GAAAF,IAAA,CAAA,CAAA,CAAA;AAEpB,YAAA,CAAC/H,IAAK,IAAG0D,UAAU,MAAM+D,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACsK,KAAI,GAAIA,KAAI,GAAIP,MAAI,CAACrG,YAAa,GAAE4G,KAAM,GAAE,IAAG,GAAIP,MAAI,CAACzJ,WAAU,IAAKyJ,MAAI,CAACrG,YAAa,GAAE,IAAI,CAAC;AAC5I,YAAA,CAACpB,IAAG,IAAK0H,QAAQ,MAAMD,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACuK,MAAO,GAAEA,MAAK,GAAIR,MAAI,CAACpG,aAAc,GAAE4G,MAAK,GAAI,IAAK,GAAER,MAAI,CAAC1J,YAAa,IAAG0J,MAAI,CAACpG,aAAc,GAAE,IAAI,CAAC;AAEhJoG,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACiK,SAAU,GAAEF,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACkK,QAAO,GAAI,EAAE;AAC/DH,YAAAA,MAAI,CAACxG,OAAO,CAACvD,KAAK,CAACmK,QAAO,GAAI,EAAE;AAChCJ,YAAAA,MAAI,CAACzG,OAAO,CAACtD,KAAK,CAACoK,OAAM,GAAI,EAAE;AACnC;AACJ,SAAC,CAAC;AACN;KACH;IACDd,OAAO,EAAA,SAAPA,OAAOA,GAAmB;MAAA,IAAAkB,KAAA,EAAAC,WAAA;AAAA,MAAA,IAAlB9H,2EAAO,CAAC;MAAA,IAAE+H,MAAM,GAAA5E,SAAA,CAAAzB,MAAA,GAAAyB,CAAAA,GAAAA,SAAA,MAAAC,SAAA;MACpB,OAAO,IAAI,CAAC9F,QAAQgI,IAAI,CAAC6B,GAAG,CAACY,SAAS,CAAA,CAAAF,KAAA,GAAC,IAAI,CAACzJ,OAAQ,IAAG,IAAI,CAACd,KAAK,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAuK,KAAA,KAA9BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAA,CAAiCnG,MAAK,KAAK,CAAA,GAAI,CAAA,CAAAoG,WAAA,GAAA,IAAI,CAACxK,KAAK,cAAAwK,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,WAAA,CAAYpG,MAAO,KAAG,CAAC,EAAE1B,IAAI,CAAE,GAAE,CAAC;KAC1H;IACDiE,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;MACjB,IAAI,IAAI,CAACrD,OAAO,EAAE;AACd,QAAA,IAAMvD,KAAM,GAAE2K,gBAAgB,CAAC,IAAI,CAACpH,OAAO,CAAC;QAC5C,IAAMP,IAAK,GAAE4H,UAAU,CAAC5K,KAAK,CAAC6K,WAAW,CAAE,GAAE5C,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAACgD,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QACrF,IAAM+H,KAAM,GAAEH,UAAU,CAAC5K,KAAK,CAACgL,YAAY,CAAE,GAAE/C,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAAC+K,KAAK,CAAE,IAAG,CAAC,EAAE,CAAC,CAAC;QACxF,IAAMhI,GAAE,GAAI6H,UAAU,CAAC5K,KAAK,CAACiL,UAAU,CAAA,GAAIhD,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAAC+C,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,IAAMmI,MAAK,GAAIN,UAAU,CAAC5K,KAAK,CAACmL,aAAa,CAAA,GAAIlD,IAAI,CAAC6C,GAAG,CAACF,UAAU,CAAC5K,KAAK,CAACkL,MAAM,CAAE,IAAG,CAAC,EAAE,CAAC,CAAC;QAE3F,OAAO;AAAElI,UAAAA,IAAI,EAAJA,IAAI;AAAE+H,UAAAA,KAAK,EAALA,KAAK;AAAEhI,UAAAA,GAAG,EAAHA,GAAG;AAAEmI,UAAAA,MAAM,EAANA,MAAM;UAAEE,CAAC,EAAEpI,OAAO+H,KAAK;UAAEM,CAAC,EAAEtI,GAAI,GAAEmI;SAAQ;AACzE;MAEA,OAAO;AAAElI,QAAAA,IAAI,EAAE,CAAC;AAAE+H,QAAAA,KAAK,EAAE,CAAC;AAAEhI,QAAAA,GAAG,EAAE,CAAC;AAAEmI,QAAAA,MAAM,EAAE,CAAC;AAAEE,QAAAA,CAAC,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE;OAAG;KAC9D;IACDlG,OAAO,EAAA,SAAPA,OAAOA,GAAG;AAAA,MAAA,IAAAmG,MAAA,GAAA,IAAA;MACN,IAAI,IAAI,CAAChI,OAAO,EAAE;AACd,QAAA,IAAMhB,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;AACtC,QAAA,IAAMgG,aAAc,GAAE,IAAI,CAACjI,OAAO,CAACiI,aAAa;AAChD,QAAA,IAAMjB,KAAI,GAAI,IAAI,CAAChK,yBAAkB,IAAI,CAACgD,OAAO,CAACkF,WAAU,IAAK+C,aAAa,CAAC/C,WAAW,EAAI,IAAA,CAAA;AAC9F,QAAA,IAAM+B,SAAS,IAAI,CAAClK,YAAa,OAAAmL,MAAA,CAAM,IAAI,CAAClI,OAAO,CAACoF,YAAW,IAAK6C,aAAa,CAAC7C,YAAY,EAAI,IAAA,CAAA;AAClG,QAAA,IAAM+C,OAAQ,GAAE,SAAVA,OAAQA,CAAGC,KAAK,EAAEC,MAAM,EAAA;UAAA,OAAML,MAAI,CAAChI,OAAO,CAACtD,KAAK,CAAC0L,KAAK,CAAA,GAAIC,MAAM;SAAC;QAEvE,IAAIrJ,IAAG,IAAK0D,UAAU,EAAE;AACpByF,UAAAA,OAAO,CAAC,QAAQ,EAAElB,MAAM,CAAC;AACzBkB,UAAAA,OAAO,CAAC,OAAO,EAAEnB,KAAK,CAAC;AAC3B,SAAE,MAAK;AACHmB,UAAAA,OAAO,CAAC,QAAQ,EAAElB,MAAM,CAAC;AAC7B;AACJ;KACH;IACDlF,aAAa,EAAA,SAAbA,aAAaA,GAAG;AAAA,MAAA,IAAAuG,MAAA,GAAA,IAAA;AACZ,MAAA,IAAM3L,KAAI,GAAI,IAAI,CAACA,KAAK;AAExB,MAAA,IAAIA,KAAK,EAAE;AACP,QAAA,IAAMqC,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;AACtC,QAAA,IAAMoB,aAAa,IAAI,CAACC,kBAAkB,EAAE;QAC5C,IAAM6E,OAAQ,GAAE,SAAVA,OAAQA,CAAGC,KAAK,EAAEC,MAAM,EAAEzE,KAAK,EAAA;AAAA,UAAA,IAAEC,KAAI,GAAArB,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC;AAAA,UAAA,OAAM8F,MAAI,CAACxI,WAAU,GAAAyI,aAAA,CAAAA,aAAA,CAAA,EAAA,EAASD,MAAI,CAACxI,WAAW,CAAA,EAAA0I,eAAA,CAAAN,EAAAA,EAAAA,EAAAA,CAAAA,MAAA,CAAWE,KAAK,CAAK,EAAA,CAACC,MAAK,IAAK,EAAE,EAAEtH,MAAK,GAAI6C,KAAM,GAAEC,KAAI,GAAI,IAAK,CAAG,CAAA;SAAC;AAEpK,QAAA,IAAI7E,IAAI,EAAE;AACNmJ,UAAAA,OAAO,CAAC,QAAQ,EAAExL,KAAK,EAAE,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAAC0E,CAAC,CAAC;UACxDI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC1K,OAAQ,IAAGd,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC,EAAEwG,UAAU,CAACyE,CAAC,CAAC;AAC9E,SAAE,MAAK;AACHpF,UAAAA,UAAS,GAAIyF,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC1K,OAAQ,IAAGd,KAAK,EAAE,IAAI,CAACE,QAAQ,EAAEwG,UAAU,CAACyE,CAAC,CAAA,GAAIK,OAAO,CAAC,QAAQ,EAAExL,KAAK,EAAE,IAAI,CAACE,QAAQ,EAAEwG,UAAU,CAAC0E,CAAC,CAAC;AAC7I;AACJ;KACH;AACDU,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACjE,GAAG,EAAE;AAAA,MAAA,IAAAkE,MAAA,GAAA,IAAA;MACpB,IAAI,IAAI,CAACzI,WAAW,CAAC,IAAI,CAACjC,UAAU,EAAE;AAClC,QAAA,IAAMgB,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;QACtC,IAAM/C,KAAI,GAAIsF,GAAE,GAAIA,GAAG,CAACtF,QAAQ,IAAI,CAACA,KAAK;AAC1C,QAAA,IAAMyJ,qBAAsB,GAAE,SAAxBA,qBAAsBA,CAAGhF,MAAM,EAAEC,KAAK,EAAA;UAAA,OAAKD,MAAO,GAAEC,KAAK;AAAA,SAAA;AAC/D,QAAA,IAAMgF,YAAW,GAAI,SAAfA,YAAWA,GAAA;AAAA,UAAA,IAAKC,EAAC,GAAArG,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAI,CAAC;AAAA,UAAA,IAAEsG,EAAG,GAAAtG,SAAA,CAAAzB,MAAA,GAAA,CAAA,IAAAyB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAE,CAAC;UAAA,OAAMkG,MAAI,CAAC3I,YAAa,GAAAwI,aAAA,CAAAA,aAAA,CAAOG,EAAAA,EAAAA,MAAI,CAAC3I,YAAY,CAAK,EAAA;AAAEgJ,YAAAA,SAAS,iBAAAb,MAAA,CAAiBW,EAAE,EAAAX,MAAAA,CAAAA,CAAAA,MAAA,CAAOY,EAAE,EAAA,QAAA;AAAS,WAAE,CAAC;SAAC;AAE7I,QAAA,IAAI9J,IAAI,EAAE;AACN4J,UAAAA,YAAY,CAACD,qBAAqB,CAACzJ,KAAK,CAACE,IAAI,EAAE,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE8L,qBAAqB,CAACzJ,KAAK,CAACC,IAAI,EAAE,IAAI,CAACtC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1H,SAAE,MAAK;UACH,IAAMmM,YAAa,GAAEL,qBAAqB,CAACzJ,KAAK,EAAE,IAAI,CAACrC,QAAQ,CAAC;AAEhE6F,UAAAA,UAAW,GAAEkG,YAAY,CAACI,YAAY,EAAE,CAAC,CAAE,GAAEJ,YAAY,CAAC,CAAC,EAAEI,YAAY,CAAC;AAC9E;AACJ;KACH;AACDC,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACC,KAAK,EAAE;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA;AAC1B,MAAA,IAAMC,MAAO,GAAEF,KAAK,CAACE,MAAM;AAC3B,MAAA,IAAMpK,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,MAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;AACtC,MAAA,IAAMoB,aAAa,IAAI,CAACC,kBAAkB,EAAE;AAC5C,MAAA,IAAM+F,kBAAmB,GAAE,SAArBA,kBAAmBA,CAAG3E,IAAI,EAAEb,KAAK,EAAA;AAAA,QAAA,OAAMa,IAAG,GAAKA,OAAOb,KAAM,GAAEa,IAAK,GAAEb,KAAI,GAAIa,IAAI,GAAI,CAAC;OAAC;AAC7F,MAAA,IAAM4E,qBAAoB,GAAI,SAAxBA,qBAAoBA,CAAK5E,IAAI,EAAEd,KAAK,EAAA;QAAA,OAAKe,IAAI,CAACC,KAAK,CAACF,IAAK,IAAGd,KAAM,IAAGc,IAAI,CAAC,CAAC;AAAA,OAAA;AAEjF,MAAA,IAAM6E,qBAAoB,GAAI,SAAxBA,qBAAoBA,CAAKC,aAAa,EAAE7F,MAAM,EAAE8F,KAAK,EAAE3D,IAAI,EAAErC,KAAK,EAAEiG,oBAAoB,EAAK;AAC/F,QAAA,OAAOF,aAAc,IAAG/F,QAAQA,KAAM,GAAEiG,oBAAmB,GAAID,QAAQ3D,IAAG,GAAIrC,QAAQE,MAAK,GAAIF,KAAI,GAAI,CAAC;OAC3G;AAED,MAAA,IAAMF,cAAe,GAAE,SAAjBA,cAAeA,CAAGiG,aAAa,EAAEG,aAAa,EAAEhG,MAAM,EAAE8F,KAAK,EAAE3D,IAAI,EAAErC,KAAK,EAAEiG,oBAAoB,EAAK;AACvG,QAAA,IAAIF,aAAc,IAAG/F,KAAK,EAAE,OAAO,CAAC,CAAA,KAC/B,OAAOkB,IAAI,CAAC6C,GAAG,CAAC,CAAC,EAAEkC,uBAAwBF,gBAAgBG,aAAY,GAAIhG,MAAO,GAAE6F,aAAc,GAAE/F,KAAK,GAAI+F,aAAY,GAAIG,aAAc,GAAEhG,MAAO,GAAE6F,aAAY,GAAI,CAAA,GAAI/F,KAAK,CAAC;OACxL;AAED,MAAA,IAAMoC,aAAY,GAAI,SAAhBA,aAAYA,CAAK2D,aAAa,EAAE7F,MAAM,EAAE8F,KAAK,EAAE3D,IAAI,EAAErC,KAAK,EAAEsC,OAAO,EAAK;QAC1E,IAAI6D,SAAU,GAAEjG,MAAO,GAAEmC,IAAG,GAAI,CAAA,GAAIrC,KAAK;QAEzC,IAAI+F,iBAAiB/F,KAAK,EAAE;UACxBmG,SAAQ,IAAKnG,KAAI,GAAI,CAAC;AAC1B;AAEA,QAAA,OAAO0F,MAAI,CAACnD,OAAO,CAAC4D,SAAS,EAAE7D,OAAO,CAAC;OAC1C;MAED,IAAM/C,YAAYqG,kBAAkB,CAACD,MAAM,CAACpG,SAAS,EAAEK,UAAU,CAAC5D,GAAG,CAAC;MACtE,IAAMyD,UAAW,GAAEmG,kBAAkB,CAACD,MAAM,CAAClG,UAAU,EAAEG,UAAU,CAAC3D,IAAI,CAAC;MAEzE,IAAIoE,QAAS,GAAE9E,IAAK,GAAE;AAAEG,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,IAAI,EAAE;AAAE,OAAA,GAAI,CAAC;AAC9C,MAAA,IAAIyK,OAAM,GAAI,IAAI,CAACxK,IAAI;MACvB,IAAImB,cAAa,GAAI,KAAK;AAC1B,MAAA,IAAIsJ,eAAe,IAAI,CAACtK,aAAa;AAErC,MAAA,IAAIR,IAAI,EAAE;QACN,IAAM+K,YAAa,GAAE,IAAI,CAACvK,aAAa,CAACC,GAAI,IAAGuD,SAAS;QACxD,IAAMgH,aAAY,GAAI,IAAI,CAACxK,aAAa,CAACE,QAAQwD,UAAU;AAE3D,QAAA,IAAI,CAAC,IAAI,CAAClF,UAAS,IAAM,IAAI,CAACA,UAAS,KAAM+L,YAAa,IAAGC,aAAa,CAAE,EAAE;AAC1E,UAAA,IAAMC,YAAW,GAAI;YAAE9K,IAAI,EAAEmK,qBAAqB,CAACtG,SAAS,EAAE,IAAI,CAACnG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAEuC,IAAI,EAAEkK,qBAAqB,CAACpG,UAAU,EAAE,IAAI,CAACrG,QAAQ,CAAC,CAAC,CAAC;WAAG;AAC5I,UAAA,IAAMqN,eAAe;AACjB/K,YAAAA,IAAI,EAAEoK,qBAAqB,CAACU,YAAY,CAAC9K,IAAI,EAAE,IAAI,CAACD,KAAK,CAACC,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,EAAE,IAAI,CAACI,kBAAkB,CAACJ,IAAI,EAAE,IAAI,CAACQ,mBAAmB,CAAC,CAAC,CAAC,EAAEoK,YAAY,CAAC;AACxJ3K,YAAAA,IAAI,EAAEmK,qBAAqB,CAACU,YAAY,CAAC7K,IAAI,EAAE,IAAI,CAACF,KAAK,CAACE,IAAI,EAAE,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE,IAAI,CAACG,kBAAkB,CAACH,IAAI,EAAE,IAAI,CAACO,mBAAmB,CAAC,CAAC,CAAC,EAAEqK,aAAa;WAC3J;AAEDlG,UAAAA,WAAW;AACP3E,YAAAA,IAAI,EAAEoE,cAAc,CAAC0G,YAAY,CAAC9K,IAAI,EAAE+K,YAAY,CAAC/K,IAAI,EAAE,IAAI,CAACD,KAAK,CAACC,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,EAAE,IAAI,CAACI,kBAAkB,CAACJ,IAAI,EAAE,IAAI,CAACQ,mBAAmB,CAAC,CAAC,CAAC,EAAEoK,YAAY,CAAC;AACpK3K,YAAAA,IAAI,EAAEmE,cAAc,CAAC0G,YAAY,CAAC7K,IAAI,EAAE8K,YAAY,CAAC9K,IAAI,EAAE,IAAI,CAACF,KAAK,CAACE,IAAI,EAAE,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE,IAAI,CAACG,kBAAkB,CAACH,IAAI,EAAE,IAAI,CAACO,mBAAmB,CAAC,CAAC,CAAC,EAAEqK,aAAa;WACvK;AACDH,UAAAA,UAAU;AACN1K,YAAAA,IAAI,EAAE0G,aAAa,CAACoE,YAAY,CAAC9K,IAAI,EAAE2E,QAAQ,CAAC3E,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,EAAE,IAAI,CAACI,kBAAkB,CAACJ,IAAI,EAAE,IAAI,CAACQ,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAChIP,YAAAA,IAAI,EAAEyG,aAAa,CAACoE,YAAY,CAAC7K,IAAI,EAAE0E,QAAQ,CAAC1E,IAAI,EAAE,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE,IAAI,CAACG,kBAAkB,CAACH,IAAI,EAAE,IAAI,CAACO,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI;WACxI;AAEDa,UAAAA,cAAa,GAAIsD,QAAQ,CAAC3E,IAAK,KAAI,IAAI,CAACD,KAAK,CAACC,IAAK,IAAG0K,OAAO,CAAC1K,IAAG,KAAM,IAAI,CAACE,IAAI,CAACF,IAAK,IAAG2E,QAAQ,CAAC1E,IAAK,KAAI,IAAI,CAACF,KAAK,CAACE,IAAK,IAAGyK,OAAO,CAACzK,IAAG,KAAM,IAAI,CAACC,IAAI,CAACD,IAAK,IAAG,IAAI,CAACoB,cAAc;AACpLsJ,UAAAA,YAAa,GAAE;AAAErK,YAAAA,GAAG,EAAEuD,SAAS;AAAEtD,YAAAA,IAAI,EAAEwD;WAAY;AACvD;AACJ,OAAE,MAAK;AACH,QAAA,IAAM8B,SAAQ,GAAItC,UAAW,GAAEQ,aAAaF,SAAS;AACrD,QAAA,IAAMmH,mBAAoB,GAAE,IAAI,CAAC3K,aAAc,IAAGwF,SAAS;QAE3D,IAAI,CAAC,IAAI,CAAChH,UAAW,IAAI,IAAI,CAACA,UAAS,IAAKmM,mBAAoB,EAAE;UAC9D,IAAMF,cAAW,GAAIX,qBAAqB,CAACtE,SAAS,EAAE,IAAI,CAACnI,QAAQ,CAAC;UACpE,IAAMqN,cAAW,GAAIX,qBAAqB,CAACU,cAAY,EAAE,IAAI,CAAC/K,KAAK,EAAE,IAAI,CAACG,IAAI,EAAE,IAAI,CAACE,kBAAkB,EAAE,IAAI,CAACI,mBAAmB,EAAEwK,mBAAmB,CAAC;UAEvJrG,QAAS,GAAEP,cAAc,CAAC0G,cAAY,EAAEC,cAAY,EAAE,IAAI,CAAChL,KAAK,EAAE,IAAI,CAACG,IAAI,EAAE,IAAI,CAACE,kBAAkB,EAAE,IAAI,CAACI,mBAAmB,EAAEwK,mBAAmB,CAAC;AACpJN,UAAAA,OAAQ,GAAEhE,aAAa,CAACoE,cAAY,EAAEnG,QAAQ,EAAE,IAAI,CAACzE,IAAI,EAAE,IAAI,CAACE,kBAAkB,EAAE,IAAI,CAACI,mBAAmB,CAAC;AAC7Ga,UAAAA,cAAa,GAAIsD,QAAS,KAAI,IAAI,CAAC5E,KAAI,IAAK2K,OAAQ,KAAI,IAAI,CAACxK,QAAQ,IAAI,CAACmB,cAAc;AACxFsJ,UAAAA,eAAe9E,SAAS;AAC5B;AACJ;MAEA,OAAO;AACH9F,QAAAA,KAAK,EAAE4E,QAAQ;AACfzE,QAAAA,IAAI,EAAEwK,OAAO;AACbrJ,QAAAA,cAAc,EAAdA,cAAc;AACdwE,QAAAA,SAAS,EAAE8E;OACd;KACJ;AACDM,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAClB,KAAK,EAAE;AAClB,MAAA,IAAAmB,qBAAA,GAAmD,IAAI,CAACpB,sBAAsB,CAACC,KAAK,CAAC;QAA7EhK,KAAK,GAAAmL,qBAAA,CAALnL,KAAK;QAAEG,IAAI,GAAAgL,qBAAA,CAAJhL,IAAI;QAAEmB,cAAc,GAAA6J,qBAAA,CAAd7J,cAAc;QAAEwE,kCAAAA;AAErC,MAAA,IAAIxE,cAAc,EAAE;AAChB,QAAA,IAAM8J,QAAO,GAAI;AAAEpL,UAAAA,KAAK,EAALA,KAAK;AAAEG,UAAAA,IAAG,EAAHA;SAAM;AAEhC,QAAA,IAAI,CAACoJ,kBAAkB,CAAC6B,QAAQ,CAAC;QAEjC,IAAI,CAACpL,KAAI,GAAIA,KAAK;QAClB,IAAI,CAACG,IAAG,GAAIA,IAAI;QAChB,IAAI,CAACG,aAAc,GAAEwF,SAAS;AAE9B,QAAA,IAAI,CAACiB,KAAK,CAAC,qBAAqB,EAAEqE,QAAQ,CAAC;QAE3C,IAAI,IAAI,CAACjN,QAAQ,IAAI,CAACkN,aAAa,CAACrL,KAAK,CAAC,EAAE;UAAA,IAAAsL,YAAA,EAAAC,YAAA;AACxC,UAAA,IAAMhK,gBAAgB;AAClBvB,YAAAA,KAAK,EAAE,IAAI,CAACnB,IAAG,GAAI4G,IAAI,CAAC6B,GAAG,CAAC,IAAI,CAACkE,cAAc,CAACxL,KAAK,CAAA,GAAI,IAAI,CAACnB,IAAI,EAAE,CAAC,CAAA,CAAAyM,YAAA,GAAI,IAAA,CAAC7N,KAAK,MAAA6N,IAAAA,IAAAA,YAAA,uBAAVA,YAAA,CAAYzJ,WAAU,CAAC,IAAI,IAAI,CAAChD,IAAI,CAAA,GAAImB,KAAK;AAClHG,YAAAA,IAAI,EAAEsF,IAAI,CAAC6B,GAAG,CAAC,IAAI,CAACzI,IAAK,GAAE,CAAC,IAAI,CAAC2M,cAAc,CAACxL,KAAK,IAAI,CAAC,IAAI,IAAI,CAACnB,IAAK,GAAEsB,IAAI,EAAE,EAAAoL,YAAA,GAAA,IAAI,CAAC9N,KAAK,cAAA8N,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,YAAA,CAAY1J,MAAO,KAAG,CAAC;WAC1G;UACD,IAAM4J,kBAAmB,GAAE,IAAI,CAAClK,aAAa,CAACvB,KAAI,KAAMuB,aAAa,CAACvB,KAAI,IAAK,IAAI,CAACuB,aAAa,CAACpB,IAAK,KAAIoB,aAAa,CAACpB,IAAI;UAE7HsL,kBAAiB,IAAK,IAAI,CAAC1E,KAAK,CAAC,WAAW,EAAExF,aAAa,CAAC;UAC5D,IAAI,CAACA,aAAY,GAAIA,aAAa;AACtC;AACJ;KACH;AACDmK,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAAC1B,KAAK,EAAE;AAAA,MAAA,IAAA2B,MAAA,GAAA,IAAA;AACZ,MAAA,IAAI,CAAC5E,KAAK,CAAC,QAAQ,EAAEiD,KAAK,CAAC;MAE3B,IAAI,IAAI,CAAC/L,KAAK,EAAE;QACZ,IAAI,IAAI,CAAC+C,aAAa,EAAE;AACpB4K,UAAAA,YAAY,CAAC,IAAI,CAAC5K,aAAa,CAAC;AACpC;AAEA,QAAA,IAAI,IAAI,CAACqK,aAAa,EAAE,EAAE;UACtB,IAAI,CAAC,IAAI,CAAC3K,SAAQ,IAAK,IAAI,CAAChC,UAAU,EAAE;AACpC,YAAA,IAAAmN,sBAAA,GAA2B,IAAI,CAAC9B,sBAAsB,CAACC,KAAK,CAAC;cAArD1I,cAAa,GAAAuK,sBAAA,CAAbvK,cAAa;AACrB,YAAA,IAAMwK,OAAQ,GAAExK,cAAe,KAAI,IAAI,CAACzC,IAAG,GAAI,IAAI,CAACwM,aAAa,EAAG,GAAE,KAAK,CAAC;AAE5ES,YAAAA,OAAM,KAAM,IAAI,CAACpL,SAAU,GAAE,IAAI,CAAC;AACtC;AAEA,UAAA,IAAI,CAACM,aAAc,GAAE+K,UAAU,CAAC,YAAM;AAClCJ,YAAAA,MAAI,CAACT,cAAc,CAAClB,KAAK,CAAC;AAE1B,YAAA,IAAI2B,MAAI,CAACjL,SAAU,IAAGiL,MAAI,CAACjN,UAAS,KAAM,CAACiN,MAAI,CAACxN,IAAK,IAAGwN,MAAI,CAACnN,OAAM,KAAM+E,SAAS,CAAC,EAAE;cACjFoI,MAAI,CAACjL,SAAU,GAAE,KAAK;AACtBiL,cAAAA,MAAI,CAACvL,IAAG,GAAIuL,MAAI,CAACH,cAAc,EAAE;AACrC;AACJ,WAAC,EAAE,IAAI,CAACvN,KAAK,CAAC;AAClB;AACJ,OAAE,MAAK;AACH,QAAA,IAAI,CAACiN,cAAc,CAAClB,KAAK,CAAC;AAC9B;KACH;IACDgC,QAAQ,EAAA,SAARA,QAAQA,GAAG;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA;MACP,IAAI,IAAI,CAAChL,aAAa,EAAE;AACpB2K,QAAAA,YAAY,CAAC,IAAI,CAAC3K,aAAa,CAAC;AACpC;AAEA,MAAA,IAAI,CAACA,aAAc,GAAE8K,UAAU,CAAC,YAAM;AAClC,QAAA,IAAIzJ,SAAS,CAAC2J,OAAI,CAACnL,OAAO,CAAC,EAAE;AACzB,UAAA,IAAMhB,OAAOmM,OAAI,CAAClM,MAAM,EAAE;AAC1B,UAAA,IAAMyH,QAAO,GAAIyE,OAAI,CAACnJ,UAAU,EAAE;AAClC,UAAA,IAAMU,aAAayI,OAAI,CAAClJ,YAAY,EAAE;AACtC,UAAA,IAAAmJ,KAAA,GAAwB,CAACzJ,QAAQ,CAACwJ,OAAI,CAACnL,OAAO,CAAC,EAAE4B,SAAS,CAACuJ,OAAI,CAACnL,OAAO,CAAC,CAAC;AAAlEgH,YAAAA,KAAK,GAAAoE,KAAA,CAAA,CAAA,CAAA;AAAEnE,YAAAA,MAAM,GAAAmE,KAAA,CAAA,CAAA,CAAA;AACpB,UAAA,IAAOC,WAAW,GAAmBrE,UAAUmE,OAAI,CAAC/K,YAAY;AAA5CkL,YAAAA,YAAY,GAAkCrE,MAAK,KAAMkE,OAAI,CAAC9K,aAAa;AAC/F,UAAA,IAAMkL,SAASvM,IAAG,GAAIqM,WAAU,IAAKC,YAAa,GAAE5I,aAAa2I,cAAc3E,WAAW4E,YAAa,GAAE,KAAK;AAE9G,UAAA,IAAIC,MAAM,EAAE;AACRJ,YAAAA,OAAI,CAACxL,sBAAsBwL,OAAI,CAACjO,iBAAiB;YACjDiO,OAAI,CAAC/K,YAAW,GAAI4G,KAAK;YACzBmE,OAAI,CAAC9K,aAAc,GAAE4G,MAAM;YAC3BkE,OAAI,CAAC7K,sBAAsBqB,QAAQ,CAACwJ,OAAI,CAAClL,OAAO,CAAC;YACjDkL,OAAI,CAAC5K,uBAAuBqB,SAAS,CAACuJ,OAAI,CAAClL,OAAO,CAAC;YAEnDkL,OAAI,CAACnK,IAAI,EAAE;AACf;AACJ;AACJ,OAAC,EAAE,IAAI,CAAC5D,WAAW,CAAC;KACvB;IACDsE,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACjB,MAAA,IAAI,CAAC,IAAI,CAAChB,cAAc,EAAE;QACtB,IAAI,CAACA,cAAa,GAAI,IAAI,CAACwK,QAAQ,CAACM,IAAI,CAAC,IAAI,CAAC;QAE9CC,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAChL,cAAc,CAAC;QACtD+K,MAAM,CAACC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAChL,cAAc,CAAC;AACrE;KACH;IACDY,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACZ,cAAc,EAAE;QACrB+K,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACjL,cAAc,CAAC;QACzD+K,MAAM,CAACE,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAACjL,cAAc,CAAC;QACpE,IAAI,CAACA,iBAAiB,IAAI;AAC9B;KACH;AACDkL,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACC,aAAa,EAAE;MACtB,IAAMC,KAAI,GAAI,CAAC,IAAI,CAACnP,KAAM,IAAG,EAAE,EAAEoE,MAAM;MACvC,IAAMsB,KAAM,GAAE,IAAI,CAACpD,MAAM,EAAC,GAAI,IAAI,CAACC,KAAK,CAACC,IAAK,GAAE0M,aAAY,GAAI,IAAI,CAAC3M,KAAM,GAAE2M,aAAa;MAE1F,OAAO;AACHxJ,QAAAA,KAAK,EAALA,KAAK;AACLyJ,QAAAA,KAAK,EAALA,KAAK;QACL5M,KAAK,EAAEmD,KAAI,KAAM,CAAC;AAClBhD,QAAAA,IAAI,EAAEgD,KAAI,KAAMyJ,KAAI,GAAI,CAAC;AACzBC,QAAAA,IAAI,EAAE1J,KAAI,GAAI,CAAA,KAAM,CAAC;AACrB2J,QAAAA,GAAG,EAAE3J,KAAI,GAAI,CAAA,KAAM;OACtB;KACJ;AACD4J,IAAAA,gBAAgB,WAAhBA,gBAAgBA,CAAC5J,KAAK,EAAE6J,UAAU,EAAE;AAChC,MAAA,IAAIJ,KAAM,GAAE,IAAI,CAACjM,SAAS,CAACkB,MAAM;AAEjC,MAAA,OAAAwH,aAAA,CAAA;AACIlG,QAAAA,KAAK,EAALA,KAAK;AACLyJ,QAAAA,KAAK,EAALA,KAAK;QACL5M,KAAK,EAAEmD,KAAI,KAAM,CAAC;AAClBhD,QAAAA,IAAI,EAAEgD,KAAI,KAAMyJ,KAAI,GAAI,CAAC;AACzBC,QAAAA,IAAI,EAAE1J,KAAI,GAAI,CAAA,KAAM,CAAC;AACrB2J,QAAAA,GAAG,EAAE3J,KAAI,GAAI,CAAA,KAAM;AAAC,OAAA,EACjB6J,UAAS,CAAA;KAEnB;AACDxB,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACxL,KAAK,EAAE;AAClB,MAAA,OAAOyF,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC1F,KAAI,KAAA,IAAA,IAAJA,KAAI,KAAA,KAAA,CAAA,GAAJA,KAAI,GAAK,IAAI,CAACA,KAAK,IAAI,IAAI,CAACS,mBAAoB,GAAE,CAAC,KAAK,IAAI,CAAC5B,IAAG,IAAK,CAAC,CAAC,CAAC;KAC/F;AACDwM,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACrL,KAAK,EAAE;MACjB,OAAO,IAAI,CAACnB,OAAO,IAAI,CAACuB,IAAK,KAAI,IAAI,CAACoL,cAAc,CAACxL,KAAI,KAAA,IAAA,IAAJA,KAAI,KAAA,KAAA,CAAA,GAAJA,KAAI,GAAK,IAAI,CAACA,KAAK,CAAE,GAAE,IAAI;KACnF;AACDuC,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAAC0K,EAAE,EAAE;AACb,MAAA,IAAI,CAAClM,UAAUkM,MAAM,IAAI,CAAClM,WAAWmM,UAAU,CAAC,IAAI,CAACpM,OAAO,EAAE,6BAA6B,CAAC;KAC/F;AACDqM,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACF,EAAE,EAAE;MACX,IAAI,CAACnM,OAAQ,GAAEmM,EAAE;KACpB;AACDG,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACH,EAAE,EAAE;MACX,IAAI,CAAClM,OAAQ,GAAEkM,EAAE;AACrB;GACH;AACDI,EAAAA,QAAQ,EAAE;IACNC,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,CACH,mBAAmB,EACnB,IAAI,SAAM,EACV;QACI,0BAA0B,EAAE,IAAI,CAAC1O,MAAM;AACvC,QAAA,sCAAsC,EAAE,IAAI,CAACmB,MAAM,EAAE;AACrD,QAAA,kDAAkD,EAAE,IAAI,CAACgD,YAAY;AACzE,OAAA,CACH;KACJ;IACDwK,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,OAAO,CACH,2BAA2B,EAC3B;QACI,2BAA2B,EAAE,IAAI,CAAC7M;AACtC,OAAA,CACH;KACJ;IACD8M,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,OAAO,CACH,0BAA0B,EAC1B;AACI,QAAA,+BAA+B,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC;AAClD,OAAA,CACH;KACJ;IACDC,WAAW,EAAA,SAAXA,WAAWA,GAAG;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA;MACV,IAAI,IAAI,CAACnQ,KAAI,IAAK,CAAC,IAAI,CAACiD,SAAS,EAAE;AAC/B,QAAA,IAAI,IAAI,CAACX,MAAM,EAAE,EAAE,OAAO,IAAI,CAACtC,KAAK,CAACoQ,KAAK,CAAC,IAAI,CAAC/O,UAAW,GAAE,IAAI,IAAI,CAACkB,KAAK,CAACC,IAAI,EAAE,IAAI,CAACE,IAAI,CAACF,IAAI,CAAC,CAACgH,GAAG,CAAC,UAAC6G,IAAI,EAAA;UAAA,OAAMF,OAAI,CAACrP,OAAQ,GAAEuP,OAAOA,IAAI,CAACD,KAAK,CAACD,OAAI,CAAC9O,UAAW,GAAE,IAAI8O,OAAI,CAAC5N,KAAK,CAACE,IAAI,EAAE0N,OAAI,CAACzN,IAAI,CAACD,IAAI,CAAC;AAAA,SAAC,CAAC,CAAA,KACrM,IAAI,IAAI,CAAC6C,YAAY,EAAC,IAAK,IAAI,CAACxE,OAAO,EAAE,OAAO,IAAI,CAACd,KAAK,CAAA,KAC1D,OAAO,IAAI,CAACA,KAAK,CAACoQ,KAAK,CAAC,IAAI,CAAC/O,UAAW,GAAE,CAAE,GAAE,IAAI,CAACkB,KAAK,EAAE,IAAI,CAACG,IAAI,CAAC;AAC7E;AAEA,MAAA,OAAO,EAAE;KACZ;IACD4N,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACT,MAAA,OAAO,IAAI,CAACrN,SAAQ,GAAK,IAAI,CAACpC,iBAAiB,IAAI,CAACqC,YAAY,EAAE,GAAI,IAAI,CAACgN,WAAW;KACzF;IACDK,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAI,IAAI,CAACzP,OAAO,EAAE;AACd,QAAA,IAAMuB,OAAO,IAAI,CAACC,MAAM,EAAE;AAC1B,QAAA,IAAMyD,aAAa,IAAI,CAACT,YAAY,EAAE;QAEtC,IAAIjD,IAAG,IAAK0D,UAAU,EAAE;UACpB,OAAO,IAAI,CAAC9C,SAAU,IAAG,IAAI,CAACpC,cAAe,GAAGwB,IAAG,GAAI,IAAI,CAACa,SAAS,CAAC,CAAC,CAAA,GAAI,IAAI,CAACA,SAAS,GAAI,IAAI,CAACpC,OAAO,CAACsP,KAAK,CAAC/N,IAAK,GAAE,IAAI,CAACE,KAAK,CAACE,IAAK,GAAE,IAAI,CAACF,KAAK,EAAEF,IAAG,GAAI,IAAI,CAACK,IAAI,CAACD,IAAK,GAAE,IAAI,CAACC,IAAI,CAAC;AAC3L;AACJ;MAEA,OAAO,IAAI,CAAC5B,OAAO;AACvB;GACH;AACD0P,EAAAA,UAAU,EAAE;AACRC,IAAAA,WAAW,EAAEA;AACjB;AACJ,CAAC;;;;;UClrBoBC,IAAQ,CAAA9P,QAAA,IACrB+P,SAAA,EAAA,EAAAC,kBAAA,CAmCK,OAnCLC,UAmCK,CAAA;;IAnCCC,GAAG,EAAEC,QAAU,CAAArB,UAAA;IAAG,OAAOqB,EAAAA,QAAc,CAAAlB,cAAA;IAAG3O,QAAQ,EAAEwP,IAAQ,CAAAxP,QAAA;IAAGnB,KAAK,EAAE2Q,IAAK,CAAA3Q,KAAA;IAAGkO,QAAM;aAAE8C,QAAQ,CAAA9C,QAAA,IAAA8C,QAAA,CAAA9C,QAAA,CAAA+C,KAAA,CAAAD,QAAA,EAAAlL,SAAA,CAAA;KAAA;KAAU6K,IAAI,CAAAO,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAC9GC,UAsBM,CAAAR,IAAA,CAAAV,MAAA,EAAA,SAAA,EAAA;IApBDmB,UAAU,EAAEJ,QAAY,CAAAjB,YAAA;IACxB9P,KAAK,EAAE+Q,QAAW,CAAAb,WAAA;IAClBkB,cAAc,EAAEL,QAAU,CAAA9B,UAAA;IAC1BlO,OAAO,EAAEsQ,KAAS,CAAApO,SAAA;IAClBqM,gBAAgB,EAAEyB,QAAgB,CAAAzB,gBAAA;IAClCpP,QAAQ,EAAEwQ,IAAQ,CAAAxQ,QAAA;IAClBsC,IAAI,EAAEuO,QAAU,CAAAT,UAAA;IAChBxP,OAAO,EAAEiQ,QAAa,CAAAR,aAAA;IACtBZ,UAAU,EAAEoB,QAAU,CAAApB,UAAA;IACtBxM,WAAW,EAAEkO,KAAW,CAAAlO,WAAA;IACxBC,YAAY,EAAEiO,KAAY,CAAAjO,YAAA;AAC1B2G,IAAAA,QAAQ,EAAEgH,QAAU,CAAA1L,UAAA,EAAA;AACpBU,IAAAA,UAAU,EAAEgL,QAAY,CAAAzL,YAAA,EAAA;AACxBjD,IAAAA,IAAI,EAAE0O,QAAM,CAAAzO,MAAA;KAfjB,YAAA;AAAA,IAAA,OAsBM,CALFgP,kBAAA,CAIK,OAJLT,UAIK,CAAA;MAJCC,GAAG,EAAEC,QAAU,CAAApB,UAAA;MAAG,OAAOoB,EAAAA,QAAY,CAAAjB,YAAA;MAAG/P,KAAK,EAAEsR,KAAY,CAAAjO;OAAUsN,IAAG,CAAAa,GAAA,CAAA,SAAA,CAAA,CAAA,EAAA,EAC1EZ,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAEUY,QAFwB,EAAA,IAAA,EAAAC,UAAA,CAAAV,QAAA,CAAAb,WAAW,EAA3B,UAAAG,IAAI,EAAE3K,KAAK,EAAA;aACzBwL,UAAkE,CAAAR,IAAA,CAAAV,MAAA,EAAA,MAAA,EAAA;aADjBtK,KAAK;AACnC2K,QAAAA,IAAI,EAAEA,IAAI;AAAG7K,QAAAA,OAAO,EAAEuL,QAAU,CAAA9B,UAAA,CAACvJ,KAAK;;;MAI1DgL,IAAU,CAAA1P,UAAA,IAArB2P,SAAA,EAAA,EAAAC,kBAAA,CAAyG,OAAzGC,UAAyG,CAAA;;AAAlF,IAAA,OAAA,EAAM,0BAAyB;IAAG9Q,KAAK,EAAEsR,KAAW,CAAAlO;KAAUuN,IAAG,CAAAa,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mCAC5Eb,uBAAkBA,mBAAcW,KAAS,CAAApO,SAAA,IAArD0N,SAAA,EAAA,EAAAC,kBAAA,CASK,OATLC,UASK,CAAA;;AATmD,IAAA,OAAA,EAAOE,QAAW,CAAAhB;KAAUW,IAAG,CAAAa,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CACnEb,eAAUA,IAAM,CAAAV,MAAA,CAACC,MAAM,IACnCU,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAEUY,QAFqB,EAAA;AAAAE,IAAAA,GAAA,EAAA;GAAA,EAAAD,UAAA,CAAAJ,KAAA,CAAAnO,SAAS,EAAtB,UAAAyO,CAAC,EAAEjM,KAAK,EAAA;WACtBwL,UAAiH,CAAAR,IAAA,CAAAV,MAAA,EAAA,QAAA,EAAA;WADrEtK,KAAK;AAC5BF,MAAAA,OAAO,EAAEuL,yBAAgB,CAACrL,KAAK,EAAEqL,QAAM,CAAAzO,MAAA,EAAA,IAAA;AAAAsP,QAAAA,OAAA,EAAiBlB,IAAoB,CAAAmB,oBAAA,CAACpP;OAAG;;4CAG7GyO,UAAA,CAEMR,gCAFN,YAAA;AAAA,IAAA,OAEM,CADFoB,WAAA,CAAsFC,wBAAtFlB,UAAsF,CAAA;AAAzEmB,MAAAA,IAAK,EAAL,EAAK;MAAA,OAAM,EAAA;OAAyCtB,IAAG,CAAAa,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA;8EAKpFX,kBAGU,CAAAY,QAAA,EAAA;AAAAE,IAAAA,GAAA,EAAA;AAAA,GAAA,EAAA,CAFNR,UAAY,CAAAR,IAAA,CAAAV,MAAA,EAAA,SAAA,CAAA,EACZkB,UAAiF,CAAAR,IAAA,CAAAV,MAAA,EAAA,SAAA,EAAA;IAA3DhQ,KAAK,EAAE0Q,IAAK,CAAA1Q,KAAA;IAAGwC,IAAI,EAAEkO,IAAK,CAAA1Q,KAAA;IAAGc,OAAO,EAAEiQ,QAAa,CAAAR;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/virtualscroller/style/VirtualScrollerStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst theme = ({ dt }) => `\n.p-virtualscroller-loader {\n background: ${dt('virtualscroller.loader.mask.background')};\n color: ${dt('virtualscroller.loader.mask.color')};\n}\n\n.p-virtualscroller-loading-icon {\n font-size: ${dt('virtualscroller.loader.icon.size')};\n width: ${dt('virtualscroller.loader.icon.size')};\n height: ${dt('virtualscroller.loader.icon.size')};\n}\n`;\n\nconst css = `\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n`;\n\nexport default BaseStyle.extend({\n name: 'virtualscroller',\n css,\n theme\n});\n"],"names":["theme","_ref","dt","concat","css","BaseStyle","extend","name"],"mappings":";;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,EAAE,GAAAD,IAAA,CAAFC,EAAE
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/virtualscroller/style/VirtualScrollerStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst theme = ({ dt }) => `\n.p-virtualscroller-loader {\n background: ${dt('virtualscroller.loader.mask.background')};\n color: ${dt('virtualscroller.loader.mask.color')};\n}\n\n.p-virtualscroller-loading-icon {\n font-size: ${dt('virtualscroller.loader.icon.size')};\n width: ${dt('virtualscroller.loader.icon.size')};\n height: ${dt('virtualscroller.loader.icon.size')};\n}\n`;\n\nconst css = `\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n`;\n\nexport default BaseStyle.extend({\n name: 'virtualscroller',\n css,\n theme\n});\n"],"names":["theme","_ref","dt","concat","css","BaseStyle","extend","name"],"mappings":";;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,EAAE,GAAAD,IAAA,CAAFC,EAAE;AAAA,EAAA,OAAA,iDAAA,CAAAC,MAAA,CAEDD,EAAE,CAAC,wCAAwC,CAAC,EAAA,gBAAA,CAAA,CAAAC,MAAA,CACjDD,EAAE,CAAC,mCAAmC,CAAC,gEAAAC,MAAA,CAInCD,EAAE,CAAC,kCAAkC,CAAC,EAAAC,gBAAAA,CAAAA,CAAAA,MAAA,CAC1CD,EAAE,CAAC,kCAAkC,CAAC,qBAAAC,MAAA,CACrCD,EAAE,CAAC,kCAAkC,CAAC,EAAA,QAAA,CAAA;AAAA,CAEnD;AAED,IAAME,GAAG,GAkDR,i6BAAA;AAED,2BAAeC,SAAS,CAACC,MAAM,CAAC;AAC5BC,EAAAA,IAAI,EAAE,iBAAiB;AACvBH,EAAAA,GAAG,EAAHA,GAAG;AACHJ,EAAAA,KAAK,EAALA;AACJ,CAAC,CAAC;;;;"}
|
package/web-types.json
CHANGED