primeng 18.0.0-beta.1 → 18.0.0-beta.2
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/README.md +1 -1
- package/accordion/accordion.d.ts +1 -1
- package/accordion/style/accordionstyle.d.ts +37 -0
- package/api/translation.d.ts +2 -0
- package/autocomplete/autocomplete.d.ts +2 -3
- package/autocomplete/style/autocompletestyle.d.ts +69 -0
- package/avatar/style/avatarstyle.d.ts +25 -0
- package/avatargroup/style/avatargroupstyle.d.ts +14 -0
- package/badge/style/badgestyle.d.ts +17 -0
- package/base/style/basestyle.d.ts +4 -0
- package/blockui/blockui.d.ts +1 -1
- package/blockui/style/blockuistyle.d.ts +17 -0
- package/breadcrumb/style/breadcrumbstyle.d.ts +45 -0
- package/button/style/buttonstyle.d.ts +29 -0
- package/buttongroup/style/buttongroupstyle.d.ts +17 -0
- package/card/style/cardstyle.d.ts +45 -0
- package/carousel/style/carouselstyle.d.ts +69 -0
- package/cascadeselect/cascadeselect.d.ts +2 -2
- package/cascadeselect/style/cascadeselectstyle.d.ts +65 -0
- package/checkbox/style/checkboxstyle.d.ts +29 -0
- package/chip/style/chipstyle.d.ts +33 -0
- package/colorpicker/colorpicker.d.ts +1 -1
- package/colorpicker/style/colorpickerstyle.d.ts +45 -0
- package/confirmdialog/confirmdialog.d.ts +1 -1
- package/confirmdialog/style/confirmdialogstyle.d.ts +33 -0
- package/confirmpopup/confirmpopup.d.ts +3 -3
- package/confirmpopup/style/confirmpopupstyle.d.ts +41 -0
- package/contextmenu/contextmenu.d.ts +2 -2
- package/contextmenu/style/contextmenustyle.d.ts +54 -0
- package/dataview/dataview.d.ts +1 -1
- package/dataview/style/dataviewstyle.d.ts +37 -0
- package/datepicker/datepicker.d.ts +1 -1
- package/datepicker/style/datepickerstyle.d.ts +165 -0
- package/dialog/style/dialogstyle.d.ts +49 -0
- package/divider/style/dividerstyle.d.ts +21 -0
- package/dock/style/dockstyle.d.ts +41 -0
- package/drawer/style/drawerstyle.d.ts +37 -0
- package/dropdown/style/dropdownstyle.d.ts +14 -0
- package/dynamicdialog/style/dynamicdialogstyle.d.ts +49 -0
- package/editor/style/editorstyle.d.ts +25 -0
- package/esm2022/accordion/accordion.mjs +3 -3
- package/esm2022/accordion/style/accordionstyle.mjs +37 -1
- package/esm2022/api/primengconfig.mjs +3 -1
- package/esm2022/api/translation.mjs +1 -1
- package/esm2022/autocomplete/autocomplete.mjs +4 -4
- package/esm2022/autocomplete/style/autocompletestyle.mjs +69 -1
- package/esm2022/avatar/style/avatarstyle.mjs +25 -1
- package/esm2022/avatargroup/style/avatargroupstyle.mjs +14 -1
- package/esm2022/badge/style/badgestyle.mjs +17 -1
- package/esm2022/basecomponent/basecomponent.mjs +3 -4
- package/esm2022/blockui/blockui.mjs +3 -3
- package/esm2022/blockui/style/blockuistyle.mjs +17 -1
- package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +45 -1
- package/esm2022/button/style/buttonstyle.mjs +29 -1
- package/esm2022/buttongroup/style/buttongroupstyle.mjs +17 -1
- package/esm2022/card/style/cardstyle.mjs +45 -1
- package/esm2022/carousel/style/carouselstyle.mjs +69 -1
- package/esm2022/cascadeselect/cascadeselect.mjs +15 -19
- package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +65 -1
- package/esm2022/checkbox/checkbox.mjs +1 -1
- package/esm2022/checkbox/style/checkboxstyle.mjs +29 -1
- package/esm2022/chip/style/chipstyle.mjs +33 -1
- package/esm2022/colorpicker/colorpicker.mjs +3 -3
- package/esm2022/colorpicker/style/colorpickerstyle.mjs +45 -1
- package/esm2022/confirmdialog/confirmdialog.mjs +3 -3
- package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +33 -1
- package/esm2022/confirmpopup/confirmpopup.mjs +11 -11
- package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +41 -1
- package/esm2022/contextmenu/contextmenu.mjs +15 -15
- package/esm2022/contextmenu/style/contextmenustyle.mjs +54 -1
- package/esm2022/dataview/dataview.mjs +3 -3
- package/esm2022/dataview/style/dataviewstyle.mjs +37 -1
- package/esm2022/datepicker/datepicker.mjs +3 -3
- package/esm2022/datepicker/style/datepickerstyle.mjs +165 -1
- package/esm2022/dialog/style/dialogstyle.mjs +49 -1
- package/esm2022/divider/style/dividerstyle.mjs +21 -1
- package/esm2022/dock/style/dockstyle.mjs +41 -1
- package/esm2022/drawer/drawer.mjs +3 -3
- package/esm2022/drawer/style/drawerstyle.mjs +37 -1
- package/esm2022/dropdown/dropdown.mjs +9 -9
- package/esm2022/dropdown/style/dropdownstyle.mjs +4 -1
- package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +49 -1
- package/esm2022/editor/style/editorstyle.mjs +25 -1
- package/esm2022/fieldset/style/fieldsetstyle.mjs +37 -1
- package/esm2022/fileupload/fileupload.interface.mjs +1 -1
- package/esm2022/fileupload/fileupload.mjs +46 -13
- package/esm2022/fileupload/style/fileuploadstyle.mjs +73 -1
- package/esm2022/floatlabel/style/floatlabelstyle.mjs +17 -1
- package/esm2022/fluid/style/fluidstyle.mjs +17 -1
- package/esm2022/galleria/style/galleriastyle.mjs +125 -1
- package/esm2022/iconfield/style/iconfieldstyle.mjs +23 -4
- package/esm2022/image/style/imagestyle.mjs +57 -1
- package/esm2022/inplace/style/inplacestyle.mjs +25 -1
- package/esm2022/inputgroup/style/inputgroupstyle.mjs +24 -8
- package/esm2022/inputmask/inputmask.mjs +1 -1
- package/esm2022/inputmask/style/inputmaskstyle.mjs +17 -1
- package/esm2022/inputnumber/inputnumber.mjs +3 -3
- package/esm2022/inputnumber/style/inputnumberstyle.mjs +33 -1
- package/esm2022/inputotp/inputotp.mjs +3 -3
- package/esm2022/inputotp/style/inputotpstyle.mjs +21 -1
- package/esm2022/inputtext/style/inputtextstyle.mjs +17 -1
- package/esm2022/inputtextarea/style/textareastyle.mjs +17 -1
- package/esm2022/knob/style/knobstyle.mjs +29 -1
- package/esm2022/listbox/listbox.mjs +9 -9
- package/esm2022/listbox/style/listboxstyle.mjs +53 -1
- package/esm2022/megamenu/megamenu.mjs +15 -15
- package/esm2022/megamenu/style/megamenustyle.mjs +81 -1
- package/esm2022/menu/style/menustyle.mjs +57 -1
- package/esm2022/menubar/style/menubarstyle.mjs +65 -1
- package/esm2022/message/style/messagestyle.mjs +38 -2
- package/esm2022/metergroup/metergroup.mjs +10 -10
- package/esm2022/metergroup/style/metergroupstyle.mjs +45 -1
- package/esm2022/multiselect/multiselect.mjs +53 -53
- package/esm2022/multiselect/style/multiselectstyle.mjs +85 -1
- package/esm2022/orderlist/orderlist.mjs +3 -3
- package/esm2022/orderlist/style/orderliststyle.mjs +21 -1
- package/esm2022/organizationchart/organizationchart.mjs +3 -3
- package/esm2022/organizationchart/style/organizationchartstyle.mjs +53 -1
- package/esm2022/overlay/overlay.mjs +1 -1
- package/esm2022/overlaypanel/style/popoverstyle.mjs +21 -1
- package/esm2022/paginator/paginator.mjs +6 -6
- package/esm2022/paginator/style/paginatorstyle.mjs +81 -1
- package/esm2022/panel/style/panelstyle.mjs +45 -1
- package/esm2022/panelmenu/panelmenu.mjs +22 -22
- package/esm2022/panelmenu/style/panelmenustyle.mjs +83 -2
- package/esm2022/password/style/passwordstyle.mjs +45 -1
- package/esm2022/picklist/picklist.mjs +3 -3
- package/esm2022/picklist/style/pickliststyle.mjs +37 -1
- package/esm2022/progressbar/progressbar.mjs +3 -3
- package/esm2022/progressbar/style/progressbarstyle.mjs +25 -1
- package/esm2022/progressspinner/progressspinner.mjs +3 -3
- package/esm2022/progressspinner/style/progressspinnerstyle.mjs +25 -1
- package/esm2022/radiobutton/radiobutton.mjs +4 -4
- package/esm2022/radiobutton/style/radiobuttonstyle.mjs +29 -1
- package/esm2022/rating/rating.mjs +1 -1
- package/esm2022/rating/style/ratingstyle.mjs +29 -1
- package/esm2022/ripple/ripple.mjs +17 -12
- package/esm2022/ripple/style/ripplestyle.mjs +17 -1
- package/esm2022/scroller/scroller.mjs +5 -5
- package/esm2022/scroller/style/scrollerstyle.mjs +104 -0
- package/esm2022/scrollpanel/scrollpanel.mjs +3 -3
- package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +33 -1
- package/esm2022/scrolltop/scrolltop.mjs +3 -3
- package/esm2022/scrolltop/style/scrolltopstyle.mjs +21 -1
- package/esm2022/select/public_api.mjs +2 -1
- package/esm2022/select/select.mjs +10 -10
- package/esm2022/select/style/selectstyle.mjs +85 -1
- package/esm2022/selectbutton/selectbutton.mjs +8 -8
- package/esm2022/selectbutton/style/selectbuttonstyle.mjs +17 -1
- package/esm2022/skeleton/style/skeletonstyle.mjs +17 -1
- package/esm2022/slider/style/sliderstyle.mjs +25 -1
- package/esm2022/speeddial/speeddial.mjs +3 -3
- package/esm2022/speeddial/style/speeddialstyle.mjs +41 -1
- package/esm2022/splitbutton/splitbutton.mjs +8 -8
- package/esm2022/splitbutton/style/splitbuttonstyle.mjs +25 -1
- package/esm2022/splitter/style/splitterstyle.mjs +25 -1
- package/esm2022/stepper/stepper.mjs +26 -26
- package/esm2022/stepper/style/stepperstyle.mjs +21 -1
- package/esm2022/steps/style/stepsstyle.mjs +37 -1
- package/esm2022/table/style/tablestyle.mjs +899 -0
- package/esm2022/table/table.mjs +24 -24
- package/esm2022/tabmenu/style/tabmenustyle.mjs +42 -2
- package/esm2022/tabmenu/tabmenu.mjs +3 -3
- package/esm2022/tabs/style/tabsstyle.mjs +49 -1
- package/esm2022/tabview/style/tabsstyle.mjs +49 -1
- package/esm2022/tag/style/tagstyle.mjs +25 -1
- package/esm2022/terminal/style/terminalstyle.mjs +49 -1
- package/esm2022/textarea/style/textareastyle.mjs +17 -1
- package/esm2022/textarea/textarea.mjs +1 -2
- package/esm2022/tieredmenu/style/tieredmenustyle.mjs +61 -1
- package/esm2022/tieredmenu/tieredmenu.mjs +15 -15
- package/esm2022/timeline/style/timelinestyle.mjs +41 -1
- package/esm2022/toast/style/toaststyle.mjs +49 -1
- package/esm2022/togglebutton/style/togglebuttonstyle.mjs +25 -1
- package/esm2022/togglebutton/togglebutton.mjs +3 -3
- package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +25 -1
- package/esm2022/toggleswitch/toggleswitch.mjs +1 -1
- package/esm2022/toolbar/style/toolbarstyle.mjs +29 -1
- package/esm2022/tooltip/style/tooltipstyle.mjs +25 -1
- package/esm2022/tree/style/treestyle.mjs +69 -1
- package/esm2022/tree/tree.mjs +9 -9
- package/esm2022/treeselect/style/treeselectstyle.mjs +53 -1
- package/esm2022/treeselect/treeselect.mjs +3 -3
- package/esm2022/treetable/style/treetablestyle.mjs +97 -1
- package/esm2022/treetable/treetable.mjs +3 -3
- package/fesm2022/primeng-accordion.mjs +38 -2
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +2 -0
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +71 -3
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +24 -0
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +13 -0
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +16 -0
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -3
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +18 -2
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +44 -0
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +28 -0
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +16 -0
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +44 -0
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +68 -0
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +78 -18
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +28 -0
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +32 -0
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +46 -2
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +34 -2
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +49 -9
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +67 -14
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +38 -2
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +166 -2
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +49 -1
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +21 -1
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +40 -0
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +38 -2
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +11 -8
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +48 -0
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +24 -0
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +36 -0
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +117 -12
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +16 -0
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +16 -0
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +124 -0
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +22 -3
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +56 -0
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +24 -0
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +23 -7
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +16 -0
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +34 -2
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +22 -2
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +16 -0
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +16 -0
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +28 -0
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +60 -8
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +94 -14
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +56 -0
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +64 -0
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +38 -2
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +53 -9
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +136 -52
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +22 -2
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +54 -2
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +20 -0
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +85 -5
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +45 -1
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +103 -22
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +44 -0
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +38 -2
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +26 -2
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +26 -2
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +31 -3
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +28 -0
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +32 -11
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +39 -7
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +34 -2
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +22 -2
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +94 -10
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +23 -7
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +16 -0
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +24 -0
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +42 -2
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +31 -7
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +24 -0
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +45 -25
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +36 -0
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +230 -56
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +43 -3
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +48 -0
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +48 -0
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +24 -0
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +48 -0
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +16 -1
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +74 -14
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +40 -0
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +48 -0
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +26 -2
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +24 -0
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +28 -0
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +24 -0
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +76 -8
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +54 -2
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +98 -2
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fieldset/style/fieldsetstyle.d.ts +37 -0
- package/fileupload/fileupload.d.ts +4 -1
- package/fileupload/fileupload.interface.d.ts +9 -0
- package/fileupload/style/fileuploadstyle.d.ts +73 -0
- package/floatlabel/style/floatlabelstyle.d.ts +17 -0
- package/fluid/style/fluidstyle.d.ts +17 -0
- package/galleria/style/galleriastyle.d.ts +125 -0
- package/iconfield/style/iconfieldstyle.d.ts +17 -0
- package/image/style/imagestyle.d.ts +57 -0
- package/inplace/style/inplacestyle.d.ts +25 -0
- package/inputgroup/style/inputgroupstyle.d.ts +17 -0
- package/inputmask/style/inputmaskstyle.d.ts +17 -0
- package/inputnumber/inputnumber.d.ts +1 -1
- package/inputnumber/style/inputnumberstyle.d.ts +33 -0
- package/inputotp/inputotp.d.ts +1 -1
- package/inputotp/style/inputotpstyle.d.ts +21 -0
- package/inputtext/style/inputtextstyle.d.ts +17 -0
- package/inputtextarea/style/textareastyle.d.ts +17 -0
- package/knob/style/knobstyle.d.ts +29 -0
- package/listbox/style/listboxstyle.d.ts +53 -0
- package/megamenu/megamenu.d.ts +2 -2
- package/megamenu/style/megamenustyle.d.ts +81 -0
- package/menu/style/menustyle.d.ts +57 -0
- package/menubar/style/menubarstyle.d.ts +65 -0
- package/message/style/messagestyle.d.ts +37 -0
- package/metergroup/metergroup.d.ts +2 -2
- package/metergroup/style/metergroupstyle.d.ts +45 -0
- package/multiselect/multiselect.d.ts +4 -5
- package/multiselect/style/multiselectstyle.d.ts +85 -0
- package/orderlist/orderlist.d.ts +1 -1
- package/orderlist/style/orderliststyle.d.ts +21 -0
- package/organizationchart/organizationchart.d.ts +1 -1
- package/organizationchart/style/organizationchartstyle.d.ts +53 -0
- package/overlaypanel/style/popoverstyle.d.ts +21 -0
- package/package.json +226 -226
- package/paginator/style/paginatorstyle.d.ts +81 -0
- package/panel/style/panelstyle.d.ts +43 -0
- package/panelmenu/panelmenu.d.ts +3 -3
- package/panelmenu/style/panelmenustyle.d.ts +82 -0
- package/password/style/passwordstyle.d.ts +45 -0
- package/picklist/picklist.d.ts +1 -1
- package/picklist/style/pickliststyle.d.ts +37 -0
- package/progressbar/progressbar.d.ts +1 -1
- package/progressbar/style/progressbarstyle.d.ts +25 -0
- package/progressspinner/progressspinner.d.ts +1 -1
- package/progressspinner/style/progressspinnerstyle.d.ts +25 -0
- package/radiobutton/radiobutton.d.ts +1 -1
- package/radiobutton/style/radiobuttonstyle.d.ts +29 -0
- package/rating/style/ratingstyle.d.ts +29 -0
- package/ripple/ripple.d.ts +1 -0
- package/ripple/style/ripplestyle.d.ts +17 -0
- package/scroller/scroller.d.ts +2 -2
- package/scroller/style/scrollerstyle.d.ts +43 -0
- package/scrollpanel/scrollpanel.d.ts +1 -1
- package/scrollpanel/style/scrollpanelstyle.d.ts +33 -0
- package/scrolltop/scrolltop.d.ts +1 -1
- package/scrolltop/style/scrolltopstyle.d.ts +21 -0
- package/select/public_api.d.ts +1 -0
- package/select/style/selectstyle.d.ts +85 -0
- package/selectbutton/selectbutton.d.ts +1 -1
- package/selectbutton/style/selectbuttonstyle.d.ts +17 -0
- package/skeleton/style/skeletonstyle.d.ts +17 -0
- package/slider/style/sliderstyle.d.ts +25 -0
- package/speeddial/speeddial.d.ts +1 -1
- package/speeddial/style/speeddialstyle.d.ts +41 -0
- package/splitbutton/splitbutton.d.ts +1 -1
- package/splitbutton/style/splitbuttonstyle.d.ts +25 -0
- package/splitter/style/splitterstyle.d.ts +25 -0
- package/stepper/stepper.d.ts +4 -4
- package/stepper/style/stepperstyle.d.ts +21 -0
- package/steps/style/stepsstyle.d.ts +37 -0
- package/table/style/tablestyle.d.ts +327 -0
- package/table/table.d.ts +5 -5
- package/tabmenu/style/tabmenustyle.d.ts +41 -0
- package/tabmenu/tabmenu.d.ts +1 -1
- package/tabs/style/tabsstyle.d.ts +49 -0
- package/tabview/style/tabsstyle.d.ts +49 -0
- package/tag/style/tagstyle.d.ts +25 -0
- package/terminal/style/terminalstyle.d.ts +49 -0
- package/textarea/style/textareastyle.d.ts +17 -0
- package/tieredmenu/style/tieredmenustyle.d.ts +61 -0
- package/tieredmenu/tieredmenu.d.ts +2 -2
- package/timeline/style/timelinestyle.d.ts +41 -0
- package/toast/style/toaststyle.d.ts +49 -0
- package/togglebutton/style/togglebuttonstyle.d.ts +25 -0
- package/togglebutton/togglebutton.d.ts +1 -1
- package/toggleswitch/style/toggleswitchstyle.d.ts +25 -0
- package/toolbar/style/toolbarstyle.d.ts +29 -0
- package/tooltip/style/tooltipstyle.d.ts +25 -0
- package/tree/style/treestyle.d.ts +69 -0
- package/treeselect/style/treeselectstyle.d.ts +53 -0
- package/treeselect/treeselect.d.ts +1 -1
- package/treetable/style/treetablestyle.d.ts +97 -0
- package/treetable/treetable.d.ts +1 -1
- package/esm2022/scroller/style/virtualscrollerstyle.mjs +0 -72
- package/esm2022/table/style/datatablestyle.mjs +0 -725
- package/scroller/style/virtualscrollerstyle.d.ts +0 -10
- package/table/style/datatablestyle.d.ts +0 -124
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-scroller.mjs","sources":["../../src/app/components/scroller/style/virtualscrollerstyle.ts","../../src/app/components/scroller/scroller.ts","../../src/app/components/scroller/primeng-scroller.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\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 background: ${dt('virtualscroller.loader.mask.background')};\n color: ${dt('virtualscroller.loader.mask.color')};\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\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.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n`;\n\n@Injectable()\nexport class VirtalScrollerStyle extends BaseStyle {\n name = 'virtualscroller';\n\n theme = theme;\n}\n","import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Inject,\n Input,\n NgModule,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { PrimeTemplate, ScrollerOptions, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ScrollerLazyLoadEvent, ScrollerScrollEvent, ScrollerScrollIndexChangeEvent, ScrollerToType } from './scroller.interface';\nimport { VirtalScrollerStyle } from './style/virtualscrollerstyle';\nimport { BaseComponent } from 'primeng/basecomponent';\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'p-scroller',\n template: `\n <ng-container *ngIf=\"!_disabled; else disabledContainer\">\n <div\n #element\n [attr.id]=\"_id\"\n [attr.tabindex]=\"tabindex\"\n [ngStyle]=\"_style\"\n [class]=\"_styleClass\"\n [ngClass]=\"{\n 'p-virtualscroller': true,\n 'p-virtualscroller-inline': inline,\n 'p-virtualscroller-both p-both-scroll': both,\n 'p-virtualscroller-horizontal p-horizontal-scroll': horizontal,\n }\"\n (scroll)=\"onContainerScroll($event)\"\n [attr.data-pc-name]=\"'scroller'\"\n [attr.data-pc-section]=\"'root'\"\n >\n <ng-container *ngIf=\"contentTemplate; else buildInContent\">\n <ng-container\n *ngTemplateOutlet=\"contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }\"\n ></ng-container>\n </ng-container>\n <ng-template #buildInContent>\n <div\n #content\n class=\"p-virtualscroller-content\"\n [ngClass]=\"{ 'p-virtualscroller-loading ': d_loading }\"\n [ngStyle]=\"contentStyle\"\n [attr.data-pc-section]=\"'content'\"\n >\n <ng-container *ngFor=\"let item of loadedItems; let index = index; trackBy: _trackBy || index\">\n <ng-container\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, options: getOptions(index) }\"\n ></ng-container>\n </ng-container>\n </div>\n </ng-template>\n <div *ngIf=\"_showSpacer\" class=\"p-virtualscroller-spacer\" [ngStyle]=\"spacerStyle\" [attr.data-pc-section]=\"'spacer'\"></div>\n <div\n *ngIf=\"!loaderDisabled && _showLoader && d_loading\"\n class=\"p-virtualscroller-loader\"\n [ngClass]=\"{ 'p-virtualscroller-loader-mask': !loaderTemplate }\"\n [attr.data-pc-section]=\"'loader'\"\n >\n <ng-container *ngIf=\"loaderTemplate; else buildInLoader\">\n <ng-container *ngFor=\"let item of loaderArr; let index = index\">\n <ng-container\n *ngTemplateOutlet=\"\n loaderTemplate;\n context: {\n options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols }),\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #buildInLoader>\n <ng-container *ngIf=\"loaderIconTemplate; else buildInLoaderIcon\">\n <ng-container\n *ngTemplateOutlet=\"\n loaderIconTemplate;\n context: { options: { styleClass: 'p-virtualscroller-loading-icon' } }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #buildInLoaderIcon>\n <SpinnerIcon [styleClass]=\"'p-virtualscroller-loading-icon pi-spin'\" [attr.data-pc-section]=\"'loadingIcon'\" />\n </ng-template>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #disabledContainer>\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate\">\n <ng-container\n *ngTemplateOutlet=\"contentTemplate; context: { $implicit: items, options: { rows: _items, columns: loadedColumns } }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [VirtalScrollerStyle],\n})\nexport class Scroller extends BaseComponent implements OnInit, AfterContentInit, AfterViewChecked, OnDestroy {\n /**\n * Unique identifier of the element.\n * @group Props\n */\n @Input() get id(): string | undefined {\n return this._id;\n }\n set id(val: string | undefined) {\n this._id = val;\n }\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() get style(): any {\n return this._style;\n }\n set style(val: any) {\n this._style = val;\n }\n /**\n * Style class of the element.\n * @group Props\n */\n @Input() get styleClass(): string | undefined {\n return this._styleClass;\n }\n set styleClass(val: string | undefined) {\n this._styleClass = val;\n }\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input() get tabindex() {\n return this._tabindex;\n }\n set tabindex(val: number) {\n this._tabindex = val;\n }\n /**\n * An array of objects to display.\n * @group Props\n */\n @Input() get items(): any[] | undefined | null {\n return this._items;\n }\n set items(val: any[] | undefined | null) {\n this._items = val;\n }\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n @Input() get itemSize(): number[] | number {\n return this._itemSize;\n }\n set itemSize(val: number[] | number) {\n this._itemSize = val;\n }\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n @Input() get scrollHeight(): string | undefined {\n return this._scrollHeight;\n }\n set scrollHeight(val: string | undefined) {\n this._scrollHeight = val;\n }\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n @Input() get scrollWidth(): string | undefined {\n return this._scrollWidth;\n }\n set scrollWidth(val: string | undefined) {\n this._scrollWidth = val;\n }\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n @Input() get orientation(): 'vertical' | 'horizontal' | 'both' {\n return this._orientation;\n }\n set orientation(val: 'vertical' | 'horizontal' | 'both') {\n this._orientation = val;\n }\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n @Input() get step(): number {\n return this._step;\n }\n set step(val: number) {\n this._step = val;\n }\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n @Input() get delay() {\n return this._delay;\n }\n set delay(val: number) {\n this._delay = val;\n }\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n @Input() get resizeDelay() {\n return this._resizeDelay;\n }\n set resizeDelay(val: number) {\n this._resizeDelay = val;\n }\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n @Input() get appendOnly(): boolean {\n return this._appendOnly;\n }\n set appendOnly(val: boolean) {\n this._appendOnly = val;\n }\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n @Input() get inline() {\n return this._inline;\n }\n set inline(val: boolean) {\n this._inline = val;\n }\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input() get lazy() {\n return this._lazy;\n }\n set lazy(val: boolean) {\n this._lazy = val;\n }\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n @Input() get disabled() {\n return this._disabled;\n }\n set disabled(val: boolean) {\n this._disabled = val;\n }\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n @Input() get loaderDisabled() {\n return this._loaderDisabled;\n }\n set loaderDisabled(val: boolean) {\n this._loaderDisabled = val;\n }\n /**\n * Columns to display.\n * @group Props\n */\n @Input() get columns(): any[] | undefined | null {\n return this._columns;\n }\n set columns(val: any[] | undefined | null) {\n this._columns = val;\n }\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n @Input() get showSpacer() {\n return this._showSpacer;\n }\n set showSpacer(val: boolean) {\n this._showSpacer = val;\n }\n /**\n * Defines whether to show loader.\n * @group Props\n */\n @Input() get showLoader() {\n return this._showLoader;\n }\n set showLoader(val: boolean) {\n this._showLoader = val;\n }\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n @Input() get numToleratedItems() {\n return this._numToleratedItems;\n }\n set numToleratedItems(val: number) {\n this._numToleratedItems = val;\n }\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n @Input() get loading(): boolean | undefined {\n return this._loading;\n }\n set loading(val: boolean | undefined) {\n this._loading = val;\n }\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n @Input() get autoSize(): boolean {\n return this._autoSize;\n }\n set autoSize(val: boolean) {\n this._autoSize = val;\n }\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n @Input() get trackBy(): Function {\n return this._trackBy;\n }\n set trackBy(val: Function) {\n this._trackBy = val;\n }\n /**\n * Defines whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() get options(): ScrollerOptions | undefined {\n return this._options;\n }\n set options(val: ScrollerOptions | undefined) {\n this._options = val;\n\n if (val && typeof val === 'object') {\n //@ts-ignore\n Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n }\n }\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<ScrollerLazyLoadEvent> = new EventEmitter<ScrollerLazyLoadEvent>();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n @Output() onScroll: EventEmitter<ScrollerScrollEvent> = new EventEmitter<ScrollerScrollEvent>();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n @Output() onScrollIndexChange: EventEmitter<ScrollerScrollIndexChangeEvent> = new EventEmitter<ScrollerScrollIndexChangeEvent>();\n\n @ViewChild('element') elementViewChild: Nullable<ElementRef>;\n\n @ViewChild('content') contentViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n _id: string | undefined;\n\n _style: { [klass: string]: any } | null | undefined;\n\n _styleClass: string | undefined;\n\n _tabindex: number = 0;\n\n _items: any[] | undefined | null;\n\n _itemSize: number | number[] = 0;\n\n _scrollHeight: string | undefined;\n\n _scrollWidth: string | undefined;\n\n _orientation: 'vertical' | 'horizontal' | 'both' = 'vertical';\n\n _step: number = 0;\n\n _delay: number = 0;\n\n _resizeDelay: number = 10;\n\n _appendOnly: boolean = false;\n\n _inline: boolean = false;\n\n _lazy: boolean = false;\n\n _disabled: boolean = false;\n\n _loaderDisabled: boolean = false;\n\n _columns: any[] | undefined | null;\n\n _showSpacer: boolean = true;\n\n _showLoader: boolean = false;\n\n _numToleratedItems: any;\n\n _loading: boolean | undefined;\n\n _autoSize: boolean = false;\n\n _trackBy: any;\n\n _options: ScrollerOptions | undefined;\n\n d_loading: boolean = false;\n\n d_numToleratedItems: any;\n\n contentEl: any;\n\n contentTemplate: Nullable<TemplateRef<any>>;\n\n itemTemplate: Nullable<TemplateRef<any>>;\n\n loaderTemplate: Nullable<TemplateRef<any>>;\n\n loaderIconTemplate: Nullable<TemplateRef<any>>;\n\n first: any = 0;\n\n last: any = 0;\n\n page: number = 0;\n\n isRangeChanged: boolean = false;\n\n numItemsInViewport: any = 0;\n\n lastScrollPos: any = 0;\n\n lazyLoadState: any = {};\n\n loaderArr: any[] = [];\n\n spacerStyle: { [klass: string]: any } | null | undefined = {};\n\n contentStyle: { [klass: string]: any } | null | undefined = {};\n\n scrollTimeout: any;\n\n resizeTimeout: any;\n\n initialized: boolean = false;\n\n windowResizeListener: VoidListener;\n\n defaultWidth: number | undefined;\n\n defaultHeight: number | undefined;\n\n defaultContentWidth: number | undefined;\n\n defaultContentHeight: number | undefined;\n\n get vertical() {\n return this._orientation === 'vertical';\n }\n\n get horizontal() {\n return this._orientation === 'horizontal';\n }\n\n get both() {\n return this._orientation === 'both';\n }\n\n get loadedItems() {\n if (this._items && !this.d_loading) {\n if (this.both)\n return this._items\n .slice(this._appendOnly ? 0 : this.first.rows, this.last.rows)\n .map((item) => (this._columns ? item : item.slice(this._appendOnly ? 0 : this.first.cols, this.last.cols)));\n else if (this.horizontal && this._columns) return this._items;\n else return this._items.slice(this._appendOnly ? 0 : this.first, this.last);\n }\n\n return [];\n }\n\n get loadedRows() {\n return this.d_loading ? (this._loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n }\n\n get loadedColumns() {\n if (this._columns && (this.both || this.horizontal)) {\n return this.d_loading && this._loaderDisabled\n ? this.both\n ? this.loaderArr[0]\n : this.loaderArr\n : this._columns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);\n }\n\n return this._columns;\n }\n _componentStyle = inject(VirtalScrollerStyle);\n\n constructor(private zone: NgZone) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setInitialState();\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n super.ngOnChanges(simpleChanges);\n let isLoadingChanged = false;\n\n if (simpleChanges.loading) {\n const { previousValue, currentValue } = simpleChanges.loading;\n\n if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {\n this.d_loading = currentValue;\n isLoadingChanged = true;\n }\n }\n\n if (simpleChanges.orientation) {\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n }\n\n if (simpleChanges.numToleratedItems) {\n const { previousValue, currentValue } = simpleChanges.numToleratedItems;\n\n if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {\n this.d_numToleratedItems = currentValue;\n }\n }\n\n if (simpleChanges.options) {\n const { previousValue, currentValue } = simpleChanges.options;\n\n if (this.lazy && previousValue?.loading !== currentValue?.loading && currentValue?.loading !== this.d_loading) {\n this.d_loading = currentValue.loading;\n isLoadingChanged = true;\n }\n\n if (\n previousValue?.numToleratedItems !== currentValue?.numToleratedItems &&\n currentValue?.numToleratedItems !== this.d_numToleratedItems\n ) {\n this.d_numToleratedItems = currentValue.numToleratedItems;\n }\n }\n\n if (this.initialized) {\n const isChanged =\n !isLoadingChanged &&\n (simpleChanges.items?.previousValue?.length !== simpleChanges.items?.currentValue?.length ||\n simpleChanges.itemSize ||\n simpleChanges.scrollHeight ||\n simpleChanges.scrollWidth);\n\n if (isChanged) {\n this.init();\n this.calculateAutoSize();\n }\n }\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n\n case 'loadericon':\n this.loaderIconTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n\n ngAfterViewChecked() {\n if (!this.initialized) {\n this.viewInit();\n }\n }\n\n ngOnDestroy() {\n this.unbindResizeListener();\n\n this.contentEl = null;\n this.initialized = false;\n super.ngOnDestroy();\n }\n\n viewInit() {\n if (isPlatformBrowser(this.platformId) && !this.initialized) {\n if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n\n this.defaultWidth = DomHandler.getWidth(this.elementViewChild?.nativeElement);\n this.defaultHeight = DomHandler.getHeight(this.elementViewChild?.nativeElement);\n this.defaultContentWidth = DomHandler.getWidth(this.contentEl);\n this.defaultContentHeight = DomHandler.getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n\n init() {\n if (!this._disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n this.bindResizeListener();\n\n this.cd.detectChanges();\n }\n }\n\n setContentEl(el?: HTMLElement) {\n this.contentEl =\n el ||\n this.contentViewChild?.nativeElement ||\n DomHandler.findSingle(this.elementViewChild?.nativeElement, '.p-virtualscroller-content');\n }\n\n setInitialState() {\n this.first = this.both ? { rows: 0, cols: 0 } : 0;\n this.last = this.both ? { rows: 0, cols: 0 } : 0;\n this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.d_loading = this._loading || false;\n this.d_numToleratedItems = this._numToleratedItems;\n this.loaderArr = [];\n this.spacerStyle = {};\n this.contentStyle = {};\n }\n\n getElementRef() {\n return this.elementViewChild;\n }\n\n getPageByFirst(first?: any) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this._step || 1));\n }\n\n isPageChanged(first?: any) {\n return this._step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n\n scrollTo(options: ScrollToOptions) {\n // this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.elementViewChild?.nativeElement?.scrollTo(options);\n }\n\n scrollToIndex(index: number | number[], behavior: ScrollBehavior = 'auto') {\n const valid = this.both ? (index as number[]).every((i) => i > -1) : (index as number) > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.elementViewChild?.nativeElement;\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 = this.both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (this.both) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1]),\n };\n scrollTo(\n calculateCoord(newFirst.cols, itemSize[1], contentPos.left),\n calculateCoord(newFirst.rows, itemSize[0], contentPos.top),\n );\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 as number, numToleratedItems);\n this.horizontal\n ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop)\n : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (this.horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n }\n\n scrollInView(index: number, to: ScrollerToType, behavior: ScrollBehavior = 'auto') {\n if (to) {\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 (this.both) {\n if (viewport.first.rows - first.rows > (<any>index)[0]) {\n scrollTo(\n viewport.first.cols * (<number[]>this._itemSize)[1],\n (viewport.first.rows - 1) * (<number[]>this._itemSize)[0],\n );\n } else if (viewport.first.cols - first.cols > (<any>index)[1]) {\n scrollTo(\n (viewport.first.cols - 1) * (<number[]>this._itemSize)[1],\n viewport.first.rows * (<number[]>this._itemSize)[0],\n );\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * <number>this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (this.both) {\n if (viewport.last.rows - first.rows <= (<any>index)[0] + 1) {\n scrollTo(\n viewport.first.cols * (<number[]>this._itemSize)[1],\n (viewport.first.rows + 1) * (<number[]>this._itemSize)[0],\n );\n } else if (viewport.last.cols - first.cols <= (<any>index)[1] + 1) {\n scrollTo(\n (viewport.first.cols + 1) * (<number[]>this._itemSize)[1],\n viewport.first.rows * (<number[]>this._itemSize)[0],\n );\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * <number>this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n\n getRenderedRange() {\n const calculateFirstInViewport = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n\n let firstInViewport = this.first;\n let lastInViewport: any = 0;\n\n if (this.elementViewChild?.nativeElement) {\n const { scrollTop, scrollLeft } = this.elementViewChild.nativeElement;\n\n if (this.both) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, (<number[]>this._itemSize)[0]),\n cols: calculateFirstInViewport(scrollLeft, (<number[]>this._itemSize)[1]),\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols,\n };\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, <number>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\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const contentWidth =\n (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0) || 0;\n const contentHeight =\n (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize: number, _itemSize: number) =>\n _itemSize || _contentSize ? Math.ceil(_contentSize / (_itemSize || _contentSize)) : 0;\n const calculateNumToleratedItems = (_numItems: number) => Math.ceil(_numItems / 2);\n const numItemsInViewport: any = this.both\n ? {\n rows: calculateNumItemsInViewport(contentHeight, (<number[]>this._itemSize)[0]),\n cols: calculateNumItemsInViewport(contentWidth, (<number[]>this._itemSize)[1]),\n }\n : calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, <number>this._itemSize);\n\n const numToleratedItems =\n this.d_numToleratedItems ||\n (this.both\n ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)]\n : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n }\n\n calculateOptions() {\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first: number, _num: number, _numT: number, _isCols: boolean = false) =>\n this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both\n ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true),\n }\n : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n\n if (this.showLoader) {\n this.loaderArr = this.both\n ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols }))\n : Array.from({ length: numItemsInViewport });\n }\n\n if (this._lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this._step ? (this.both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this._step ? this._step : this.last, (<any[]>this.items).length),\n };\n\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n\n calculateAutoSize() {\n if (this._autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n (<ElementRef>this.elementViewChild).nativeElement.style.contain = 'none';\n\n const [contentWidth, contentHeight] = [DomHandler.getWidth(this.contentEl), DomHandler.getHeight(this.contentEl)];\n contentWidth !== this.defaultContentWidth && ((<ElementRef>this.elementViewChild).nativeElement.style.width = '');\n contentHeight !== this.defaultContentHeight && ((<ElementRef>this.elementViewChild).nativeElement.style.height = '');\n\n const [width, height] = [\n DomHandler.getWidth((<ElementRef>this.elementViewChild).nativeElement),\n DomHandler.getHeight((<ElementRef>this.elementViewChild).nativeElement),\n ];\n (this.both || this.horizontal) &&\n ((<ElementRef>this.elementViewChild).nativeElement.style.width =\n width < <number>this.defaultWidth ? width + 'px' : this._scrollWidth || this.defaultWidth + 'px');\n (this.both || this.vertical) &&\n ((<ElementRef>this.elementViewChild).nativeElement.style.height =\n height < <number>this.defaultHeight ? height + 'px' : this._scrollHeight || this.defaultHeight + 'px');\n\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n (<ElementRef>this.elementViewChild).nativeElement.style.contain = '';\n }\n });\n }\n }\n\n getLast(last = 0, isCols = false) {\n return this._items ? Math.min(isCols ? (this._columns || this._items[0]).length : this._items.length, last) : 0;\n }\n\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\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\n setSize() {\n if (this.elementViewChild?.nativeElement) {\n const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;\n const width = this._scrollWidth || `${this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth}px`;\n const height = this._scrollHeight || `${this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name: string, _value: any) => ((<ElementRef>this.elementViewChild).nativeElement.style[_name] = _value);\n\n if (this.both || this.horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n }\n\n setSpacerSize() {\n if (this._items) {\n const contentPos = this.getContentPosition();\n const setProp = (_name: string, _value: any, _size: number, _cpos: number = 0) =>\n (this.spacerStyle = {\n ...this.spacerStyle,\n ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' },\n });\n\n if (this.both) {\n setProp('height', this._items, (<number[]>this._itemSize)[0], contentPos.y);\n setProp('width', this._columns || this._items[1], (<number[]>this._itemSize)[1], contentPos.x);\n } else {\n this.horizontal\n ? setProp('width', this._columns || this._items, <number>this._itemSize, contentPos.x)\n : setProp('height', this._items, <number>this._itemSize, contentPos.y);\n }\n }\n }\n\n setContentPosition(pos: any) {\n if (this.contentEl && !this._appendOnly) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first: number, _size: number) => _first * _size;\n const setTransform = (_x = 0, _y = 0) =>\n (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (this.both) {\n setTransform(\n calculateTranslateVal(first.cols, (<number[]>this._itemSize)[1]),\n calculateTranslateVal(first.rows, (<number[]>this._itemSize)[0]),\n );\n } else {\n const translateVal = calculateTranslateVal(first, <number>this._itemSize);\n this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n\n onScrollPositionChange(event: Event) {\n const target = event.target;\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos: number, _cpos: number) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n const calculateTriggerIndex = (\n _currentIndex: number,\n _first: number,\n _last: number,\n _num: number,\n _numT: number,\n _isScrollDownOrRight: any,\n ) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n const calculateFirst = (\n _currentIndex: number,\n _triggerIndex: number,\n _first: number,\n _last: number,\n _num: number,\n _numT: number,\n _isScrollDownOrRight: any,\n ) => {\n if (_currentIndex <= _numT) return 0;\n else\n return Math.max(\n 0,\n _isScrollDownOrRight\n ? _currentIndex < _triggerIndex\n ? _first\n : _currentIndex - _numT\n : _currentIndex > _triggerIndex\n ? _first\n : _currentIndex - 2 * _numT,\n );\n };\n const calculateLast = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isCols = false) => {\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((<HTMLElement>target).scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos((<HTMLElement>target).scrollLeft, contentPos.left);\n\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (this.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 = {\n rows: calculateCurrentIndex(scrollTop, (<number[]>this._itemSize)[0]),\n cols: calculateCurrentIndex(scrollLeft, (<number[]>this._itemSize)[1]),\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(\n currentIndex.rows,\n this.first.rows,\n this.last.rows,\n this.numItemsInViewport.rows,\n this.d_numToleratedItems[0],\n isScrollDown,\n ),\n cols: calculateTriggerIndex(\n currentIndex.cols,\n this.first.cols,\n this.last.cols,\n this.numItemsInViewport.cols,\n this.d_numToleratedItems[1],\n isScrollRight,\n ),\n };\n\n newFirst = {\n rows: calculateFirst(\n currentIndex.rows,\n triggerIndex.rows,\n this.first.rows,\n this.last.rows,\n this.numItemsInViewport.rows,\n this.d_numToleratedItems[0],\n isScrollDown,\n ),\n cols: calculateFirst(\n currentIndex.cols,\n triggerIndex.cols,\n this.first.cols,\n this.last.cols,\n this.numItemsInViewport.cols,\n this.d_numToleratedItems[1],\n isScrollRight,\n ),\n };\n newLast = {\n rows: calculateLast(\n currentIndex.rows,\n newFirst.rows,\n this.last.rows,\n this.numItemsInViewport.rows,\n this.d_numToleratedItems[0],\n ),\n cols: calculateLast(\n currentIndex.cols,\n newFirst.cols,\n this.last.cols,\n this.numItemsInViewport.cols,\n this.d_numToleratedItems[1],\n true,\n ),\n };\n\n isRangeChanged =\n newFirst.rows !== this.first.rows ||\n newLast.rows !== this.last.rows ||\n newFirst.cols !== this.first.cols ||\n newLast.cols !== this.last.cols ||\n this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this._appendOnly || (this._appendOnly && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, <number>this._itemSize);\n const triggerIndex = calculateTriggerIndex(\n currentIndex,\n this.first,\n this.last,\n this.numItemsInViewport,\n this.d_numToleratedItems,\n isScrollDownOrRight,\n );\n\n newFirst = calculateFirst(\n currentIndex,\n triggerIndex,\n this.first,\n this.last,\n this.numItemsInViewport,\n this.d_numToleratedItems,\n isScrollDownOrRight,\n );\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\n onScrollChange(event: 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.handleEvents('onScrollIndexChange', newState);\n\n if (this._lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this._step ? Math.min(this.getPageByFirst(first) * this._step, (<any[]>this.items).length - this._step) : first,\n last: Math.min(this._step ? (this.getPageByFirst(first) + 1) * this._step : last, (<any[]>this.items).length),\n };\n const isLazyStateChanged =\n this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n\n onContainerScroll(event: Event) {\n this.handleEvents('onScroll', { originalEvent: event });\n\n if (this._delay && this.isPageChanged()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this._step ? this.isPageChanged() : false);\n\n if (changed) {\n this.d_loading = true;\n\n this.cd.detectChanges();\n }\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 this.cd.detectChanges();\n }\n }, this._delay);\n } else {\n !this.d_loading && this.onScrollChange(event);\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n this.zone.runOutsideAngular(() => {\n const window = this.document.defaultView as Window;\n const event = DomHandler.isTouchDevice() ? 'orientationchange' : 'resize';\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n });\n }\n }\n }\n\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {\n const [width, height] = [\n DomHandler.getWidth(this.elementViewChild?.nativeElement),\n DomHandler.getHeight(this.elementViewChild?.nativeElement),\n ];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both\n ? isDiffWidth || isDiffHeight\n : this.horizontal\n ? isDiffWidth\n : this.vertical\n ? isDiffHeight\n : false;\n\n reinit &&\n this.zone.run(() => {\n this.d_numToleratedItems = this._numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = DomHandler.getWidth(this.contentEl);\n this.defaultContentHeight = DomHandler.getHeight(this.contentEl);\n\n this.init();\n });\n }\n }, this._resizeDelay);\n }\n\n handleEvents(name: string, params: any) {\n //@ts-ignore\n return this.options && (<any>this.options)[name] ? (<any>this.options)[name](params) : this[name].emit(params);\n }\n\n getContentOptions() {\n return {\n contentStyleClass: `p-virtualscroller-content ${this.d_loading ? 'p-virtualscroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: (index: number) => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index: number, options?: any) => this.getLoaderOptions(index, options),\n itemSize: this._itemSize,\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical,\n horizontal: this.horizontal,\n both: this.both,\n };\n }\n\n getOptions(renderedIndex: number) {\n const count = (this._items || []).length;\n const index = this.both ? 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\n getLoaderOptions(index: number, extOptions: any) {\n const 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}\n\n@NgModule({\n imports: [CommonModule, SharedModule, SpinnerIcon],\n exports: [Scroller, SharedModule],\n declarations: [Scroller],\n})\nexport class ScrollerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"primeng-scroller.mjs","sources":["../../src/app/components/scroller/style/scrollerstyle.ts","../../src/app/components/scroller/scroller.ts","../../src/app/components/scroller/primeng-scroller.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\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 background: ${dt('virtualscroller.loader.mask.background')};\n color: ${dt('virtualscroller.loader.mask.color')};\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\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.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n`;\n\n@Injectable()\nexport class ScrollerStyle extends BaseStyle {\n name = 'virtualscroller';\n\n theme = theme;\n}\n\n/**\n *\n * VirtualScroller is a performant approach to handle huge data efficiently.\n *\n * [Live Demo](https://www.primeng.org/scroller/)\n *\n * @module scrollerstyle\n *\n */\nexport enum ScrollerClasses {\n /**\n * Class name of the root element\n */\n root = 'p-virtualscroller',\n /**\n * Class name of the content element\n */\n content = 'p-virtualscroller-content',\n /**\n * Class name of the spacer element\n */\n spacer = 'p-virtualscroller-spacer',\n /**\n * Class name of the loader element\n */\n loader = 'p-virtualscroller-loader',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-virtualscroller-loading-icon',\n}\n\nexport interface ScrollerStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgModule,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { PrimeTemplate, ScrollerOptions, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ScrollerLazyLoadEvent, ScrollerScrollEvent, ScrollerScrollIndexChangeEvent, ScrollerToType } from './scroller.interface';\nimport { ScrollerStyle } from './style/scrollerstyle';\nimport { BaseComponent } from 'primeng/basecomponent';\n\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'p-scroller',\n template: `\n <ng-container *ngIf=\"!_disabled; else disabledContainer\">\n <div\n #element\n [attr.id]=\"_id\"\n [attr.tabindex]=\"tabindex\"\n [ngStyle]=\"_style\"\n [class]=\"_styleClass\"\n [ngClass]=\"{\n 'p-virtualscroller': true,\n 'p-virtualscroller-inline': inline,\n 'p-virtualscroller-both p-both-scroll': both,\n 'p-virtualscroller-horizontal p-horizontal-scroll': horizontal,\n }\"\n (scroll)=\"onContainerScroll($event)\"\n [attr.data-pc-name]=\"'scroller'\"\n [attr.data-pc-section]=\"'root'\"\n >\n <ng-container *ngIf=\"contentTemplate; else buildInContent\">\n <ng-container\n *ngTemplateOutlet=\"contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }\"\n ></ng-container>\n </ng-container>\n <ng-template #buildInContent>\n <div\n #content\n class=\"p-virtualscroller-content\"\n [ngClass]=\"{ 'p-virtualscroller-loading ': d_loading }\"\n [ngStyle]=\"contentStyle\"\n [attr.data-pc-section]=\"'content'\"\n >\n <ng-container *ngFor=\"let item of loadedItems; let index = index; trackBy: _trackBy || index\">\n <ng-container\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, options: getOptions(index) }\"\n ></ng-container>\n </ng-container>\n </div>\n </ng-template>\n <div *ngIf=\"_showSpacer\" class=\"p-virtualscroller-spacer\" [ngStyle]=\"spacerStyle\" [attr.data-pc-section]=\"'spacer'\"></div>\n <div\n *ngIf=\"!loaderDisabled && _showLoader && d_loading\"\n class=\"p-virtualscroller-loader\"\n [ngClass]=\"{ 'p-virtualscroller-loader-mask': !loaderTemplate }\"\n [attr.data-pc-section]=\"'loader'\"\n >\n <ng-container *ngIf=\"loaderTemplate; else buildInLoader\">\n <ng-container *ngFor=\"let item of loaderArr; let index = index\">\n <ng-container\n *ngTemplateOutlet=\"\n loaderTemplate;\n context: {\n options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols }),\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #buildInLoader>\n <ng-container *ngIf=\"loaderIconTemplate; else buildInLoaderIcon\">\n <ng-container\n *ngTemplateOutlet=\"\n loaderIconTemplate;\n context: { options: { styleClass: 'p-virtualscroller-loading-icon' } }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #buildInLoaderIcon>\n <SpinnerIcon [styleClass]=\"'p-virtualscroller-loading-icon pi-spin'\" [attr.data-pc-section]=\"'loadingIcon'\" />\n </ng-template>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #disabledContainer>\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate\">\n <ng-container\n *ngTemplateOutlet=\"contentTemplate; context: { $implicit: items, options: { rows: _items, columns: loadedColumns } }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [ScrollerStyle],\n})\nexport class Scroller extends BaseComponent implements OnInit, AfterContentInit, AfterViewChecked, OnDestroy {\n /**\n * Unique identifier of the element.\n * @group Props\n */\n @Input() get id(): string | undefined {\n return this._id;\n }\n set id(val: string | undefined) {\n this._id = val;\n }\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() get style(): any {\n return this._style;\n }\n set style(val: any) {\n this._style = val;\n }\n /**\n * Style class of the element.\n * @group Props\n */\n @Input() get styleClass(): string | undefined {\n return this._styleClass;\n }\n set styleClass(val: string | undefined) {\n this._styleClass = val;\n }\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input() get tabindex() {\n return this._tabindex;\n }\n set tabindex(val: number) {\n this._tabindex = val;\n }\n /**\n * An array of objects to display.\n * @group Props\n */\n @Input() get items(): any[] | undefined | null {\n return this._items;\n }\n set items(val: any[] | undefined | null) {\n this._items = val;\n }\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n @Input() get itemSize(): number[] | number {\n return this._itemSize;\n }\n set itemSize(val: number[] | number) {\n this._itemSize = val;\n }\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n @Input() get scrollHeight(): string | undefined {\n return this._scrollHeight;\n }\n set scrollHeight(val: string | undefined) {\n this._scrollHeight = val;\n }\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n @Input() get scrollWidth(): string | undefined {\n return this._scrollWidth;\n }\n set scrollWidth(val: string | undefined) {\n this._scrollWidth = val;\n }\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n @Input() get orientation(): 'vertical' | 'horizontal' | 'both' {\n return this._orientation;\n }\n set orientation(val: 'vertical' | 'horizontal' | 'both') {\n this._orientation = val;\n }\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n @Input() get step(): number {\n return this._step;\n }\n set step(val: number) {\n this._step = val;\n }\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n @Input() get delay() {\n return this._delay;\n }\n set delay(val: number) {\n this._delay = val;\n }\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n @Input() get resizeDelay() {\n return this._resizeDelay;\n }\n set resizeDelay(val: number) {\n this._resizeDelay = val;\n }\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n @Input() get appendOnly(): boolean {\n return this._appendOnly;\n }\n set appendOnly(val: boolean) {\n this._appendOnly = val;\n }\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n @Input() get inline() {\n return this._inline;\n }\n set inline(val: boolean) {\n this._inline = val;\n }\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input() get lazy() {\n return this._lazy;\n }\n set lazy(val: boolean) {\n this._lazy = val;\n }\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n @Input() get disabled() {\n return this._disabled;\n }\n set disabled(val: boolean) {\n this._disabled = val;\n }\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n @Input() get loaderDisabled() {\n return this._loaderDisabled;\n }\n set loaderDisabled(val: boolean) {\n this._loaderDisabled = val;\n }\n /**\n * Columns to display.\n * @group Props\n */\n @Input() get columns(): any[] | undefined | null {\n return this._columns;\n }\n set columns(val: any[] | undefined | null) {\n this._columns = val;\n }\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n @Input() get showSpacer() {\n return this._showSpacer;\n }\n set showSpacer(val: boolean) {\n this._showSpacer = val;\n }\n /**\n * Defines whether to show loader.\n * @group Props\n */\n @Input() get showLoader() {\n return this._showLoader;\n }\n set showLoader(val: boolean) {\n this._showLoader = val;\n }\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n @Input() get numToleratedItems() {\n return this._numToleratedItems;\n }\n set numToleratedItems(val: number) {\n this._numToleratedItems = val;\n }\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n @Input() get loading(): boolean | undefined {\n return this._loading;\n }\n set loading(val: boolean | undefined) {\n this._loading = val;\n }\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n @Input() get autoSize(): boolean {\n return this._autoSize;\n }\n set autoSize(val: boolean) {\n this._autoSize = val;\n }\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n @Input() get trackBy(): Function {\n return this._trackBy;\n }\n set trackBy(val: Function) {\n this._trackBy = val;\n }\n /**\n * Defines whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() get options(): ScrollerOptions | undefined {\n return this._options;\n }\n set options(val: ScrollerOptions | undefined) {\n this._options = val;\n\n if (val && typeof val === 'object') {\n //@ts-ignore\n Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n }\n }\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<ScrollerLazyLoadEvent> = new EventEmitter<ScrollerLazyLoadEvent>();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n @Output() onScroll: EventEmitter<ScrollerScrollEvent> = new EventEmitter<ScrollerScrollEvent>();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n @Output() onScrollIndexChange: EventEmitter<ScrollerScrollIndexChangeEvent> = new EventEmitter<ScrollerScrollIndexChangeEvent>();\n\n @ViewChild('element') elementViewChild: Nullable<ElementRef>;\n\n @ViewChild('content') contentViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n _id: string | undefined;\n\n _style: { [klass: string]: any } | null | undefined;\n\n _styleClass: string | undefined;\n\n _tabindex: number = 0;\n\n _items: any[] | undefined | null;\n\n _itemSize: number | number[] = 0;\n\n _scrollHeight: string | undefined;\n\n _scrollWidth: string | undefined;\n\n _orientation: 'vertical' | 'horizontal' | 'both' = 'vertical';\n\n _step: number = 0;\n\n _delay: number = 0;\n\n _resizeDelay: number = 10;\n\n _appendOnly: boolean = false;\n\n _inline: boolean = false;\n\n _lazy: boolean = false;\n\n _disabled: boolean = false;\n\n _loaderDisabled: boolean = false;\n\n _columns: any[] | undefined | null;\n\n _showSpacer: boolean = true;\n\n _showLoader: boolean = false;\n\n _numToleratedItems: any;\n\n _loading: boolean | undefined;\n\n _autoSize: boolean = false;\n\n _trackBy: any;\n\n _options: ScrollerOptions | undefined;\n\n d_loading: boolean = false;\n\n d_numToleratedItems: any;\n\n contentEl: any;\n\n contentTemplate: Nullable<TemplateRef<any>>;\n\n itemTemplate: Nullable<TemplateRef<any>>;\n\n loaderTemplate: Nullable<TemplateRef<any>>;\n\n loaderIconTemplate: Nullable<TemplateRef<any>>;\n\n first: any = 0;\n\n last: any = 0;\n\n page: number = 0;\n\n isRangeChanged: boolean = false;\n\n numItemsInViewport: any = 0;\n\n lastScrollPos: any = 0;\n\n lazyLoadState: any = {};\n\n loaderArr: any[] = [];\n\n spacerStyle: { [klass: string]: any } | null | undefined = {};\n\n contentStyle: { [klass: string]: any } | null | undefined = {};\n\n scrollTimeout: any;\n\n resizeTimeout: any;\n\n initialized: boolean = false;\n\n windowResizeListener: VoidListener;\n\n defaultWidth: number | undefined;\n\n defaultHeight: number | undefined;\n\n defaultContentWidth: number | undefined;\n\n defaultContentHeight: number | undefined;\n\n get vertical() {\n return this._orientation === 'vertical';\n }\n\n get horizontal() {\n return this._orientation === 'horizontal';\n }\n\n get both() {\n return this._orientation === 'both';\n }\n\n get loadedItems() {\n if (this._items && !this.d_loading) {\n if (this.both)\n return this._items\n .slice(this._appendOnly ? 0 : this.first.rows, this.last.rows)\n .map((item) => (this._columns ? item : item.slice(this._appendOnly ? 0 : this.first.cols, this.last.cols)));\n else if (this.horizontal && this._columns) return this._items;\n else return this._items.slice(this._appendOnly ? 0 : this.first, this.last);\n }\n\n return [];\n }\n\n get loadedRows() {\n return this.d_loading ? (this._loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n }\n\n get loadedColumns() {\n if (this._columns && (this.both || this.horizontal)) {\n return this.d_loading && this._loaderDisabled\n ? this.both\n ? this.loaderArr[0]\n : this.loaderArr\n : this._columns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);\n }\n\n return this._columns;\n }\n\n _componentStyle = inject(ScrollerStyle);\n\n constructor(private zone: NgZone) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setInitialState();\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n super.ngOnChanges(simpleChanges);\n let isLoadingChanged = false;\n\n if (simpleChanges.loading) {\n const { previousValue, currentValue } = simpleChanges.loading;\n\n if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {\n this.d_loading = currentValue;\n isLoadingChanged = true;\n }\n }\n\n if (simpleChanges.orientation) {\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n }\n\n if (simpleChanges.numToleratedItems) {\n const { previousValue, currentValue } = simpleChanges.numToleratedItems;\n\n if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {\n this.d_numToleratedItems = currentValue;\n }\n }\n\n if (simpleChanges.options) {\n const { previousValue, currentValue } = simpleChanges.options;\n\n if (this.lazy && previousValue?.loading !== currentValue?.loading && currentValue?.loading !== this.d_loading) {\n this.d_loading = currentValue.loading;\n isLoadingChanged = true;\n }\n\n if (\n previousValue?.numToleratedItems !== currentValue?.numToleratedItems &&\n currentValue?.numToleratedItems !== this.d_numToleratedItems\n ) {\n this.d_numToleratedItems = currentValue.numToleratedItems;\n }\n }\n\n if (this.initialized) {\n const isChanged =\n !isLoadingChanged &&\n (simpleChanges.items?.previousValue?.length !== simpleChanges.items?.currentValue?.length ||\n simpleChanges.itemSize ||\n simpleChanges.scrollHeight ||\n simpleChanges.scrollWidth);\n\n if (isChanged) {\n this.init();\n this.calculateAutoSize();\n }\n }\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n\n case 'loadericon':\n this.loaderIconTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n\n ngAfterViewChecked() {\n if (!this.initialized) {\n this.viewInit();\n }\n }\n\n ngOnDestroy() {\n this.unbindResizeListener();\n\n this.contentEl = null;\n this.initialized = false;\n super.ngOnDestroy();\n }\n\n viewInit() {\n if (isPlatformBrowser(this.platformId) && !this.initialized) {\n if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n\n this.defaultWidth = DomHandler.getWidth(this.elementViewChild?.nativeElement);\n this.defaultHeight = DomHandler.getHeight(this.elementViewChild?.nativeElement);\n this.defaultContentWidth = DomHandler.getWidth(this.contentEl);\n this.defaultContentHeight = DomHandler.getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n\n init() {\n if (!this._disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n this.bindResizeListener();\n\n this.cd.detectChanges();\n }\n }\n\n setContentEl(el?: HTMLElement) {\n this.contentEl =\n el ||\n this.contentViewChild?.nativeElement ||\n DomHandler.findSingle(this.elementViewChild?.nativeElement, '.p-virtualscroller-content');\n }\n\n setInitialState() {\n this.first = this.both ? { rows: 0, cols: 0 } : 0;\n this.last = this.both ? { rows: 0, cols: 0 } : 0;\n this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.d_loading = this._loading || false;\n this.d_numToleratedItems = this._numToleratedItems;\n this.loaderArr = [];\n this.spacerStyle = {};\n this.contentStyle = {};\n }\n\n getElementRef() {\n return this.elementViewChild;\n }\n\n getPageByFirst(first?: any) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this._step || 1));\n }\n\n isPageChanged(first?: any) {\n return this._step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n\n scrollTo(options: ScrollToOptions) {\n // this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.elementViewChild?.nativeElement?.scrollTo(options);\n }\n\n scrollToIndex(index: number | number[], behavior: ScrollBehavior = 'auto') {\n const valid = this.both ? (index as number[]).every((i) => i > -1) : (index as number) > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.elementViewChild?.nativeElement;\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 = this.both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (this.both) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1]),\n };\n scrollTo(\n calculateCoord(newFirst.cols, itemSize[1], contentPos.left),\n calculateCoord(newFirst.rows, itemSize[0], contentPos.top),\n );\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 as number, numToleratedItems);\n this.horizontal\n ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop)\n : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (this.horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n }\n\n scrollInView(index: number, to: ScrollerToType, behavior: ScrollBehavior = 'auto') {\n if (to) {\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 (this.both) {\n if (viewport.first.rows - first.rows > (<any>index)[0]) {\n scrollTo(\n viewport.first.cols * (<number[]>this._itemSize)[1],\n (viewport.first.rows - 1) * (<number[]>this._itemSize)[0],\n );\n } else if (viewport.first.cols - first.cols > (<any>index)[1]) {\n scrollTo(\n (viewport.first.cols - 1) * (<number[]>this._itemSize)[1],\n viewport.first.rows * (<number[]>this._itemSize)[0],\n );\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * <number>this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (this.both) {\n if (viewport.last.rows - first.rows <= (<any>index)[0] + 1) {\n scrollTo(\n viewport.first.cols * (<number[]>this._itemSize)[1],\n (viewport.first.rows + 1) * (<number[]>this._itemSize)[0],\n );\n } else if (viewport.last.cols - first.cols <= (<any>index)[1] + 1) {\n scrollTo(\n (viewport.first.cols + 1) * (<number[]>this._itemSize)[1],\n viewport.first.rows * (<number[]>this._itemSize)[0],\n );\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * <number>this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n\n getRenderedRange() {\n const calculateFirstInViewport = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n\n let firstInViewport = this.first;\n let lastInViewport: any = 0;\n\n if (this.elementViewChild?.nativeElement) {\n const { scrollTop, scrollLeft } = this.elementViewChild.nativeElement;\n\n if (this.both) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, (<number[]>this._itemSize)[0]),\n cols: calculateFirstInViewport(scrollLeft, (<number[]>this._itemSize)[1]),\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols,\n };\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, <number>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\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const contentWidth =\n (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0) || 0;\n const contentHeight =\n (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize: number, _itemSize: number) =>\n _itemSize || _contentSize ? Math.ceil(_contentSize / (_itemSize || _contentSize)) : 0;\n const calculateNumToleratedItems = (_numItems: number) => Math.ceil(_numItems / 2);\n const numItemsInViewport: any = this.both\n ? {\n rows: calculateNumItemsInViewport(contentHeight, (<number[]>this._itemSize)[0]),\n cols: calculateNumItemsInViewport(contentWidth, (<number[]>this._itemSize)[1]),\n }\n : calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, <number>this._itemSize);\n\n const numToleratedItems =\n this.d_numToleratedItems ||\n (this.both\n ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)]\n : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n }\n\n calculateOptions() {\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first: number, _num: number, _numT: number, _isCols: boolean = false) =>\n this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both\n ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true),\n }\n : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n\n if (this.showLoader) {\n this.loaderArr = this.both\n ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols }))\n : Array.from({ length: numItemsInViewport });\n }\n\n if (this._lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this._step ? (this.both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this._step ? this._step : this.last, (<any[]>this.items).length),\n };\n\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n\n calculateAutoSize() {\n if (this._autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n (<ElementRef>this.elementViewChild).nativeElement.style.contain = 'none';\n\n const [contentWidth, contentHeight] = [DomHandler.getWidth(this.contentEl), DomHandler.getHeight(this.contentEl)];\n contentWidth !== this.defaultContentWidth && ((<ElementRef>this.elementViewChild).nativeElement.style.width = '');\n contentHeight !== this.defaultContentHeight && ((<ElementRef>this.elementViewChild).nativeElement.style.height = '');\n\n const [width, height] = [\n DomHandler.getWidth((<ElementRef>this.elementViewChild).nativeElement),\n DomHandler.getHeight((<ElementRef>this.elementViewChild).nativeElement),\n ];\n (this.both || this.horizontal) &&\n ((<ElementRef>this.elementViewChild).nativeElement.style.width =\n width < <number>this.defaultWidth ? width + 'px' : this._scrollWidth || this.defaultWidth + 'px');\n (this.both || this.vertical) &&\n ((<ElementRef>this.elementViewChild).nativeElement.style.height =\n height < <number>this.defaultHeight ? height + 'px' : this._scrollHeight || this.defaultHeight + 'px');\n\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n (<ElementRef>this.elementViewChild).nativeElement.style.contain = '';\n }\n });\n }\n }\n\n getLast(last = 0, isCols = false) {\n return this._items ? Math.min(isCols ? (this._columns || this._items[0]).length : this._items.length, last) : 0;\n }\n\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\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\n setSize() {\n if (this.elementViewChild?.nativeElement) {\n const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;\n const width = this._scrollWidth || `${this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth}px`;\n const height = this._scrollHeight || `${this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name: string, _value: any) => ((<ElementRef>this.elementViewChild).nativeElement.style[_name] = _value);\n\n if (this.both || this.horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n }\n\n setSpacerSize() {\n if (this._items) {\n const contentPos = this.getContentPosition();\n const setProp = (_name: string, _value: any, _size: number, _cpos: number = 0) =>\n (this.spacerStyle = {\n ...this.spacerStyle,\n ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' },\n });\n\n if (this.both) {\n setProp('height', this._items, (<number[]>this._itemSize)[0], contentPos.y);\n setProp('width', this._columns || this._items[1], (<number[]>this._itemSize)[1], contentPos.x);\n } else {\n this.horizontal\n ? setProp('width', this._columns || this._items, <number>this._itemSize, contentPos.x)\n : setProp('height', this._items, <number>this._itemSize, contentPos.y);\n }\n }\n }\n\n setContentPosition(pos: any) {\n if (this.contentEl && !this._appendOnly) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first: number, _size: number) => _first * _size;\n const setTransform = (_x = 0, _y = 0) =>\n (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (this.both) {\n setTransform(\n calculateTranslateVal(first.cols, (<number[]>this._itemSize)[1]),\n calculateTranslateVal(first.rows, (<number[]>this._itemSize)[0]),\n );\n } else {\n const translateVal = calculateTranslateVal(first, <number>this._itemSize);\n this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n\n onScrollPositionChange(event: Event) {\n const target = event.target;\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos: number, _cpos: number) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n const calculateTriggerIndex = (\n _currentIndex: number,\n _first: number,\n _last: number,\n _num: number,\n _numT: number,\n _isScrollDownOrRight: any,\n ) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n const calculateFirst = (\n _currentIndex: number,\n _triggerIndex: number,\n _first: number,\n _last: number,\n _num: number,\n _numT: number,\n _isScrollDownOrRight: any,\n ) => {\n if (_currentIndex <= _numT) return 0;\n else\n return Math.max(\n 0,\n _isScrollDownOrRight\n ? _currentIndex < _triggerIndex\n ? _first\n : _currentIndex - _numT\n : _currentIndex > _triggerIndex\n ? _first\n : _currentIndex - 2 * _numT,\n );\n };\n const calculateLast = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isCols = false) => {\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((<HTMLElement>target).scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos((<HTMLElement>target).scrollLeft, contentPos.left);\n\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (this.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 = {\n rows: calculateCurrentIndex(scrollTop, (<number[]>this._itemSize)[0]),\n cols: calculateCurrentIndex(scrollLeft, (<number[]>this._itemSize)[1]),\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(\n currentIndex.rows,\n this.first.rows,\n this.last.rows,\n this.numItemsInViewport.rows,\n this.d_numToleratedItems[0],\n isScrollDown,\n ),\n cols: calculateTriggerIndex(\n currentIndex.cols,\n this.first.cols,\n this.last.cols,\n this.numItemsInViewport.cols,\n this.d_numToleratedItems[1],\n isScrollRight,\n ),\n };\n\n newFirst = {\n rows: calculateFirst(\n currentIndex.rows,\n triggerIndex.rows,\n this.first.rows,\n this.last.rows,\n this.numItemsInViewport.rows,\n this.d_numToleratedItems[0],\n isScrollDown,\n ),\n cols: calculateFirst(\n currentIndex.cols,\n triggerIndex.cols,\n this.first.cols,\n this.last.cols,\n this.numItemsInViewport.cols,\n this.d_numToleratedItems[1],\n isScrollRight,\n ),\n };\n newLast = {\n rows: calculateLast(\n currentIndex.rows,\n newFirst.rows,\n this.last.rows,\n this.numItemsInViewport.rows,\n this.d_numToleratedItems[0],\n ),\n cols: calculateLast(\n currentIndex.cols,\n newFirst.cols,\n this.last.cols,\n this.numItemsInViewport.cols,\n this.d_numToleratedItems[1],\n true,\n ),\n };\n\n isRangeChanged =\n newFirst.rows !== this.first.rows ||\n newLast.rows !== this.last.rows ||\n newFirst.cols !== this.first.cols ||\n newLast.cols !== this.last.cols ||\n this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this._appendOnly || (this._appendOnly && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, <number>this._itemSize);\n const triggerIndex = calculateTriggerIndex(\n currentIndex,\n this.first,\n this.last,\n this.numItemsInViewport,\n this.d_numToleratedItems,\n isScrollDownOrRight,\n );\n\n newFirst = calculateFirst(\n currentIndex,\n triggerIndex,\n this.first,\n this.last,\n this.numItemsInViewport,\n this.d_numToleratedItems,\n isScrollDownOrRight,\n );\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\n onScrollChange(event: 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.handleEvents('onScrollIndexChange', newState);\n\n if (this._lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this._step ? Math.min(this.getPageByFirst(first) * this._step, (<any[]>this.items).length - this._step) : first,\n last: Math.min(this._step ? (this.getPageByFirst(first) + 1) * this._step : last, (<any[]>this.items).length),\n };\n const isLazyStateChanged =\n this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n\n onContainerScroll(event: Event) {\n this.handleEvents('onScroll', { originalEvent: event });\n\n if (this._delay && this.isPageChanged()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this._step ? this.isPageChanged() : false);\n\n if (changed) {\n this.d_loading = true;\n\n this.cd.detectChanges();\n }\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 this.cd.detectChanges();\n }\n }, this._delay);\n } else {\n !this.d_loading && this.onScrollChange(event);\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n this.zone.runOutsideAngular(() => {\n const window = this.document.defaultView as Window;\n const event = DomHandler.isTouchDevice() ? 'orientationchange' : 'resize';\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n });\n }\n }\n }\n\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {\n const [width, height] = [\n DomHandler.getWidth(this.elementViewChild?.nativeElement),\n DomHandler.getHeight(this.elementViewChild?.nativeElement),\n ];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both\n ? isDiffWidth || isDiffHeight\n : this.horizontal\n ? isDiffWidth\n : this.vertical\n ? isDiffHeight\n : false;\n\n reinit &&\n this.zone.run(() => {\n this.d_numToleratedItems = this._numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = DomHandler.getWidth(this.contentEl);\n this.defaultContentHeight = DomHandler.getHeight(this.contentEl);\n\n this.init();\n });\n }\n }, this._resizeDelay);\n }\n\n handleEvents(name: string, params: any) {\n //@ts-ignore\n return this.options && (<any>this.options)[name] ? (<any>this.options)[name](params) : this[name].emit(params);\n }\n\n getContentOptions() {\n return {\n contentStyleClass: `p-virtualscroller-content ${this.d_loading ? 'p-virtualscroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: (index: number) => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index: number, options?: any) => this.getLoaderOptions(index, options),\n itemSize: this._itemSize,\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical,\n horizontal: this.horizontal,\n both: this.both,\n };\n }\n\n getOptions(renderedIndex: number) {\n const count = (this._items || []).length;\n const index = this.both ? 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\n getLoaderOptions(index: number, extOptions: any) {\n const 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}\n\n@NgModule({\n imports: [CommonModule, SharedModule, SpinnerIcon],\n exports: [Scroller, SharedModule],\n declarations: [Scroller],\n})\nexport class ScrollerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
@@ -91,6 +91,38 @@ class ScrollPanelStyle extends BaseStyle {
|
|
91
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ScrollPanelStyle, decorators: [{
|
92
92
|
type: Injectable
|
93
93
|
}] });
|
94
|
+
/**
|
95
|
+
*
|
96
|
+
* ScrollPanel is a cross browser, lightweight and themable alternative to native browser scrollbar.
|
97
|
+
*
|
98
|
+
* [Live Demo](https://www.primeng.org/scrollpanel/)
|
99
|
+
*
|
100
|
+
* @module scrollpanelstyle
|
101
|
+
*
|
102
|
+
*/
|
103
|
+
var ScrollPanelClasses;
|
104
|
+
(function (ScrollPanelClasses) {
|
105
|
+
/**
|
106
|
+
* Class name of the root element
|
107
|
+
*/
|
108
|
+
ScrollPanelClasses["root"] = "p-scrollpanel";
|
109
|
+
/**
|
110
|
+
* Class name of the content container element
|
111
|
+
*/
|
112
|
+
ScrollPanelClasses["contentContainer"] = "p-scrollpanel-content-container";
|
113
|
+
/**
|
114
|
+
* Class name of the content element
|
115
|
+
*/
|
116
|
+
ScrollPanelClasses["content"] = "p-scrollpanel-content";
|
117
|
+
/**
|
118
|
+
* Class name of the bar x element
|
119
|
+
*/
|
120
|
+
ScrollPanelClasses["barX"] = "p-scrollpanel-bar-x";
|
121
|
+
/**
|
122
|
+
* Class name of the bar y element
|
123
|
+
*/
|
124
|
+
ScrollPanelClasses["barY"] = "p-scrollpanel-bar-y";
|
125
|
+
})(ScrollPanelClasses || (ScrollPanelClasses = {}));
|
94
126
|
|
95
127
|
/**
|
96
128
|
* ScrollPanel is a cross browser, lightweight and themable alternative to native browser scrollbar.
|
@@ -460,7 +492,7 @@ class ScrollPanel extends BaseComponent {
|
|
460
492
|
this.moveBar();
|
461
493
|
}
|
462
494
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ScrollPanel, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
463
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.2", type: ScrollPanel, selector: "p-scrollPanel", inputs: { style: "style", styleClass: "styleClass", step: ["step", "step", numberAttribute] }, providers: [ScrollPanelStyle], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }, { propertyName: "xBarViewChild", first: true, predicate: ["xBar"], descendants: true }, { propertyName: "yBarViewChild", first: true, predicate: ["yBar"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
495
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.2", type: ScrollPanel, selector: "p-scrollPanel, p-scroll-panel", inputs: { style: "style", styleClass: "styleClass", step: ["step", "step", numberAttribute] }, providers: [ScrollPanelStyle], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }, { propertyName: "xBarViewChild", first: true, predicate: ["xBar"], descendants: true }, { propertyName: "yBarViewChild", first: true, predicate: ["yBar"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
464
496
|
<div #container [ngClass]="'p-scrollpanel p-component'" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'scrollpanel'">
|
465
497
|
<div class="p-scrollpanel-content-container" [attr.data-pc-section]="'wrapper'">
|
466
498
|
<div
|
@@ -509,7 +541,7 @@ class ScrollPanel extends BaseComponent {
|
|
509
541
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ScrollPanel, decorators: [{
|
510
542
|
type: Component,
|
511
543
|
args: [{
|
512
|
-
selector: 'p-scrollPanel',
|
544
|
+
selector: 'p-scrollPanel, p-scroll-panel',
|
513
545
|
template: `
|
514
546
|
<div #container [ngClass]="'p-scrollpanel p-component'" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'scrollpanel'">
|
515
547
|
<div class="p-scrollpanel-content-container" [attr.data-pc-section]="'wrapper'">
|