primeng 13.4.1 → 14.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +2 -2
- package/api/lazyloadevent.d.ts +2 -0
- package/api/shared.d.ts +3 -3
- package/autocomplete/autocomplete.d.ts +25 -19
- package/avatar/avatar.d.ts +1 -1
- package/avatargroup/avatargroup.d.ts +1 -1
- package/badge/badge.d.ts +2 -2
- package/blockui/blockui.d.ts +1 -1
- package/breadcrumb/breadcrumb.d.ts +1 -1
- package/button/button.d.ts +2 -2
- package/calendar/calendar.d.ts +6 -5
- package/captcha/captcha.d.ts +1 -1
- package/card/card.d.ts +1 -1
- package/carousel/carousel.d.ts +1 -1
- package/cascadeselect/cascadeselect.d.ts +2 -2
- package/chart/chart.d.ts +1 -1
- package/checkbox/checkbox.d.ts +1 -1
- package/chip/chip.d.ts +1 -1
- package/chips/chips.d.ts +1 -1
- package/codehighlighter/codehighlighter.d.ts +1 -1
- package/colorpicker/colorpicker.d.ts +1 -1
- package/confirmdialog/confirmdialog.d.ts +1 -1
- package/confirmpopup/confirmpopup.d.ts +1 -1
- package/contextmenu/contextmenu.d.ts +2 -2
- package/dataview/dataview.d.ts +2 -2
- package/defer/defer.d.ts +1 -1
- package/dialog/dialog.d.ts +1 -1
- package/divider/divider.d.ts +1 -1
- package/dock/dock.d.ts +1 -1
- package/dragdrop/dragdrop.d.ts +2 -2
- package/dropdown/dropdown.d.ts +23 -14
- package/dynamicdialog/dynamicdialog-config.d.ts +1 -0
- package/dynamicdialog/dynamicdialog.d.ts +1 -1
- package/dynamicdialog/dynamicdialogcontent.d.ts +1 -1
- package/editor/editor.d.ts +1 -1
- package/esm2020/accordion/accordion.mjs +18 -20
- package/esm2020/api/confirmationservice.mjs +3 -3
- package/esm2020/api/contextmenuservice.mjs +3 -3
- package/esm2020/api/filterservice.mjs +3 -3
- package/esm2020/api/lazyloadevent.mjs +1 -1
- package/esm2020/api/messageservice.mjs +3 -3
- package/esm2020/api/overlayservice.mjs +3 -3
- package/esm2020/api/primengconfig.mjs +3 -3
- package/esm2020/api/shared.mjs +14 -14
- package/esm2020/api/treedragdropservice.mjs +3 -3
- package/esm2020/autocomplete/autocomplete.mjs +154 -130
- package/esm2020/avatar/avatar.mjs +9 -9
- package/esm2020/avatargroup/avatargroup.mjs +9 -9
- package/esm2020/badge/badge.mjs +12 -12
- package/esm2020/blockui/blockui.mjs +9 -9
- package/esm2020/breadcrumb/breadcrumb.mjs +11 -11
- package/esm2020/button/button.mjs +14 -14
- package/esm2020/calendar/calendar.mjs +14 -10
- package/esm2020/captcha/captcha.mjs +8 -8
- package/esm2020/card/card.mjs +9 -9
- package/esm2020/carousel/carousel.mjs +9 -9
- package/esm2020/cascadeselect/cascadeselect.mjs +14 -14
- package/esm2020/chart/chart.mjs +8 -8
- package/esm2020/checkbox/checkbox.mjs +9 -9
- package/esm2020/chip/chip.mjs +9 -9
- package/esm2020/chips/chips.mjs +9 -9
- package/esm2020/codehighlighter/codehighlighter.mjs +8 -8
- package/esm2020/colorpicker/colorpicker.mjs +12 -10
- package/esm2020/confirmdialog/confirmdialog.mjs +13 -13
- package/esm2020/confirmpopup/confirmpopup.mjs +12 -10
- package/esm2020/contextmenu/contextmenu.mjs +20 -15
- package/esm2020/dataview/dataview.mjs +15 -15
- package/esm2020/defer/defer.mjs +8 -8
- package/esm2020/dialog/dialog.mjs +11 -11
- package/esm2020/divider/divider.mjs +9 -9
- package/esm2020/dock/dock.mjs +9 -9
- package/esm2020/dragdrop/dragdrop.mjs +11 -11
- package/esm2020/dropdown/dropdown.mjs +184 -161
- package/esm2020/dynamicdialog/dialogservice.mjs +3 -3
- package/esm2020/dynamicdialog/dynamicdialog-config.mjs +1 -1
- package/esm2020/dynamicdialog/dynamicdialog.mjs +11 -11
- package/esm2020/dynamicdialog/dynamicdialogcontent.mjs +3 -3
- package/esm2020/editor/editor.mjs +9 -9
- package/esm2020/fieldset/fieldset.mjs +16 -18
- package/esm2020/fileupload/fileupload.mjs +13 -13
- package/esm2020/focustrap/focustrap.mjs +8 -8
- package/esm2020/fullcalendar/fullcalendar.mjs +8 -8
- package/esm2020/galleria/galleria.mjs +25 -25
- package/esm2020/gmap/gmap.mjs +8 -8
- package/esm2020/image/image.mjs +43 -29
- package/esm2020/inplace/inplace.mjs +15 -15
- package/esm2020/inputmask/inputmask.mjs +11 -11
- package/esm2020/inputnumber/inputnumber.mjs +9 -9
- package/esm2020/inputswitch/inputswitch.mjs +9 -9
- package/esm2020/inputtext/inputtext.mjs +8 -8
- package/esm2020/inputtextarea/inputtextarea.mjs +8 -8
- package/esm2020/keyfilter/keyfilter.mjs +8 -8
- package/esm2020/knob/knob.mjs +9 -9
- package/esm2020/lightbox/lightbox.mjs +9 -9
- package/esm2020/listbox/listbox.mjs +49 -18
- package/esm2020/megamenu/megamenu.mjs +22 -12
- package/esm2020/menu/menu.mjs +23 -17
- package/esm2020/menubar/menubar.mjs +22 -18
- package/esm2020/message/message.mjs +9 -9
- package/esm2020/messages/messages.mjs +14 -14
- package/esm2020/multiselect/multiselect.mjs +193 -128
- package/esm2020/orderlist/orderlist.mjs +44 -18
- package/esm2020/organizationchart/organizationchart.mjs +13 -13
- package/esm2020/overlaypanel/overlaypanel.mjs +24 -10
- package/esm2020/paginator/paginator.mjs +14 -14
- package/esm2020/panel/panel.mjs +16 -18
- package/esm2020/panelmenu/panelmenu.mjs +36 -32
- package/esm2020/password/password.mjs +16 -14
- package/esm2020/picklist/picklist.mjs +86 -37
- package/esm2020/progressbar/progressbar.mjs +9 -9
- package/esm2020/progressspinner/progressspinner.mjs +9 -9
- package/esm2020/radiobutton/radiobutton.mjs +12 -12
- package/esm2020/rating/rating.mjs +9 -9
- package/esm2020/ripple/ripple.mjs +8 -8
- package/esm2020/scroller/primeng-scroller.mjs +5 -0
- package/esm2020/scroller/public_api.mjs +2 -0
- package/esm2020/scroller/scroller.mjs +739 -0
- package/esm2020/scrollpanel/scrollpanel.mjs +9 -9
- package/esm2020/scrolltop/scrolltop.mjs +9 -9
- package/esm2020/selectbutton/selectbutton.mjs +9 -9
- package/esm2020/sidebar/sidebar.mjs +10 -10
- package/esm2020/skeleton/skeleton.mjs +9 -9
- package/esm2020/slidemenu/slidemenu.mjs +22 -16
- package/esm2020/slider/slider.mjs +9 -9
- package/esm2020/speeddial/speeddial.mjs +11 -11
- package/esm2020/spinner/spinner.mjs +9 -9
- package/esm2020/splitbutton/splitbutton.mjs +12 -12
- package/esm2020/splitter/splitter.mjs +9 -9
- package/esm2020/steps/steps.mjs +9 -9
- package/esm2020/styleclass/styleclass.mjs +8 -8
- package/esm2020/table/table.mjs +266 -254
- package/esm2020/tabmenu/tabmenu.mjs +51 -13
- package/esm2020/tabview/tabview.mjs +15 -15
- package/esm2020/tag/tag.mjs +9 -9
- package/esm2020/terminal/terminal.mjs +9 -9
- package/esm2020/terminal/terminalservice.mjs +3 -3
- package/esm2020/tieredmenu/tieredmenu.mjs +29 -18
- package/esm2020/timeline/timeline.mjs +9 -9
- package/esm2020/toast/toast.mjs +14 -14
- package/esm2020/togglebutton/togglebutton.mjs +11 -11
- package/esm2020/toolbar/toolbar.mjs +9 -9
- package/esm2020/tooltip/tooltip.mjs +14 -8
- package/esm2020/tree/tree.mjs +121 -87
- package/esm2020/treeselect/treeselect.mjs +14 -14
- package/esm2020/treetable/treetable.mjs +180 -155
- package/esm2020/tristatecheckbox/tristatecheckbox.mjs +9 -9
- package/esm2020/virtualscroller/virtualscroller.mjs +58 -99
- package/fesm2015/primeng-accordion.mjs +17 -19
- package/fesm2015/primeng-accordion.mjs.map +1 -1
- package/fesm2015/primeng-api.mjs +34 -34
- package/fesm2015/primeng-api.mjs.map +1 -1
- package/fesm2015/primeng-autocomplete.mjs +155 -130
- package/fesm2015/primeng-autocomplete.mjs.map +1 -1
- package/fesm2015/primeng-avatar.mjs +8 -8
- package/fesm2015/primeng-avatar.mjs.map +1 -1
- package/fesm2015/primeng-avatargroup.mjs +8 -8
- package/fesm2015/primeng-avatargroup.mjs.map +1 -1
- package/fesm2015/primeng-badge.mjs +11 -11
- package/fesm2015/primeng-badge.mjs.map +1 -1
- package/fesm2015/primeng-blockui.mjs +8 -8
- package/fesm2015/primeng-blockui.mjs.map +1 -1
- package/fesm2015/primeng-breadcrumb.mjs +10 -10
- package/fesm2015/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2015/primeng-button.mjs +13 -13
- package/fesm2015/primeng-button.mjs.map +1 -1
- package/fesm2015/primeng-calendar.mjs +13 -9
- package/fesm2015/primeng-calendar.mjs.map +1 -1
- package/fesm2015/primeng-captcha.mjs +7 -7
- package/fesm2015/primeng-captcha.mjs.map +1 -1
- package/fesm2015/primeng-card.mjs +8 -8
- package/fesm2015/primeng-card.mjs.map +1 -1
- package/fesm2015/primeng-carousel.mjs +8 -8
- package/fesm2015/primeng-carousel.mjs.map +1 -1
- package/fesm2015/primeng-cascadeselect.mjs +13 -13
- package/fesm2015/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2015/primeng-chart.mjs +7 -7
- package/fesm2015/primeng-chart.mjs.map +1 -1
- package/fesm2015/primeng-checkbox.mjs +8 -8
- package/fesm2015/primeng-checkbox.mjs.map +1 -1
- package/fesm2015/primeng-chip.mjs +8 -8
- package/fesm2015/primeng-chip.mjs.map +1 -1
- package/fesm2015/primeng-chips.mjs +8 -8
- package/fesm2015/primeng-chips.mjs.map +1 -1
- package/fesm2015/primeng-codehighlighter.mjs +7 -7
- package/fesm2015/primeng-codehighlighter.mjs.map +1 -1
- package/fesm2015/primeng-colorpicker.mjs +11 -9
- package/fesm2015/primeng-colorpicker.mjs.map +1 -1
- package/fesm2015/primeng-confirmdialog.mjs +12 -12
- package/fesm2015/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2015/primeng-confirmpopup.mjs +11 -9
- package/fesm2015/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2015/primeng-contextmenu.mjs +19 -14
- package/fesm2015/primeng-contextmenu.mjs.map +1 -1
- package/fesm2015/primeng-dataview.mjs +14 -14
- package/fesm2015/primeng-dataview.mjs.map +1 -1
- package/fesm2015/primeng-defer.mjs +7 -7
- package/fesm2015/primeng-defer.mjs.map +1 -1
- package/fesm2015/primeng-dialog.mjs +10 -10
- package/fesm2015/primeng-dialog.mjs.map +1 -1
- package/fesm2015/primeng-divider.mjs +8 -8
- package/fesm2015/primeng-divider.mjs.map +1 -1
- package/fesm2015/primeng-dock.mjs +8 -8
- package/fesm2015/primeng-dock.mjs.map +1 -1
- package/fesm2015/primeng-dragdrop.mjs +10 -10
- package/fesm2015/primeng-dragdrop.mjs.map +1 -1
- package/fesm2015/primeng-dropdown.mjs +183 -160
- package/fesm2015/primeng-dropdown.mjs.map +1 -1
- package/fesm2015/primeng-dynamicdialog.mjs +16 -16
- package/fesm2015/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2015/primeng-editor.mjs +8 -8
- package/fesm2015/primeng-editor.mjs.map +1 -1
- package/fesm2015/primeng-fieldset.mjs +15 -17
- package/fesm2015/primeng-fieldset.mjs.map +1 -1
- package/fesm2015/primeng-fileupload.mjs +12 -12
- package/fesm2015/primeng-fileupload.mjs.map +1 -1
- package/fesm2015/primeng-focustrap.mjs +7 -7
- package/fesm2015/primeng-focustrap.mjs.map +1 -1
- package/fesm2015/primeng-fullcalendar.mjs +7 -7
- package/fesm2015/primeng-fullcalendar.mjs.map +1 -1
- package/fesm2015/primeng-galleria.mjs +24 -24
- package/fesm2015/primeng-galleria.mjs.map +1 -1
- package/fesm2015/primeng-gmap.mjs +7 -7
- package/fesm2015/primeng-gmap.mjs.map +1 -1
- package/fesm2015/primeng-image.mjs +42 -28
- package/fesm2015/primeng-image.mjs.map +1 -1
- package/fesm2015/primeng-inplace.mjs +14 -14
- package/fesm2015/primeng-inplace.mjs.map +1 -1
- package/fesm2015/primeng-inputmask.mjs +10 -10
- package/fesm2015/primeng-inputmask.mjs.map +1 -1
- package/fesm2015/primeng-inputnumber.mjs +8 -8
- package/fesm2015/primeng-inputnumber.mjs.map +1 -1
- package/fesm2015/primeng-inputswitch.mjs +8 -8
- package/fesm2015/primeng-inputswitch.mjs.map +1 -1
- package/fesm2015/primeng-inputtext.mjs +7 -7
- package/fesm2015/primeng-inputtext.mjs.map +1 -1
- package/fesm2015/primeng-inputtextarea.mjs +7 -7
- package/fesm2015/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2015/primeng-keyfilter.mjs +7 -7
- package/fesm2015/primeng-keyfilter.mjs.map +1 -1
- package/fesm2015/primeng-knob.mjs +8 -8
- package/fesm2015/primeng-knob.mjs.map +1 -1
- package/fesm2015/primeng-lightbox.mjs +8 -8
- package/fesm2015/primeng-lightbox.mjs.map +1 -1
- package/fesm2015/primeng-listbox.mjs +48 -17
- package/fesm2015/primeng-listbox.mjs.map +1 -1
- package/fesm2015/primeng-megamenu.mjs +21 -11
- package/fesm2015/primeng-megamenu.mjs.map +1 -1
- package/fesm2015/primeng-menu.mjs +22 -16
- package/fesm2015/primeng-menu.mjs.map +1 -1
- package/fesm2015/primeng-menubar.mjs +21 -17
- package/fesm2015/primeng-menubar.mjs.map +1 -1
- package/fesm2015/primeng-message.mjs +8 -8
- package/fesm2015/primeng-message.mjs.map +1 -1
- package/fesm2015/primeng-messages.mjs +13 -13
- package/fesm2015/primeng-messages.mjs.map +1 -1
- package/fesm2015/primeng-multiselect.mjs +193 -127
- package/fesm2015/primeng-multiselect.mjs.map +1 -1
- package/fesm2015/primeng-orderlist.mjs +43 -17
- package/fesm2015/primeng-orderlist.mjs.map +1 -1
- package/fesm2015/primeng-organizationchart.mjs +12 -12
- package/fesm2015/primeng-organizationchart.mjs.map +1 -1
- package/fesm2015/primeng-overlaypanel.mjs +23 -9
- package/fesm2015/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2015/primeng-paginator.mjs +13 -13
- package/fesm2015/primeng-paginator.mjs.map +1 -1
- package/fesm2015/primeng-panel.mjs +15 -17
- package/fesm2015/primeng-panel.mjs.map +1 -1
- package/fesm2015/primeng-panelmenu.mjs +35 -31
- package/fesm2015/primeng-panelmenu.mjs.map +1 -1
- package/fesm2015/primeng-password.mjs +15 -13
- package/fesm2015/primeng-password.mjs.map +1 -1
- package/fesm2015/primeng-picklist.mjs +85 -36
- package/fesm2015/primeng-picklist.mjs.map +1 -1
- package/fesm2015/primeng-progressbar.mjs +8 -8
- package/fesm2015/primeng-progressbar.mjs.map +1 -1
- package/fesm2015/primeng-progressspinner.mjs +8 -8
- package/fesm2015/primeng-progressspinner.mjs.map +1 -1
- package/fesm2015/primeng-radiobutton.mjs +11 -11
- package/fesm2015/primeng-radiobutton.mjs.map +1 -1
- package/fesm2015/primeng-rating.mjs +8 -8
- package/fesm2015/primeng-rating.mjs.map +1 -1
- package/fesm2015/primeng-ripple.mjs +7 -7
- package/fesm2015/primeng-ripple.mjs.map +1 -1
- package/fesm2015/primeng-scroller.mjs +744 -0
- package/fesm2015/primeng-scroller.mjs.map +1 -0
- package/fesm2015/primeng-scrollpanel.mjs +8 -8
- package/fesm2015/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2015/primeng-scrolltop.mjs +8 -8
- package/fesm2015/primeng-scrolltop.mjs.map +1 -1
- package/fesm2015/primeng-selectbutton.mjs +8 -8
- package/fesm2015/primeng-selectbutton.mjs.map +1 -1
- package/fesm2015/primeng-sidebar.mjs +9 -9
- package/fesm2015/primeng-sidebar.mjs.map +1 -1
- package/fesm2015/primeng-skeleton.mjs +8 -8
- package/fesm2015/primeng-skeleton.mjs.map +1 -1
- package/fesm2015/primeng-slidemenu.mjs +21 -15
- package/fesm2015/primeng-slidemenu.mjs.map +1 -1
- package/fesm2015/primeng-slider.mjs +8 -8
- package/fesm2015/primeng-slider.mjs.map +1 -1
- package/fesm2015/primeng-speeddial.mjs +10 -10
- package/fesm2015/primeng-speeddial.mjs.map +1 -1
- package/fesm2015/primeng-spinner.mjs +8 -8
- package/fesm2015/primeng-spinner.mjs.map +1 -1
- package/fesm2015/primeng-splitbutton.mjs +11 -11
- package/fesm2015/primeng-splitbutton.mjs.map +1 -1
- package/fesm2015/primeng-splitter.mjs +8 -8
- package/fesm2015/primeng-splitter.mjs.map +1 -1
- package/fesm2015/primeng-steps.mjs +8 -8
- package/fesm2015/primeng-steps.mjs.map +1 -1
- package/fesm2015/primeng-styleclass.mjs +7 -7
- package/fesm2015/primeng-styleclass.mjs.map +1 -1
- package/fesm2015/primeng-table.mjs +261 -253
- package/fesm2015/primeng-table.mjs.map +1 -1
- package/fesm2015/primeng-tabmenu.mjs +50 -12
- package/fesm2015/primeng-tabmenu.mjs.map +1 -1
- package/fesm2015/primeng-tabview.mjs +14 -14
- package/fesm2015/primeng-tabview.mjs.map +1 -1
- package/fesm2015/primeng-tag.mjs +8 -8
- package/fesm2015/primeng-tag.mjs.map +1 -1
- package/fesm2015/primeng-terminal.mjs +11 -11
- package/fesm2015/primeng-terminal.mjs.map +1 -1
- package/fesm2015/primeng-tieredmenu.mjs +28 -17
- package/fesm2015/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2015/primeng-timeline.mjs +8 -8
- package/fesm2015/primeng-timeline.mjs.map +1 -1
- package/fesm2015/primeng-toast.mjs +13 -13
- package/fesm2015/primeng-toast.mjs.map +1 -1
- package/fesm2015/primeng-togglebutton.mjs +10 -10
- package/fesm2015/primeng-togglebutton.mjs.map +1 -1
- package/fesm2015/primeng-toolbar.mjs +8 -8
- package/fesm2015/primeng-toolbar.mjs.map +1 -1
- package/fesm2015/primeng-tooltip.mjs +13 -7
- package/fesm2015/primeng-tooltip.mjs.map +1 -1
- package/fesm2015/primeng-tree.mjs +120 -86
- package/fesm2015/primeng-tree.mjs.map +1 -1
- package/fesm2015/primeng-treeselect.mjs +13 -13
- package/fesm2015/primeng-treeselect.mjs.map +1 -1
- package/fesm2015/primeng-treetable.mjs +175 -154
- package/fesm2015/primeng-treetable.mjs.map +1 -1
- package/fesm2015/primeng-tristatecheckbox.mjs +8 -8
- package/fesm2015/primeng-tristatecheckbox.mjs.map +1 -1
- package/fesm2015/primeng-virtualscroller.mjs +53 -97
- package/fesm2015/primeng-virtualscroller.mjs.map +1 -1
- package/fesm2020/primeng-accordion.mjs +17 -19
- package/fesm2020/primeng-accordion.mjs.map +1 -1
- package/fesm2020/primeng-api.mjs +34 -34
- package/fesm2020/primeng-api.mjs.map +1 -1
- package/fesm2020/primeng-autocomplete.mjs +154 -130
- package/fesm2020/primeng-autocomplete.mjs.map +1 -1
- package/fesm2020/primeng-avatar.mjs +8 -8
- package/fesm2020/primeng-avatar.mjs.map +1 -1
- package/fesm2020/primeng-avatargroup.mjs +8 -8
- package/fesm2020/primeng-avatargroup.mjs.map +1 -1
- package/fesm2020/primeng-badge.mjs +11 -11
- package/fesm2020/primeng-badge.mjs.map +1 -1
- package/fesm2020/primeng-blockui.mjs +8 -8
- package/fesm2020/primeng-blockui.mjs.map +1 -1
- package/fesm2020/primeng-breadcrumb.mjs +10 -10
- package/fesm2020/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2020/primeng-button.mjs +13 -13
- package/fesm2020/primeng-button.mjs.map +1 -1
- package/fesm2020/primeng-calendar.mjs +13 -9
- package/fesm2020/primeng-calendar.mjs.map +1 -1
- package/fesm2020/primeng-captcha.mjs +7 -7
- package/fesm2020/primeng-captcha.mjs.map +1 -1
- package/fesm2020/primeng-card.mjs +8 -8
- package/fesm2020/primeng-card.mjs.map +1 -1
- package/fesm2020/primeng-carousel.mjs +8 -8
- package/fesm2020/primeng-carousel.mjs.map +1 -1
- package/fesm2020/primeng-cascadeselect.mjs +13 -13
- package/fesm2020/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2020/primeng-chart.mjs +7 -7
- package/fesm2020/primeng-chart.mjs.map +1 -1
- package/fesm2020/primeng-checkbox.mjs +8 -8
- package/fesm2020/primeng-checkbox.mjs.map +1 -1
- package/fesm2020/primeng-chip.mjs +8 -8
- package/fesm2020/primeng-chip.mjs.map +1 -1
- package/fesm2020/primeng-chips.mjs +8 -8
- package/fesm2020/primeng-chips.mjs.map +1 -1
- package/fesm2020/primeng-codehighlighter.mjs +7 -7
- package/fesm2020/primeng-codehighlighter.mjs.map +1 -1
- package/fesm2020/primeng-colorpicker.mjs +11 -9
- package/fesm2020/primeng-colorpicker.mjs.map +1 -1
- package/fesm2020/primeng-confirmdialog.mjs +12 -12
- package/fesm2020/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2020/primeng-confirmpopup.mjs +11 -9
- package/fesm2020/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2020/primeng-contextmenu.mjs +19 -14
- package/fesm2020/primeng-contextmenu.mjs.map +1 -1
- package/fesm2020/primeng-dataview.mjs +14 -14
- package/fesm2020/primeng-dataview.mjs.map +1 -1
- package/fesm2020/primeng-defer.mjs +7 -7
- package/fesm2020/primeng-defer.mjs.map +1 -1
- package/fesm2020/primeng-dialog.mjs +10 -10
- package/fesm2020/primeng-dialog.mjs.map +1 -1
- package/fesm2020/primeng-divider.mjs +8 -8
- package/fesm2020/primeng-divider.mjs.map +1 -1
- package/fesm2020/primeng-dock.mjs +8 -8
- package/fesm2020/primeng-dock.mjs.map +1 -1
- package/fesm2020/primeng-dragdrop.mjs +10 -10
- package/fesm2020/primeng-dragdrop.mjs.map +1 -1
- package/fesm2020/primeng-dropdown.mjs +183 -160
- package/fesm2020/primeng-dropdown.mjs.map +1 -1
- package/fesm2020/primeng-dynamicdialog.mjs +16 -16
- package/fesm2020/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2020/primeng-editor.mjs +8 -8
- package/fesm2020/primeng-editor.mjs.map +1 -1
- package/fesm2020/primeng-fieldset.mjs +15 -17
- package/fesm2020/primeng-fieldset.mjs.map +1 -1
- package/fesm2020/primeng-fileupload.mjs +12 -12
- package/fesm2020/primeng-fileupload.mjs.map +1 -1
- package/fesm2020/primeng-focustrap.mjs +7 -7
- package/fesm2020/primeng-focustrap.mjs.map +1 -1
- package/fesm2020/primeng-fullcalendar.mjs +7 -7
- package/fesm2020/primeng-fullcalendar.mjs.map +1 -1
- package/fesm2020/primeng-galleria.mjs +24 -24
- package/fesm2020/primeng-galleria.mjs.map +1 -1
- package/fesm2020/primeng-gmap.mjs +7 -7
- package/fesm2020/primeng-gmap.mjs.map +1 -1
- package/fesm2020/primeng-image.mjs +42 -28
- package/fesm2020/primeng-image.mjs.map +1 -1
- package/fesm2020/primeng-inplace.mjs +14 -14
- package/fesm2020/primeng-inplace.mjs.map +1 -1
- package/fesm2020/primeng-inputmask.mjs +10 -10
- package/fesm2020/primeng-inputmask.mjs.map +1 -1
- package/fesm2020/primeng-inputnumber.mjs +8 -8
- package/fesm2020/primeng-inputnumber.mjs.map +1 -1
- package/fesm2020/primeng-inputswitch.mjs +8 -8
- package/fesm2020/primeng-inputswitch.mjs.map +1 -1
- package/fesm2020/primeng-inputtext.mjs +7 -7
- package/fesm2020/primeng-inputtext.mjs.map +1 -1
- package/fesm2020/primeng-inputtextarea.mjs +7 -7
- package/fesm2020/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2020/primeng-keyfilter.mjs +7 -7
- package/fesm2020/primeng-keyfilter.mjs.map +1 -1
- package/fesm2020/primeng-knob.mjs +8 -8
- package/fesm2020/primeng-knob.mjs.map +1 -1
- package/fesm2020/primeng-lightbox.mjs +8 -8
- package/fesm2020/primeng-lightbox.mjs.map +1 -1
- package/fesm2020/primeng-listbox.mjs +48 -17
- package/fesm2020/primeng-listbox.mjs.map +1 -1
- package/fesm2020/primeng-megamenu.mjs +21 -11
- package/fesm2020/primeng-megamenu.mjs.map +1 -1
- package/fesm2020/primeng-menu.mjs +22 -16
- package/fesm2020/primeng-menu.mjs.map +1 -1
- package/fesm2020/primeng-menubar.mjs +21 -17
- package/fesm2020/primeng-menubar.mjs.map +1 -1
- package/fesm2020/primeng-message.mjs +8 -8
- package/fesm2020/primeng-message.mjs.map +1 -1
- package/fesm2020/primeng-messages.mjs +13 -13
- package/fesm2020/primeng-messages.mjs.map +1 -1
- package/fesm2020/primeng-multiselect.mjs +192 -127
- package/fesm2020/primeng-multiselect.mjs.map +1 -1
- package/fesm2020/primeng-orderlist.mjs +43 -17
- package/fesm2020/primeng-orderlist.mjs.map +1 -1
- package/fesm2020/primeng-organizationchart.mjs +12 -12
- package/fesm2020/primeng-organizationchart.mjs.map +1 -1
- package/fesm2020/primeng-overlaypanel.mjs +23 -9
- package/fesm2020/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2020/primeng-paginator.mjs +13 -13
- package/fesm2020/primeng-paginator.mjs.map +1 -1
- package/fesm2020/primeng-panel.mjs +15 -17
- package/fesm2020/primeng-panel.mjs.map +1 -1
- package/fesm2020/primeng-panelmenu.mjs +35 -31
- package/fesm2020/primeng-panelmenu.mjs.map +1 -1
- package/fesm2020/primeng-password.mjs +15 -13
- package/fesm2020/primeng-password.mjs.map +1 -1
- package/fesm2020/primeng-picklist.mjs +85 -36
- package/fesm2020/primeng-picklist.mjs.map +1 -1
- package/fesm2020/primeng-progressbar.mjs +8 -8
- package/fesm2020/primeng-progressbar.mjs.map +1 -1
- package/fesm2020/primeng-progressspinner.mjs +8 -8
- package/fesm2020/primeng-progressspinner.mjs.map +1 -1
- package/fesm2020/primeng-radiobutton.mjs +11 -11
- package/fesm2020/primeng-radiobutton.mjs.map +1 -1
- package/fesm2020/primeng-rating.mjs +8 -8
- package/fesm2020/primeng-rating.mjs.map +1 -1
- package/fesm2020/primeng-ripple.mjs +7 -7
- package/fesm2020/primeng-ripple.mjs.map +1 -1
- package/fesm2020/primeng-scroller.mjs +746 -0
- package/fesm2020/primeng-scroller.mjs.map +1 -0
- package/fesm2020/primeng-scrollpanel.mjs +8 -8
- package/fesm2020/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2020/primeng-scrolltop.mjs +8 -8
- package/fesm2020/primeng-scrolltop.mjs.map +1 -1
- package/fesm2020/primeng-selectbutton.mjs +8 -8
- package/fesm2020/primeng-selectbutton.mjs.map +1 -1
- package/fesm2020/primeng-sidebar.mjs +9 -9
- package/fesm2020/primeng-sidebar.mjs.map +1 -1
- package/fesm2020/primeng-skeleton.mjs +8 -8
- package/fesm2020/primeng-skeleton.mjs.map +1 -1
- package/fesm2020/primeng-slidemenu.mjs +21 -15
- package/fesm2020/primeng-slidemenu.mjs.map +1 -1
- package/fesm2020/primeng-slider.mjs +8 -8
- package/fesm2020/primeng-slider.mjs.map +1 -1
- package/fesm2020/primeng-speeddial.mjs +10 -10
- package/fesm2020/primeng-speeddial.mjs.map +1 -1
- package/fesm2020/primeng-spinner.mjs +8 -8
- package/fesm2020/primeng-spinner.mjs.map +1 -1
- package/fesm2020/primeng-splitbutton.mjs +11 -11
- package/fesm2020/primeng-splitbutton.mjs.map +1 -1
- package/fesm2020/primeng-splitter.mjs +8 -8
- package/fesm2020/primeng-splitter.mjs.map +1 -1
- package/fesm2020/primeng-steps.mjs +8 -8
- package/fesm2020/primeng-steps.mjs.map +1 -1
- package/fesm2020/primeng-styleclass.mjs +7 -7
- package/fesm2020/primeng-styleclass.mjs.map +1 -1
- package/fesm2020/primeng-table.mjs +265 -253
- package/fesm2020/primeng-table.mjs.map +1 -1
- package/fesm2020/primeng-tabmenu.mjs +50 -12
- package/fesm2020/primeng-tabmenu.mjs.map +1 -1
- package/fesm2020/primeng-tabview.mjs +14 -14
- package/fesm2020/primeng-tabview.mjs.map +1 -1
- package/fesm2020/primeng-tag.mjs +8 -8
- package/fesm2020/primeng-tag.mjs.map +1 -1
- package/fesm2020/primeng-terminal.mjs +11 -11
- package/fesm2020/primeng-terminal.mjs.map +1 -1
- package/fesm2020/primeng-tieredmenu.mjs +28 -17
- package/fesm2020/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2020/primeng-timeline.mjs +8 -8
- package/fesm2020/primeng-timeline.mjs.map +1 -1
- package/fesm2020/primeng-toast.mjs +13 -13
- package/fesm2020/primeng-toast.mjs.map +1 -1
- package/fesm2020/primeng-togglebutton.mjs +10 -10
- package/fesm2020/primeng-togglebutton.mjs.map +1 -1
- package/fesm2020/primeng-toolbar.mjs +8 -8
- package/fesm2020/primeng-toolbar.mjs.map +1 -1
- package/fesm2020/primeng-tooltip.mjs +13 -7
- package/fesm2020/primeng-tooltip.mjs.map +1 -1
- package/fesm2020/primeng-tree.mjs +120 -86
- package/fesm2020/primeng-tree.mjs.map +1 -1
- package/fesm2020/primeng-treeselect.mjs +13 -13
- package/fesm2020/primeng-treeselect.mjs.map +1 -1
- package/fesm2020/primeng-treetable.mjs +179 -154
- package/fesm2020/primeng-treetable.mjs.map +1 -1
- package/fesm2020/primeng-tristatecheckbox.mjs +8 -8
- package/fesm2020/primeng-tristatecheckbox.mjs.map +1 -1
- package/fesm2020/primeng-virtualscroller.mjs +56 -97
- package/fesm2020/primeng-virtualscroller.mjs.map +1 -1
- package/fieldset/fieldset.d.ts +1 -1
- package/fileupload/fileupload.d.ts +1 -1
- package/focustrap/focustrap.d.ts +1 -1
- package/fullcalendar/fullcalendar.d.ts +1 -1
- package/galleria/galleria.d.ts +5 -5
- package/gmap/gmap.d.ts +1 -1
- package/image/image.d.ts +6 -2
- package/inplace/inplace.d.ts +3 -3
- package/inputmask/inputmask.d.ts +1 -1
- package/inputnumber/inputnumber.d.ts +1 -1
- package/inputswitch/inputswitch.d.ts +1 -1
- package/inputtext/inputtext.d.ts +1 -1
- package/inputtextarea/inputtextarea.d.ts +1 -1
- package/keyfilter/keyfilter.d.ts +1 -1
- package/knob/knob.d.ts +1 -1
- package/lightbox/lightbox.d.ts +1 -1
- package/listbox/listbox.d.ts +10 -1
- package/megamenu/megamenu.d.ts +1 -1
- package/menu/menu.d.ts +2 -2
- package/menubar/menubar.d.ts +4 -3
- package/message/message.d.ts +1 -1
- package/messages/messages.d.ts +1 -1
- package/multiselect/multiselect.d.ts +25 -8
- package/orderlist/orderlist.d.ts +9 -1
- package/organizationchart/organizationchart.d.ts +2 -2
- package/overlaypanel/overlaypanel.d.ts +2 -1
- package/package.json +12 -4
- package/paginator/paginator.d.ts +1 -1
- package/panel/panel.d.ts +1 -1
- package/panelmenu/panelmenu.d.ts +2 -2
- package/password/password.d.ts +2 -2
- package/picklist/picklist.d.ts +14 -2
- package/progressbar/progressbar.d.ts +1 -1
- package/progressspinner/progressspinner.d.ts +1 -1
- package/radiobutton/radiobutton.d.ts +1 -1
- package/rating/rating.d.ts +1 -1
- package/resources/components/accordion/accordion.css +8 -0
- package/resources/components/fieldset/fieldset.css +8 -0
- package/resources/components/image/image.css +5 -0
- package/resources/components/inputtext/inputtext.css +16 -1
- package/resources/components/megamenu/megamenu.css +5 -0
- package/resources/components/menu/menu.css +5 -0
- package/resources/components/messages/messages.css +4 -0
- package/resources/components/orderlist/orderlist.css +1 -0
- package/resources/components/panel/panel.css +8 -0
- package/resources/components/panelmenu/panelmenu.css +10 -0
- package/resources/components/scroller/scroller.css +51 -0
- package/resources/components/table/table.css +12 -5
- package/resources/components/tree/tree.css +6 -1
- package/resources/components/treetable/treetable.css +11 -1
- package/resources/primeng.css +15 -1
- package/resources/primeng.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +101 -14
- package/resources/themes/arya-green/theme.css +101 -14
- package/resources/themes/arya-orange/theme.css +101 -14
- package/resources/themes/arya-purple/theme.css +101 -14
- package/resources/themes/bootstrap4-dark-blue/theme.css +101 -14
- package/resources/themes/bootstrap4-dark-purple/theme.css +101 -14
- package/resources/themes/bootstrap4-light-blue/theme.css +100 -13
- package/resources/themes/bootstrap4-light-purple/theme.css +100 -13
- package/resources/themes/fluent-light/theme.css +101 -14
- package/resources/themes/lara-dark-blue/theme.css +101 -14
- package/resources/themes/lara-dark-indigo/theme.css +101 -14
- package/resources/themes/lara-dark-purple/theme.css +101 -14
- package/resources/themes/lara-dark-teal/theme.css +101 -14
- package/resources/themes/lara-light-blue/theme.css +101 -14
- package/resources/themes/lara-light-indigo/theme.css +101 -14
- package/resources/themes/lara-light-purple/theme.css +101 -14
- package/resources/themes/lara-light-teal/theme.css +101 -14
- package/resources/themes/luna-amber/theme.css +101 -14
- package/resources/themes/luna-blue/theme.css +101 -14
- package/resources/themes/luna-green/theme.css +101 -14
- package/resources/themes/luna-pink/theme.css +101 -14
- package/resources/themes/md-dark-deeppurple/theme.css +101 -14
- package/resources/themes/md-dark-indigo/theme.css +101 -14
- package/resources/themes/md-light-deeppurple/theme.css +101 -14
- package/resources/themes/md-light-indigo/theme.css +101 -14
- package/resources/themes/mdc-dark-deeppurple/theme.css +101 -14
- package/resources/themes/mdc-dark-indigo/theme.css +101 -14
- package/resources/themes/mdc-light-deeppurple/theme.css +101 -14
- package/resources/themes/mdc-light-indigo/theme.css +101 -14
- package/resources/themes/nova/theme.css +102 -15
- package/resources/themes/nova-accent/theme.css +102 -15
- package/resources/themes/nova-alt/theme.css +102 -15
- package/resources/themes/rhea/theme.css +102 -15
- package/resources/themes/saga-blue/theme.css +101 -14
- package/resources/themes/saga-green/theme.css +101 -14
- package/resources/themes/saga-orange/theme.css +101 -14
- package/resources/themes/saga-purple/theme.css +101 -14
- package/resources/themes/tailwind-light/theme.css +101 -14
- package/resources/themes/vela-blue/theme.css +101 -14
- package/resources/themes/vela-green/theme.css +101 -14
- package/resources/themes/vela-orange/theme.css +101 -14
- package/resources/themes/vela-purple/theme.css +101 -14
- package/ripple/ripple.d.ts +1 -1
- package/scroller/package.json +10 -0
- package/scroller/primeng-scroller.d.ts +5 -0
- package/scroller/public_api.d.ts +1 -0
- package/scroller/scroller.d.ts +223 -0
- package/scrollpanel/scrollpanel.d.ts +1 -1
- package/scrolltop/scrolltop.d.ts +1 -1
- package/selectbutton/selectbutton.d.ts +1 -1
- package/sidebar/sidebar.d.ts +1 -1
- package/skeleton/skeleton.d.ts +1 -1
- package/slidemenu/slidemenu.d.ts +2 -2
- package/slider/slider.d.ts +1 -1
- package/speeddial/speeddial.d.ts +1 -1
- package/spinner/spinner.d.ts +1 -1
- package/splitbutton/splitbutton.d.ts +1 -1
- package/splitter/splitter.d.ts +1 -1
- package/steps/steps.d.ts +1 -1
- package/styleclass/styleclass.d.ts +1 -1
- package/table/table.d.ts +49 -45
- package/tabmenu/tabmenu.d.ts +9 -4
- package/tabview/tabview.d.ts +2 -2
- package/tag/tag.d.ts +1 -1
- package/terminal/terminal.d.ts +1 -1
- package/tieredmenu/tieredmenu.d.ts +3 -3
- package/timeline/timeline.d.ts +1 -1
- package/toast/toast.d.ts +2 -2
- package/togglebutton/togglebutton.d.ts +1 -1
- package/toolbar/toolbar.d.ts +1 -1
- package/tooltip/tooltip.d.ts +2 -1
- package/tree/tree.d.ts +23 -17
- package/treeselect/treeselect.d.ts +1 -1
- package/treetable/treetable.d.ts +33 -25
- package/tristatecheckbox/tristatecheckbox.d.ts +1 -1
- package/virtualscroller/virtualscroller.d.ts +12 -27
- package/resources/components/virtualscroller/virtualscroller.css +0 -3
@@ -0,0 +1,746 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, ContentChildren, Output, NgModule } from '@angular/core';
|
3
|
+
import * as i1 from '@angular/common';
|
4
|
+
import { CommonModule } from '@angular/common';
|
5
|
+
import { DomHandler } from 'primeng/dom';
|
6
|
+
import { PrimeTemplate } from 'primeng/api';
|
7
|
+
|
8
|
+
class Scroller {
|
9
|
+
constructor(cd, zone) {
|
10
|
+
this.cd = cd;
|
11
|
+
this.zone = zone;
|
12
|
+
this.onLazyLoad = new EventEmitter();
|
13
|
+
this.onScroll = new EventEmitter();
|
14
|
+
this.onScrollIndexChange = new EventEmitter();
|
15
|
+
this._tabindex = 0;
|
16
|
+
this._itemSize = 0;
|
17
|
+
this._orientation = 'vertical';
|
18
|
+
this._delay = 0;
|
19
|
+
this._resizeDelay = 10;
|
20
|
+
this._lazy = false;
|
21
|
+
this._disabled = false;
|
22
|
+
this._loaderDisabled = false;
|
23
|
+
this._showSpacer = true;
|
24
|
+
this._showLoader = false;
|
25
|
+
this._autoSize = false;
|
26
|
+
this.d_loading = false;
|
27
|
+
this.first = 0;
|
28
|
+
this.last = 0;
|
29
|
+
this.numItemsInViewport = 0;
|
30
|
+
this.lastScrollPos = 0;
|
31
|
+
this.loaderArr = [];
|
32
|
+
this.spacerStyle = {};
|
33
|
+
this.contentStyle = {};
|
34
|
+
this.initialized = false;
|
35
|
+
if (!this._disabled) {
|
36
|
+
this.zone.runOutsideAngular(() => {
|
37
|
+
this.windowResizeListener = this.onWindowResize.bind(this);
|
38
|
+
window.addEventListener('resize', this.windowResizeListener);
|
39
|
+
window.addEventListener('orientationchange', this.windowResizeListener);
|
40
|
+
});
|
41
|
+
}
|
42
|
+
}
|
43
|
+
get id() { return this._id; }
|
44
|
+
set id(val) { this._id = val; }
|
45
|
+
get style() { return this._style; }
|
46
|
+
set style(val) { this._style = val; }
|
47
|
+
get styleClass() { return this._styleClass; }
|
48
|
+
set styleClass(val) { this._styleClass = val; }
|
49
|
+
get tabindex() { return this._tabindex; }
|
50
|
+
set tabindex(val) { this._tabindex = val; }
|
51
|
+
get items() { return this._items; }
|
52
|
+
set items(val) { this._items = val; }
|
53
|
+
get itemSize() { return this._itemSize; }
|
54
|
+
set itemSize(val) { this._itemSize = val; }
|
55
|
+
get scrollHeight() { return this._scrollHeight; }
|
56
|
+
set scrollHeight(val) { this._scrollHeight = val; }
|
57
|
+
get scrollWidth() { return this._scrollWidth; }
|
58
|
+
set scrollWidth(val) { this._scrollWidth = val; }
|
59
|
+
get orientation() { return this._orientation; }
|
60
|
+
set orientation(val) { this._orientation = val; }
|
61
|
+
get delay() { return this._delay; }
|
62
|
+
set delay(val) { this._delay = val; }
|
63
|
+
get resizeDelay() { return this._resizeDelay; }
|
64
|
+
set resizeDelay(val) { this._resizeDelay = val; }
|
65
|
+
get lazy() { return this._lazy; }
|
66
|
+
set lazy(val) { this._lazy = val; }
|
67
|
+
get disabled() { return this._disabled; }
|
68
|
+
set disabled(val) { this._disabled = val; }
|
69
|
+
get loaderDisabled() { return this._loaderDisabled; }
|
70
|
+
set loaderDisabled(val) { this._loaderDisabled = val; }
|
71
|
+
get columns() { return this._columns; }
|
72
|
+
set columns(val) { this._columns = val; }
|
73
|
+
get showSpacer() { return this._showSpacer; }
|
74
|
+
set showSpacer(val) { this._showSpacer = val; }
|
75
|
+
get showLoader() { return this._showLoader; }
|
76
|
+
set showLoader(val) { this._showLoader = val; }
|
77
|
+
get numToleratedItems() { return this._numToleratedItems; }
|
78
|
+
set numToleratedItems(val) { this._numToleratedItems = val; }
|
79
|
+
get loading() { return this._loading; }
|
80
|
+
set loading(val) { this._loading = val; }
|
81
|
+
get autoSize() { return this._autoSize; }
|
82
|
+
set autoSize(val) { this._autoSize = val; }
|
83
|
+
get trackBy() { return this._trackBy; }
|
84
|
+
set trackBy(val) { this._trackBy = val; }
|
85
|
+
get options() { return this._options; }
|
86
|
+
set options(val) {
|
87
|
+
this._options = val;
|
88
|
+
if (val && typeof val === 'object') {
|
89
|
+
Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));
|
90
|
+
}
|
91
|
+
}
|
92
|
+
get vertical() {
|
93
|
+
return this._orientation === 'vertical';
|
94
|
+
}
|
95
|
+
get horizontal() {
|
96
|
+
return this._orientation === 'horizontal';
|
97
|
+
}
|
98
|
+
get both() {
|
99
|
+
return this._orientation === 'both';
|
100
|
+
}
|
101
|
+
get loadedItems() {
|
102
|
+
if (this._items && !this.d_loading) {
|
103
|
+
if (this.both)
|
104
|
+
return this._items.slice(this.first.rows, this.last.rows).map(item => this._columns ? item : item.slice(this.first.cols, this.last.cols));
|
105
|
+
else if (this.horizontal && this._columns)
|
106
|
+
return this._items;
|
107
|
+
else
|
108
|
+
return this._items.slice(this.first, this.last);
|
109
|
+
}
|
110
|
+
return [];
|
111
|
+
}
|
112
|
+
get loadedRows() {
|
113
|
+
return this.d_loading ? (this._loaderDisabled ? this.loaderArr : []) : this.loadedItems;
|
114
|
+
}
|
115
|
+
get loadedColumns() {
|
116
|
+
if (this._columns && (this.both || this.horizontal)) {
|
117
|
+
return this.d_loading && this._loaderDisabled ?
|
118
|
+
(this.both ? this.loaderArr[0] : this.loaderArr) :
|
119
|
+
this._columns.slice((this.both ? this.first.cols : this.first), (this.both ? this.last.cols : this.last));
|
120
|
+
}
|
121
|
+
return this._columns;
|
122
|
+
}
|
123
|
+
ngOnInit() {
|
124
|
+
this.setInitialState();
|
125
|
+
}
|
126
|
+
ngOnChanges(simpleChanges) {
|
127
|
+
if (this.initialized) {
|
128
|
+
let areItemsChanged = false;
|
129
|
+
if (simpleChanges.items) {
|
130
|
+
const { previousValue: prevItems, currentValue: currentItems } = simpleChanges.items;
|
131
|
+
areItemsChanged = !prevItems || prevItems.length !== (currentItems || []).length;
|
132
|
+
}
|
133
|
+
const isChanged = (areItemsChanged || simpleChanges.itemSize || simpleChanges.scrollHeight || simpleChanges.scrollWidth);
|
134
|
+
isChanged && this.init();
|
135
|
+
}
|
136
|
+
if (simpleChanges.orientation) {
|
137
|
+
this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
|
138
|
+
}
|
139
|
+
if (simpleChanges.loading) {
|
140
|
+
const { previousValue, currentValue } = simpleChanges.loading;
|
141
|
+
if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {
|
142
|
+
this.d_loading = currentValue;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
if (simpleChanges.numToleratedItems) {
|
146
|
+
const { previousValue, currentValue } = simpleChanges.numToleratedItems;
|
147
|
+
if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {
|
148
|
+
this.d_numToleratedItems = currentValue;
|
149
|
+
}
|
150
|
+
}
|
151
|
+
if (simpleChanges.options) {
|
152
|
+
const { previousValue, currentValue } = simpleChanges.options;
|
153
|
+
if (this.lazy && previousValue?.loading !== currentValue?.loading && currentValue?.loading !== this.d_loading) {
|
154
|
+
this.d_loading = currentValue.loading;
|
155
|
+
}
|
156
|
+
if (previousValue?.numToleratedItems !== currentValue?.numToleratedItems && currentValue?.numToleratedItems !== this.d_numToleratedItems) {
|
157
|
+
this.d_numToleratedItems = currentValue.numToleratedItems;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
}
|
161
|
+
ngAfterContentInit() {
|
162
|
+
this.templates.forEach((item) => {
|
163
|
+
switch (item.getType()) {
|
164
|
+
case 'content':
|
165
|
+
this.contentTemplate = item.template;
|
166
|
+
break;
|
167
|
+
case 'item':
|
168
|
+
this.itemTemplate = item.template;
|
169
|
+
break;
|
170
|
+
case 'loader':
|
171
|
+
this.loaderTemplate = item.template;
|
172
|
+
break;
|
173
|
+
case 'loadericon':
|
174
|
+
this.loaderIconTemplate = item.template;
|
175
|
+
break;
|
176
|
+
default:
|
177
|
+
this.itemTemplate = item.template;
|
178
|
+
break;
|
179
|
+
}
|
180
|
+
});
|
181
|
+
}
|
182
|
+
ngAfterViewInit() {
|
183
|
+
this.setContentEl(this.contentEl);
|
184
|
+
this.init();
|
185
|
+
this.defaultWidth = DomHandler.getWidth(this.elementViewChild.nativeElement);
|
186
|
+
this.defaultHeight = DomHandler.getHeight(this.elementViewChild.nativeElement);
|
187
|
+
this.initialized = true;
|
188
|
+
}
|
189
|
+
ngAfterViewChecked() {
|
190
|
+
this.calculateAutoSize();
|
191
|
+
}
|
192
|
+
ngOnDestroy() {
|
193
|
+
if (this.windowResizeListener) {
|
194
|
+
window.removeEventListener('resize', this.windowResizeListener);
|
195
|
+
window.removeEventListener('orientationchange', this.windowResizeListener);
|
196
|
+
this.windowResizeListener = null;
|
197
|
+
}
|
198
|
+
}
|
199
|
+
init() {
|
200
|
+
if (!this._disabled) {
|
201
|
+
this.setSize();
|
202
|
+
this.calculateOptions();
|
203
|
+
this.setSpacerSize();
|
204
|
+
this.cd.detectChanges();
|
205
|
+
}
|
206
|
+
}
|
207
|
+
setContentEl(el) {
|
208
|
+
this.contentEl = el || this.contentViewChild?.nativeElement || DomHandler.findSingle(this.elementViewChild?.nativeElement, '.p-scroller-content');
|
209
|
+
}
|
210
|
+
setInitialState() {
|
211
|
+
this.first = this.both ? { rows: 0, cols: 0 } : 0;
|
212
|
+
this.last = this.both ? { rows: 0, cols: 0 } : 0;
|
213
|
+
this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;
|
214
|
+
this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
|
215
|
+
this.d_loading = this._loading || false;
|
216
|
+
this.d_numToleratedItems = this._numToleratedItems;
|
217
|
+
}
|
218
|
+
getElementRef() {
|
219
|
+
return this.elementViewChild;
|
220
|
+
}
|
221
|
+
scrollTo(options) {
|
222
|
+
this.elementViewChild?.nativeElement?.scrollTo(options);
|
223
|
+
}
|
224
|
+
scrollToIndex(index, behavior = 'auto') {
|
225
|
+
const { numToleratedItems } = this.calculateNumItems();
|
226
|
+
const contentPos = this.getContentPosition();
|
227
|
+
const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);
|
228
|
+
const calculateCoord = (_first, _size, _cpos) => (_first * _size) + _cpos;
|
229
|
+
const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
|
230
|
+
if (this.both) {
|
231
|
+
const newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };
|
232
|
+
if (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols) {
|
233
|
+
scrollTo(calculateCoord(newFirst.cols, this._itemSize[1], contentPos.left), calculateCoord(newFirst.rows, this._itemSize[0], contentPos.top));
|
234
|
+
this.first = newFirst;
|
235
|
+
}
|
236
|
+
}
|
237
|
+
else {
|
238
|
+
const newFirst = calculateFirst(index, numToleratedItems);
|
239
|
+
if (newFirst !== this.first) {
|
240
|
+
this.horizontal ? scrollTo(calculateCoord(newFirst, this._itemSize, contentPos.left), 0) : scrollTo(0, calculateCoord(newFirst, this._itemSize, contentPos.top));
|
241
|
+
this.first = newFirst;
|
242
|
+
}
|
243
|
+
}
|
244
|
+
}
|
245
|
+
scrollInView(index, to, behavior = 'auto') {
|
246
|
+
if (to) {
|
247
|
+
const { first, viewport } = this.getRenderedRange();
|
248
|
+
const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
|
249
|
+
const isToStart = to === 'to-start';
|
250
|
+
const isToEnd = to === 'to-end';
|
251
|
+
if (isToStart) {
|
252
|
+
if (this.both) {
|
253
|
+
if (viewport.first.rows - first.rows > index[0]) {
|
254
|
+
scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows - 1) * this._itemSize[0]);
|
255
|
+
}
|
256
|
+
else if (viewport.first.cols - first.cols > index[1]) {
|
257
|
+
scrollTo((viewport.first.cols - 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
|
258
|
+
}
|
259
|
+
}
|
260
|
+
else {
|
261
|
+
if (viewport.first - first > index) {
|
262
|
+
const pos = (viewport.first - 1) * this._itemSize;
|
263
|
+
this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
|
264
|
+
}
|
265
|
+
}
|
266
|
+
}
|
267
|
+
else if (isToEnd) {
|
268
|
+
if (this.both) {
|
269
|
+
if (viewport.last.rows - first.rows <= index[0] + 1) {
|
270
|
+
scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows + 1) * this._itemSize[0]);
|
271
|
+
}
|
272
|
+
else if (viewport.last.cols - first.cols <= index[1] + 1) {
|
273
|
+
scrollTo((viewport.first.cols + 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
|
274
|
+
}
|
275
|
+
}
|
276
|
+
else {
|
277
|
+
if (viewport.last - first <= index + 1) {
|
278
|
+
const pos = (viewport.first + 1) * this._itemSize;
|
279
|
+
this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
|
280
|
+
}
|
281
|
+
}
|
282
|
+
}
|
283
|
+
}
|
284
|
+
else {
|
285
|
+
this.scrollToIndex(index, behavior);
|
286
|
+
}
|
287
|
+
}
|
288
|
+
getRenderedRange() {
|
289
|
+
const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
|
290
|
+
let firstInViewport = this.first;
|
291
|
+
let lastInViewport = 0;
|
292
|
+
if (this.elementViewChild?.nativeElement) {
|
293
|
+
const { scrollTop, scrollLeft } = this.elementViewChild.nativeElement;
|
294
|
+
if (this.both) {
|
295
|
+
firstInViewport = { rows: calculateFirstInViewport(scrollTop, this._itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this._itemSize[1]) };
|
296
|
+
lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
|
297
|
+
}
|
298
|
+
else {
|
299
|
+
const scrollPos = this.horizontal ? scrollLeft : scrollTop;
|
300
|
+
firstInViewport = calculateFirstInViewport(scrollPos, this._itemSize);
|
301
|
+
lastInViewport = firstInViewport + this.numItemsInViewport;
|
302
|
+
}
|
303
|
+
}
|
304
|
+
return {
|
305
|
+
first: this.first,
|
306
|
+
last: this.last,
|
307
|
+
viewport: {
|
308
|
+
first: firstInViewport,
|
309
|
+
last: lastInViewport
|
310
|
+
}
|
311
|
+
};
|
312
|
+
}
|
313
|
+
calculateNumItems() {
|
314
|
+
const contentPos = this.getContentPosition();
|
315
|
+
const contentWidth = this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0;
|
316
|
+
const contentHeight = this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0;
|
317
|
+
const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));
|
318
|
+
const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);
|
319
|
+
const numItemsInViewport = this.both ?
|
320
|
+
{ rows: calculateNumItemsInViewport(contentHeight, this._itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, this._itemSize[1]) } :
|
321
|
+
calculateNumItemsInViewport((this.horizontal ? contentWidth : contentHeight), this._itemSize);
|
322
|
+
const numToleratedItems = this.d_numToleratedItems || (this.both ?
|
323
|
+
[calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] :
|
324
|
+
calculateNumToleratedItems(numItemsInViewport));
|
325
|
+
return { numItemsInViewport, numToleratedItems };
|
326
|
+
}
|
327
|
+
calculateOptions() {
|
328
|
+
const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();
|
329
|
+
const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + ((_first < _numT ? 2 : 3) * _numT), _isCols);
|
330
|
+
const first = this.first;
|
331
|
+
const last = this.both ?
|
332
|
+
{ rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true) } :
|
333
|
+
calculateLast(this.first, numItemsInViewport, numToleratedItems);
|
334
|
+
this.last = last;
|
335
|
+
this.numItemsInViewport = numItemsInViewport;
|
336
|
+
this.d_numToleratedItems = numToleratedItems;
|
337
|
+
if (this.showLoader) {
|
338
|
+
this.loaderArr = this.both ?
|
339
|
+
Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) :
|
340
|
+
Array.from({ length: numItemsInViewport });
|
341
|
+
}
|
342
|
+
if (this._lazy) {
|
343
|
+
this.handleEvents('onLazyLoad', { first, last });
|
344
|
+
}
|
345
|
+
}
|
346
|
+
calculateAutoSize() {
|
347
|
+
if (this._autoSize && !this.d_loading) {
|
348
|
+
Promise.resolve().then(() => {
|
349
|
+
if (this.contentEl) {
|
350
|
+
this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';
|
351
|
+
const { offsetWidth, offsetHeight } = this.contentEl;
|
352
|
+
(this.both || this.horizontal) && (this.elementViewChild.nativeElement.style.width = (offsetWidth < this.defaultWidth ? offsetWidth : this.defaultWidth) + 'px');
|
353
|
+
(this.both || this.vertical) && (this.elementViewChild.nativeElement.style.height = (offsetHeight < this.defaultHeight ? offsetHeight : this.defaultHeight) + 'px');
|
354
|
+
this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';
|
355
|
+
}
|
356
|
+
});
|
357
|
+
}
|
358
|
+
}
|
359
|
+
getLast(last = 0, isCols = false) {
|
360
|
+
return this._items ? Math.min((isCols ? (this._columns || this._items[0]).length : this._items.length), last) : 0;
|
361
|
+
}
|
362
|
+
getContentPosition() {
|
363
|
+
if (this.contentEl) {
|
364
|
+
const style = getComputedStyle(this.contentEl);
|
365
|
+
const left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);
|
366
|
+
const right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);
|
367
|
+
const top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);
|
368
|
+
const bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);
|
369
|
+
return { left, right, top, bottom, x: left + right, y: top + bottom };
|
370
|
+
}
|
371
|
+
return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };
|
372
|
+
}
|
373
|
+
setSize() {
|
374
|
+
if (this.elementViewChild?.nativeElement) {
|
375
|
+
const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;
|
376
|
+
const width = this._scrollWidth || `${(this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth)}px`;
|
377
|
+
const height = this._scrollHeight || `${(this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight)}px`;
|
378
|
+
const setProp = (_name, _value) => this.elementViewChild.nativeElement.style[_name] = _value;
|
379
|
+
if (this.both || this.horizontal) {
|
380
|
+
setProp('height', height);
|
381
|
+
setProp('width', width);
|
382
|
+
}
|
383
|
+
else {
|
384
|
+
setProp('height', height);
|
385
|
+
}
|
386
|
+
}
|
387
|
+
}
|
388
|
+
setSpacerSize() {
|
389
|
+
if (this._items) {
|
390
|
+
const contentPos = this.getContentPosition();
|
391
|
+
const setProp = (_name, _value, _size, _cpos = 0) => this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (((_value || []).length * _size) + _cpos) + 'px' } };
|
392
|
+
if (this.both) {
|
393
|
+
setProp('height', this._items, this._itemSize[0], contentPos.y);
|
394
|
+
setProp('width', (this._columns || this._items[1]), this._itemSize[1], contentPos.x);
|
395
|
+
}
|
396
|
+
else {
|
397
|
+
this.horizontal ? setProp('width', (this._columns || this._items), this._itemSize, contentPos.x) : setProp('height', this._items, this._itemSize, contentPos.y);
|
398
|
+
}
|
399
|
+
}
|
400
|
+
}
|
401
|
+
setContentPosition(pos) {
|
402
|
+
if (this.contentEl) {
|
403
|
+
const first = pos ? pos.first : this.first;
|
404
|
+
const calculateTranslateVal = (_first, _size) => (_first * _size);
|
405
|
+
const setTransform = (_x = 0, _y = 0) => this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } };
|
406
|
+
if (this.both) {
|
407
|
+
setTransform(calculateTranslateVal(first.cols, this._itemSize[1]), calculateTranslateVal(first.rows, this._itemSize[0]));
|
408
|
+
}
|
409
|
+
else {
|
410
|
+
const translateVal = calculateTranslateVal(first, this._itemSize);
|
411
|
+
this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
|
412
|
+
}
|
413
|
+
}
|
414
|
+
}
|
415
|
+
onScrollPositionChange(event) {
|
416
|
+
const target = event.target;
|
417
|
+
const contentPos = this.getContentPosition();
|
418
|
+
const calculateScrollPos = (_pos, _cpos) => _pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0;
|
419
|
+
const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));
|
420
|
+
const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
|
421
|
+
return (_currentIndex <= _numT ? _numT : (_isScrollDownOrRight ? (_last - _num - _numT) : (_first + _numT - 1)));
|
422
|
+
};
|
423
|
+
const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
|
424
|
+
if (_currentIndex <= _numT)
|
425
|
+
return 0;
|
426
|
+
else
|
427
|
+
return Math.max(0, _isScrollDownOrRight ?
|
428
|
+
(_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) :
|
429
|
+
(_currentIndex > _triggerIndex ? _first : _currentIndex - (2 * _numT)));
|
430
|
+
};
|
431
|
+
const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols = false) => {
|
432
|
+
let lastValue = _first + _num + (2 * _numT);
|
433
|
+
if (_currentIndex >= _numT) {
|
434
|
+
lastValue += (_numT + 1);
|
435
|
+
}
|
436
|
+
return this.getLast(lastValue, _isCols);
|
437
|
+
};
|
438
|
+
const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);
|
439
|
+
const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);
|
440
|
+
let newFirst = this.both ? { rows: 0, cols: 0 } : 0;
|
441
|
+
let newLast = this.last;
|
442
|
+
let isRangeChanged = false;
|
443
|
+
let newScrollPos = this.lastScrollPos;
|
444
|
+
if (this.both) {
|
445
|
+
const isScrollDown = this.lastScrollPos.top <= scrollTop;
|
446
|
+
const isScrollRight = this.lastScrollPos.left <= scrollLeft;
|
447
|
+
const currentIndex = { rows: calculateCurrentIndex(scrollTop, this._itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this._itemSize[1]) };
|
448
|
+
const triggerIndex = {
|
449
|
+
rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
|
450
|
+
cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
|
451
|
+
};
|
452
|
+
newFirst = {
|
453
|
+
rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
|
454
|
+
cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
|
455
|
+
};
|
456
|
+
newLast = {
|
457
|
+
rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),
|
458
|
+
cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)
|
459
|
+
};
|
460
|
+
isRangeChanged = (newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows) || (newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols);
|
461
|
+
newScrollPos = { top: scrollTop, left: scrollLeft };
|
462
|
+
}
|
463
|
+
else {
|
464
|
+
const scrollPos = this.horizontal ? scrollLeft : scrollTop;
|
465
|
+
const isScrollDownOrRight = this.lastScrollPos <= scrollPos;
|
466
|
+
const currentIndex = calculateCurrentIndex(scrollPos, this._itemSize);
|
467
|
+
const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
|
468
|
+
newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
|
469
|
+
newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);
|
470
|
+
isRangeChanged = newFirst !== this.first || newLast !== this.last;
|
471
|
+
newScrollPos = scrollPos;
|
472
|
+
}
|
473
|
+
return {
|
474
|
+
first: newFirst,
|
475
|
+
last: newLast,
|
476
|
+
isRangeChanged,
|
477
|
+
scrollPos: newScrollPos
|
478
|
+
};
|
479
|
+
}
|
480
|
+
onScrollChange(event) {
|
481
|
+
const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);
|
482
|
+
if (isRangeChanged) {
|
483
|
+
const newState = { first, last };
|
484
|
+
this.setContentPosition(newState);
|
485
|
+
this.first = first;
|
486
|
+
this.last = last;
|
487
|
+
this.lastScrollPos = scrollPos;
|
488
|
+
this.handleEvents('onScrollIndexChange', newState);
|
489
|
+
if (this._lazy) {
|
490
|
+
this.handleEvents('onLazyLoad', newState);
|
491
|
+
}
|
492
|
+
}
|
493
|
+
}
|
494
|
+
onContainerScroll(event) {
|
495
|
+
this.handleEvents('onScroll', { originalEvent: event });
|
496
|
+
if (this._delay) {
|
497
|
+
if (this.scrollTimeout) {
|
498
|
+
clearTimeout(this.scrollTimeout);
|
499
|
+
}
|
500
|
+
if (!this.d_loading && this.showLoader) {
|
501
|
+
const { isRangeChanged: changed } = this.onScrollPositionChange(event);
|
502
|
+
if (changed) {
|
503
|
+
this.d_loading = true;
|
504
|
+
this.cd.detectChanges();
|
505
|
+
}
|
506
|
+
}
|
507
|
+
this.scrollTimeout = setTimeout(() => {
|
508
|
+
this.onScrollChange(event);
|
509
|
+
if (this.d_loading && this.showLoader && (!this._lazy || this._loading === undefined)) {
|
510
|
+
this.d_loading = false;
|
511
|
+
this.cd.detectChanges();
|
512
|
+
}
|
513
|
+
}, this._delay);
|
514
|
+
}
|
515
|
+
else {
|
516
|
+
this.onScrollChange(event);
|
517
|
+
}
|
518
|
+
}
|
519
|
+
onWindowResize() {
|
520
|
+
if (this.resizeTimeout) {
|
521
|
+
clearTimeout(this.resizeTimeout);
|
522
|
+
}
|
523
|
+
this.resizeTimeout = setTimeout(() => {
|
524
|
+
if (this.elementViewChild) {
|
525
|
+
const [width, height] = [DomHandler.getWidth(this.elementViewChild.nativeElement), DomHandler.getHeight(this.elementViewChild.nativeElement)];
|
526
|
+
const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];
|
527
|
+
const reinit = this.both ? (isDiffWidth || isDiffHeight) : (this.horizontal ? isDiffWidth : (this.vertical ? isDiffHeight : false));
|
528
|
+
reinit && this.zone.run(() => {
|
529
|
+
this.d_numToleratedItems = this._numToleratedItems;
|
530
|
+
this.defaultWidth = width;
|
531
|
+
this.defaultHeight = height;
|
532
|
+
this.init();
|
533
|
+
});
|
534
|
+
}
|
535
|
+
}, this._resizeDelay);
|
536
|
+
}
|
537
|
+
handleEvents(name, params) {
|
538
|
+
return this.options && this.options[name] ? this.options[name](params) : this[name].emit(params);
|
539
|
+
}
|
540
|
+
getContentOptions() {
|
541
|
+
return {
|
542
|
+
contentStyleClass: `p-scroller-content ${this.d_loading ? 'p-scroller-loading' : ''}`,
|
543
|
+
items: this.loadedItems,
|
544
|
+
getItemOptions: (index) => this.getOptions(index),
|
545
|
+
loading: this.d_loading,
|
546
|
+
getLoaderOptions: (index, options) => this.getLoaderOptions(index, options),
|
547
|
+
itemSize: this._itemSize,
|
548
|
+
rows: this.loadedRows,
|
549
|
+
columns: this.loadedColumns,
|
550
|
+
spacerStyle: this.spacerStyle,
|
551
|
+
contentStyle: this.contentStyle,
|
552
|
+
vertical: this.vertical,
|
553
|
+
horizontal: this.horizontal,
|
554
|
+
both: this.both
|
555
|
+
};
|
556
|
+
}
|
557
|
+
getOptions(renderedIndex) {
|
558
|
+
const count = (this._items || []).length;
|
559
|
+
const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;
|
560
|
+
return {
|
561
|
+
index,
|
562
|
+
count,
|
563
|
+
first: index === 0,
|
564
|
+
last: index === (count - 1),
|
565
|
+
even: index % 2 === 0,
|
566
|
+
odd: index % 2 !== 0
|
567
|
+
};
|
568
|
+
}
|
569
|
+
getLoaderOptions(index, extOptions) {
|
570
|
+
const count = this.loaderArr.length;
|
571
|
+
return {
|
572
|
+
index,
|
573
|
+
count,
|
574
|
+
first: index === 0,
|
575
|
+
last: index === (count - 1),
|
576
|
+
even: index % 2 === 0,
|
577
|
+
odd: index % 2 !== 0,
|
578
|
+
...extOptions
|
579
|
+
};
|
580
|
+
}
|
581
|
+
}
|
582
|
+
Scroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: Scroller, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
583
|
+
Scroller.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: Scroller, selector: "p-scroller", inputs: { id: "id", style: "style", styleClass: "styleClass", tabindex: "tabindex", items: "items", itemSize: "itemSize", scrollHeight: "scrollHeight", scrollWidth: "scrollWidth", orientation: "orientation", delay: "delay", resizeDelay: "resizeDelay", lazy: "lazy", disabled: "disabled", loaderDisabled: "loaderDisabled", columns: "columns", showSpacer: "showSpacer", showLoader: "showLoader", numToleratedItems: "numToleratedItems", loading: "loading", autoSize: "autoSize", trackBy: "trackBy", options: "options" }, outputs: { onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange" }, host: { classAttribute: "p-scroller-viewport p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "elementViewChild", first: true, predicate: ["element"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
584
|
+
<ng-container *ngIf="!_disabled; else disabledContainer">
|
585
|
+
<div #element [attr.id]="_id" [attr.tabindex]="tabindex" [ngStyle]="_style" [class]="_styleClass"
|
586
|
+
[ngClass]="{'p-scroller': true, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal}"
|
587
|
+
(scroll)="onContainerScroll($event)">
|
588
|
+
<ng-container *ngIf="contentTemplate; else buildInContent">
|
589
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: loadedItems, options: getContentOptions()}"></ng-container>
|
590
|
+
</ng-container>
|
591
|
+
<ng-template #buildInContent>
|
592
|
+
<div #content class="p-scroller-content" [ngClass]="{'p-scroller-loading': d_loading}" [ngStyle]="contentStyle">
|
593
|
+
<ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
|
594
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, options: getOptions(index)}"></ng-container>
|
595
|
+
</ng-container>
|
596
|
+
</div>
|
597
|
+
</ng-template>
|
598
|
+
<div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
|
599
|
+
<div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{'p-component-overlay': !loaderTemplate}">
|
600
|
+
<ng-container *ngIf="loaderTemplate; else buildInLoader">
|
601
|
+
<ng-container *ngFor="let item of loaderArr; let index = index">
|
602
|
+
<ng-container *ngTemplateOutlet="loaderTemplate; context: {options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols })}"></ng-container>
|
603
|
+
</ng-container>
|
604
|
+
</ng-container>
|
605
|
+
<ng-template #buildInLoader>
|
606
|
+
<ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
|
607
|
+
<ng-container *ngTemplateOutlet="loaderIconTemplate; context: {options: { styleClass: 'p-scroller-loading-icon' }}"></ng-container>
|
608
|
+
</ng-container>
|
609
|
+
<ng-template #buildInLoaderIcon>
|
610
|
+
<i class="p-scroller-loading-icon pi pi-spinner pi-spin"></i>
|
611
|
+
</ng-template>
|
612
|
+
</ng-template>
|
613
|
+
</div>
|
614
|
+
</div>
|
615
|
+
</ng-container>
|
616
|
+
<ng-template #disabledContainer>
|
617
|
+
<ng-content></ng-content>
|
618
|
+
<ng-container *ngIf="contentTemplate">
|
619
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: items, options: {rows: _items, columns: loadedColumns}}"></ng-container>
|
620
|
+
</ng-container>
|
621
|
+
</ng-template>
|
622
|
+
`, isInline: true, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
623
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: Scroller, decorators: [{
|
624
|
+
type: Component,
|
625
|
+
args: [{ selector: 'p-scroller', template: `
|
626
|
+
<ng-container *ngIf="!_disabled; else disabledContainer">
|
627
|
+
<div #element [attr.id]="_id" [attr.tabindex]="tabindex" [ngStyle]="_style" [class]="_styleClass"
|
628
|
+
[ngClass]="{'p-scroller': true, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal}"
|
629
|
+
(scroll)="onContainerScroll($event)">
|
630
|
+
<ng-container *ngIf="contentTemplate; else buildInContent">
|
631
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: loadedItems, options: getContentOptions()}"></ng-container>
|
632
|
+
</ng-container>
|
633
|
+
<ng-template #buildInContent>
|
634
|
+
<div #content class="p-scroller-content" [ngClass]="{'p-scroller-loading': d_loading}" [ngStyle]="contentStyle">
|
635
|
+
<ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
|
636
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, options: getOptions(index)}"></ng-container>
|
637
|
+
</ng-container>
|
638
|
+
</div>
|
639
|
+
</ng-template>
|
640
|
+
<div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
|
641
|
+
<div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{'p-component-overlay': !loaderTemplate}">
|
642
|
+
<ng-container *ngIf="loaderTemplate; else buildInLoader">
|
643
|
+
<ng-container *ngFor="let item of loaderArr; let index = index">
|
644
|
+
<ng-container *ngTemplateOutlet="loaderTemplate; context: {options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols })}"></ng-container>
|
645
|
+
</ng-container>
|
646
|
+
</ng-container>
|
647
|
+
<ng-template #buildInLoader>
|
648
|
+
<ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
|
649
|
+
<ng-container *ngTemplateOutlet="loaderIconTemplate; context: {options: { styleClass: 'p-scroller-loading-icon' }}"></ng-container>
|
650
|
+
</ng-container>
|
651
|
+
<ng-template #buildInLoaderIcon>
|
652
|
+
<i class="p-scroller-loading-icon pi pi-spinner pi-spin"></i>
|
653
|
+
</ng-template>
|
654
|
+
</ng-template>
|
655
|
+
</div>
|
656
|
+
</div>
|
657
|
+
</ng-container>
|
658
|
+
<ng-template #disabledContainer>
|
659
|
+
<ng-content></ng-content>
|
660
|
+
<ng-container *ngIf="contentTemplate">
|
661
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: items, options: {rows: _items, columns: loadedColumns}}"></ng-container>
|
662
|
+
</ng-container>
|
663
|
+
</ng-template>
|
664
|
+
`, changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
|
665
|
+
'class': 'p-scroller-viewport p-element'
|
666
|
+
}, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{font-size:2rem}\n"] }]
|
667
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { id: [{
|
668
|
+
type: Input
|
669
|
+
}], style: [{
|
670
|
+
type: Input
|
671
|
+
}], styleClass: [{
|
672
|
+
type: Input
|
673
|
+
}], tabindex: [{
|
674
|
+
type: Input
|
675
|
+
}], items: [{
|
676
|
+
type: Input
|
677
|
+
}], itemSize: [{
|
678
|
+
type: Input
|
679
|
+
}], scrollHeight: [{
|
680
|
+
type: Input
|
681
|
+
}], scrollWidth: [{
|
682
|
+
type: Input
|
683
|
+
}], orientation: [{
|
684
|
+
type: Input
|
685
|
+
}], delay: [{
|
686
|
+
type: Input
|
687
|
+
}], resizeDelay: [{
|
688
|
+
type: Input
|
689
|
+
}], lazy: [{
|
690
|
+
type: Input
|
691
|
+
}], disabled: [{
|
692
|
+
type: Input
|
693
|
+
}], loaderDisabled: [{
|
694
|
+
type: Input
|
695
|
+
}], columns: [{
|
696
|
+
type: Input
|
697
|
+
}], showSpacer: [{
|
698
|
+
type: Input
|
699
|
+
}], showLoader: [{
|
700
|
+
type: Input
|
701
|
+
}], numToleratedItems: [{
|
702
|
+
type: Input
|
703
|
+
}], loading: [{
|
704
|
+
type: Input
|
705
|
+
}], autoSize: [{
|
706
|
+
type: Input
|
707
|
+
}], trackBy: [{
|
708
|
+
type: Input
|
709
|
+
}], options: [{
|
710
|
+
type: Input
|
711
|
+
}], elementViewChild: [{
|
712
|
+
type: ViewChild,
|
713
|
+
args: ['element']
|
714
|
+
}], contentViewChild: [{
|
715
|
+
type: ViewChild,
|
716
|
+
args: ['content']
|
717
|
+
}], templates: [{
|
718
|
+
type: ContentChildren,
|
719
|
+
args: [PrimeTemplate]
|
720
|
+
}], onLazyLoad: [{
|
721
|
+
type: Output
|
722
|
+
}], onScroll: [{
|
723
|
+
type: Output
|
724
|
+
}], onScrollIndexChange: [{
|
725
|
+
type: Output
|
726
|
+
}] } });
|
727
|
+
class ScrollerModule {
|
728
|
+
}
|
729
|
+
ScrollerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ScrollerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
730
|
+
ScrollerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: ScrollerModule, declarations: [Scroller], imports: [CommonModule], exports: [Scroller] });
|
731
|
+
ScrollerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ScrollerModule, imports: [CommonModule] });
|
732
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ScrollerModule, decorators: [{
|
733
|
+
type: NgModule,
|
734
|
+
args: [{
|
735
|
+
imports: [CommonModule],
|
736
|
+
exports: [Scroller],
|
737
|
+
declarations: [Scroller]
|
738
|
+
}]
|
739
|
+
}] });
|
740
|
+
|
741
|
+
/**
|
742
|
+
* Generated bundle index. Do not edit.
|
743
|
+
*/
|
744
|
+
|
745
|
+
export { Scroller, ScrollerModule };
|
746
|
+
//# sourceMappingURL=primeng-scroller.mjs.map
|