primeng 20.0.0-rc.1 → 20.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/index.d.ts +1 -3
- package/autocomplete/index.d.ts +8 -7
- package/baseeditableholder/index.d.ts +14 -5
- package/basemodelholder/index.d.ts +12 -0
- package/button/index.d.ts +10 -13
- package/cascadeselect/index.d.ts +7 -5
- package/chart/index.d.ts +1 -0
- package/checkbox/index.d.ts +9 -7
- package/colorpicker/index.d.ts +8 -7
- package/datepicker/index.d.ts +8 -7
- package/editor/index.d.ts +9 -8
- package/fesm2022/primeng-accordion.mjs +15 -17
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +49 -52
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +1 -2
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-base.mjs +5 -170
- package/fesm2022/primeng-base.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -1
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-baseeditableholder.mjs +25 -7
- package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
- package/fesm2022/primeng-basemodelholder.mjs +25 -0
- package/fesm2022/primeng-basemodelholder.mjs.map +1 -0
- package/fesm2022/primeng-breadcrumb.mjs +9 -9
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +45 -72
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +1 -2
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +3 -4
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +13 -13
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +33 -36
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +1 -1
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +20 -23
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +23 -3
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +35 -37
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +25 -17
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +17 -9
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +7 -15
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +3 -3
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +191 -142
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +13 -13
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -2
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dom.mjs +10 -5
- package/fesm2022/primeng-dom.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +5 -6
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +27 -31
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +8 -10
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +7 -9
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +67 -55
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +2 -3
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +21 -21
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +10 -14
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +10 -14
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +10 -14
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +10 -14
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +29 -32
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +10 -14
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +10 -14
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +29 -32
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +14 -18
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +29 -32
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +25 -28
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +14 -18
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +21 -29
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +3 -11
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +10 -14
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +10 -14
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +10 -14
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +10 -14
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +10 -14
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +10 -14
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +10 -14
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +10 -14
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +41 -44
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +14 -18
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +29 -32
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +25 -28
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterfill.mjs +10 -14
- package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +29 -32
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +29 -32
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +29 -32
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +10 -14
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +25 -28
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +25 -28
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +29 -32
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +29 -32
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +29 -32
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +29 -32
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +37 -40
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +25 -28
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +25 -28
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +25 -28
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +25 -28
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +25 -28
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +29 -32
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +10 -14
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +29 -32
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +29 -32
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +29 -32
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +29 -32
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +29 -32
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +29 -32
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +2 -3
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +13 -13
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +15 -10
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +6 -7
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +31 -34
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +45 -48
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +26 -28
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +14 -9
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +22 -24
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +44 -47
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +12 -12
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +14 -14
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +3 -3
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +50 -52
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +13 -12
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +5 -5
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +6 -1
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +3 -3
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +9 -9
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +6 -7
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +19 -20
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +29 -32
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +38 -37
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +19 -19
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +2 -2
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +21 -24
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +21 -24
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +2 -3
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +9 -9
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +1 -2
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +4 -4
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +48 -51
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +17 -20
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +28 -30
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +3 -3
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +3 -3
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +33 -9
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +83 -88
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +5 -5
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +13 -9
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +5 -5
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +21 -19
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +15 -18
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +16 -19
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +12 -12
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +32 -29
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +118 -117
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/galleria/index.d.ts +1 -1
- package/icons/angledoubledown/index.d.ts +1 -1
- package/icons/angledoubleleft/index.d.ts +1 -1
- package/icons/angledoubleright/index.d.ts +1 -1
- package/icons/angledoubleup/index.d.ts +1 -1
- package/icons/angledown/index.d.ts +1 -1
- package/icons/angleleft/index.d.ts +1 -1
- package/icons/angleright/index.d.ts +1 -1
- package/icons/angleup/index.d.ts +1 -1
- package/icons/arrowdown/index.d.ts +1 -1
- package/icons/arrowdownleft/index.d.ts +1 -1
- package/icons/arrowdownright/index.d.ts +1 -1
- package/icons/arrowleft/index.d.ts +1 -1
- package/icons/arrowright/index.d.ts +1 -1
- package/icons/arrowup/index.d.ts +1 -1
- package/icons/ban/index.d.ts +1 -1
- package/icons/bars/index.d.ts +1 -1
- package/icons/baseicon/index.d.ts +11 -18
- package/icons/blank/index.d.ts +1 -1
- package/icons/calendar/index.d.ts +1 -1
- package/icons/caretleft/index.d.ts +1 -1
- package/icons/caretright/index.d.ts +1 -1
- package/icons/check/index.d.ts +1 -1
- package/icons/chevrondown/index.d.ts +1 -1
- package/icons/chevronleft/index.d.ts +1 -1
- package/icons/chevronright/index.d.ts +1 -1
- package/icons/chevronup/index.d.ts +1 -1
- package/icons/exclamationtriangle/index.d.ts +1 -1
- package/icons/eye/index.d.ts +1 -1
- package/icons/eyeslash/index.d.ts +1 -1
- package/icons/filter/index.d.ts +1 -1
- package/icons/filterfill/index.d.ts +1 -1
- package/icons/filterslash/index.d.ts +1 -1
- package/icons/home/index.d.ts +1 -1
- package/icons/infocircle/index.d.ts +1 -1
- package/icons/minus/index.d.ts +1 -1
- package/icons/pencil/index.d.ts +1 -1
- package/icons/plus/index.d.ts +1 -1
- package/icons/refresh/index.d.ts +1 -1
- package/icons/search/index.d.ts +1 -1
- package/icons/searchminus/index.d.ts +1 -1
- package/icons/searchplus/index.d.ts +1 -1
- package/icons/sortalt/index.d.ts +1 -1
- package/icons/sortamountdown/index.d.ts +1 -1
- package/icons/sortamountupalt/index.d.ts +1 -1
- package/icons/spinner/index.d.ts +1 -1
- package/icons/star/index.d.ts +1 -1
- package/icons/starfill/index.d.ts +1 -1
- package/icons/thlarge/index.d.ts +1 -1
- package/icons/times/index.d.ts +1 -1
- package/icons/timescircle/index.d.ts +1 -1
- package/icons/trash/index.d.ts +1 -1
- package/icons/undo/index.d.ts +1 -1
- package/icons/upload/index.d.ts +1 -1
- package/icons/windowmaximize/index.d.ts +1 -1
- package/icons/windowminimize/index.d.ts +1 -1
- package/inplace/index.d.ts +1 -0
- package/inputmask/index.d.ts +9 -10
- package/inputnumber/index.d.ts +8 -7
- package/inputotp/index.d.ts +7 -5
- package/inputtext/index.d.ts +10 -4
- package/knob/index.d.ts +7 -5
- package/listbox/index.d.ts +8 -7
- package/multiselect/index.d.ts +8 -7
- package/overlay/index.d.ts +1 -3
- package/overlaybadge/index.d.ts +1 -3
- package/package.json +201 -197
- package/password/index.d.ts +7 -5
- package/popover/index.d.ts +1 -3
- package/radiobutton/index.d.ts +9 -7
- package/rating/index.d.ts +8 -7
- package/ripple/index.d.ts +1 -3
- package/scroller/index.d.ts +1 -3
- package/select/index.d.ts +8 -7
- package/selectbutton/index.d.ts +9 -8
- package/slider/index.d.ts +9 -8
- package/stepper/index.d.ts +4 -0
- package/table/index.d.ts +9 -14
- package/textarea/index.d.ts +9 -4
- package/togglebutton/index.d.ts +8 -7
- package/toggleswitch/index.d.ts +7 -5
- package/treeselect/index.d.ts +7 -5
- package/treetable/index.d.ts +2 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-carousel.mjs","sources":["../../src/carousel/style/carouselstyle.ts","../../src/carousel/carousel.ts","../../src/carousel/primeng-carousel.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/carousel';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-carousel p-component',\n {\n 'p-carousel-vertical': instance.isVertical(),\n 'p-carousel-horizontal': !instance.isVertical()\n }\n ],\n header: 'p-carousel-header',\n contentContainer: 'p-carousel-content-container',\n content: 'p-carousel-content',\n pcPrevButton: ({ instance }) => [\n 'p-carousel-prev-button',\n {\n 'p-disabled': instance.isBackwardNavDisabled()\n }\n ],\n viewport: 'p-carousel-viewport',\n itemList: 'p-carousel-item-list',\n itemClone: ({ instance, index }) => [\n 'p-carousel-item p-carousel-item-clone',\n {\n 'p-carousel-item-active': instance.totalShiftedItems * -1 === instance.value.length,\n 'p-carousel-item-start': 0 === index,\n 'p-carousel-item-end': instance.clonedItemsForStarting.length - 1 === index\n }\n ],\n item: ({ instance, index }) => [\n 'p-carousel-item',\n {\n 'p-carousel-item-active': instance.firstIndex() <= index && instance.lastIndex() >= index,\n 'p-carousel-item-start': instance.firstIndex() === index,\n 'p-carousel-item-end': instance.lastIndex() === index\n }\n ],\n pcNextButton: ({ instance }) => [\n 'p-carousel-next-button',\n {\n 'p-disabled': instance.isForwardNavDisabled()\n }\n ],\n indicatorList: ({ instance }) => ['p-carousel-indicator-list', instance.indicatorsContentClass],\n indicator: ({ instance, index }) => [\n 'p-carousel-indicator',\n {\n 'p-carousel-indicator-active': instance._page === index\n }\n ],\n indicatorButton: ({ instance }) => ['p-carousel-indicator-button', instance.indicatorStyleClass],\n footer: 'p-carousel-footer'\n};\n\n@Injectable()\nexport class CarouselStyle extends BaseStyle {\n name = 'carousel';\n\n theme = style;\n\n classes = classes;\n}\n\n/**\n *\n * Carousel is a content slider featuring various customization options.\n *\n * [Live Demo](https://www.primeng.org/carousel/)\n *\n * @module carouselstyle\n *\n */\nexport enum CarouselClasses {\n /**\n * Class name of the root element\n */\n root = 'p-carousel',\n /**\n * Class name of the header element\n */\n header = 'p-carousel-header',\n /**\n * Class name of the content container element\n */\n contentContainer = 'p-carousel-content-container',\n /**\n * Class name of the content element\n */\n content = 'p-carousel-content',\n /**\n * Class name of the previous button element\n */\n pcPrevButton = 'p-carousel-prev-button',\n /**\n * Class name of the viewport element\n */\n viewport = 'p-carousel-viewport',\n /**\n * Class name of the item list element\n */\n itemList = 'p-carousel-item-list',\n /**\n * Class name of the item clone element\n */\n itemClone = 'p-carousel-item-clone',\n /**\n * Class name of the item element\n */\n item = 'p-carousel-item',\n /**\n * Class name of the next button element\n */\n pcNextButton = 'p-carousel-next-button',\n /**\n * Class name of the indicator list element\n */\n indicatorList = 'p-carousel-indicator-list',\n /**\n * Class name of the indicator element\n */\n indicator = 'p-carousel-indicator',\n /**\n * Class name of the indicator button element\n */\n indicatorButton = 'p-carousel-indicator-button',\n /**\n * Class name of the footer element\n */\n footer = 'p-carousel-footer'\n}\n\nexport interface CarouselStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { find, findSingle, getAttribute, setAttribute, uuid } from '@primeuix/utils';\nimport { Footer, Header, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ButtonModule, ButtonProps } from 'primeng/button';\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon } from 'primeng/icons';\nimport { CarouselPageEvent, CarouselResponsiveOptions } from './carousel.interface';\nimport { CarouselStyle } from './style/carouselstyle';\n\n/**\n * Carousel is a content slider featuring various customization options.\n * @group Components\n */\n@Component({\n selector: 'p-carousel',\n standalone: true,\n imports: [CommonModule, ChevronRightIcon, ButtonModule, ChevronLeftIcon, ChevronDownIcon, ChevronUpIcon, SharedModule],\n template: `\n <div [class]=\"cx('header')\" *ngIf=\"headerFacet || headerTemplate\">\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n <div [class]=\"contentClass\" [ngClass]=\"cx('contentContainer')\">\n <div [class]=\"cx('content')\" [attr.aria-live]=\"allowAutoplay ? 'polite' : 'off'\">\n <p-button *ngIf=\"showNavigators\" [class]=\"cx('pcPrevButton')\" [attr.aria-label]=\"ariaPrevButtonLabel()\" (click)=\"navBackward($event)\" [text]=\"true\" [buttonProps]=\"prevButtonProps\">\n <ng-template #icon>\n <ng-container *ngIf=\"!previousIconTemplate && !_previousIconTemplate && !prevButtonProps?.icon\">\n <ChevronLeftIcon *ngIf=\"!isVertical()\" />\n <ChevronUpIcon *ngIf=\"isVertical()\" />\n </ng-container>\n <span *ngIf=\"(previousIconTemplate || _previousIconTemplate) && !prevButtonProps?.icon\">\n <ng-template *ngTemplateOutlet=\"previousIconTemplate || _previousIconTemplate\"></ng-template>\n </span>\n </ng-template>\n </p-button>\n <div [class]=\"cx('viewport')\" [ngStyle]=\"{ height: isVertical() ? verticalViewPortHeight : 'auto' }\" (touchend)=\"onTouchEnd($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\">\n <div #itemsContainer [class]=\"cx('itemList')\" (transitionend)=\"onTransitionEnd()\">\n <div\n *ngFor=\"let item of clonedItemsForStarting; let index = index\"\n [class]=\"cx('itemClone', { index })\"\n [attr.aria-hidden]=\"!(totalShiftedItems * -1 === value.length)\"\n [attr.aria-label]=\"ariaSlideNumber(index)\"\n [attr.aria-roledescription]=\"ariaSlideLabel()\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div\n *ngFor=\"let item of value; let index = index\"\n [class]=\"cx('item', { index })\"\n [attr.aria-hidden]=\"!(firstIndex() <= index && lastIndex() >= index)\"\n [attr.aria-label]=\"ariaSlideNumber(index)\"\n [attr.aria-roledescription]=\"ariaSlideLabel()\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngFor=\"let item of clonedItemsForFinishing; let index = index\" [class]=\"cx('itemClone', { index })\">\n <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n </div>\n </div>\n <p-button type=\"button\" *ngIf=\"showNavigators\" [class]=\"cx('pcNextButton')\" (click)=\"navForward($event)\" [attr.aria-label]=\"ariaNextButtonLabel()\" [buttonProps]=\"nextButtonProps\" [text]=\"true\">\n <ng-template #icon>\n <ng-container *ngIf=\"!nextIconTemplate && !_nextIconTemplate && !nextButtonProps?.icon\">\n <ChevronRightIcon *ngIf=\"!isVertical()\" />\n <ChevronDownIcon *ngIf=\"isVertical()\" />\n </ng-container>\n <span *ngIf=\"nextIconTemplate || (_nextIconTemplate && !nextButtonProps?.icon)\">\n <ng-template *ngTemplateOutlet=\"nextIconTemplate || _nextIconTemplate\"></ng-template>\n </span>\n </ng-template>\n </p-button>\n </div>\n <ul #indicatorContent [class]=\"cx('indicatorList')\" [ngStyle]=\"indicatorsContentStyle\" *ngIf=\"showIndicators\" (keydown)=\"onIndicatorKeydown($event)\">\n <li *ngFor=\"let totalDot of totalDotsArray(); let i = index\" [class]=\"cx('indicator', { index: i })\" [attr.data-pc-section]=\"'indicator'\">\n <button\n type=\"button\"\n [class]=\"cx('indicatorButton')\"\n (click)=\"onDotClick($event, i)\"\n [ngStyle]=\"indicatorStyle\"\n [attr.aria-label]=\"ariaPageLabel(i + 1)\"\n [attr.aria-current]=\"_page === i ? 'page' : undefined\"\n [tabindex]=\"_page === i ? 0 : -1\"\n ></button>\n </li>\n </ul>\n </div>\n <div [class]=\"cx('footer')\" *ngIf=\"footerFacet || footerTemplate || _footerTemplate\">\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CarouselStyle],\n host: {\n '[attr.id]': 'id',\n '[attr.role]': \"'region'\",\n '[class]': \"cn(cx('root'), styleClass)\"\n }\n})\nexport class Carousel extends BaseComponent implements AfterContentInit {\n /**\n * Index of the first item.\n * @defaultValue 0\n * @group Props\n */\n @Input() get page(): number {\n return this._page;\n }\n\n set page(val: number) {\n if (this.isCreated && val !== this._page) {\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (val > this._page && val <= this.totalDots() - 1) {\n this.step(-1, val);\n } else if (val < this._page) {\n this.step(1, val);\n }\n }\n\n this._page = val;\n }\n\n /**\n * Number of items per page.\n * @defaultValue 1\n * @group Props\n */\n @Input() get numVisible(): number {\n return this._numVisible;\n }\n\n set numVisible(val: number) {\n this._numVisible = val;\n }\n\n /**\n * Number of items to scroll.\n * @defaultValue 1\n * @group Props\n */\n @Input() get numScroll(): number {\n return this._numVisible;\n }\n\n set numScroll(val: number) {\n this._numScroll = val;\n }\n\n /**\n * An array of options for responsive design.\n * @see {CarouselResponsiveOptions}\n * @group Props\n */\n @Input() responsiveOptions: CarouselResponsiveOptions[] | undefined;\n /**\n * Specifies the layout of the component.\n * @group Props\n */\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n /**\n * Height of the viewport in vertical layout.\n * @group Props\n */\n @Input() verticalViewPortHeight: string = '300px';\n /**\n * Style class of main content.\n * @group Props\n */\n @Input() contentClass: string = '';\n /**\n * Style class of the indicator items.\n * @group Props\n */\n @Input() indicatorsContentClass: string = '';\n /**\n * Inline style of the indicator items.\n * @group Props\n */\n @Input() indicatorsContentStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the indicators.\n * @group Props\n */\n @Input() indicatorStyleClass: string = '';\n /**\n * Style of the indicators.\n * @group Props\n */\n @Input() indicatorStyle: { [klass: string]: any } | null | undefined;\n\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n @Input() get value(): any[] {\n return this._value as any[];\n }\n\n set value(val) {\n this._value = val;\n }\n\n /**\n * Defines if scrolling would be infinite.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) circular: boolean = false;\n /**\n * Whether to display indicator container.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showIndicators: boolean = true;\n /**\n * Whether to display navigation buttons in container.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showNavigators: boolean = true;\n /**\n * Time in milliseconds to scroll items automatically.\n * @group Props\n */\n @Input({ transform: numberAttribute }) autoplayInterval: number = 0;\n /**\n * Style class of the viewport container.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Used to pass all properties of the ButtonProps to the Button component.\n * @group Props\n */\n @Input() prevButtonProps: ButtonProps = {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n /**\n * Used to pass all properties of the ButtonProps to the Button component.\n * @group Props\n */\n @Input() nextButtonProps: ButtonProps = {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n /**\n * Callback to invoke after scroll.\n * @param {CarouselPageEvent} event - Custom page event.\n * @group Emits\n */\n @Output() onPage: EventEmitter<CarouselPageEvent> = new EventEmitter<CarouselPageEvent>();\n\n @ViewChild('itemsContainer') itemsContainer: ElementRef | undefined;\n\n @ViewChild('indicatorContent') indicatorContent: ElementRef | undefined;\n\n @ContentChild(Header) headerFacet: QueryList<Header> | undefined;\n\n @ContentChild(Footer) footerFacet: QueryList<Footer> | undefined;\n\n _numVisible: number = 1;\n\n _numScroll: number = 1;\n\n _oldNumScroll: number = 0;\n\n prevState: any = {\n numScroll: 0,\n numVisible: 0,\n value: []\n };\n\n defaultNumScroll: number = 1;\n\n defaultNumVisible: number = 1;\n\n _page: number = 0;\n\n _value: any[] | null | undefined;\n\n carouselStyle: any;\n\n id: string | undefined;\n\n totalShiftedItems;\n\n isRemainingItemsAdded: boolean = false;\n\n animationTimeout: any;\n\n translateTimeout: any;\n\n remainingItems: number = 0;\n\n _items: any[] | undefined;\n\n startPos: any;\n\n documentResizeListener: any;\n\n clonedItemsForStarting: any[] | undefined;\n\n clonedItemsForFinishing: any[] | undefined;\n\n allowAutoplay: boolean | undefined;\n\n interval: any;\n\n isCreated: boolean | undefined;\n\n swipeThreshold: number = 20;\n\n /**\n * Template for carousel items.\n * @group Templates\n */\n @ContentChild('item', { descendants: false }) itemTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the carousel header.\n * @group Templates\n */\n @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the carousel footer.\n * @group Templates\n */\n @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the previous button icon.\n * @group Templates\n */\n @ContentChild('previousicon', { descendants: false }) previousIconTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the next button icon.\n * @group Templates\n */\n @ContentChild('nexticon', { descendants: false }) nextIconTemplate: TemplateRef<any> | undefined;\n\n _itemTemplate: TemplateRef<any> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _previousIconTemplate: TemplateRef<any> | undefined;\n\n _nextIconTemplate: TemplateRef<any> | undefined;\n\n window: Window;\n\n _componentStyle = inject(CarouselStyle);\n\n constructor(\n public el: ElementRef,\n public zone: NgZone\n ) {\n super();\n this.totalShiftedItems = this.page * this.numScroll * -1;\n this.window = this.document.defaultView as Window;\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (isPlatformBrowser(this.platformId)) {\n if (simpleChange.value) {\n if (this.circular && this._value) {\n this.setCloneItems();\n }\n }\n\n if (this.isCreated) {\n if (simpleChange.numVisible) {\n if (this.responsiveOptions) {\n this.defaultNumVisible = this.numVisible;\n }\n\n if (this.isCircular()) {\n this.setCloneItems();\n }\n\n this.createStyle();\n this.calculatePosition();\n }\n\n if (simpleChange.numScroll) {\n if (this.responsiveOptions) {\n this.defaultNumScroll = this.numScroll;\n }\n }\n }\n }\n this.cd.markForCheck();\n }\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n ngAfterContentInit() {\n this.id = uuid('pn_id_');\n if (isPlatformBrowser(this.platformId)) {\n this.allowAutoplay = !!this.autoplayInterval;\n\n if (this.circular) {\n this.setCloneItems();\n }\n\n if (this.responsiveOptions) {\n this.defaultNumScroll = this._numScroll;\n this.defaultNumVisible = this._numVisible;\n }\n\n this.createStyle();\n this.calculatePosition();\n\n if (this.responsiveOptions) {\n this.bindDocumentListeners();\n }\n }\n\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'previousicon':\n this._previousIconTemplate = item.template;\n break;\n\n case 'nexticon':\n this._nextIconTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n\n this.cd.detectChanges();\n }\n\n ngAfterContentChecked() {\n if (isPlatformBrowser(this.platformId)) {\n const isCircular = this.isCircular();\n let totalShiftedItems = this.totalShiftedItems;\n\n if (this.value && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.value.length)) {\n if (this.autoplayInterval) {\n this.stopAutoplay(false);\n }\n\n this.remainingItems = (this.value.length - this._numVisible) % this._numScroll;\n\n let page = this._page;\n if (this.totalDots() !== 0 && page >= this.totalDots()) {\n page = this.totalDots() - 1;\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n }\n\n totalShiftedItems = page * this._numScroll * -1;\n if (isCircular) {\n totalShiftedItems -= this._numVisible;\n }\n\n if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n totalShiftedItems += -1 * this.remainingItems + this._numScroll;\n this.isRemainingItemsAdded = true;\n } else {\n this.isRemainingItemsAdded = false;\n }\n\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n }\n\n this._oldNumScroll = this._numScroll;\n this.prevState.numScroll = this._numScroll;\n this.prevState.numVisible = this._numVisible;\n this.prevState.value = [...(this._value as any[])];\n\n if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n }\n\n this.isCreated = true;\n\n if (this.autoplayInterval && this.isAutoplay()) {\n this.startAutoplay();\n }\n }\n\n if (isCircular) {\n if (this.page === 0) {\n totalShiftedItems = -1 * this._numVisible;\n } else if (totalShiftedItems === 0) {\n totalShiftedItems = -1 * this.value.length;\n if (this.remainingItems > 0) {\n this.isRemainingItemsAdded = true;\n }\n }\n\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n }\n }\n }\n }\n\n createStyle() {\n if (!this.carouselStyle) {\n this.carouselStyle = this.renderer.createElement('style');\n this.carouselStyle.type = 'text/css';\n setAttribute(this.carouselStyle, 'nonce', this.config?.csp()?.nonce);\n this.renderer.appendChild(this.document.head, this.carouselStyle);\n }\n\n let innerHTML = `\n #${this.id} .p-carousel-item {\n\t\t\t\tflex: 1 0 ${100 / this.numVisible}%\n\t\t\t}\n `;\n\n if (this.responsiveOptions) {\n this.responsiveOptions.sort((data1, data2) => {\n const value1 = data1.breakpoint;\n const value2 = data2.breakpoint;\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return -1 * result;\n });\n\n for (let i = 0; i < this.responsiveOptions.length; i++) {\n let res = this.responsiveOptions[i];\n\n innerHTML += `\n @media screen and (max-width: ${res.breakpoint}) {\n #${this.id} .p-carousel-item {\n flex: 1 0 ${100 / res.numVisible}%\n }\n }\n `;\n }\n }\n\n this.carouselStyle.innerHTML = innerHTML;\n }\n\n calculatePosition() {\n if (this.responsiveOptions) {\n let matchedResponsiveData = {\n numVisible: this.defaultNumVisible,\n numScroll: this.defaultNumScroll\n };\n\n if (typeof window !== 'undefined') {\n let windowWidth = window.innerWidth;\n for (let i = 0; i < this.responsiveOptions.length; i++) {\n let res = this.responsiveOptions[i];\n\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\n matchedResponsiveData = res;\n }\n }\n }\n\n if (this._numScroll !== matchedResponsiveData.numScroll) {\n let page = this._page;\n page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);\n\n let totalShiftedItems = matchedResponsiveData.numScroll * this.page * -1;\n\n if (this.isCircular()) {\n totalShiftedItems -= matchedResponsiveData.numVisible;\n }\n\n this.totalShiftedItems = totalShiftedItems;\n this._numScroll = matchedResponsiveData.numScroll;\n\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n }\n\n if (this._numVisible !== matchedResponsiveData.numVisible) {\n this._numVisible = matchedResponsiveData.numVisible;\n this.setCloneItems();\n }\n\n this.cd.markForCheck();\n }\n }\n\n setCloneItems() {\n this.clonedItemsForStarting = [];\n this.clonedItemsForFinishing = [];\n if (this.isCircular()) {\n this.clonedItemsForStarting.push(...this.value.slice(-1 * this._numVisible));\n this.clonedItemsForFinishing.push(...this.value.slice(0, this._numVisible));\n }\n }\n\n firstIndex() {\n return this.isCircular() ? -1 * (this.totalShiftedItems + this.numVisible) : this.totalShiftedItems * -1;\n }\n\n lastIndex() {\n return this.firstIndex() + this.numVisible - 1;\n }\n\n totalDots() {\n return this.value?.length ? Math.ceil((this.value.length - this._numVisible) / this._numScroll) + 1 : 0;\n }\n\n totalDotsArray() {\n const totalDots = this.totalDots();\n return totalDots <= 0 ? [] : Array(totalDots).fill(0);\n }\n\n isVertical() {\n return this.orientation === 'vertical';\n }\n\n isCircular() {\n return this.circular && this.value && this.value.length >= this.numVisible;\n }\n\n isAutoplay() {\n return this.autoplayInterval && this.allowAutoplay;\n }\n\n isForwardNavDisabled() {\n return this.isEmpty() || (this._page >= this.totalDots() - 1 && !this.isCircular());\n }\n\n isBackwardNavDisabled() {\n return this.isEmpty() || (this._page <= 0 && !this.isCircular());\n }\n\n isEmpty() {\n return !this.value || this.value.length === 0;\n }\n\n navForward(e: MouseEvent | TouchEvent, index?: number) {\n if (this.isCircular() || this._page < this.totalDots() - 1) {\n this.step(-1, index);\n }\n\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n\n navBackward(e: MouseEvent | TouchEvent, index?: number) {\n if (this.isCircular() || this._page !== 0) {\n this.step(1, index);\n }\n\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n\n onDotClick(e: MouseEvent, index: number) {\n let page = this._page;\n\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (index > page) {\n this.navForward(e, index);\n } else if (index < page) {\n this.navBackward(e, index);\n }\n }\n\n onIndicatorKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowRight':\n this.onRightKey();\n break;\n\n case 'ArrowLeft':\n this.onLeftKey();\n break;\n }\n }\n\n onRightKey() {\n const indicators = [...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);\n }\n\n onLeftKey() {\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\n }\n\n onHomeKey() {\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, 0);\n }\n\n onEndKey() {\n const indicators = [...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]r')];\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n }\n\n onTabKey() {\n const indicators = <any>[...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-highlight') === true);\n\n const activeIndicator = <any>findSingle(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n const activeIndex = indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n\n indicators[activeIndex].children[0].tabIndex = '-1';\n indicators[highlightedIndex].children[0].tabIndex = '0';\n }\n\n findFocusedIndicatorIndex() {\n const indicators = [...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n const activeIndicator = findSingle(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n\n return indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n }\n\n changedFocusedIndicator(prevInd, nextInd) {\n const indicators = <any>[...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n\n indicators[prevInd].children[0].tabIndex = '-1';\n indicators[nextInd].children[0].tabIndex = '0';\n indicators[nextInd].children[0].focus();\n }\n\n step(dir: number, page?: number) {\n let totalShiftedItems = this.totalShiftedItems;\n const isCircular = this.isCircular();\n\n if (page != null) {\n totalShiftedItems = this._numScroll * page * -1;\n\n if (isCircular) {\n totalShiftedItems -= this._numVisible;\n }\n\n this.isRemainingItemsAdded = false;\n } else {\n totalShiftedItems += this._numScroll * dir;\n if (this.isRemainingItemsAdded) {\n totalShiftedItems += this.remainingItems - this._numScroll * dir;\n this.isRemainingItemsAdded = false;\n }\n\n let originalShiftedItems = isCircular ? totalShiftedItems + this._numVisible : totalShiftedItems;\n page = Math.abs(Math.floor(originalShiftedItems / this._numScroll));\n }\n\n if (isCircular && this.page === this.totalDots() - 1 && dir === -1) {\n totalShiftedItems = -1 * (this.value.length + this._numVisible);\n page = 0;\n } else if (isCircular && this.page === 0 && dir === 1) {\n totalShiftedItems = 0;\n page = this.totalDots() - 1;\n } else if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n totalShiftedItems += this.remainingItems * -1 - this._numScroll * dir;\n this.isRemainingItemsAdded = true;\n }\n\n if (this.itemsContainer) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n }\n\n this.totalShiftedItems = totalShiftedItems;\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n this.cd.markForCheck();\n }\n\n startAutoplay() {\n this.interval = setInterval(() => {\n if (this.totalDots() > 0) {\n if (this.page === this.totalDots() - 1) {\n this.step(-1, 0);\n } else {\n this.step(-1, this.page + 1);\n }\n }\n }, this.autoplayInterval);\n this.allowAutoplay = true;\n this.cd.markForCheck();\n }\n\n stopAutoplay(changeAllow: boolean = true) {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = undefined;\n if (changeAllow) {\n this.allowAutoplay = false;\n }\n }\n this.cd.markForCheck();\n }\n\n isPlaying(): boolean {\n return !!this.interval;\n }\n\n onTransitionEnd() {\n if (this.itemsContainer) {\n this.itemsContainer.nativeElement.style.transition = '';\n\n if ((this.page === 0 || this.page === this.totalDots() - 1) && this.isCircular()) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n }\n }\n }\n\n onTouchStart(e: TouchEvent) {\n let touchobj = e.changedTouches[0];\n\n this.startPos = {\n x: touchobj.pageX,\n y: touchobj.pageY\n };\n }\n\n onTouchMove(e: TouchEvent | MouseEvent) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n\n onTouchEnd(e: TouchEvent) {\n let touchobj = e.changedTouches[0];\n\n if (this.isVertical()) {\n this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n } else {\n this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n }\n }\n\n changePageOnTouch(e: TouchEvent | MouseEvent, diff: number) {\n if (Math.abs(diff) > this.swipeThreshold) {\n if (diff < 0) {\n this.navForward(e);\n } else {\n this.navBackward(e);\n }\n }\n }\n\n ariaPrevButtonLabel() {\n return this.config.translation.aria ? this.config.translation.aria.prevPageLabel : undefined;\n }\n\n ariaSlideLabel() {\n return this.config.translation.aria ? this.config.translation.aria.slide : undefined;\n }\n\n ariaNextButtonLabel() {\n return this.config.translation.aria ? this.config.translation.aria.nextPageLabel : undefined;\n }\n\n ariaSlideNumber(value) {\n return this.config.translation.aria ? this.config.translation.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;\n }\n\n ariaPageLabel(value) {\n return this.config.translation.aria ? this.config.translation.aria.pageLabel.replace(/{page}/g, value) : undefined;\n }\n\n bindDocumentListeners() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.window, 'resize', (event) => {\n this.calculatePosition();\n });\n }\n }\n }\n\n unbindDocumentListeners() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n }\n\n ngOnDestroy() {\n if (this.responsiveOptions) {\n this.unbindDocumentListeners();\n }\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n }\n}\n\n@NgModule({\n imports: [Carousel, SharedModule],\n exports: [Carousel, SharedModule]\n})\nexport class CarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"primeng-carousel.mjs","sources":["../../src/carousel/style/carouselstyle.ts","../../src/carousel/carousel.ts","../../src/carousel/primeng-carousel.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/carousel';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-carousel p-component',\n {\n 'p-carousel-vertical': instance.isVertical(),\n 'p-carousel-horizontal': !instance.isVertical()\n }\n ],\n header: 'p-carousel-header',\n contentContainer: 'p-carousel-content-container',\n content: 'p-carousel-content',\n pcPrevButton: ({ instance }) => [\n 'p-carousel-prev-button',\n {\n 'p-disabled': instance.isBackwardNavDisabled()\n }\n ],\n viewport: 'p-carousel-viewport',\n itemList: 'p-carousel-item-list',\n itemClone: ({ instance, index }) => [\n 'p-carousel-item p-carousel-item-clone',\n {\n 'p-carousel-item-active': instance.totalShiftedItems * -1 === instance.value.length,\n 'p-carousel-item-start': 0 === index,\n 'p-carousel-item-end': instance.clonedItemsForStarting.length - 1 === index\n }\n ],\n item: ({ instance, index }) => [\n 'p-carousel-item',\n {\n 'p-carousel-item-active': instance.firstIndex() <= index && instance.lastIndex() >= index,\n 'p-carousel-item-start': instance.firstIndex() === index,\n 'p-carousel-item-end': instance.lastIndex() === index\n }\n ],\n pcNextButton: ({ instance }) => [\n 'p-carousel-next-button',\n {\n 'p-disabled': instance.isForwardNavDisabled()\n }\n ],\n indicatorList: ({ instance }) => ['p-carousel-indicator-list', instance.indicatorsContentClass],\n indicator: ({ instance, index }) => [\n 'p-carousel-indicator',\n {\n 'p-carousel-indicator-active': instance._page === index\n }\n ],\n indicatorButton: ({ instance }) => ['p-carousel-indicator-button', instance.indicatorStyleClass],\n footer: 'p-carousel-footer'\n};\n\n@Injectable()\nexport class CarouselStyle extends BaseStyle {\n name = 'carousel';\n\n theme = style;\n\n classes = classes;\n}\n\n/**\n *\n * Carousel is a content slider featuring various customization options.\n *\n * [Live Demo](https://www.primeng.org/carousel/)\n *\n * @module carouselstyle\n *\n */\nexport enum CarouselClasses {\n /**\n * Class name of the root element\n */\n root = 'p-carousel',\n /**\n * Class name of the header element\n */\n header = 'p-carousel-header',\n /**\n * Class name of the content container element\n */\n contentContainer = 'p-carousel-content-container',\n /**\n * Class name of the content element\n */\n content = 'p-carousel-content',\n /**\n * Class name of the previous button element\n */\n pcPrevButton = 'p-carousel-prev-button',\n /**\n * Class name of the viewport element\n */\n viewport = 'p-carousel-viewport',\n /**\n * Class name of the item list element\n */\n itemList = 'p-carousel-item-list',\n /**\n * Class name of the item clone element\n */\n itemClone = 'p-carousel-item-clone',\n /**\n * Class name of the item element\n */\n item = 'p-carousel-item',\n /**\n * Class name of the next button element\n */\n pcNextButton = 'p-carousel-next-button',\n /**\n * Class name of the indicator list element\n */\n indicatorList = 'p-carousel-indicator-list',\n /**\n * Class name of the indicator element\n */\n indicator = 'p-carousel-indicator',\n /**\n * Class name of the indicator button element\n */\n indicatorButton = 'p-carousel-indicator-button',\n /**\n * Class name of the footer element\n */\n footer = 'p-carousel-footer'\n}\n\nexport interface CarouselStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { find, findSingle, getAttribute, setAttribute, uuid } from '@primeuix/utils';\nimport { Footer, Header, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ButtonModule, ButtonProps } from 'primeng/button';\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon } from 'primeng/icons';\nimport { CarouselPageEvent, CarouselResponsiveOptions } from './carousel.interface';\nimport { CarouselStyle } from './style/carouselstyle';\n\n/**\n * Carousel is a content slider featuring various customization options.\n * @group Components\n */\n@Component({\n selector: 'p-carousel',\n standalone: true,\n imports: [CommonModule, ChevronRightIcon, ButtonModule, ChevronLeftIcon, ChevronDownIcon, ChevronUpIcon, SharedModule],\n template: `\n <div [class]=\"cx('header')\" *ngIf=\"headerFacet || headerTemplate\">\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n <div [class]=\"contentClass\" [ngClass]=\"cx('contentContainer')\">\n <div [class]=\"cx('content')\" [attr.aria-live]=\"allowAutoplay ? 'polite' : 'off'\">\n <p-button *ngIf=\"showNavigators\" [class]=\"cx('pcPrevButton')\" [attr.aria-label]=\"ariaPrevButtonLabel()\" (click)=\"navBackward($event)\" [text]=\"true\" [buttonProps]=\"prevButtonProps\">\n <ng-template #icon>\n <ng-container *ngIf=\"!previousIconTemplate && !_previousIconTemplate && !prevButtonProps?.icon\">\n <svg data-p-icon=\"chevron-left\" *ngIf=\"!isVertical()\" />\n <svg data-p-icon=\"chevron-up\" *ngIf=\"isVertical()\" />\n </ng-container>\n <ng-container *ngIf=\"(previousIconTemplate || _previousIconTemplate) && !prevButtonProps?.icon\">\n <ng-template *ngTemplateOutlet=\"previousIconTemplate || _previousIconTemplate\"></ng-template>\n </ng-container>\n </ng-template>\n </p-button>\n <div [class]=\"cx('viewport')\" [ngStyle]=\"{ height: isVertical() ? verticalViewPortHeight : 'auto' }\" (touchend)=\"onTouchEnd($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\">\n <div #itemsContainer [class]=\"cx('itemList')\" (transitionend)=\"onTransitionEnd()\">\n <div\n *ngFor=\"let item of clonedItemsForStarting; let index = index\"\n [class]=\"cx('itemClone', { index })\"\n [attr.aria-hidden]=\"!(totalShiftedItems * -1 === value.length)\"\n [attr.aria-label]=\"ariaSlideNumber(index)\"\n [attr.aria-roledescription]=\"ariaSlideLabel()\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div\n *ngFor=\"let item of value; let index = index\"\n [class]=\"cx('item', { index })\"\n [attr.aria-hidden]=\"!(firstIndex() <= index && lastIndex() >= index)\"\n [attr.aria-label]=\"ariaSlideNumber(index)\"\n [attr.aria-roledescription]=\"ariaSlideLabel()\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngFor=\"let item of clonedItemsForFinishing; let index = index\" [class]=\"cx('itemClone', { index })\">\n <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n </div>\n </div>\n <p-button type=\"button\" *ngIf=\"showNavigators\" [class]=\"cx('pcNextButton')\" (click)=\"navForward($event)\" [attr.aria-label]=\"ariaNextButtonLabel()\" [buttonProps]=\"nextButtonProps\" [text]=\"true\">\n <ng-template #icon>\n <ng-container *ngIf=\"!nextIconTemplate && !_nextIconTemplate && !nextButtonProps?.icon\">\n <svg data-p-icon=\"chevron-right\" *ngIf=\"!isVertical()\" />\n <svg data-p-icon=\"chevron-down\" *ngIf=\"isVertical()\" />\n </ng-container>\n <span *ngIf=\"nextIconTemplate || (_nextIconTemplate && !nextButtonProps?.icon)\">\n <ng-template *ngTemplateOutlet=\"nextIconTemplate || _nextIconTemplate\"></ng-template>\n </span>\n </ng-template>\n </p-button>\n </div>\n <ul #indicatorContent [class]=\"cx('indicatorList')\" [ngStyle]=\"indicatorsContentStyle\" *ngIf=\"showIndicators\" (keydown)=\"onIndicatorKeydown($event)\">\n <li *ngFor=\"let totalDot of totalDotsArray(); let i = index\" [class]=\"cx('indicator', { index: i })\" [attr.data-pc-section]=\"'indicator'\">\n <button\n type=\"button\"\n [class]=\"cx('indicatorButton')\"\n (click)=\"onDotClick($event, i)\"\n [ngStyle]=\"indicatorStyle\"\n [attr.aria-label]=\"ariaPageLabel(i + 1)\"\n [attr.aria-current]=\"_page === i ? 'page' : undefined\"\n [tabindex]=\"_page === i ? 0 : -1\"\n ></button>\n </li>\n </ul>\n </div>\n <div [class]=\"cx('footer')\" *ngIf=\"footerFacet || footerTemplate || _footerTemplate\">\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CarouselStyle],\n host: {\n '[attr.id]': 'id',\n '[attr.role]': \"'region'\",\n '[class]': \"cn(cx('root'), styleClass)\"\n }\n})\nexport class Carousel extends BaseComponent implements AfterContentInit {\n /**\n * Index of the first item.\n * @defaultValue 0\n * @group Props\n */\n @Input() get page(): number {\n return this._page;\n }\n\n set page(val: number) {\n if (this.isCreated && val !== this._page) {\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (val > this._page && val <= this.totalDots() - 1) {\n this.step(-1, val);\n } else if (val < this._page) {\n this.step(1, val);\n }\n }\n\n this._page = val;\n }\n\n /**\n * Number of items per page.\n * @defaultValue 1\n * @group Props\n */\n @Input() get numVisible(): number {\n return this._numVisible;\n }\n\n set numVisible(val: number) {\n this._numVisible = val;\n }\n\n /**\n * Number of items to scroll.\n * @defaultValue 1\n * @group Props\n */\n @Input() get numScroll(): number {\n return this._numVisible;\n }\n\n set numScroll(val: number) {\n this._numScroll = val;\n }\n\n /**\n * An array of options for responsive design.\n * @see {CarouselResponsiveOptions}\n * @group Props\n */\n @Input() responsiveOptions: CarouselResponsiveOptions[] | undefined;\n /**\n * Specifies the layout of the component.\n * @group Props\n */\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n /**\n * Height of the viewport in vertical layout.\n * @group Props\n */\n @Input() verticalViewPortHeight: string = '300px';\n /**\n * Style class of main content.\n * @group Props\n */\n @Input() contentClass: string = '';\n /**\n * Style class of the indicator items.\n * @group Props\n */\n @Input() indicatorsContentClass: string = '';\n /**\n * Inline style of the indicator items.\n * @group Props\n */\n @Input() indicatorsContentStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the indicators.\n * @group Props\n */\n @Input() indicatorStyleClass: string = '';\n /**\n * Style of the indicators.\n * @group Props\n */\n @Input() indicatorStyle: { [klass: string]: any } | null | undefined;\n\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n @Input() get value(): any[] {\n return this._value as any[];\n }\n\n set value(val) {\n this._value = val;\n }\n\n /**\n * Defines if scrolling would be infinite.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) circular: boolean = false;\n /**\n * Whether to display indicator container.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showIndicators: boolean = true;\n /**\n * Whether to display navigation buttons in container.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showNavigators: boolean = true;\n /**\n * Time in milliseconds to scroll items automatically.\n * @group Props\n */\n @Input({ transform: numberAttribute }) autoplayInterval: number = 0;\n /**\n * Style class of the viewport container.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Used to pass all properties of the ButtonProps to the Button component.\n * @group Props\n */\n @Input() prevButtonProps: ButtonProps = {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n /**\n * Used to pass all properties of the ButtonProps to the Button component.\n * @group Props\n */\n @Input() nextButtonProps: ButtonProps = {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n /**\n * Callback to invoke after scroll.\n * @param {CarouselPageEvent} event - Custom page event.\n * @group Emits\n */\n @Output() onPage: EventEmitter<CarouselPageEvent> = new EventEmitter<CarouselPageEvent>();\n\n @ViewChild('itemsContainer') itemsContainer: ElementRef | undefined;\n\n @ViewChild('indicatorContent') indicatorContent: ElementRef | undefined;\n\n @ContentChild(Header) headerFacet: QueryList<Header> | undefined;\n\n @ContentChild(Footer) footerFacet: QueryList<Footer> | undefined;\n\n _numVisible: number = 1;\n\n _numScroll: number = 1;\n\n _oldNumScroll: number = 0;\n\n prevState: any = {\n numScroll: 0,\n numVisible: 0,\n value: []\n };\n\n defaultNumScroll: number = 1;\n\n defaultNumVisible: number = 1;\n\n _page: number = 0;\n\n _value: any[] | null | undefined;\n\n carouselStyle: any;\n\n id: string | undefined;\n\n totalShiftedItems;\n\n isRemainingItemsAdded: boolean = false;\n\n animationTimeout: any;\n\n translateTimeout: any;\n\n remainingItems: number = 0;\n\n _items: any[] | undefined;\n\n startPos: any;\n\n documentResizeListener: any;\n\n clonedItemsForStarting: any[] | undefined;\n\n clonedItemsForFinishing: any[] | undefined;\n\n allowAutoplay: boolean | undefined;\n\n interval: any;\n\n isCreated: boolean | undefined;\n\n swipeThreshold: number = 20;\n\n /**\n * Template for carousel items.\n * @group Templates\n */\n @ContentChild('item', { descendants: false }) itemTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the carousel header.\n * @group Templates\n */\n @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the carousel footer.\n * @group Templates\n */\n @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the previous button icon.\n * @group Templates\n */\n @ContentChild('previousicon', { descendants: false }) previousIconTemplate: TemplateRef<any> | undefined;\n\n /**\n * Template for the next button icon.\n * @group Templates\n */\n @ContentChild('nexticon', { descendants: false }) nextIconTemplate: TemplateRef<any> | undefined;\n\n _itemTemplate: TemplateRef<any> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _previousIconTemplate: TemplateRef<any> | undefined;\n\n _nextIconTemplate: TemplateRef<any> | undefined;\n\n window: Window;\n\n _componentStyle = inject(CarouselStyle);\n\n constructor(\n public el: ElementRef,\n public zone: NgZone\n ) {\n super();\n this.totalShiftedItems = this.page * this.numScroll * -1;\n this.window = this.document.defaultView as Window;\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (isPlatformBrowser(this.platformId)) {\n if (simpleChange.value) {\n if (this.circular && this._value) {\n this.setCloneItems();\n }\n }\n\n if (this.isCreated) {\n if (simpleChange.numVisible) {\n if (this.responsiveOptions) {\n this.defaultNumVisible = this.numVisible;\n }\n\n if (this.isCircular()) {\n this.setCloneItems();\n }\n\n this.createStyle();\n this.calculatePosition();\n }\n\n if (simpleChange.numScroll) {\n if (this.responsiveOptions) {\n this.defaultNumScroll = this.numScroll;\n }\n }\n }\n }\n this.cd.markForCheck();\n }\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n ngAfterContentInit() {\n this.id = uuid('pn_id_');\n if (isPlatformBrowser(this.platformId)) {\n this.allowAutoplay = !!this.autoplayInterval;\n\n if (this.circular) {\n this.setCloneItems();\n }\n\n if (this.responsiveOptions) {\n this.defaultNumScroll = this._numScroll;\n this.defaultNumVisible = this._numVisible;\n }\n\n this.createStyle();\n this.calculatePosition();\n\n if (this.responsiveOptions) {\n this.bindDocumentListeners();\n }\n }\n\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'previousicon':\n this._previousIconTemplate = item.template;\n break;\n\n case 'nexticon':\n this._nextIconTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n\n this.cd.detectChanges();\n }\n\n ngAfterContentChecked() {\n if (isPlatformBrowser(this.platformId)) {\n const isCircular = this.isCircular();\n let totalShiftedItems = this.totalShiftedItems;\n\n if (this.value && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.value.length)) {\n if (this.autoplayInterval) {\n this.stopAutoplay(false);\n }\n\n this.remainingItems = (this.value.length - this._numVisible) % this._numScroll;\n\n let page = this._page;\n if (this.totalDots() !== 0 && page >= this.totalDots()) {\n page = this.totalDots() - 1;\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n }\n\n totalShiftedItems = page * this._numScroll * -1;\n if (isCircular) {\n totalShiftedItems -= this._numVisible;\n }\n\n if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n totalShiftedItems += -1 * this.remainingItems + this._numScroll;\n this.isRemainingItemsAdded = true;\n } else {\n this.isRemainingItemsAdded = false;\n }\n\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n }\n\n this._oldNumScroll = this._numScroll;\n this.prevState.numScroll = this._numScroll;\n this.prevState.numVisible = this._numVisible;\n this.prevState.value = [...(this._value as any[])];\n\n if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n }\n\n this.isCreated = true;\n\n if (this.autoplayInterval && this.isAutoplay()) {\n this.startAutoplay();\n }\n }\n\n if (isCircular) {\n if (this.page === 0) {\n totalShiftedItems = -1 * this._numVisible;\n } else if (totalShiftedItems === 0) {\n totalShiftedItems = -1 * this.value.length;\n if (this.remainingItems > 0) {\n this.isRemainingItemsAdded = true;\n }\n }\n\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n }\n }\n }\n }\n\n createStyle() {\n if (!this.carouselStyle) {\n this.carouselStyle = this.renderer.createElement('style');\n this.carouselStyle.type = 'text/css';\n setAttribute(this.carouselStyle, 'nonce', this.config?.csp()?.nonce);\n this.renderer.appendChild(this.document.head, this.carouselStyle);\n }\n\n let innerHTML = `\n #${this.id} .p-carousel-item {\n\t\t\t\tflex: 1 0 ${100 / this.numVisible}%\n\t\t\t}\n `;\n\n if (this.responsiveOptions) {\n this.responsiveOptions.sort((data1, data2) => {\n const value1 = data1.breakpoint;\n const value2 = data2.breakpoint;\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return -1 * result;\n });\n\n for (let i = 0; i < this.responsiveOptions.length; i++) {\n let res = this.responsiveOptions[i];\n\n innerHTML += `\n @media screen and (max-width: ${res.breakpoint}) {\n #${this.id} .p-carousel-item {\n flex: 1 0 ${100 / res.numVisible}%\n }\n }\n `;\n }\n }\n\n this.carouselStyle.innerHTML = innerHTML;\n }\n\n calculatePosition() {\n if (this.responsiveOptions) {\n let matchedResponsiveData = {\n numVisible: this.defaultNumVisible,\n numScroll: this.defaultNumScroll\n };\n\n if (typeof window !== 'undefined') {\n let windowWidth = window.innerWidth;\n for (let i = 0; i < this.responsiveOptions.length; i++) {\n let res = this.responsiveOptions[i];\n\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\n matchedResponsiveData = res;\n }\n }\n }\n\n if (this._numScroll !== matchedResponsiveData.numScroll) {\n let page = this._page;\n page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);\n\n let totalShiftedItems = matchedResponsiveData.numScroll * this.page * -1;\n\n if (this.isCircular()) {\n totalShiftedItems -= matchedResponsiveData.numVisible;\n }\n\n this.totalShiftedItems = totalShiftedItems;\n this._numScroll = matchedResponsiveData.numScroll;\n\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n }\n\n if (this._numVisible !== matchedResponsiveData.numVisible) {\n this._numVisible = matchedResponsiveData.numVisible;\n this.setCloneItems();\n }\n\n this.cd.markForCheck();\n }\n }\n\n setCloneItems() {\n this.clonedItemsForStarting = [];\n this.clonedItemsForFinishing = [];\n if (this.isCircular()) {\n this.clonedItemsForStarting.push(...this.value.slice(-1 * this._numVisible));\n this.clonedItemsForFinishing.push(...this.value.slice(0, this._numVisible));\n }\n }\n\n firstIndex() {\n return this.isCircular() ? -1 * (this.totalShiftedItems + this.numVisible) : this.totalShiftedItems * -1;\n }\n\n lastIndex() {\n return this.firstIndex() + this.numVisible - 1;\n }\n\n totalDots() {\n return this.value?.length ? Math.ceil((this.value.length - this._numVisible) / this._numScroll) + 1 : 0;\n }\n\n totalDotsArray() {\n const totalDots = this.totalDots();\n return totalDots <= 0 ? [] : Array(totalDots).fill(0);\n }\n\n isVertical() {\n return this.orientation === 'vertical';\n }\n\n isCircular() {\n return this.circular && this.value && this.value.length >= this.numVisible;\n }\n\n isAutoplay() {\n return this.autoplayInterval && this.allowAutoplay;\n }\n\n isForwardNavDisabled() {\n return this.isEmpty() || (this._page >= this.totalDots() - 1 && !this.isCircular());\n }\n\n isBackwardNavDisabled() {\n return this.isEmpty() || (this._page <= 0 && !this.isCircular());\n }\n\n isEmpty() {\n return !this.value || this.value.length === 0;\n }\n\n navForward(e: MouseEvent | TouchEvent, index?: number) {\n if (this.isCircular() || this._page < this.totalDots() - 1) {\n this.step(-1, index);\n }\n\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n\n navBackward(e: MouseEvent | TouchEvent, index?: number) {\n if (this.isCircular() || this._page !== 0) {\n this.step(1, index);\n }\n\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n\n onDotClick(e: MouseEvent, index: number) {\n let page = this._page;\n\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (index > page) {\n this.navForward(e, index);\n } else if (index < page) {\n this.navBackward(e, index);\n }\n }\n\n onIndicatorKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowRight':\n this.onRightKey();\n break;\n\n case 'ArrowLeft':\n this.onLeftKey();\n break;\n }\n }\n\n onRightKey() {\n const indicators = [...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);\n }\n\n onLeftKey() {\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\n }\n\n onHomeKey() {\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, 0);\n }\n\n onEndKey() {\n const indicators = [...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]r')];\n const activeIndex = this.findFocusedIndicatorIndex();\n\n this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n }\n\n onTabKey() {\n const indicators = <any>[...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-highlight') === true);\n\n const activeIndicator = <any>findSingle(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n const activeIndex = indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n\n indicators[activeIndex].children[0].tabIndex = '-1';\n indicators[highlightedIndex].children[0].tabIndex = '0';\n }\n\n findFocusedIndicatorIndex() {\n const indicators = [...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n const activeIndicator = findSingle(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n\n return indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n }\n\n changedFocusedIndicator(prevInd, nextInd) {\n const indicators = <any>[...find(this.indicatorContent.nativeElement, '[data-pc-section=\"indicator\"]')];\n\n indicators[prevInd].children[0].tabIndex = '-1';\n indicators[nextInd].children[0].tabIndex = '0';\n indicators[nextInd].children[0].focus();\n }\n\n step(dir: number, page?: number) {\n let totalShiftedItems = this.totalShiftedItems;\n const isCircular = this.isCircular();\n\n if (page != null) {\n totalShiftedItems = this._numScroll * page * -1;\n\n if (isCircular) {\n totalShiftedItems -= this._numVisible;\n }\n\n this.isRemainingItemsAdded = false;\n } else {\n totalShiftedItems += this._numScroll * dir;\n if (this.isRemainingItemsAdded) {\n totalShiftedItems += this.remainingItems - this._numScroll * dir;\n this.isRemainingItemsAdded = false;\n }\n\n let originalShiftedItems = isCircular ? totalShiftedItems + this._numVisible : totalShiftedItems;\n page = Math.abs(Math.floor(originalShiftedItems / this._numScroll));\n }\n\n if (isCircular && this.page === this.totalDots() - 1 && dir === -1) {\n totalShiftedItems = -1 * (this.value.length + this._numVisible);\n page = 0;\n } else if (isCircular && this.page === 0 && dir === 1) {\n totalShiftedItems = 0;\n page = this.totalDots() - 1;\n } else if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n totalShiftedItems += this.remainingItems * -1 - this._numScroll * dir;\n this.isRemainingItemsAdded = true;\n }\n\n if (this.itemsContainer) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n }\n\n this.totalShiftedItems = totalShiftedItems;\n this._page = page;\n this.onPage.emit({\n page: this.page\n });\n this.cd.markForCheck();\n }\n\n startAutoplay() {\n this.interval = setInterval(() => {\n if (this.totalDots() > 0) {\n if (this.page === this.totalDots() - 1) {\n this.step(-1, 0);\n } else {\n this.step(-1, this.page + 1);\n }\n }\n }, this.autoplayInterval);\n this.allowAutoplay = true;\n this.cd.markForCheck();\n }\n\n stopAutoplay(changeAllow: boolean = true) {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = undefined;\n if (changeAllow) {\n this.allowAutoplay = false;\n }\n }\n this.cd.markForCheck();\n }\n\n isPlaying(): boolean {\n return !!this.interval;\n }\n\n onTransitionEnd() {\n if (this.itemsContainer) {\n this.itemsContainer.nativeElement.style.transition = '';\n\n if ((this.page === 0 || this.page === this.totalDots() - 1) && this.isCircular()) {\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n }\n }\n }\n\n onTouchStart(e: TouchEvent) {\n let touchobj = e.changedTouches[0];\n\n this.startPos = {\n x: touchobj.pageX,\n y: touchobj.pageY\n };\n }\n\n onTouchMove(e: TouchEvent | MouseEvent) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n\n onTouchEnd(e: TouchEvent) {\n let touchobj = e.changedTouches[0];\n\n if (this.isVertical()) {\n this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n } else {\n this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n }\n }\n\n changePageOnTouch(e: TouchEvent | MouseEvent, diff: number) {\n if (Math.abs(diff) > this.swipeThreshold) {\n if (diff < 0) {\n this.navForward(e);\n } else {\n this.navBackward(e);\n }\n }\n }\n\n ariaPrevButtonLabel() {\n return this.config.translation.aria ? this.config.translation.aria.prevPageLabel : undefined;\n }\n\n ariaSlideLabel() {\n return this.config.translation.aria ? this.config.translation.aria.slide : undefined;\n }\n\n ariaNextButtonLabel() {\n return this.config.translation.aria ? this.config.translation.aria.nextPageLabel : undefined;\n }\n\n ariaSlideNumber(value) {\n return this.config.translation.aria ? this.config.translation.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;\n }\n\n ariaPageLabel(value) {\n return this.config.translation.aria ? this.config.translation.aria.pageLabel.replace(/{page}/g, value) : undefined;\n }\n\n bindDocumentListeners() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.window, 'resize', (event) => {\n this.calculatePosition();\n });\n }\n }\n }\n\n unbindDocumentListeners() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n }\n\n ngOnDestroy() {\n if (this.responsiveOptions) {\n this.unbindDocumentListeners();\n }\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n }\n}\n\n@NgModule({\n imports: [Carousel, SharedModule],\n exports: [Carousel, SharedModule]\n})\nexport class CarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
@@ -13,20 +13,19 @@ import { Fluid } from 'primeng/fluid';
|
|
13
13
|
import { AngleRightIcon, ChevronDownIcon, TimesIcon } from 'primeng/icons';
|
14
14
|
import { Overlay } from 'primeng/overlay';
|
15
15
|
import { Ripple } from 'primeng/ripple';
|
16
|
-
import { css, dt } from '@primeuix/styled';
|
17
16
|
import { style } from '@primeuix/styles/cascadeselect';
|
18
17
|
import { BaseStyle } from 'primeng/base';
|
19
18
|
|
20
|
-
const theme = css `
|
19
|
+
const theme = /*css*/ `
|
21
20
|
${style}
|
22
21
|
|
23
22
|
/* For PrimeNG */
|
24
23
|
.p-cascadeselect.ng-invalid.ng-dirty:not(.ng-untouched):not(.ng-pristine) {
|
25
|
-
border-color:
|
24
|
+
border-color: dt('cascadeselect.invalid.border.color');
|
26
25
|
}
|
27
26
|
|
28
27
|
.p-cascadeselect.ng-invalid.ng-dirty:not(.ng-untouched):not(.ng-pristine) .p-cascadeselect-label.p-placeholder {
|
29
|
-
color:
|
28
|
+
color: dt('cascadeselect.invalid.placeholder.color');
|
30
29
|
}
|
31
30
|
`;
|
32
31
|
const inlineStyles = {
|
@@ -37,9 +36,9 @@ const classes = {
|
|
37
36
|
'p-cascadeselect p-component p-inputwrapper',
|
38
37
|
{
|
39
38
|
'p-cascadeselect p-component p-inputwrapper': true,
|
40
|
-
'p-cascadeselect-clearable': instance.showClear && !instance
|
39
|
+
'p-cascadeselect-clearable': instance.showClear && !instance.$disabled(),
|
41
40
|
'p-cascadeselect-mobile': instance.queryMatches(),
|
42
|
-
'p-disabled': instance
|
41
|
+
'p-disabled': instance.$disabled(),
|
43
42
|
'p-invalid': instance.invalid(),
|
44
43
|
'p-focus': instance.focused,
|
45
44
|
'p-inputwrapper-filled': instance.modelValue(),
|
@@ -63,7 +62,7 @@ const classes = {
|
|
63
62
|
loadingIcon: 'p-cascadeselect-loading-icon',
|
64
63
|
dropdownIcon: 'p-cascadeselect-dropdown-icon',
|
65
64
|
overlay: ({ instance }) => [
|
66
|
-
'p-cascadeselect-overlay p-component',
|
65
|
+
'p-cascadeselect-overlay p-component-overlay p-component',
|
67
66
|
{
|
68
67
|
'p-cascadeselect-mobile-active': instance.queryMatches()
|
69
68
|
}
|
@@ -290,7 +289,7 @@ class CascadeSelectSub extends BaseComponent {
|
|
290
289
|
<span [class]="cx('optionText')" [attr.data-pc-section]="'text'">{{ getOptionLabelToRender(processedOption) }}</span>
|
291
290
|
</ng-template>
|
292
291
|
<span [class]="cx('groupIcon')" *ngIf="isOptionGroup(processedOption)" [attr.data-pc-section]="'groupIcon'">
|
293
|
-
<
|
292
|
+
<svg data-p-icon="angle-right" *ngIf="!groupicon" />
|
294
293
|
<ng-template *ngTemplateOutlet="groupicon"></ng-template>
|
295
294
|
</span>
|
296
295
|
</div>
|
@@ -317,7 +316,7 @@ class CascadeSelectSub extends BaseComponent {
|
|
317
316
|
</li>
|
318
317
|
</ng-template>
|
319
318
|
</ul>
|
320
|
-
`, isInline: true, dependencies: [{ kind: "component", type: CascadeSelectSub, selector: "p-cascadeSelectSub, p-cascadeselect-sub", inputs: ["role", "selectId", "activeOptionPath", "optionDisabled", "focusedOptionId", "options", "optionGroupChildren", "optionTemplate", "groupicon", "level", "optionLabel", "optionValue", "optionGroupLabel", "dirty", "root"], outputs: ["onChange", "onFocusChange", "onFocusEnterChange"] }, { 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: Ripple, selector: "[pRipple]" }, { kind: "component", type: AngleRightIcon, selector: "
|
319
|
+
`, isInline: true, dependencies: [{ kind: "component", type: CascadeSelectSub, selector: "p-cascadeSelectSub, p-cascadeselect-sub", inputs: ["role", "selectId", "activeOptionPath", "optionDisabled", "focusedOptionId", "options", "optionGroupChildren", "optionTemplate", "groupicon", "level", "optionLabel", "optionValue", "optionGroupLabel", "dirty", "root"], outputs: ["onChange", "onFocusChange", "onFocusEnterChange"] }, { 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: Ripple, selector: "[pRipple]" }, { kind: "component", type: AngleRightIcon, selector: "[data-p-icon=\"angle-right\"]" }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
321
320
|
}
|
322
321
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CascadeSelectSub, decorators: [{
|
323
322
|
type: Component,
|
@@ -354,7 +353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
354
353
|
<span [class]="cx('optionText')" [attr.data-pc-section]="'text'">{{ getOptionLabelToRender(processedOption) }}</span>
|
355
354
|
</ng-template>
|
356
355
|
<span [class]="cx('groupIcon')" *ngIf="isOptionGroup(processedOption)" [attr.data-pc-section]="'groupIcon'">
|
357
|
-
<
|
356
|
+
<svg data-p-icon="angle-right" *ngIf="!groupicon" />
|
358
357
|
<ng-template *ngTemplateOutlet="groupicon"></ng-template>
|
359
358
|
</span>
|
360
359
|
</div>
|
@@ -737,8 +736,6 @@ class CascadeSelect extends BaseEditableHolder {
|
|
737
736
|
dirty = false;
|
738
737
|
searchValue;
|
739
738
|
searchTimeout;
|
740
|
-
onModelChange = () => { };
|
741
|
-
onModelTouched = () => { };
|
742
739
|
focusedOptionInfo = signal({ index: -1, level: 0, parentKey: '' });
|
743
740
|
activeOptionPath = signal([]);
|
744
741
|
processedOptions = [];
|
@@ -853,7 +850,7 @@ class CascadeSelect extends BaseEditableHolder {
|
|
853
850
|
return processedOptions;
|
854
851
|
}
|
855
852
|
onInputFocus(event) {
|
856
|
-
if (this
|
853
|
+
if (this.$disabled()) {
|
857
854
|
// For screenreaders
|
858
855
|
return;
|
859
856
|
}
|
@@ -868,7 +865,7 @@ class CascadeSelect extends BaseEditableHolder {
|
|
868
865
|
this.onBlur.emit(event);
|
869
866
|
}
|
870
867
|
onInputKeyDown(event) {
|
871
|
-
if (this
|
868
|
+
if (this.$disabled() || this.loading) {
|
872
869
|
event.preventDefault();
|
873
870
|
return;
|
874
871
|
}
|
@@ -1092,7 +1089,7 @@ class CascadeSelect extends BaseEditableHolder {
|
|
1092
1089
|
this.onGroupChange.emit(event);
|
1093
1090
|
}
|
1094
1091
|
onContainerClick(event) {
|
1095
|
-
if (this
|
1092
|
+
if (this.$disabled() || this.loading) {
|
1096
1093
|
return;
|
1097
1094
|
}
|
1098
1095
|
if (!this.overlayViewChild?.el?.nativeElement?.contains(event.target)) {
|
@@ -1379,17 +1376,17 @@ class CascadeSelect extends BaseEditableHolder {
|
|
1379
1376
|
break;
|
1380
1377
|
}
|
1381
1378
|
}
|
1382
|
-
|
1379
|
+
/**
|
1380
|
+
* @override
|
1381
|
+
*
|
1382
|
+
* @see {@link BaseEditableHolder.writeControlValue}
|
1383
|
+
* Writes the value to the control.
|
1384
|
+
*/
|
1385
|
+
writeControlValue(value, setModelValue) {
|
1383
1386
|
this.value = value;
|
1384
|
-
|
1387
|
+
setModelValue(value);
|
1385
1388
|
this.cd.markForCheck();
|
1386
1389
|
}
|
1387
|
-
registerOnChange(fn) {
|
1388
|
-
this.onModelChange = fn;
|
1389
|
-
}
|
1390
|
-
registerOnTouched(fn) {
|
1391
|
-
this.onModelTouched = fn;
|
1392
|
-
}
|
1393
1390
|
ngOnDestroy() {
|
1394
1391
|
if (this.matchMediaListener) {
|
1395
1392
|
this.unbindMatchMediaListener();
|
@@ -1405,13 +1402,13 @@ class CascadeSelect extends BaseEditableHolder {
|
|
1405
1402
|
role="combobox"
|
1406
1403
|
[attr.name]="name()"
|
1407
1404
|
[attr.required]="required() ? '' : undefined"
|
1408
|
-
[attr.disabled]="disabled() ? '' : undefined"
|
1405
|
+
[attr.disabled]="$disabled() ? '' : undefined"
|
1409
1406
|
[attr.placeholder]="placeholder"
|
1410
|
-
[attr.tabindex]="
|
1407
|
+
[attr.tabindex]="!$disabled() ? tabindex : -1"
|
1411
1408
|
[attr.id]="inputId"
|
1412
1409
|
[attr.aria-label]="ariaLabel"
|
1413
1410
|
[attr.aria-labelledby]="ariaLabelledBy"
|
1414
|
-
aria-haspopup="tree"
|
1411
|
+
[attr.aria-haspopup]="'tree'"
|
1415
1412
|
[attr.aria-expanded]="overlayVisible ?? false"
|
1416
1413
|
[attr.aria-controls]="overlayVisible ? id + '_tree' : null"
|
1417
1414
|
[attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
|
@@ -1430,8 +1427,8 @@ class CascadeSelect extends BaseEditableHolder {
|
|
1430
1427
|
</ng-template>
|
1431
1428
|
</span>
|
1432
1429
|
|
1433
|
-
<ng-container *ngIf="$filled() &&
|
1434
|
-
<
|
1430
|
+
<ng-container *ngIf="$filled() && !$disabled() && showClear">
|
1431
|
+
<svg data-p-icon="times" *ngIf="!clearIconTemplate && !_clearIconTemplate" [class]="cx('clearIcon')" (click)="clear($event)" [attr.data-pc-section]="'clearicon'" [attr.aria-hidden]="true" />
|
1435
1432
|
<span *ngIf="clearIconTemplate || _clearIconTemplate" [class]="cx('clearIcon')" (click)="clear($event)" [attr.data-pc-section]="'clearicon'" [attr.aria-hidden]="true">
|
1436
1433
|
<ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate"></ng-template>
|
1437
1434
|
</span>
|
@@ -1448,7 +1445,7 @@ class CascadeSelect extends BaseEditableHolder {
|
|
1448
1445
|
</ng-container>
|
1449
1446
|
</ng-container>
|
1450
1447
|
<ng-template #elseBlock>
|
1451
|
-
<
|
1448
|
+
<svg data-p-icon="chevron-down" *ngIf="!triggerIconTemplate && !_triggerIconTemplate" [class]="cx('dropdownIcon')" />
|
1452
1449
|
<span *ngIf="triggerIconTemplate || _triggerIconTemplate" [class]="cx('dropdownIcon')">
|
1453
1450
|
<ng-template *ngTemplateOutlet="triggerIconTemplate || _triggerIconTemplate"></ng-template>
|
1454
1451
|
</span>
|
@@ -1503,7 +1500,7 @@ class CascadeSelect extends BaseEditableHolder {
|
|
1503
1500
|
</div>
|
1504
1501
|
</ng-template>
|
1505
1502
|
</p-overlay>
|
1506
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: Overlay, selector: "p-overlay", inputs: ["visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options", "appendTo", "hostAttrSelector"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone"] }, { kind: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: CascadeSelectSub, selector: "p-cascadeSelectSub, p-cascadeselect-sub", inputs: ["role", "selectId", "activeOptionPath", "optionDisabled", "focusedOptionId", "options", "optionGroupChildren", "optionTemplate", "groupicon", "level", "optionLabel", "optionValue", "optionGroupLabel", "dirty", "root"], outputs: ["onChange", "onFocusChange", "onFocusEnterChange"] }, { kind: "component", type: ChevronDownIcon, selector: "
|
1503
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: Overlay, selector: "p-overlay", inputs: ["visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options", "appendTo", "hostAttrSelector"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone"] }, { kind: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: CascadeSelectSub, selector: "p-cascadeSelectSub, p-cascadeselect-sub", inputs: ["role", "selectId", "activeOptionPath", "optionDisabled", "focusedOptionId", "options", "optionGroupChildren", "optionTemplate", "groupicon", "level", "optionLabel", "optionValue", "optionGroupLabel", "dirty", "root"], outputs: ["onChange", "onFocusChange", "onFocusEnterChange"] }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
1507
1504
|
}
|
1508
1505
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CascadeSelect, decorators: [{
|
1509
1506
|
type: Component,
|
@@ -1520,13 +1517,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
1520
1517
|
role="combobox"
|
1521
1518
|
[attr.name]="name()"
|
1522
1519
|
[attr.required]="required() ? '' : undefined"
|
1523
|
-
[attr.disabled]="disabled() ? '' : undefined"
|
1520
|
+
[attr.disabled]="$disabled() ? '' : undefined"
|
1524
1521
|
[attr.placeholder]="placeholder"
|
1525
|
-
[attr.tabindex]="
|
1522
|
+
[attr.tabindex]="!$disabled() ? tabindex : -1"
|
1526
1523
|
[attr.id]="inputId"
|
1527
1524
|
[attr.aria-label]="ariaLabel"
|
1528
1525
|
[attr.aria-labelledby]="ariaLabelledBy"
|
1529
|
-
aria-haspopup="tree"
|
1526
|
+
[attr.aria-haspopup]="'tree'"
|
1530
1527
|
[attr.aria-expanded]="overlayVisible ?? false"
|
1531
1528
|
[attr.aria-controls]="overlayVisible ? id + '_tree' : null"
|
1532
1529
|
[attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
|
@@ -1545,8 +1542,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
1545
1542
|
</ng-template>
|
1546
1543
|
</span>
|
1547
1544
|
|
1548
|
-
<ng-container *ngIf="$filled() &&
|
1549
|
-
<
|
1545
|
+
<ng-container *ngIf="$filled() && !$disabled() && showClear">
|
1546
|
+
<svg data-p-icon="times" *ngIf="!clearIconTemplate && !_clearIconTemplate" [class]="cx('clearIcon')" (click)="clear($event)" [attr.data-pc-section]="'clearicon'" [attr.aria-hidden]="true" />
|
1550
1547
|
<span *ngIf="clearIconTemplate || _clearIconTemplate" [class]="cx('clearIcon')" (click)="clear($event)" [attr.data-pc-section]="'clearicon'" [attr.aria-hidden]="true">
|
1551
1548
|
<ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate"></ng-template>
|
1552
1549
|
</span>
|
@@ -1563,7 +1560,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
1563
1560
|
</ng-container>
|
1564
1561
|
</ng-container>
|
1565
1562
|
<ng-template #elseBlock>
|
1566
|
-
<
|
1563
|
+
<svg data-p-icon="chevron-down" *ngIf="!triggerIconTemplate && !_triggerIconTemplate" [class]="cx('dropdownIcon')" />
|
1567
1564
|
<span *ngIf="triggerIconTemplate || _triggerIconTemplate" [class]="cx('dropdownIcon')">
|
1568
1565
|
<ng-template *ngTemplateOutlet="triggerIconTemplate || _triggerIconTemplate"></ng-template>
|
1569
1566
|
</span>
|