primeng 20.3.0-rc.1 → 20.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/config/index.d.ts +3 -1
- package/contextmenu/index.d.ts +1 -0
- package/dynamicdialog/index.d.ts +4 -0
- package/fesm2022/primeng-accordion.mjs +22 -22
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +7 -7
- package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +31 -31
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +17 -14
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +7 -7
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +10 -10
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +10 -10
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +16 -16
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-base.mjs +3 -3
- package/fesm2022/primeng-base.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +7 -7
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-baseeditableholder.mjs +4 -4
- package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
- package/fesm2022/primeng-baseinput.mjs +4 -4
- package/fesm2022/primeng-baseinput.mjs.map +1 -1
- package/fesm2022/primeng-basemodelholder.mjs +3 -3
- package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
- package/fesm2022/primeng-bind.mjs +8 -8
- package/fesm2022/primeng-bind.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +10 -10
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +46 -28
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +30 -28
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +10 -10
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +10 -10
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +10 -10
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +15 -15
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +10 -10
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +11 -11
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +10 -10
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-classnames.mjs +8 -8
- package/fesm2022/primeng-classnames.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +11 -11
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +6 -6
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +10 -10
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +10 -10
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +26 -20
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +10 -10
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +11 -11
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +11 -11
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +10 -10
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +34 -22
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +10 -10
- package/fesm2022/primeng-dragdrop.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +10 -10
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +25 -18
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +10 -10
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +10 -10
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +14 -14
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +10 -10
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +10 -10
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +7 -7
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +31 -28
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +10 -10
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +3 -3
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +3 -3
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +3 -3
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +3 -3
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +3 -3
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +3 -3
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +3 -3
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +3 -3
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +6 -6
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +3 -3
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +3 -3
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +3 -3
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +3 -3
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +3 -3
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +3 -3
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +3 -3
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +3 -3
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +3 -3
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterfill.mjs +3 -3
- package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +3 -3
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +3 -3
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +3 -3
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +3 -3
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +3 -3
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +3 -3
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +3 -3
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +3 -3
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +3 -3
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +3 -3
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +3 -3
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +3 -3
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +3 -3
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +3 -3
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +3 -3
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +3 -3
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +3 -3
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +3 -3
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +3 -3
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +3 -3
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +10 -10
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +11 -11
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +10 -10
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +16 -16
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +10 -10
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +10 -10
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +11 -10
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +10 -10
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +19 -13
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +12 -12
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +7 -7
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +25 -25
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +14 -13
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +59 -33
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +20 -20
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +57 -35
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +10 -10
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +13 -13
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +14 -14
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +10 -10
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +13 -13
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +12 -12
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +10 -10
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +11 -11
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +10 -10
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +48 -24
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +18 -18
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +84 -92
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +10 -10
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +10 -10
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +10 -10
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +14 -14
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +10 -10
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +10 -10
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +20 -15
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +10 -10
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +10 -10
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +15 -15
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +11 -11
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +10 -10
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +10 -10
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +10 -10
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +10 -10
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +11 -11
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +50 -49
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +10 -10
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +7 -7
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +103 -93
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +37 -37
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +10 -10
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +13 -13
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +11 -11
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +23 -19
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +10 -10
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +13 -13
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +11 -11
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +11 -11
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +10 -10
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +12 -12
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +159 -89
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +22 -13
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +69 -61
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-usestyle.mjs +3 -3
- package/fesm2022/primeng-usestyle.mjs.map +1 -1
- package/galleria/index.d.ts +1 -0
- package/knob/index.d.ts +1 -1
- package/megamenu/index.d.ts +4 -2
- package/menubar/index.d.ts +2 -1
- package/package.json +328 -328
- package/picklist/index.d.ts +4 -4
- package/table/index.d.ts +1 -0
- package/tree/index.d.ts +44 -26
- package/treeselect/index.d.ts +6 -1
- package/treetable/index.d.ts +1 -1
|
@@ -2,10 +2,10 @@ export * from 'primeng/types/tree';
|
|
|
2
2
|
import * as i1 from '@angular/common';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { Injectable, InjectionToken, inject, forwardRef, signal, computed, numberAttribute, booleanAttribute, Input,
|
|
5
|
+
import { Injectable, InjectionToken, inject, forwardRef, signal, computed, numberAttribute, booleanAttribute, Input, ViewEncapsulation, Component, model, EventEmitter, HostListener, ContentChildren, ViewChild, ContentChild, Output, Optional, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
6
6
|
import * as i2 from '@angular/forms';
|
|
7
7
|
import { FormsModule } from '@angular/forms';
|
|
8
|
-
import { getOuterWidth, getOuterHeight, find,
|
|
8
|
+
import { getOuterWidth, getOuterHeight, find, findSingle, focus, removeAccents, resolveFieldData } from '@primeuix/utils';
|
|
9
9
|
import * as i4 from 'primeng/api';
|
|
10
10
|
import { SharedModule, TranslationKeys, PrimeTemplate } from 'primeng/api';
|
|
11
11
|
import * as i5 from 'primeng/autofocus';
|
|
@@ -58,10 +58,10 @@ class TreeStyle extends BaseStyle {
|
|
|
58
58
|
name = 'tree';
|
|
59
59
|
style = style;
|
|
60
60
|
classes = classes;
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
62
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeStyle });
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeStyle, decorators: [{
|
|
65
65
|
type: Injectable
|
|
66
66
|
}] });
|
|
67
67
|
/**
|
|
@@ -167,11 +167,32 @@ class UITreeNode extends BaseComponent {
|
|
|
167
167
|
isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable(), ...(ngDevMode ? [{ debugName: "isNodeDropActive" }] : []));
|
|
168
168
|
dropPosition = computed(() => (this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0), ...(ngDevMode ? [{ debugName: "dropPosition" }] : []));
|
|
169
169
|
_componentStyle = inject(TreeStyle);
|
|
170
|
+
/**
|
|
171
|
+
* Computed signal that reactively tracks selection state.
|
|
172
|
+
*/
|
|
173
|
+
_selected = computed(() => {
|
|
174
|
+
// Reading selection() makes this computed reactive to selection changes
|
|
175
|
+
this.tree.selection();
|
|
176
|
+
return this.tree.isSelected(this.node);
|
|
177
|
+
}, ...(ngDevMode ? [{ debugName: "_selected" }] : []));
|
|
178
|
+
/**
|
|
179
|
+
* Computed signal that reactively tracks context menu selection state.
|
|
180
|
+
*/
|
|
181
|
+
_contextMenuSelected = computed(() => {
|
|
182
|
+
const selection = this.tree.contextMenuSelection();
|
|
183
|
+
if (!selection || !this.node) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
return selection === this.node || (selection.key && selection.key === this.node.key);
|
|
187
|
+
}, ...(ngDevMode ? [{ debugName: "_contextMenuSelected" }] : []));
|
|
170
188
|
get selected() {
|
|
171
|
-
return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this.
|
|
189
|
+
return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this._selected() : undefined;
|
|
172
190
|
}
|
|
173
191
|
get checked() {
|
|
174
|
-
return this.tree.selectionMode === 'checkbox' ? this.
|
|
192
|
+
return this.tree.selectionMode === 'checkbox' ? this._selected() : undefined;
|
|
193
|
+
}
|
|
194
|
+
get contextMenuSelected() {
|
|
195
|
+
return this._contextMenuSelected();
|
|
175
196
|
}
|
|
176
197
|
get nodeClass() {
|
|
177
198
|
return this.tree._componentStyle.classes.node({ instance: this });
|
|
@@ -191,6 +212,7 @@ class UITreeNode extends BaseComponent {
|
|
|
191
212
|
selected: this.selected,
|
|
192
213
|
checked: this.checked,
|
|
193
214
|
partialChecked: this.node?.partialSelected,
|
|
215
|
+
contextMenuSelected: this.contextMenuSelected,
|
|
194
216
|
leaf: this.isLeaf()
|
|
195
217
|
}
|
|
196
218
|
});
|
|
@@ -216,7 +238,10 @@ class UITreeNode extends BaseComponent {
|
|
|
216
238
|
return this.tree.isNodeLeaf(this.node);
|
|
217
239
|
}
|
|
218
240
|
isSelected() {
|
|
219
|
-
return this.
|
|
241
|
+
return this._selected();
|
|
242
|
+
}
|
|
243
|
+
isContextMenuSelected() {
|
|
244
|
+
return this._contextMenuSelected();
|
|
220
245
|
}
|
|
221
246
|
isSameNode(event) {
|
|
222
247
|
return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role="treeitem"]')));
|
|
@@ -504,7 +529,7 @@ class UITreeNode extends BaseComponent {
|
|
|
504
529
|
event.preventDefault();
|
|
505
530
|
}
|
|
506
531
|
setAllNodesTabIndexes() {
|
|
507
|
-
const nodes = find(this.tree.el.nativeElement, '
|
|
532
|
+
const nodes = find(this.tree.el.nativeElement, '[data-pc-section="node"]');
|
|
508
533
|
const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');
|
|
509
534
|
[...nodes].forEach((node) => {
|
|
510
535
|
node.tabIndex = -1;
|
|
@@ -540,7 +565,7 @@ class UITreeNode extends BaseComponent {
|
|
|
540
565
|
}
|
|
541
566
|
}
|
|
542
567
|
findLastVisibleDescendant(nodeElement) {
|
|
543
|
-
const listElement = Array.from(nodeElement.children).find((el) =>
|
|
568
|
+
const listElement = Array.from(nodeElement.children).find((el) => el.getAttribute('data-pc-section') === 'node');
|
|
544
569
|
const childrenListElement = listElement?.children[1];
|
|
545
570
|
if (childrenListElement && childrenListElement.children.length > 0) {
|
|
546
571
|
const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];
|
|
@@ -571,8 +596,8 @@ class UITreeNode extends BaseComponent {
|
|
|
571
596
|
focus(node);
|
|
572
597
|
}, 1);
|
|
573
598
|
}
|
|
574
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
575
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
599
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UITreeNode, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
600
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: UITreeNode, isStandalone: true, selector: "p-treeNode", inputs: { rowNode: "rowNode", node: "node", parentNode: "parentNode", root: ["root", "root", booleanAttribute], index: ["index", "index", numberAttribute], firstChild: ["firstChild", "firstChild", booleanAttribute], lastChild: ["lastChild", "lastChild", booleanAttribute], level: ["level", "level", numberAttribute], indentation: ["indentation", "indentation", numberAttribute], itemSize: ["itemSize", "itemSize", numberAttribute], loadingMode: "loadingMode" }, providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }], usesInheritance: true, ngImport: i0, template: `
|
|
576
601
|
@if (node) {
|
|
577
602
|
<li
|
|
578
603
|
[class]="cn(cx('node'), node.styleClass)"
|
|
@@ -675,13 +700,15 @@ class UITreeNode extends BaseComponent {
|
|
|
675
700
|
[itemSize]="itemSize"
|
|
676
701
|
[level]="level + 1"
|
|
677
702
|
[loadingMode]="loadingMode"
|
|
703
|
+
[pt]="pt"
|
|
704
|
+
[unstyled]="unstyled()"
|
|
678
705
|
></p-treeNode>
|
|
679
706
|
</ul>
|
|
680
707
|
</li>
|
|
681
708
|
}
|
|
682
|
-
`, isInline: true, dependencies: [{ kind: "component", type: UITreeNode, selector: "p-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: CommonModule }, { 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"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ChevronRightIcon, selector: "[data-p-icon=\"chevron-right\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-p-icon=\"spinner\"]" }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i3.Bind, selector: "[pBind]", inputs: ["pBind"] }],
|
|
709
|
+
`, isInline: true, dependencies: [{ kind: "component", type: UITreeNode, selector: "p-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: CommonModule }, { 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"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ChevronRightIcon, selector: "[data-p-icon=\"chevron-right\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-p-icon=\"spinner\"]" }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i3.Bind, selector: "[pBind]", inputs: ["pBind"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
683
710
|
}
|
|
684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UITreeNode, decorators: [{
|
|
685
712
|
type: Component,
|
|
686
713
|
args: [{
|
|
687
714
|
selector: 'p-treeNode',
|
|
@@ -790,14 +817,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
790
817
|
[itemSize]="itemSize"
|
|
791
818
|
[level]="level + 1"
|
|
792
819
|
[loadingMode]="loadingMode"
|
|
820
|
+
[pt]="pt"
|
|
821
|
+
[unstyled]="unstyled()"
|
|
793
822
|
></p-treeNode>
|
|
794
823
|
</ul>
|
|
795
824
|
</li>
|
|
796
825
|
}
|
|
797
826
|
`,
|
|
798
827
|
encapsulation: ViewEncapsulation.None,
|
|
799
|
-
providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }]
|
|
800
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
828
|
+
providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }]
|
|
801
829
|
}]
|
|
802
830
|
}], propDecorators: { rowNode: [{
|
|
803
831
|
type: Input
|
|
@@ -859,7 +887,7 @@ class Tree extends BaseComponent {
|
|
|
859
887
|
* A single treenode instance or an array to refer to the selections.
|
|
860
888
|
* @group Props
|
|
861
889
|
*/
|
|
862
|
-
selection;
|
|
890
|
+
selection = model(null, ...(ngDevMode ? [{ debugName: "selection" }] : []));
|
|
863
891
|
/**
|
|
864
892
|
* Style class of the component.
|
|
865
893
|
* @deprecated since v20.0.0, use `class` instead.
|
|
@@ -871,6 +899,18 @@ class Tree extends BaseComponent {
|
|
|
871
899
|
* @group Props
|
|
872
900
|
*/
|
|
873
901
|
contextMenu;
|
|
902
|
+
/**
|
|
903
|
+
* Defines how the context menu selection behaves.
|
|
904
|
+
* When set to 'separate', context menu selection is handled independently from the main selection.
|
|
905
|
+
* When set to 'joint', context menu selection also updates the main selection.
|
|
906
|
+
* @group Props
|
|
907
|
+
*/
|
|
908
|
+
contextMenuSelectionMode = 'separate';
|
|
909
|
+
/**
|
|
910
|
+
* A single treenode instance to refer to the context menu selection.
|
|
911
|
+
* @group Props
|
|
912
|
+
*/
|
|
913
|
+
contextMenuSelection = model(null, ...(ngDevMode ? [{ debugName: "contextMenuSelection" }] : []));
|
|
874
914
|
/**
|
|
875
915
|
* Scope of the draggable nodes to match a droppableScope.
|
|
876
916
|
* @group Props
|
|
@@ -1026,12 +1066,6 @@ class Tree extends BaseComponent {
|
|
|
1026
1066
|
* @group Props
|
|
1027
1067
|
*/
|
|
1028
1068
|
highlightOnSelect = false;
|
|
1029
|
-
/**
|
|
1030
|
-
* Callback to invoke on selection change.
|
|
1031
|
-
* @param {(TreeNode<any> | TreeNode<any>[] | null)} event - Custom selection change event.
|
|
1032
|
-
* @group Emits
|
|
1033
|
-
*/
|
|
1034
|
-
selectionChange = new EventEmitter();
|
|
1035
1069
|
/**
|
|
1036
1070
|
* Callback to invoke when a node is selected.
|
|
1037
1071
|
* @param {TreeNodeSelectEvent} event - Node select event.
|
|
@@ -1127,7 +1161,7 @@ class Tree extends BaseComponent {
|
|
|
1127
1161
|
* Empty message template.
|
|
1128
1162
|
* @group Templates
|
|
1129
1163
|
*/
|
|
1130
|
-
|
|
1164
|
+
emptyTemplate;
|
|
1131
1165
|
/**
|
|
1132
1166
|
* Toggler icon template.
|
|
1133
1167
|
* @group Templates
|
|
@@ -1154,7 +1188,7 @@ class Tree extends BaseComponent {
|
|
|
1154
1188
|
contentViewChild;
|
|
1155
1189
|
templates;
|
|
1156
1190
|
_headerTemplate;
|
|
1157
|
-
|
|
1191
|
+
_emptyTemplate;
|
|
1158
1192
|
_footerTemplate;
|
|
1159
1193
|
_loaderTemplate;
|
|
1160
1194
|
_togglerIconTemplate;
|
|
@@ -1172,7 +1206,7 @@ class Tree extends BaseComponent {
|
|
|
1172
1206
|
this._headerTemplate = item.template;
|
|
1173
1207
|
break;
|
|
1174
1208
|
case 'empty':
|
|
1175
|
-
this.
|
|
1209
|
+
this._emptyTemplate = item.template;
|
|
1176
1210
|
break;
|
|
1177
1211
|
case 'footer':
|
|
1178
1212
|
this._footerTemplate = item.template;
|
|
@@ -1287,10 +1321,11 @@ class Tree extends BaseComponent {
|
|
|
1287
1321
|
}
|
|
1288
1322
|
onNodeClick(event, node) {
|
|
1289
1323
|
let eventTarget = event.target;
|
|
1290
|
-
|
|
1324
|
+
const section = eventTarget?.getAttribute?.('data-pc-section');
|
|
1325
|
+
if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
|
|
1291
1326
|
return;
|
|
1292
1327
|
}
|
|
1293
|
-
|
|
1328
|
+
if (this.selectionMode) {
|
|
1294
1329
|
if (node.selectable === false) {
|
|
1295
1330
|
node.style = '--p-focus-ring-color: none;';
|
|
1296
1331
|
return;
|
|
@@ -1308,27 +1343,26 @@ class Tree extends BaseComponent {
|
|
|
1308
1343
|
}
|
|
1309
1344
|
let index = this.findIndexInSelection(node);
|
|
1310
1345
|
let selected = index >= 0;
|
|
1346
|
+
const currentSelection = this.selection();
|
|
1311
1347
|
if (this.isCheckboxSelectionMode()) {
|
|
1312
1348
|
if (selected) {
|
|
1313
1349
|
if (this.propagateSelectionDown)
|
|
1314
1350
|
this.propagateDown(node, false);
|
|
1315
1351
|
else
|
|
1316
|
-
this.selection
|
|
1352
|
+
this.selection.set(currentSelection.filter((_val, i) => i != index));
|
|
1317
1353
|
if (this.propagateSelectionUp && node.parent) {
|
|
1318
1354
|
this.propagateUp(node.parent, false);
|
|
1319
1355
|
}
|
|
1320
|
-
this.selectionChange.emit(this.selection);
|
|
1321
1356
|
this.onNodeUnselect.emit({ originalEvent: event, node: node });
|
|
1322
1357
|
}
|
|
1323
1358
|
else {
|
|
1324
1359
|
if (this.propagateSelectionDown)
|
|
1325
1360
|
this.propagateDown(node, true);
|
|
1326
1361
|
else
|
|
1327
|
-
this.selection
|
|
1362
|
+
this.selection.set([...(currentSelection || []), node]);
|
|
1328
1363
|
if (this.propagateSelectionUp && node.parent) {
|
|
1329
1364
|
this.propagateUp(node.parent, true);
|
|
1330
1365
|
}
|
|
1331
|
-
this.selectionChange.emit(this.selection);
|
|
1332
1366
|
this.onNodeSelect.emit({ originalEvent: event, node: node });
|
|
1333
1367
|
}
|
|
1334
1368
|
}
|
|
@@ -1338,22 +1372,20 @@ class Tree extends BaseComponent {
|
|
|
1338
1372
|
let metaKey = event.metaKey || event.ctrlKey;
|
|
1339
1373
|
if (selected && metaKey) {
|
|
1340
1374
|
if (this.isSingleSelectionMode()) {
|
|
1341
|
-
this.
|
|
1375
|
+
this.selection.set(null);
|
|
1342
1376
|
}
|
|
1343
1377
|
else {
|
|
1344
|
-
this.selection
|
|
1345
|
-
this.selectionChange.emit(this.selection);
|
|
1378
|
+
this.selection.set(currentSelection.filter((_val, i) => i != index));
|
|
1346
1379
|
}
|
|
1347
1380
|
this.onNodeUnselect.emit({ originalEvent: event, node: node });
|
|
1348
1381
|
}
|
|
1349
1382
|
else {
|
|
1350
1383
|
if (this.isSingleSelectionMode()) {
|
|
1351
|
-
this.
|
|
1384
|
+
this.selection.set(node);
|
|
1352
1385
|
}
|
|
1353
1386
|
else if (this.isMultipleSelectionMode()) {
|
|
1354
|
-
|
|
1355
|
-
this.selection
|
|
1356
|
-
this.selectionChange.emit(this.selection);
|
|
1387
|
+
const base = !metaKey ? [] : currentSelection || [];
|
|
1388
|
+
this.selection.set([...base, node]);
|
|
1357
1389
|
}
|
|
1358
1390
|
this.onNodeSelect.emit({ originalEvent: event, node: node });
|
|
1359
1391
|
}
|
|
@@ -1361,11 +1393,11 @@ class Tree extends BaseComponent {
|
|
|
1361
1393
|
else {
|
|
1362
1394
|
if (this.isSingleSelectionMode()) {
|
|
1363
1395
|
if (selected) {
|
|
1364
|
-
this.selection
|
|
1396
|
+
this.selection.set(null);
|
|
1365
1397
|
this.onNodeUnselect.emit({ originalEvent: event, node: node });
|
|
1366
1398
|
}
|
|
1367
1399
|
else {
|
|
1368
|
-
this.selection
|
|
1400
|
+
this.selection.set(node);
|
|
1369
1401
|
setTimeout(() => {
|
|
1370
1402
|
this.onNodeSelect.emit({ originalEvent: event, node: node });
|
|
1371
1403
|
});
|
|
@@ -1373,17 +1405,16 @@ class Tree extends BaseComponent {
|
|
|
1373
1405
|
}
|
|
1374
1406
|
else {
|
|
1375
1407
|
if (selected) {
|
|
1376
|
-
this.selection
|
|
1408
|
+
this.selection.set(currentSelection.filter((_val, i) => i != index));
|
|
1377
1409
|
this.onNodeUnselect.emit({ originalEvent: event, node: node });
|
|
1378
1410
|
}
|
|
1379
1411
|
else {
|
|
1380
|
-
this.selection
|
|
1412
|
+
this.selection.set([...(currentSelection || []), node]);
|
|
1381
1413
|
setTimeout(() => {
|
|
1382
1414
|
this.onNodeSelect.emit({ originalEvent: event, node: node });
|
|
1383
1415
|
});
|
|
1384
1416
|
}
|
|
1385
1417
|
}
|
|
1386
|
-
this.selectionChange.emit(this.selection);
|
|
1387
1418
|
}
|
|
1388
1419
|
}
|
|
1389
1420
|
}
|
|
@@ -1395,20 +1426,36 @@ class Tree extends BaseComponent {
|
|
|
1395
1426
|
onNodeRightClick(event, node) {
|
|
1396
1427
|
if (this.contextMenu) {
|
|
1397
1428
|
let eventTarget = event.target;
|
|
1398
|
-
|
|
1429
|
+
const section = eventTarget.getAttribute('data-pc-section');
|
|
1430
|
+
if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
|
|
1399
1431
|
return;
|
|
1400
1432
|
}
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
if (!selected) {
|
|
1405
|
-
if (this.isSingleSelectionMode())
|
|
1406
|
-
this.selectionChange.emit(node);
|
|
1407
|
-
else
|
|
1408
|
-
this.selectionChange.emit([node]);
|
|
1409
|
-
}
|
|
1433
|
+
let index = this.findIndexInSelection(node);
|
|
1434
|
+
let isNodeSelected = index >= 0;
|
|
1435
|
+
const onContextMenuCallback = () => {
|
|
1410
1436
|
this.contextMenu.show(event);
|
|
1437
|
+
this.contextMenu.hideCallback = () => {
|
|
1438
|
+
this.contextMenuSelection.set(null);
|
|
1439
|
+
};
|
|
1411
1440
|
this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });
|
|
1441
|
+
};
|
|
1442
|
+
if (this.contextMenuSelectionMode === 'separate') {
|
|
1443
|
+
// In 'separate' mode: Update contextMenuSelection with clicked node, don't modify selection
|
|
1444
|
+
this.contextMenuSelection.set(node);
|
|
1445
|
+
onContextMenuCallback();
|
|
1446
|
+
}
|
|
1447
|
+
else if (this.contextMenuSelectionMode === 'joint') {
|
|
1448
|
+
// In 'joint' mode: Update only selection, don't touch contextMenuSelection
|
|
1449
|
+
if (!isNodeSelected) {
|
|
1450
|
+
if (this.isSingleSelectionMode()) {
|
|
1451
|
+
this.selection.set(node);
|
|
1452
|
+
}
|
|
1453
|
+
else {
|
|
1454
|
+
this.selection.set([node]);
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
// If already selected, keep current selection as is
|
|
1458
|
+
onContextMenuCallback();
|
|
1412
1459
|
}
|
|
1413
1460
|
}
|
|
1414
1461
|
}
|
|
@@ -1417,14 +1464,17 @@ class Tree extends BaseComponent {
|
|
|
1417
1464
|
}
|
|
1418
1465
|
findIndexInSelection(node) {
|
|
1419
1466
|
let index = -1;
|
|
1420
|
-
|
|
1467
|
+
const currentSelection = this.selection();
|
|
1468
|
+
if (this.selectionMode && currentSelection) {
|
|
1421
1469
|
if (this.isSingleSelectionMode()) {
|
|
1422
|
-
|
|
1470
|
+
const sel = currentSelection;
|
|
1471
|
+
let areNodesEqual = (sel.key && sel.key === node.key) || sel == node;
|
|
1423
1472
|
index = areNodesEqual ? 0 : -1;
|
|
1424
1473
|
}
|
|
1425
1474
|
else {
|
|
1426
|
-
|
|
1427
|
-
|
|
1475
|
+
const selArray = currentSelection;
|
|
1476
|
+
for (let i = 0; i < selArray.length; i++) {
|
|
1477
|
+
let selectedNode = selArray[i];
|
|
1428
1478
|
let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;
|
|
1429
1479
|
if (areNodesEqual) {
|
|
1430
1480
|
index = i;
|
|
@@ -1473,15 +1523,16 @@ class Tree extends BaseComponent {
|
|
|
1473
1523
|
childPartialSelected = true;
|
|
1474
1524
|
}
|
|
1475
1525
|
}
|
|
1526
|
+
const currentSelection = this.selection() || [];
|
|
1476
1527
|
if (select && selectedCount == node.children.length) {
|
|
1477
|
-
this.selection
|
|
1528
|
+
this.selection.set([...currentSelection, node]);
|
|
1478
1529
|
node.partialSelected = false;
|
|
1479
1530
|
}
|
|
1480
1531
|
else {
|
|
1481
1532
|
if (!select) {
|
|
1482
1533
|
let index = this.findIndexInSelection(node);
|
|
1483
1534
|
if (index >= 0) {
|
|
1484
|
-
this.selection
|
|
1535
|
+
this.selection.set(currentSelection.filter((_val, i) => i != index));
|
|
1485
1536
|
}
|
|
1486
1537
|
}
|
|
1487
1538
|
if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length))
|
|
@@ -1498,11 +1549,12 @@ class Tree extends BaseComponent {
|
|
|
1498
1549
|
}
|
|
1499
1550
|
propagateDown(node, select) {
|
|
1500
1551
|
let index = this.findIndexInSelection(node);
|
|
1552
|
+
const currentSelection = this.selection() || [];
|
|
1501
1553
|
if (select && index == -1) {
|
|
1502
|
-
this.selection
|
|
1554
|
+
this.selection.set([...currentSelection, node]);
|
|
1503
1555
|
}
|
|
1504
1556
|
else if (!select && index > -1) {
|
|
1505
|
-
this.selection
|
|
1557
|
+
this.selection.set(currentSelection.filter((_val, i) => i != index));
|
|
1506
1558
|
}
|
|
1507
1559
|
node.partialSelected = false;
|
|
1508
1560
|
this.syncNodeOption(node, this.filteredNodes, 'partialSelected');
|
|
@@ -1769,9 +1821,20 @@ class Tree extends BaseComponent {
|
|
|
1769
1821
|
this.dragStopSubscription.unsubscribe();
|
|
1770
1822
|
}
|
|
1771
1823
|
}
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1824
|
+
get containerDataP() {
|
|
1825
|
+
return this.cn({
|
|
1826
|
+
loading: this.loading,
|
|
1827
|
+
scrollable: this.scrollHeight === 'flex'
|
|
1828
|
+
});
|
|
1829
|
+
}
|
|
1830
|
+
get wrapperDataP() {
|
|
1831
|
+
return this.cn({
|
|
1832
|
+
scrollable: this.scrollHeight === 'flex'
|
|
1833
|
+
});
|
|
1834
|
+
}
|
|
1835
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Tree, deps: [{ token: i4.TreeDragDropService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1836
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: Tree, isStandalone: true, selector: "p-tree", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: false, isRequired: false, transformFunction: null }, loadingMode: { classPropertyName: "loadingMode", publicName: "loadingMode", isSignal: false, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: false, isRequired: false, transformFunction: null }, contextMenuSelectionMode: { classPropertyName: "contextMenuSelectionMode", publicName: "contextMenuSelectionMode", isSignal: false, isRequired: false, transformFunction: null }, contextMenuSelection: { classPropertyName: "contextMenuSelection", publicName: "contextMenuSelection", isSignal: true, isRequired: false, transformFunction: null }, draggableScope: { classPropertyName: "draggableScope", publicName: "draggableScope", isSignal: false, isRequired: false, transformFunction: null }, droppableScope: { classPropertyName: "droppableScope", publicName: "droppableScope", isSignal: false, isRequired: false, transformFunction: null }, draggableNodes: { classPropertyName: "draggableNodes", publicName: "draggableNodes", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, droppableNodes: { classPropertyName: "droppableNodes", publicName: "droppableNodes", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, propagateSelectionUp: { classPropertyName: "propagateSelectionUp", publicName: "propagateSelectionUp", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, propagateSelectionDown: { classPropertyName: "propagateSelectionDown", publicName: "propagateSelectionDown", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, loadingIcon: { classPropertyName: "loadingIcon", publicName: "loadingIcon", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, togglerAriaLabel: { classPropertyName: "togglerAriaLabel", publicName: "togglerAriaLabel", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, validateDrop: { classPropertyName: "validateDrop", publicName: "validateDrop", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterInputAutoFocus: { classPropertyName: "filterInputAutoFocus", publicName: "filterInputAutoFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "filterMode", isSignal: false, isRequired: false, transformFunction: null }, filterOptions: { classPropertyName: "filterOptions", publicName: "filterOptions", isSignal: false, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, filteredNodes: { classPropertyName: "filteredNodes", publicName: "filteredNodes", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, indentation: { classPropertyName: "indentation", publicName: "indentation", isSignal: false, isRequired: false, transformFunction: numberAttribute }, _templateMap: { classPropertyName: "_templateMap", publicName: "_templateMap", isSignal: false, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: false, isRequired: false, transformFunction: null }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, outputs: { selection: "selectionChange", contextMenuSelection: "contextMenuSelectionChange", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onNodeContextMenuSelect: "onNodeContextMenuSelect", onNodeDoubleClick: "onNodeDoubleClick", onNodeDrop: "onNodeDrop", onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange", onFilter: "onFilter" }, host: { listeners: { "drop": "handleDropEvent($event)", "dragover": "handleDragOverEvent($event)", "dragenter": "handleDragEnterEvent()", "dragleave": "handleDragLeaveEvent($event)" }, properties: { "class": "cn(cx('root'), styleClass)", "attr.data-p": "containerDataP" } }, providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }], queries: [{ propertyName: "filterTemplate", first: true, predicate: ["filter"] }, { propertyName: "nodeTemplate", first: true, predicate: ["node"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "footerTemplate", first: true, predicate: ["footer"] }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"] }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"] }, { propertyName: "togglerIconTemplate", first: true, predicate: ["togglericon"] }, { propertyName: "checkboxIconTemplate", first: true, predicate: ["checkboxicon"] }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i3.Bind }], ngImport: i0, template: `
|
|
1837
|
+
<div [class]="cx('mask')" *ngIf="loading && loadingMode === 'mask'" [pBind]="ptm('mask')" animate.enter="p-overlay-mask-enter-active" animate.leave="p-overlay-mask-leave-active">
|
|
1775
1838
|
<i *ngIf="loadingIcon" [class]="cn(cx('loadingIcon'), 'pi-spin' + loadingIcon)" [pBind]="ptm('loadingIcon')"></i>
|
|
1776
1839
|
<ng-container *ngIf="!loadingIcon">
|
|
1777
1840
|
<svg data-p-icon="spinner" *ngIf="!loadingIconTemplate && !_loadingIconTemplate" spin [class]="cx('loadingIcon')" [pBind]="ptm('loadingIcon')" />
|
|
@@ -1784,7 +1847,7 @@ class Tree extends BaseComponent {
|
|
|
1784
1847
|
@if (filterTemplate || _filterTemplate) {
|
|
1785
1848
|
<ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { $implicit: filterOptions }"></ng-container>
|
|
1786
1849
|
} @else {
|
|
1787
|
-
<p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')">
|
|
1850
|
+
<p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')" [unstyled]="unstyled()">
|
|
1788
1851
|
<input
|
|
1789
1852
|
#filter
|
|
1790
1853
|
[pAutoFocus]="filterInputAutoFocus"
|
|
@@ -1796,8 +1859,9 @@ class Tree extends BaseComponent {
|
|
|
1796
1859
|
(keydown.enter)="$event.preventDefault()"
|
|
1797
1860
|
(input)="_filter($event.target?.value)"
|
|
1798
1861
|
[pt]="ptm('pcFilterInput')"
|
|
1862
|
+
[unstyled]="unstyled()"
|
|
1799
1863
|
/>
|
|
1800
|
-
<p-inputicon [pt]="ptm('pcFilterIconContainer')">
|
|
1864
|
+
<p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
|
|
1801
1865
|
<svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')" />
|
|
1802
1866
|
<span *ngIf="filterIconTemplate || _filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')">
|
|
1803
1867
|
<ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
|
|
@@ -1823,6 +1887,7 @@ class Tree extends BaseComponent {
|
|
|
1823
1887
|
[options]="virtualScrollOptions"
|
|
1824
1888
|
[pt]="ptm('virtualScroller')"
|
|
1825
1889
|
hostName="tree"
|
|
1890
|
+
[attr.data-p]="wrapperDataP"
|
|
1826
1891
|
>
|
|
1827
1892
|
<ng-template #content let-items let-scrollerOptions="options">
|
|
1828
1893
|
<ul
|
|
@@ -1850,6 +1915,7 @@ class Tree extends BaseComponent {
|
|
|
1850
1915
|
[indentation]="indentation"
|
|
1851
1916
|
[loadingMode]="loadingMode"
|
|
1852
1917
|
[pt]="pt"
|
|
1918
|
+
[unstyled]="unstyled()"
|
|
1853
1919
|
></p-treeNode>
|
|
1854
1920
|
</ul>
|
|
1855
1921
|
</ng-template>
|
|
@@ -1860,7 +1926,7 @@ class Tree extends BaseComponent {
|
|
|
1860
1926
|
</ng-container>
|
|
1861
1927
|
</p-scroller>
|
|
1862
1928
|
<ng-container *ngIf="!virtualScroll">
|
|
1863
|
-
<div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')">
|
|
1929
|
+
<div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')" [attr.data-p]="wrapperDataP">
|
|
1864
1930
|
<ul #content [class]="cx('rootChildren')" *ngIf="getRootNode()" role="tree" [attr.aria-label]="ariaLabel" [attr.aria-labelledby]="ariaLabelledBy" [pBind]="ptm('rootChildren')">
|
|
1865
1931
|
<p-treeNode
|
|
1866
1932
|
*ngFor="let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy.bind(this)"
|
|
@@ -1871,6 +1937,7 @@ class Tree extends BaseComponent {
|
|
|
1871
1937
|
[level]="0"
|
|
1872
1938
|
[loadingMode]="loadingMode"
|
|
1873
1939
|
[pt]="pt"
|
|
1940
|
+
[unstyled]="unstyled()"
|
|
1874
1941
|
></p-treeNode>
|
|
1875
1942
|
</ul>
|
|
1876
1943
|
</div>
|
|
@@ -1878,22 +1945,22 @@ class Tree extends BaseComponent {
|
|
|
1878
1945
|
</ng-container>
|
|
1879
1946
|
|
|
1880
1947
|
<div [class]="cx('emptyMessage')" *ngIf="!loading && (getRootNode() == null || getRootNode().length === 0)" [pBind]="ptm('emptyMessage')">
|
|
1881
|
-
<ng-container *ngIf="!
|
|
1948
|
+
<ng-container *ngIf="!emptyTemplate && !_emptyTemplate; else emptyFilter">
|
|
1882
1949
|
{{ emptyMessageLabel }}
|
|
1883
1950
|
</ng-container>
|
|
1884
|
-
<ng-template #emptyFilter *ngTemplateOutlet="
|
|
1951
|
+
<ng-template #emptyFilter *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-template>
|
|
1885
1952
|
</div>
|
|
1886
1953
|
<ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
|
|
1887
1954
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: Scroller, selector: "p-scroller, p-virtualscroller, p-virtual-scroller, p-virtualScroller", inputs: ["hostName", "id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-p-icon=\"spinner\"]" }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "component", type: UITreeNode, selector: "p-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "directive", type: i5.AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "directive", type: Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1888
1955
|
}
|
|
1889
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1956
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Tree, decorators: [{
|
|
1890
1957
|
type: Component,
|
|
1891
1958
|
args: [{
|
|
1892
1959
|
selector: 'p-tree',
|
|
1893
1960
|
standalone: true,
|
|
1894
1961
|
imports: [CommonModule, Scroller, SharedModule, SearchIcon, SpinnerIcon, InputText, FormsModule, IconField, InputIcon, UITreeNode, AutoFocusModule, Bind],
|
|
1895
1962
|
template: `
|
|
1896
|
-
<div [class]="cx('mask')" *ngIf="loading && loadingMode === 'mask'" [pBind]="ptm('mask')">
|
|
1963
|
+
<div [class]="cx('mask')" *ngIf="loading && loadingMode === 'mask'" [pBind]="ptm('mask')" animate.enter="p-overlay-mask-enter-active" animate.leave="p-overlay-mask-leave-active">
|
|
1897
1964
|
<i *ngIf="loadingIcon" [class]="cn(cx('loadingIcon'), 'pi-spin' + loadingIcon)" [pBind]="ptm('loadingIcon')"></i>
|
|
1898
1965
|
<ng-container *ngIf="!loadingIcon">
|
|
1899
1966
|
<svg data-p-icon="spinner" *ngIf="!loadingIconTemplate && !_loadingIconTemplate" spin [class]="cx('loadingIcon')" [pBind]="ptm('loadingIcon')" />
|
|
@@ -1906,7 +1973,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1906
1973
|
@if (filterTemplate || _filterTemplate) {
|
|
1907
1974
|
<ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { $implicit: filterOptions }"></ng-container>
|
|
1908
1975
|
} @else {
|
|
1909
|
-
<p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')">
|
|
1976
|
+
<p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')" [unstyled]="unstyled()">
|
|
1910
1977
|
<input
|
|
1911
1978
|
#filter
|
|
1912
1979
|
[pAutoFocus]="filterInputAutoFocus"
|
|
@@ -1918,8 +1985,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1918
1985
|
(keydown.enter)="$event.preventDefault()"
|
|
1919
1986
|
(input)="_filter($event.target?.value)"
|
|
1920
1987
|
[pt]="ptm('pcFilterInput')"
|
|
1988
|
+
[unstyled]="unstyled()"
|
|
1921
1989
|
/>
|
|
1922
|
-
<p-inputicon [pt]="ptm('pcFilterIconContainer')">
|
|
1990
|
+
<p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
|
|
1923
1991
|
<svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')" />
|
|
1924
1992
|
<span *ngIf="filterIconTemplate || _filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')">
|
|
1925
1993
|
<ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
|
|
@@ -1945,6 +2013,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1945
2013
|
[options]="virtualScrollOptions"
|
|
1946
2014
|
[pt]="ptm('virtualScroller')"
|
|
1947
2015
|
hostName="tree"
|
|
2016
|
+
[attr.data-p]="wrapperDataP"
|
|
1948
2017
|
>
|
|
1949
2018
|
<ng-template #content let-items let-scrollerOptions="options">
|
|
1950
2019
|
<ul
|
|
@@ -1972,6 +2041,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1972
2041
|
[indentation]="indentation"
|
|
1973
2042
|
[loadingMode]="loadingMode"
|
|
1974
2043
|
[pt]="pt"
|
|
2044
|
+
[unstyled]="unstyled()"
|
|
1975
2045
|
></p-treeNode>
|
|
1976
2046
|
</ul>
|
|
1977
2047
|
</ng-template>
|
|
@@ -1982,7 +2052,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1982
2052
|
</ng-container>
|
|
1983
2053
|
</p-scroller>
|
|
1984
2054
|
<ng-container *ngIf="!virtualScroll">
|
|
1985
|
-
<div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')">
|
|
2055
|
+
<div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')" [attr.data-p]="wrapperDataP">
|
|
1986
2056
|
<ul #content [class]="cx('rootChildren')" *ngIf="getRootNode()" role="tree" [attr.aria-label]="ariaLabel" [attr.aria-labelledby]="ariaLabelledBy" [pBind]="ptm('rootChildren')">
|
|
1987
2057
|
<p-treeNode
|
|
1988
2058
|
*ngFor="let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy.bind(this)"
|
|
@@ -1993,6 +2063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1993
2063
|
[level]="0"
|
|
1994
2064
|
[loadingMode]="loadingMode"
|
|
1995
2065
|
[pt]="pt"
|
|
2066
|
+
[unstyled]="unstyled()"
|
|
1996
2067
|
></p-treeNode>
|
|
1997
2068
|
</ul>
|
|
1998
2069
|
</div>
|
|
@@ -2000,10 +2071,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
2000
2071
|
</ng-container>
|
|
2001
2072
|
|
|
2002
2073
|
<div [class]="cx('emptyMessage')" *ngIf="!loading && (getRootNode() == null || getRootNode().length === 0)" [pBind]="ptm('emptyMessage')">
|
|
2003
|
-
<ng-container *ngIf="!
|
|
2074
|
+
<ng-container *ngIf="!emptyTemplate && !_emptyTemplate; else emptyFilter">
|
|
2004
2075
|
{{ emptyMessageLabel }}
|
|
2005
2076
|
</ng-container>
|
|
2006
|
-
<ng-template #emptyFilter *ngTemplateOutlet="
|
|
2077
|
+
<ng-template #emptyFilter *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-template>
|
|
2007
2078
|
</div>
|
|
2008
2079
|
<ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
|
|
2009
2080
|
`,
|
|
@@ -2011,7 +2082,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
2011
2082
|
encapsulation: ViewEncapsulation.None,
|
|
2012
2083
|
providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }],
|
|
2013
2084
|
host: {
|
|
2014
|
-
'[class]': "cn(cx('root'), styleClass)"
|
|
2085
|
+
'[class]': "cn(cx('root'), styleClass)",
|
|
2086
|
+
'[attr.data-p]': 'containerDataP'
|
|
2015
2087
|
},
|
|
2016
2088
|
hostDirectives: [Bind]
|
|
2017
2089
|
}]
|
|
@@ -2023,13 +2095,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
2023
2095
|
type: Input
|
|
2024
2096
|
}], loadingMode: [{
|
|
2025
2097
|
type: Input
|
|
2026
|
-
}], selection: [{
|
|
2027
|
-
type: Input
|
|
2028
|
-
}], styleClass: [{
|
|
2098
|
+
}], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], styleClass: [{
|
|
2029
2099
|
type: Input
|
|
2030
2100
|
}], contextMenu: [{
|
|
2031
2101
|
type: Input
|
|
2032
|
-
}],
|
|
2102
|
+
}], contextMenuSelectionMode: [{
|
|
2103
|
+
type: Input
|
|
2104
|
+
}], contextMenuSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuSelection", required: false }] }, { type: i0.Output, args: ["contextMenuSelectionChange"] }], draggableScope: [{
|
|
2033
2105
|
type: Input
|
|
2034
2106
|
}], droppableScope: [{
|
|
2035
2107
|
type: Input
|
|
@@ -2105,8 +2177,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
2105
2177
|
}], highlightOnSelect: [{
|
|
2106
2178
|
type: Input,
|
|
2107
2179
|
args: [{ transform: booleanAttribute }]
|
|
2108
|
-
}], selectionChange: [{
|
|
2109
|
-
type: Output
|
|
2110
2180
|
}], onNodeSelect: [{
|
|
2111
2181
|
type: Output
|
|
2112
2182
|
}], onNodeUnselect: [{
|
|
@@ -2144,7 +2214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
2144
2214
|
}], loaderTemplate: [{
|
|
2145
2215
|
type: ContentChild,
|
|
2146
2216
|
args: ['loader', { descendants: false }]
|
|
2147
|
-
}],
|
|
2217
|
+
}], emptyTemplate: [{
|
|
2148
2218
|
type: ContentChild,
|
|
2149
2219
|
args: ['empty', { descendants: false }]
|
|
2150
2220
|
}], togglerIconTemplate: [{
|
|
@@ -2188,11 +2258,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
2188
2258
|
args: ['dragleave', ['$event']]
|
|
2189
2259
|
}] } });
|
|
2190
2260
|
class TreeModule {
|
|
2191
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2192
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
2193
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
2261
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2262
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule], exports: [Tree, SharedModule] });
|
|
2263
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule, SharedModule] });
|
|
2194
2264
|
}
|
|
2195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, decorators: [{
|
|
2196
2266
|
type: NgModule,
|
|
2197
2267
|
args: [{
|
|
2198
2268
|
imports: [Tree, SharedModule],
|