primeng 22.1.0 → 22.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/primeng-accordion.mjs +998 -578
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +266 -165
- package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +888 -847
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +2534 -1592
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +114 -77
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +330 -189
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +178 -95
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +290 -156
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-base.mjs +95 -101
- package/fesm2022/primeng-base.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +528 -489
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-baseeditableholder.mjs +131 -69
- package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
- package/fesm2022/primeng-baseinput.mjs +214 -99
- package/fesm2022/primeng-baseinput.mjs.map +1 -1
- package/fesm2022/primeng-basemodelholder.mjs +39 -26
- package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
- package/fesm2022/primeng-bind.mjs +156 -96
- package/fesm2022/primeng-bind.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +360 -228
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +458 -220
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +1568 -703
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +125 -73
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +389 -178
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +2393 -1773
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +2373 -1364
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +402 -231
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +650 -353
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +411 -224
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-classnames.mjs +95 -48
- package/fesm2022/primeng-classnames.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +890 -635
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-commandmenu.mjs +568 -315
- package/fesm2022/primeng-commandmenu.mjs.map +1 -1
- package/fesm2022/primeng-compare.mjs +843 -480
- package/fesm2022/primeng-compare.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +415 -321
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +1188 -540
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +810 -531
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +1862 -1051
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +1130 -549
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +3750 -3354
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +1635 -968
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +272 -148
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +609 -385
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dom.mjs +599 -761
- package/fesm2022/primeng-dom.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +323 -311
- package/fesm2022/primeng-dragdrop.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +913 -482
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +828 -928
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +547 -390
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +559 -274
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +1836 -1047
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +187 -102
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +156 -85
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +150 -112
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +2589 -1406
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-gallery.mjs +2768 -1798
- package/fesm2022/primeng-gallery.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +192 -93
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +41 -23
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +41 -23
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +41 -23
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +41 -23
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +46 -28
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +41 -23
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +41 -23
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +46 -28
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +41 -23
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +46 -28
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +46 -28
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +41 -23
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +111 -67
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +40 -22
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +41 -23
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +41 -23
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +41 -23
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +41 -23
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +41 -23
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +41 -23
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +41 -23
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +41 -23
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +46 -28
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +41 -23
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +46 -28
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +46 -28
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterfill.mjs +41 -23
- package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +46 -28
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +46 -28
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +46 -28
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +41 -23
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +46 -28
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +46 -28
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +46 -28
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +46 -28
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +46 -28
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +46 -28
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +46 -28
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +46 -28
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +46 -28
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +46 -28
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +46 -28
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +46 -28
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +46 -28
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +41 -23
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +46 -28
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +46 -28
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +46 -28
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +46 -28
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +46 -28
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +46 -28
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-icons.mjs +53 -63
- package/fesm2022/primeng-iftalabel.mjs +153 -86
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +1006 -534
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +325 -165
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +401 -199
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputcolor.mjs +2631 -2180
- package/fesm2022/primeng-inputcolor.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +159 -91
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +153 -68
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +173 -72
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +1607 -1379
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +1646 -1305
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +571 -375
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputpassword.mjs +179 -98
- package/fesm2022/primeng-inputpassword.mjs.map +1 -1
- package/fesm2022/primeng-inputtags.mjs +1212 -588
- package/fesm2022/primeng-inputtags.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +325 -170
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +268 -243
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +627 -403
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-label.mjs +143 -81
- package/fesm2022/primeng-label.mjs.map +1 -1
- package/fesm2022/primeng-license.mjs +10 -36
- package/fesm2022/primeng-license.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +2409 -1593
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +2006 -1117
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +1437 -845
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +1832 -972
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +474 -243
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +663 -331
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-motion.mjs +1179 -690
- package/fesm2022/primeng-motion.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +3406 -1898
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +1308 -678
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +912 -597
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +929 -610
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +291 -107
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +961 -505
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +668 -347
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +1842 -966
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-passthrough.mjs +10 -20
- package/fesm2022/primeng-passthrough.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +1518 -858
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +2270 -1253
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +656 -434
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +346 -168
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +338 -188
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +499 -294
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +583 -352
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +194 -170
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scrollarea.mjs +1018 -721
- package/fesm2022/primeng-scrollarea.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +1386 -1047
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +568 -454
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +509 -261
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +2948 -1714
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +629 -339
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +2561 -1413
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +300 -157
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +841 -604
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +1115 -704
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +889 -340
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +997 -762
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +1355 -645
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +523 -407
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +446 -330
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +9765 -5849
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +1357 -815
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +305 -151
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +368 -216
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +345 -204
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +1917 -1094
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +304 -165
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +1369 -928
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +563 -309
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +464 -237
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +299 -129
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +1018 -765
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +2681 -1888
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +1678 -927
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +5849 -3742
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-ts-helpers.mjs +0 -4
- package/fesm2022/primeng-types-accordion.mjs +0 -4
- package/fesm2022/primeng-types-autocomplete.mjs +0 -4
- package/fesm2022/primeng-types-avatar.mjs +0 -4
- package/fesm2022/primeng-types-avatargroup.mjs +0 -4
- package/fesm2022/primeng-types-badge.mjs +0 -4
- package/fesm2022/primeng-types-blockui.mjs +0 -4
- package/fesm2022/primeng-types-breadcrumb.mjs +0 -4
- package/fesm2022/primeng-types-button.mjs +0 -4
- package/fesm2022/primeng-types-card.mjs +0 -4
- package/fesm2022/primeng-types-carousel.mjs +0 -4
- package/fesm2022/primeng-types-cascadeselect.mjs +0 -4
- package/fesm2022/primeng-types-chart.mjs +0 -4
- package/fesm2022/primeng-types-checkbox.mjs +0 -4
- package/fesm2022/primeng-types-chip.mjs +0 -4
- package/fesm2022/primeng-types-colorpicker.mjs +0 -4
- package/fesm2022/primeng-types-commandmenu.mjs +0 -4
- package/fesm2022/primeng-types-compare.mjs +0 -4
- package/fesm2022/primeng-types-confirmdialog.mjs +0 -4
- package/fesm2022/primeng-types-confirmpopup.mjs +0 -4
- package/fesm2022/primeng-types-contextmenu.mjs +0 -4
- package/fesm2022/primeng-types-dataview.mjs +0 -4
- package/fesm2022/primeng-types-datepicker.mjs +0 -4
- package/fesm2022/primeng-types-dialog.mjs +0 -4
- package/fesm2022/primeng-types-divider.mjs +0 -4
- package/fesm2022/primeng-types-dock.mjs +0 -4
- package/fesm2022/primeng-types-drawer.mjs +0 -4
- package/fesm2022/primeng-types-editor.mjs +0 -4
- package/fesm2022/primeng-types-fieldset.mjs +0 -4
- package/fesm2022/primeng-types-fileupload.mjs +0 -4
- package/fesm2022/primeng-types-floatlabel.mjs +0 -4
- package/fesm2022/primeng-types-fluid.mjs +0 -4
- package/fesm2022/primeng-types-galleria.mjs +0 -4
- package/fesm2022/primeng-types-gallery.mjs +0 -4
- package/fesm2022/primeng-types-iconfield.mjs +0 -4
- package/fesm2022/primeng-types-iftalabel.mjs +0 -4
- package/fesm2022/primeng-types-image.mjs +0 -4
- package/fesm2022/primeng-types-imagecompare.mjs +0 -4
- package/fesm2022/primeng-types-inplace.mjs +0 -4
- package/fesm2022/primeng-types-inputcolor.mjs +0 -4
- package/fesm2022/primeng-types-inputgroup.mjs +0 -4
- package/fesm2022/primeng-types-inputgroupaddon.mjs +0 -4
- package/fesm2022/primeng-types-inputicon.mjs +0 -4
- package/fesm2022/primeng-types-inputmask.mjs +0 -4
- package/fesm2022/primeng-types-inputnumber.mjs +0 -4
- package/fesm2022/primeng-types-inputotp.mjs +0 -4
- package/fesm2022/primeng-types-inputpassword.mjs +0 -4
- package/fesm2022/primeng-types-inputtags.mjs +0 -4
- package/fesm2022/primeng-types-inputtext.mjs +0 -4
- package/fesm2022/primeng-types-knob.mjs +0 -4
- package/fesm2022/primeng-types-label.mjs +0 -4
- package/fesm2022/primeng-types-listbox.mjs +0 -4
- package/fesm2022/primeng-types-megamenu.mjs +0 -4
- package/fesm2022/primeng-types-menu.mjs +0 -4
- package/fesm2022/primeng-types-menubar.mjs +0 -4
- package/fesm2022/primeng-types-message.mjs +0 -4
- package/fesm2022/primeng-types-metergroup.mjs +0 -4
- package/fesm2022/primeng-types-motion.mjs +0 -4
- package/fesm2022/primeng-types-multiselect.mjs +0 -4
- package/fesm2022/primeng-types-orderlist.mjs +0 -4
- package/fesm2022/primeng-types-organizationchart.mjs +0 -4
- package/fesm2022/primeng-types-overlay.mjs +0 -4
- package/fesm2022/primeng-types-overlaybadge.mjs +0 -4
- package/fesm2022/primeng-types-paginator.mjs +0 -4
- package/fesm2022/primeng-types-panel.mjs +0 -4
- package/fesm2022/primeng-types-panelmenu.mjs +0 -4
- package/fesm2022/primeng-types-password.mjs +0 -4
- package/fesm2022/primeng-types-picklist.mjs +0 -4
- package/fesm2022/primeng-types-popover.mjs +0 -4
- package/fesm2022/primeng-types-progressbar.mjs +0 -4
- package/fesm2022/primeng-types-progressspinner.mjs +0 -4
- package/fesm2022/primeng-types-radiobutton.mjs +0 -4
- package/fesm2022/primeng-types-rating.mjs +0 -4
- package/fesm2022/primeng-types-scrollarea.mjs +0 -4
- package/fesm2022/primeng-types-scroller.mjs +0 -4
- package/fesm2022/primeng-types-scrollpanel.mjs +0 -4
- package/fesm2022/primeng-types-scrolltop.mjs +0 -4
- package/fesm2022/primeng-types-select.mjs +0 -4
- package/fesm2022/primeng-types-selectbutton.mjs +0 -4
- package/fesm2022/primeng-types-shared.mjs +0 -4
- package/fesm2022/primeng-types-sidebar.mjs +0 -4
- package/fesm2022/primeng-types-skeleton.mjs +0 -4
- package/fesm2022/primeng-types-slider.mjs +0 -4
- package/fesm2022/primeng-types-speeddial.mjs +0 -4
- package/fesm2022/primeng-types-splitbutton.mjs +0 -4
- package/fesm2022/primeng-types-splitter.mjs +0 -4
- package/fesm2022/primeng-types-stepper.mjs +0 -4
- package/fesm2022/primeng-types-table.mjs +0 -4
- package/fesm2022/primeng-types-tabs.mjs +0 -4
- package/fesm2022/primeng-types-tag.mjs +0 -4
- package/fesm2022/primeng-types-terminal.mjs +0 -4
- package/fesm2022/primeng-types-textarea.mjs +0 -4
- package/fesm2022/primeng-types-tieredmenu.mjs +0 -4
- package/fesm2022/primeng-types-timeline.mjs +0 -4
- package/fesm2022/primeng-types-toast.mjs +0 -4
- package/fesm2022/primeng-types-togglebutton.mjs +0 -4
- package/fesm2022/primeng-types-toggleswitch.mjs +0 -4
- package/fesm2022/primeng-types-toolbar.mjs +0 -4
- package/fesm2022/primeng-types-tooltip.mjs +0 -4
- package/fesm2022/primeng-types-tree.mjs +0 -4
- package/fesm2022/primeng-types-treeselect.mjs +0 -4
- package/fesm2022/primeng-types-treetable.mjs +0 -4
- package/fesm2022/primeng-usestyle.mjs +105 -109
- package/fesm2022/primeng-usestyle.mjs.map +1 -1
- package/fesm2022/primeng-utils.mjs +238 -328
- package/fesm2022/primeng-utils.mjs.map +1 -1
- package/fesm2022/primeng.mjs +1 -5
- package/fesm2022/primeng.mjs.map +1 -1
- package/package.json +7 -2
- package/types/primeng-accordion.d.ts +289 -221
- package/types/primeng-animateonscroll.d.ts +89 -61
- package/types/primeng-api.d.ts +1760 -1790
- package/types/primeng-autocomplete.d.ts +1054 -757
- package/types/primeng-autofocus.d.ts +27 -24
- package/types/primeng-avatar.d.ts +153 -117
- package/types/primeng-avatargroup.d.ts +46 -43
- package/types/primeng-badge.d.ts +105 -81
- package/types/primeng-base.d.ts +49 -52
- package/types/primeng-basecomponent.d.ts +191 -174
- package/types/primeng-baseeditableholder.d.ts +63 -45
- package/types/primeng-baseinput.d.ts +122 -74
- package/types/primeng-basemodelholder.d.ts +9 -12
- package/types/primeng-bind.d.ts +36 -32
- package/types/primeng-blockui.d.ts +99 -80
- package/types/primeng-breadcrumb.d.ts +159 -133
- package/types/primeng-button.d.ts +690 -427
- package/types/primeng-buttongroup.d.ts +27 -33
- package/types/primeng-card.d.ts +131 -122
- package/types/primeng-carousel.d.ts +800 -632
- package/types/primeng-cascadeselect.d.ts +754 -565
- package/types/primeng-chart.d.ts +160 -116
- package/types/primeng-checkbox.d.ts +299 -211
- package/types/primeng-chip.d.ts +189 -147
- package/types/primeng-classnames.d.ts +23 -21
- package/types/primeng-colorpicker.d.ts +325 -272
- package/types/primeng-commandmenu.d.ts +213 -165
- package/types/primeng-compare.d.ts +267 -191
- package/types/primeng-config.d.ts +294 -304
- package/types/primeng-confirmdialog.d.ts +505 -328
- package/types/primeng-confirmpopup.d.ts +254 -214
- package/types/primeng-contextmenu.d.ts +522 -368
- package/types/primeng-dataview.d.ts +498 -345
- package/types/primeng-datepicker.d.ts +1269 -972
- package/types/primeng-dialog.d.ts +668 -465
- package/types/primeng-divider.d.ts +114 -100
- package/types/primeng-dock.d.ts +207 -175
- package/types/primeng-dom.d.ts +97 -100
- package/types/primeng-dragdrop.d.ts +142 -107
- package/types/primeng-drawer.d.ts +355 -257
- package/types/primeng-dynamicdialog.d.ts +528 -540
- package/types/primeng-editor.d.ts +211 -165
- package/types/primeng-fieldset.d.ts +199 -166
- package/types/primeng-fileupload.d.ts +727 -526
- package/types/primeng-floatlabel.d.ts +55 -51
- package/types/primeng-fluid.d.ts +37 -39
- package/types/primeng-focustrap.d.ts +30 -27
- package/types/primeng-galleria.d.ts +570 -433
- package/types/primeng-gallery.d.ts +754 -552
- package/types/primeng-iconfield.d.ts +54 -45
- package/types/primeng-icons-angledoubledown.d.ts +6 -9
- package/types/primeng-icons-angledoubleleft.d.ts +6 -9
- package/types/primeng-icons-angledoubleright.d.ts +6 -9
- package/types/primeng-icons-angledoubleup.d.ts +6 -9
- package/types/primeng-icons-angledown.d.ts +6 -9
- package/types/primeng-icons-angleleft.d.ts +6 -9
- package/types/primeng-icons-angleright.d.ts +6 -9
- package/types/primeng-icons-angleup.d.ts +6 -9
- package/types/primeng-icons-arrowdown.d.ts +8 -11
- package/types/primeng-icons-arrowdownleft.d.ts +6 -9
- package/types/primeng-icons-arrowdownright.d.ts +6 -9
- package/types/primeng-icons-arrowleft.d.ts +8 -11
- package/types/primeng-icons-arrowright.d.ts +6 -9
- package/types/primeng-icons-arrowup.d.ts +8 -11
- package/types/primeng-icons-ban.d.ts +8 -11
- package/types/primeng-icons-bars.d.ts +6 -9
- package/types/primeng-icons-baseicon.d.ts +24 -25
- package/types/primeng-icons-blank.d.ts +6 -9
- package/types/primeng-icons-calendar.d.ts +6 -9
- package/types/primeng-icons-caretleft.d.ts +6 -9
- package/types/primeng-icons-caretright.d.ts +6 -9
- package/types/primeng-icons-check.d.ts +6 -9
- package/types/primeng-icons-chevrondown.d.ts +6 -9
- package/types/primeng-icons-chevronleft.d.ts +6 -9
- package/types/primeng-icons-chevronright.d.ts +6 -9
- package/types/primeng-icons-chevronup.d.ts +6 -9
- package/types/primeng-icons-exclamationtriangle.d.ts +8 -11
- package/types/primeng-icons-eye.d.ts +6 -9
- package/types/primeng-icons-eyeslash.d.ts +8 -11
- package/types/primeng-icons-filter.d.ts +8 -11
- package/types/primeng-icons-filterfill.d.ts +6 -9
- package/types/primeng-icons-filterslash.d.ts +8 -11
- package/types/primeng-icons-home.d.ts +8 -11
- package/types/primeng-icons-infocircle.d.ts +8 -11
- package/types/primeng-icons-minus.d.ts +6 -9
- package/types/primeng-icons-pencil.d.ts +8 -11
- package/types/primeng-icons-plus.d.ts +8 -11
- package/types/primeng-icons-refresh.d.ts +8 -11
- package/types/primeng-icons-search.d.ts +8 -11
- package/types/primeng-icons-searchminus.d.ts +8 -11
- package/types/primeng-icons-searchplus.d.ts +8 -11
- package/types/primeng-icons-sortalt.d.ts +8 -11
- package/types/primeng-icons-sortamountdown.d.ts +8 -11
- package/types/primeng-icons-sortamountupalt.d.ts +8 -11
- package/types/primeng-icons-spinner.d.ts +8 -11
- package/types/primeng-icons-star.d.ts +8 -11
- package/types/primeng-icons-starfill.d.ts +8 -11
- package/types/primeng-icons-thlarge.d.ts +8 -11
- package/types/primeng-icons-times.d.ts +6 -9
- package/types/primeng-icons-timescircle.d.ts +8 -11
- package/types/primeng-icons-trash.d.ts +8 -11
- package/types/primeng-icons-undo.d.ts +8 -11
- package/types/primeng-icons-upload.d.ts +8 -11
- package/types/primeng-icons-windowmaximize.d.ts +8 -11
- package/types/primeng-icons-windowminimize.d.ts +8 -11
- package/types/primeng-icons.d.ts +53 -53
- package/types/primeng-iftalabel.d.ts +38 -40
- package/types/primeng-image.d.ts +404 -311
- package/types/primeng-imagecompare.d.ts +94 -80
- package/types/primeng-inplace.d.ts +126 -114
- package/types/primeng-inputcolor.d.ts +645 -508
- package/types/primeng-inputgroup.d.ts +42 -44
- package/types/primeng-inputgroupaddon.d.ts +31 -31
- package/types/primeng-inputicon.d.ts +38 -32
- package/types/primeng-inputmask.d.ts +520 -365
- package/types/primeng-inputnumber.d.ts +573 -408
- package/types/primeng-inputotp.d.ts +206 -159
- package/types/primeng-inputpassword.d.ts +60 -47
- package/types/primeng-inputtags.d.ts +453 -301
- package/types/primeng-inputtext.d.ts +130 -96
- package/types/primeng-keyfilter.d.ts +62 -53
- package/types/primeng-knob.d.ts +257 -186
- package/types/primeng-label.d.ts +37 -39
- package/types/primeng-license.d.ts +1 -3
- package/types/primeng-listbox.d.ts +1040 -786
- package/types/primeng-megamenu.d.ts +536 -386
- package/types/primeng-menu.d.ts +478 -363
- package/types/primeng-menubar.d.ts +495 -354
- package/types/primeng-message.d.ts +192 -151
- package/types/primeng-metergroup.d.ts +249 -189
- package/types/primeng-motion.d.ts +601 -385
- package/types/primeng-multiselect.d.ts +1193 -861
- package/types/primeng-orderlist.d.ts +539 -393
- package/types/primeng-organizationchart.d.ts +236 -195
- package/types/primeng-overlay.d.ts +394 -294
- package/types/primeng-overlaybadge.d.ts +95 -64
- package/types/primeng-paginator.d.ts +410 -314
- package/types/primeng-panel.d.ts +267 -217
- package/types/primeng-panelmenu.d.ts +255 -231
- package/types/primeng-passthrough.d.ts +5 -7
- package/types/primeng-password.d.ts +606 -433
- package/types/primeng-picklist.d.ts +1042 -759
- package/types/primeng-popover.d.ts +235 -176
- package/types/primeng-progressbar.d.ts +131 -102
- package/types/primeng-progressspinner.d.ts +145 -111
- package/types/primeng-radiobutton.d.ts +219 -171
- package/types/primeng-rating.d.ts +240 -192
- package/types/primeng-ripple.d.ts +39 -45
- package/types/primeng-scrollarea.d.ts +292 -243
- package/types/primeng-scroller.d.ts +523 -390
- package/types/primeng-scrollpanel.d.ts +135 -131
- package/types/primeng-scrolltop.d.ts +170 -126
- package/types/primeng-select.d.ts +1014 -741
- package/types/primeng-selectbutton.d.ts +239 -167
- package/types/primeng-sidebar.d.ts +793 -562
- package/types/primeng-skeleton.d.ts +116 -87
- package/types/primeng-slider.d.ts +378 -311
- package/types/primeng-speeddial.d.ts +495 -375
- package/types/primeng-splitbutton.d.ts +382 -243
- package/types/primeng-splitter.d.ts +392 -301
- package/types/primeng-stepper.d.ts +417 -257
- package/types/primeng-steps.d.ts +158 -137
- package/types/primeng-styleclass.d.ts +163 -105
- package/types/primeng-table.d.ts +2898 -1912
- package/types/primeng-tabs.d.ts +463 -307
- package/types/primeng-tag.d.ts +107 -88
- package/types/primeng-terminal.d.ts +132 -120
- package/types/primeng-textarea.d.ts +146 -110
- package/types/primeng-tieredmenu.d.ts +573 -401
- package/types/primeng-timeline.d.ts +126 -112
- package/types/primeng-toast.d.ts +313 -252
- package/types/primeng-togglebutton.d.ts +255 -185
- package/types/primeng-toggleswitch.d.ts +190 -144
- package/types/primeng-toolbar.d.ts +83 -79
- package/types/primeng-tooltip.d.ts +335 -235
- package/types/primeng-tree.d.ts +763 -562
- package/types/primeng-treeselect.d.ts +750 -544
- package/types/primeng-treetable.d.ts +1839 -1315
- package/types/primeng-ts-helpers.d.ts +4 -6
- package/types/primeng-types-accordion.d.ts +58 -62
- package/types/primeng-types-autocomplete.d.ts +230 -233
- package/types/primeng-types-avatar.d.ts +25 -28
- package/types/primeng-types-avatargroup.d.ts +11 -14
- package/types/primeng-types-badge.d.ts +13 -16
- package/types/primeng-types-blockui.d.ts +18 -21
- package/types/primeng-types-breadcrumb.d.ts +65 -68
- package/types/primeng-types-button.d.ts +106 -109
- package/types/primeng-types-card.d.ts +54 -57
- package/types/primeng-types-carousel.d.ts +143 -146
- package/types/primeng-types-cascadeselect.d.ts +186 -192
- package/types/primeng-types-chart.d.ts +34 -39
- package/types/primeng-types-checkbox.d.ts +52 -55
- package/types/primeng-types-chip.d.ts +48 -51
- package/types/primeng-types-colorpicker.d.ts +59 -62
- package/types/primeng-types-commandmenu.d.ts +98 -101
- package/types/primeng-types-compare.d.ts +33 -36
- package/types/primeng-types-confirmdialog.d.ts +124 -127
- package/types/primeng-types-confirmpopup.d.ts +75 -78
- package/types/primeng-types-contextmenu.d.ts +100 -103
- package/types/primeng-types-dataview.d.ts +180 -183
- package/types/primeng-types-datepicker.d.ts +442 -445
- package/types/primeng-types-dialog.d.ts +93 -96
- package/types/primeng-types-divider.d.ts +14 -17
- package/types/primeng-types-dock.d.ts +45 -48
- package/types/primeng-types-drawer.d.ts +62 -65
- package/types/primeng-types-editor.d.ts +143 -146
- package/types/primeng-types-fieldset.d.ts +83 -87
- package/types/primeng-types-fileupload.d.ts +296 -301
- package/types/primeng-types-floatlabel.d.ts +12 -15
- package/types/primeng-types-fluid.d.ts +11 -14
- package/types/primeng-types-galleria.d.ts +209 -212
- package/types/primeng-types-gallery.d.ts +195 -198
- package/types/primeng-types-iconfield.d.ts +12 -15
- package/types/primeng-types-iftalabel.d.ts +11 -14
- package/types/primeng-types-image.d.ts +118 -121
- package/types/primeng-types-imagecompare.d.ts +22 -25
- package/types/primeng-types-inplace.d.ts +46 -49
- package/types/primeng-types-inputcolor.d.ts +86 -89
- package/types/primeng-types-inputgroup.d.ts +11 -14
- package/types/primeng-types-inputgroupaddon.d.ts +11 -14
- package/types/primeng-types-inputicon.d.ts +11 -14
- package/types/primeng-types-inputmask.d.ts +30 -33
- package/types/primeng-types-inputnumber.d.ts +72 -75
- package/types/primeng-types-inputotp.d.ts +67 -70
- package/types/primeng-types-inputpassword.d.ts +7 -10
- package/types/primeng-types-inputtags.d.ts +122 -125
- package/types/primeng-types-inputtext.d.ts +7 -10
- package/types/primeng-types-knob.d.ts +23 -26
- package/types/primeng-types-label.d.ts +7 -10
- package/types/primeng-types-listbox.d.ts +262 -266
- package/types/primeng-types-megamenu.d.ts +135 -138
- package/types/primeng-types-menu.d.ts +98 -101
- package/types/primeng-types-menubar.d.ts +122 -125
- package/types/primeng-types-message.d.ts +69 -72
- package/types/primeng-types-metergroup.d.ts +137 -140
- package/types/primeng-types-motion.d.ts +11 -14
- package/types/primeng-types-multiselect.d.ts +329 -333
- package/types/primeng-types-orderlist.d.ts +126 -129
- package/types/primeng-types-organizationchart.d.ts +147 -153
- package/types/primeng-types-overlay.d.ts +31 -34
- package/types/primeng-types-overlaybadge.d.ts +17 -20
- package/types/primeng-types-paginator.d.ts +131 -134
- package/types/primeng-types-panel.d.ts +91 -95
- package/types/primeng-types-panelmenu.d.ts +150 -153
- package/types/primeng-types-password.d.ts +94 -97
- package/types/primeng-types-picklist.d.ts +250 -260
- package/types/primeng-types-popover.d.ts +33 -36
- package/types/primeng-types-progressbar.d.ts +33 -36
- package/types/primeng-types-progressspinner.d.ts +27 -30
- package/types/primeng-types-radiobutton.d.ts +29 -32
- package/types/primeng-types-rating.d.ts +62 -65
- package/types/primeng-types-scrollarea.d.ts +35 -38
- package/types/primeng-types-scroller.d.ts +142 -146
- package/types/primeng-types-scrollpanel.d.ts +31 -34
- package/types/primeng-types-scrolltop.d.ts +37 -40
- package/types/primeng-types-select.d.ts +251 -254
- package/types/primeng-types-selectbutton.d.ts +56 -59
- package/types/primeng-types-shared.d.ts +6 -9
- package/types/primeng-types-sidebar.d.ts +105 -108
- package/types/primeng-types-skeleton.d.ts +11 -14
- package/types/primeng-types-slider.d.ts +59 -62
- package/types/primeng-types-speeddial.d.ts +71 -74
- package/types/primeng-types-splitbutton.d.ts +35 -38
- package/types/primeng-types-splitter.d.ts +58 -63
- package/types/primeng-types-stepper.d.ts +77 -80
- package/types/primeng-types-table.d.ts +743 -749
- package/types/primeng-types-tabs.d.ts +48 -51
- package/types/primeng-types-tag.d.ts +27 -30
- package/types/primeng-types-terminal.d.ts +43 -46
- package/types/primeng-types-textarea.d.ts +11 -14
- package/types/primeng-types-tieredmenu.d.ts +154 -157
- package/types/primeng-types-timeline.d.ts +60 -63
- package/types/primeng-types-toast.d.ts +92 -95
- package/types/primeng-types-togglebutton.d.ts +52 -55
- package/types/primeng-types-toggleswitch.d.ts +41 -44
- package/types/primeng-types-toolbar.d.ts +34 -37
- package/types/primeng-types-tooltip.d.ts +17 -20
- package/types/primeng-types-tree.d.ts +237 -246
- package/types/primeng-types-treeselect.d.ts +198 -202
- package/types/primeng-types-treetable.d.ts +492 -497
- package/types/primeng-usestyle.d.ts +28 -31
- package/types/primeng-utils.d.ts +37 -40
- package/types/primeng.d.ts +2 -2
- package/fesm2022/primeng-icons.mjs.map +0 -1
- package/fesm2022/primeng-ts-helpers.mjs.map +0 -1
- package/fesm2022/primeng-types-accordion.mjs.map +0 -1
- package/fesm2022/primeng-types-autocomplete.mjs.map +0 -1
- package/fesm2022/primeng-types-avatar.mjs.map +0 -1
- package/fesm2022/primeng-types-avatargroup.mjs.map +0 -1
- package/fesm2022/primeng-types-badge.mjs.map +0 -1
- package/fesm2022/primeng-types-blockui.mjs.map +0 -1
- package/fesm2022/primeng-types-breadcrumb.mjs.map +0 -1
- package/fesm2022/primeng-types-button.mjs.map +0 -1
- package/fesm2022/primeng-types-card.mjs.map +0 -1
- package/fesm2022/primeng-types-carousel.mjs.map +0 -1
- package/fesm2022/primeng-types-cascadeselect.mjs.map +0 -1
- package/fesm2022/primeng-types-chart.mjs.map +0 -1
- package/fesm2022/primeng-types-checkbox.mjs.map +0 -1
- package/fesm2022/primeng-types-chip.mjs.map +0 -1
- package/fesm2022/primeng-types-colorpicker.mjs.map +0 -1
- package/fesm2022/primeng-types-commandmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-compare.mjs.map +0 -1
- package/fesm2022/primeng-types-confirmdialog.mjs.map +0 -1
- package/fesm2022/primeng-types-confirmpopup.mjs.map +0 -1
- package/fesm2022/primeng-types-contextmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-dataview.mjs.map +0 -1
- package/fesm2022/primeng-types-datepicker.mjs.map +0 -1
- package/fesm2022/primeng-types-dialog.mjs.map +0 -1
- package/fesm2022/primeng-types-divider.mjs.map +0 -1
- package/fesm2022/primeng-types-dock.mjs.map +0 -1
- package/fesm2022/primeng-types-drawer.mjs.map +0 -1
- package/fesm2022/primeng-types-editor.mjs.map +0 -1
- package/fesm2022/primeng-types-fieldset.mjs.map +0 -1
- package/fesm2022/primeng-types-fileupload.mjs.map +0 -1
- package/fesm2022/primeng-types-floatlabel.mjs.map +0 -1
- package/fesm2022/primeng-types-fluid.mjs.map +0 -1
- package/fesm2022/primeng-types-galleria.mjs.map +0 -1
- package/fesm2022/primeng-types-gallery.mjs.map +0 -1
- package/fesm2022/primeng-types-iconfield.mjs.map +0 -1
- package/fesm2022/primeng-types-iftalabel.mjs.map +0 -1
- package/fesm2022/primeng-types-image.mjs.map +0 -1
- package/fesm2022/primeng-types-imagecompare.mjs.map +0 -1
- package/fesm2022/primeng-types-inplace.mjs.map +0 -1
- package/fesm2022/primeng-types-inputcolor.mjs.map +0 -1
- package/fesm2022/primeng-types-inputgroup.mjs.map +0 -1
- package/fesm2022/primeng-types-inputgroupaddon.mjs.map +0 -1
- package/fesm2022/primeng-types-inputicon.mjs.map +0 -1
- package/fesm2022/primeng-types-inputmask.mjs.map +0 -1
- package/fesm2022/primeng-types-inputnumber.mjs.map +0 -1
- package/fesm2022/primeng-types-inputotp.mjs.map +0 -1
- package/fesm2022/primeng-types-inputpassword.mjs.map +0 -1
- package/fesm2022/primeng-types-inputtags.mjs.map +0 -1
- package/fesm2022/primeng-types-inputtext.mjs.map +0 -1
- package/fesm2022/primeng-types-knob.mjs.map +0 -1
- package/fesm2022/primeng-types-label.mjs.map +0 -1
- package/fesm2022/primeng-types-listbox.mjs.map +0 -1
- package/fesm2022/primeng-types-megamenu.mjs.map +0 -1
- package/fesm2022/primeng-types-menu.mjs.map +0 -1
- package/fesm2022/primeng-types-menubar.mjs.map +0 -1
- package/fesm2022/primeng-types-message.mjs.map +0 -1
- package/fesm2022/primeng-types-metergroup.mjs.map +0 -1
- package/fesm2022/primeng-types-motion.mjs.map +0 -1
- package/fesm2022/primeng-types-multiselect.mjs.map +0 -1
- package/fesm2022/primeng-types-orderlist.mjs.map +0 -1
- package/fesm2022/primeng-types-organizationchart.mjs.map +0 -1
- package/fesm2022/primeng-types-overlay.mjs.map +0 -1
- package/fesm2022/primeng-types-overlaybadge.mjs.map +0 -1
- package/fesm2022/primeng-types-paginator.mjs.map +0 -1
- package/fesm2022/primeng-types-panel.mjs.map +0 -1
- package/fesm2022/primeng-types-panelmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-password.mjs.map +0 -1
- package/fesm2022/primeng-types-picklist.mjs.map +0 -1
- package/fesm2022/primeng-types-popover.mjs.map +0 -1
- package/fesm2022/primeng-types-progressbar.mjs.map +0 -1
- package/fesm2022/primeng-types-progressspinner.mjs.map +0 -1
- package/fesm2022/primeng-types-radiobutton.mjs.map +0 -1
- package/fesm2022/primeng-types-rating.mjs.map +0 -1
- package/fesm2022/primeng-types-scrollarea.mjs.map +0 -1
- package/fesm2022/primeng-types-scroller.mjs.map +0 -1
- package/fesm2022/primeng-types-scrollpanel.mjs.map +0 -1
- package/fesm2022/primeng-types-scrolltop.mjs.map +0 -1
- package/fesm2022/primeng-types-select.mjs.map +0 -1
- package/fesm2022/primeng-types-selectbutton.mjs.map +0 -1
- package/fesm2022/primeng-types-shared.mjs.map +0 -1
- package/fesm2022/primeng-types-sidebar.mjs.map +0 -1
- package/fesm2022/primeng-types-skeleton.mjs.map +0 -1
- package/fesm2022/primeng-types-slider.mjs.map +0 -1
- package/fesm2022/primeng-types-speeddial.mjs.map +0 -1
- package/fesm2022/primeng-types-splitbutton.mjs.map +0 -1
- package/fesm2022/primeng-types-splitter.mjs.map +0 -1
- package/fesm2022/primeng-types-stepper.mjs.map +0 -1
- package/fesm2022/primeng-types-table.mjs.map +0 -1
- package/fesm2022/primeng-types-tabs.mjs.map +0 -1
- package/fesm2022/primeng-types-tag.mjs.map +0 -1
- package/fesm2022/primeng-types-terminal.mjs.map +0 -1
- package/fesm2022/primeng-types-textarea.mjs.map +0 -1
- package/fesm2022/primeng-types-tieredmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-timeline.mjs.map +0 -1
- package/fesm2022/primeng-types-toast.mjs.map +0 -1
- package/fesm2022/primeng-types-togglebutton.mjs.map +0 -1
- package/fesm2022/primeng-types-toggleswitch.mjs.map +0 -1
- package/fesm2022/primeng-types-toolbar.mjs.map +0 -1
- package/fesm2022/primeng-types-tooltip.mjs.map +0 -1
- package/fesm2022/primeng-types-tree.mjs.map +0 -1
- package/fesm2022/primeng-types-treeselect.mjs.map +0 -1
- package/fesm2022/primeng-types-treetable.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-gallery.mjs","sources":["../../src/gallery/style/gallerystyle.ts","../../src/gallery/gallery-item.ts","../../src/gallery/gallery-header.ts","../../src/gallery/gallery-content.ts","../../src/gallery/gallery-footer.ts","../../src/gallery/gallery-backdrop.ts","../../src/gallery/gallery-toolbar.ts","../../src/gallery/gallery-toolbar-item.ts","../../src/gallery/gallery-prev.ts","../../src/gallery/gallery-next.ts","../../src/gallery/gallery-zoom-in.ts","../../src/gallery/gallery-zoom-out.ts","../../src/gallery/gallery-zoom-toggle.ts","../../src/gallery/gallery-rotate-left.ts","../../src/gallery/gallery-rotate-right.ts","../../src/gallery/gallery-flip-x.ts","../../src/gallery/gallery-flip-y.ts","../../src/gallery/gallery-full-screen.ts","../../src/gallery/gallery-download.ts","../../src/gallery/gallery-thumbnail-item.ts","../../src/gallery/gallery-thumbnail.ts","../../src/gallery/gallery-thumbnail-content.ts","../../src/gallery/gallery.ts","../../src/gallery/primeng-gallery.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/gallery';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-gallery',\n backdrop: 'p-gallery-backdrop',\n header: 'p-gallery-header',\n footer: 'p-gallery-footer',\n content: 'p-gallery-content',\n item: 'p-gallery-item',\n next: 'p-gallery-next',\n prev: 'p-gallery-prev',\n toolbar: 'p-gallery-toolbar',\n toolbarItem: 'p-gallery-toolbar-item',\n zoomIn: 'p-gallery-action',\n zoomOut: 'p-gallery-action',\n zoomToggle: 'p-gallery-action',\n rotateLeft: 'p-gallery-action',\n rotateRight: 'p-gallery-action',\n flipX: 'p-gallery-action',\n flipY: 'p-gallery-action',\n download: 'p-gallery-action',\n fullScreen: 'p-gallery-action',\n thumbnail: 'p-gallery-thumbnail',\n thumbnailContent: 'p-gallery-thumbnail-content',\n thumbnailItem: 'p-gallery-thumbnail-item'\n};\n\n@Injectable()\nexport class GalleryStyle extends BaseStyle {\n name = 'gallery';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Gallery groups a collection of contents in items.\n *\n * [Live Demo](https://www.primeng.org/gallery/)\n *\n * @module gallerystyle\n *\n */\nexport enum GalleryClasses {\n /**\n * Class name of the root element\n */\n root = 'p-gallery',\n /**\n * Class name of the backdrop element\n */\n backdrop = 'p-gallery-backdrop',\n /**\n * Class name of the header element\n */\n header = 'p-gallery-header',\n /**\n * Class name of the footer element\n */\n footer = 'p-gallery-footer',\n /**\n * Class name of the content element\n */\n content = 'p-gallery-content',\n /**\n * Class name of the item element\n */\n item = 'p-gallery-item',\n /**\n * Class name of the next button element\n */\n next = 'p-gallery-next',\n /**\n * Class name of the prev button element\n */\n prev = 'p-gallery-prev',\n /**\n * Class name of the toolbar element\n */\n toolbar = 'p-gallery-toolbar',\n /**\n * Class name of the toolbar item element\n */\n toolbarItem = 'p-gallery-toolbar-item',\n /**\n * Class name of the action element\n */\n action = 'p-gallery-action',\n /**\n * Class name of the thumbnail element\n */\n thumbnail = 'p-gallery-thumbnail',\n /**\n * Class name of the thumbnail content element\n */\n thumbnailContent = 'p-gallery-thumbnail-content',\n /**\n * Class name of the thumbnail item element\n */\n thumbnailItem = 'p-gallery-thumbnail-item'\n}\n\nexport interface GalleryStyleType extends BaseStyle {}\n","import { afterNextRender, ChangeDetectionStrategy, Component, computed, DestroyRef, effect, inject, input, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { GalleryItemPassThrough } from 'primeng/types/gallery';\nimport { Gallery } from './gallery';\n\n/**\n * GalleryItem represents an individual item in the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-item',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryItem }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('item')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'item'\",\n '[attr.data-index]': 'index()',\n '[attr.data-active]': \"isActive() ? '' : null\",\n '[attr.data-rotating]': \"isRotating() ? '' : null\",\n '[style.--px-position-x]': 'stylePositionX()',\n '[style.--px-position-y]': 'stylePositionY()',\n '[style.--px-scale]': 'scale()',\n '[style.--px-rotation]': 'styleRotation()',\n '[style.--px-flip-x]': 'styleFlipX()',\n '[style.--px-flip-y]': 'styleFlipY()',\n '(click)': 'handleClick($event)',\n '(pointerdown)': 'handlePointerDown($event)',\n '(pointermove)': 'handlePointerMove($event)',\n '(pointerup)': 'handlePointerUp($event)',\n '(dragstart)': 'handleDragStart($event)'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryItem extends BaseComponent<GalleryItemPassThrough> {\n componentName = 'GalleryItem';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * The normal scale of the gallery item.\n * @group Props\n * @defaultValue 1\n */\n normalScale = input(1, { transform: numberAttribute });\n\n /**\n * The zoomed scale of the gallery item.\n * @group Props\n * @defaultValue 3\n */\n zoomedScale = input(3, { transform: numberAttribute });\n\n gallery = inject(Gallery);\n\n private _destroyRef = inject(DestroyRef);\n\n index = signal(-1);\n\n isActive = computed(() => this.gallery.activeIndex() === this.index());\n\n dataActive = computed(() => (this.isActive() ? 'true' : 'false'));\n\n stylePositionX = computed(() => this.position().x + 'px');\n\n stylePositionY = computed(() => this.position().y + 'px');\n\n styleRotation = computed(() => this.rotation() + 'deg');\n\n styleFlipX = computed(() => this.flip().x);\n\n styleFlipY = computed(() => this.flip().y);\n\n position = signal({ x: 0, y: 0 });\n\n scale = signal(1);\n\n rotation = signal(0);\n\n isRotating = signal(false);\n\n flip = signal({ x: 1, y: 1 });\n\n private registeredIndex: number | null = null;\n\n private pointerData = new Map<number, { x: number; y: number }>();\n\n private pointerStart = { x: 0, y: 0 };\n\n private initialPinchDistance = 0;\n\n private initialPinchScale = 1;\n\n private liveScale = 1;\n\n private livePosition = { x: 0, y: 0 };\n\n private isDragging = false;\n\n private dragStart = { x: 0, y: 0 };\n\n private hasDragged = false;\n\n private wheelSyncTimer: ReturnType<typeof setTimeout> | null = null;\n\n private wheelListener: (() => void) | null = null;\n\n private resizeListener: (() => void) | null = null;\n\n private imageLoadListener: (() => void) | null = null;\n\n constructor() {\n super();\n afterNextRender(() => {\n const newIndex = this.gallery.registerItem(this.registeredIndex);\n this.registeredIndex = newIndex;\n if (newIndex !== this.index()) {\n this.index.set(newIndex);\n }\n this.setupWheelListener();\n this.setupResizeListener();\n this.setupImageLoadListener();\n });\n\n // Watch activeIndex to recalculate item size\n effect(() => {\n const activeIndex = this.gallery.activeIndex();\n const idx = this.index();\n if (activeIndex === idx) {\n this.calculateItemSize();\n }\n });\n\n // Watch rotation changes to recalculate item size\n effect(() => {\n this.rotation(); // track rotation\n const activeIndex = this.gallery.activeIndex();\n const idx = this.index();\n if (activeIndex === idx) {\n this.calculateItemSize();\n }\n });\n\n // Watch fullscreen changes to recalculate item size\n effect(() => {\n this.gallery.isFullscreen(); // track fullscreen\n const activeIndex = this.gallery.activeIndex();\n const idx = this.index();\n if (activeIndex === idx) {\n this.calculateItemSize();\n }\n });\n\n // Watch pendingAction and execute on active item\n effect(() => {\n const action = this.gallery.pendingAction();\n if (!action || !this.isActive()) return;\n\n switch (action.type) {\n case 'zoom-in':\n this.zoomIn();\n break;\n case 'zoom-out':\n this.zoomOut();\n break;\n case 'rotate-left':\n this.rotateLeft();\n break;\n case 'rotate-right':\n this.rotateRight();\n break;\n case 'flip-x':\n this.flipX();\n break;\n case 'flip-y':\n this.flipY();\n break;\n case 'download':\n this.download();\n break;\n }\n\n this.gallery.clearPendingAction();\n });\n\n // Report item state to gallery\n effect(() => {\n const active = this.isActive();\n const s = this.scale();\n const r = this.rotation();\n const f = this.flip();\n const ns = this.normalScale();\n if (active) {\n this.gallery.reportItemState({\n zoomed: s > ns,\n rotated: r !== 0,\n flipped: f.x === -1 || f.y === -1,\n scale: s,\n rotation: r,\n flip: f\n });\n }\n });\n\n // Sync liveScale/livePosition with signals (for toolbar-triggered changes)\n effect(() => {\n this.liveScale = this.scale();\n });\n\n effect(() => {\n const p = this.position();\n this.livePosition = { x: p.x, y: p.y };\n });\n\n // Reset position when scale <= 1\n effect(() => {\n if (this.scale() <= 1) {\n this.position.set({ x: 0, y: 0 });\n }\n });\n\n this._destroyRef.onDestroy(() => {\n this.wheelListener?.();\n this.resizeListener?.();\n this.imageLoadListener?.();\n if (this.rotateTimer) {\n clearTimeout(this.rotateTimer);\n }\n if (this.wheelSyncTimer) {\n clearTimeout(this.wheelSyncTimer);\n }\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n private setupImageLoadListener() {\n const el = this.$el as HTMLElement;\n const imageElement = el.querySelector('img') as HTMLImageElement;\n if (!imageElement) return;\n\n if (imageElement.complete && imageElement.naturalWidth > 0) {\n this.calculateItemSize();\n }\n\n const handler = () => {\n this.calculateItemSize();\n };\n imageElement.addEventListener('load', handler);\n this.imageLoadListener = () => imageElement.removeEventListener('load', handler);\n }\n\n private setupWheelListener() {\n const el = this.$el as HTMLElement;\n const handler = (e: WheelEvent) => {\n if (!e.ctrlKey || !this.isActive()) return;\n\n e.preventDefault();\n el.style.transition = 'none';\n\n const delta = -e.deltaY;\n const scaleFactor = 1 + delta * 0.01;\n const newScale = Math.max(this.normalScale(), Math.min(this.zoomedScale(), this.liveScale * scaleFactor));\n\n const constraints = this.calculateConstraints(newScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, this.livePosition.x));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, this.livePosition.y));\n\n this.liveScale = newScale;\n this.livePosition = { x: constrainedX, y: constrainedY };\n\n el.style.setProperty('--px-scale', `${newScale}`);\n el.style.setProperty('--px-position-x', `${constrainedX}px`);\n el.style.setProperty('--px-position-y', `${constrainedY}px`);\n\n if (this.wheelSyncTimer) {\n clearTimeout(this.wheelSyncTimer);\n }\n\n this.wheelSyncTimer = setTimeout(() => {\n el.style.transition = '';\n el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n this.scale.set(this.liveScale);\n this.position.set(this.livePosition);\n this.wheelSyncTimer = null;\n }, 150);\n };\n\n el.addEventListener('wheel', handler, { passive: false });\n this.wheelListener = () => el.removeEventListener('wheel', handler);\n }\n\n private setupResizeListener() {\n const handler = () => {\n if (this.gallery.activeIndex() === this.index()) {\n this.calculateItemSize();\n }\n };\n window.addEventListener('resize', handler);\n this.resizeListener = () => window.removeEventListener('resize', handler);\n }\n\n calculateItemSize() {\n const contentEl = this.gallery.contentEl();\n const el = this.$el as HTMLElement;\n if (!contentEl || !el) return;\n\n const contentRect = contentEl.getBoundingClientRect();\n const imageElement = el.firstElementChild as HTMLImageElement;\n if (!imageElement) return;\n\n let naturalWidth = imageElement.naturalWidth || imageElement.offsetWidth;\n let naturalHeight = imageElement.naturalHeight || imageElement.offsetHeight;\n if (naturalWidth === 0 || naturalHeight === 0) return;\n\n const isRotated = Math.abs(this.rotation()) % 180 === 90;\n\n if (isRotated) {\n [naturalWidth, naturalHeight] = [naturalHeight, naturalWidth];\n }\n\n const naturalAspectRatio = naturalWidth / naturalHeight;\n const contentAspectRatio = contentRect.width / contentRect.height;\n\n let targetWidth: number, targetHeight: number;\n\n if (naturalAspectRatio > contentAspectRatio) {\n targetWidth = Math.min(contentRect.width * 0.99, naturalWidth);\n targetHeight = targetWidth / naturalAspectRatio;\n } else {\n targetHeight = Math.min(contentRect.height * 0.99, naturalHeight);\n targetWidth = targetHeight * naturalAspectRatio;\n }\n\n if (isRotated) {\n imageElement.style.width = `${targetHeight}px`;\n imageElement.style.height = `${targetWidth}px`;\n el.style.width = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n el.style.height = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n } else {\n imageElement.style.width = `${targetWidth}px`;\n imageElement.style.height = `${targetHeight}px`;\n el.style.width = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n el.style.height = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n }\n\n el.style.aspectRatio = `${naturalWidth / naturalHeight}`;\n }\n\n calculateConstraints(targetScale?: number) {\n const contentEl = this.gallery.contentEl();\n const el = this.$el as HTMLElement;\n if (!contentEl || !el) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n const contentRect = contentEl.getBoundingClientRect();\n const scaleToUse = targetScale !== undefined ? targetScale : this.liveScale;\n\n const itemElement = el.firstElementChild as HTMLElement;\n if (!itemElement) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n let originalWidth = itemElement.offsetWidth;\n let originalHeight = itemElement.offsetHeight;\n\n const isRotated = Math.abs(this.rotation()) % 180 === 90;\n if (isRotated) {\n [originalWidth, originalHeight] = [originalHeight, originalWidth];\n }\n\n const scaledWidth = originalWidth * scaleToUse;\n const scaledHeight = originalHeight * scaleToUse;\n\n const contentCenterX = contentRect.width / 2;\n const contentCenterY = contentRect.height / 2;\n\n const halfScaledWidth = scaledWidth / 2;\n const halfScaledHeight = scaledHeight / 2;\n\n const maxX = halfScaledWidth > contentCenterX ? halfScaledWidth - contentCenterX : 0;\n const minX = halfScaledWidth > contentCenterX ? -(halfScaledWidth - contentCenterX) : 0;\n\n const maxY = halfScaledHeight > contentCenterY ? halfScaledHeight - contentCenterY : 0;\n const minY = halfScaledHeight > contentCenterY ? -(halfScaledHeight - contentCenterY) : 0;\n\n return { minX, maxX, minY, maxY };\n }\n\n zoomIn() {\n this.scale.set(this.zoomedScale());\n const el = this.$el as HTMLElement;\n if (el) {\n el.style.cursor = 'zoom-out';\n }\n }\n\n zoomOut() {\n this.scale.set(this.normalScale());\n this.position.set({ x: 0, y: 0 });\n const el = this.$el as HTMLElement;\n if (el) {\n el.style.cursor = 'zoom-in';\n }\n }\n\n rotateLeft() {\n this.markRotating();\n this.rotation.update((prev) => prev - 90);\n }\n\n rotateRight() {\n this.markRotating();\n this.rotation.update((prev) => prev + 90);\n }\n\n private rotateTimer: ReturnType<typeof setTimeout> | null = null;\n\n private markRotating() {\n this.isRotating.set(true);\n const el = this.$el as HTMLElement | null;\n if (el) el.style.transition = '';\n if (this.rotateTimer) clearTimeout(this.rotateTimer);\n this.rotateTimer = setTimeout(() => this.isRotating.set(false), 300);\n }\n\n flipX() {\n this.flip.update((prev) => ({ ...prev, x: Math.sign(prev.x) * -1 }));\n }\n\n flipY() {\n this.flip.update((prev) => ({ ...prev, y: Math.sign(prev.y) * -1 }));\n }\n\n download() {\n const el = this.$el as HTMLElement;\n if (!el) return;\n\n const imageElement = el.querySelector('img') as HTMLImageElement;\n if (!imageElement || !imageElement.src) return;\n\n const link = document.createElement('a');\n link.href = imageElement.src;\n\n const urlParts = imageElement.src.split('/');\n const filename = urlParts[urlParts.length - 1] || 'image.jpg';\n\n link.download = filename;\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n handleClick(e: MouseEvent) {\n if (this.hasDragged) {\n this.hasDragged = false;\n return;\n }\n\n const el = this.$el as HTMLElement;\n\n if (this.liveScale === this.normalScale()) {\n if (el) {\n const itemRect = el.getBoundingClientRect();\n const itemCenterX = itemRect.width / 2;\n const itemCenterY = itemRect.height / 2;\n\n const clickX = e.clientX - itemRect.left;\n const clickY = e.clientY - itemRect.top;\n\n const offsetX = itemCenterX - clickX;\n const offsetY = itemCenterY - clickY;\n\n const zoomedScale = this.zoomedScale();\n const zoomOffsetX = offsetX * (zoomedScale - 1);\n const zoomOffsetY = offsetY * (zoomedScale - 1);\n\n const constraints = this.calculateConstraints(zoomedScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, zoomOffsetX));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, zoomOffsetY));\n\n this.position.set({ x: constrainedX, y: constrainedY });\n }\n this.zoomIn();\n } else {\n this.zoomOut();\n }\n }\n\n handleDragStart(e: DragEvent) {\n e.preventDefault();\n }\n\n handlePointerDown(e: PointerEvent) {\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this.pointerData.set(e.pointerId, { x: e.clientX, y: e.clientY });\n this.pointerStart = { x: e.clientX, y: e.clientY };\n\n if (e.pointerType === 'touch' && this.pointerData.size >= 2) {\n this.isDragging = false;\n this.initialPinchDistance = 0;\n this.initialPinchScale = this.liveScale;\n } else if (this.liveScale > 1) {\n if (e.pointerType === 'mouse' || (e.pointerType === 'touch' && this.pointerData.size === 1)) {\n this.isDragging = true;\n this.dragStart = { x: e.clientX - this.livePosition.x, y: e.clientY - this.livePosition.y };\n this.hasDragged = false;\n }\n }\n }\n\n handlePointerMove(e: PointerEvent) {\n if (!this.pointerData.has(e.pointerId)) return;\n\n const el = this.$el as HTMLElement;\n if (!el) return;\n\n el.style.transition = 'none';\n\n if (e.pointerType === 'mouse' && !el.style.cursor) {\n el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n }\n\n this.pointerData.set(e.pointerId, { x: e.clientX, y: e.clientY });\n\n const pointers = Array.from(this.pointerData.values());\n\n if (pointers.length === 2) {\n const [p1, p2] = pointers;\n const distance = Math.hypot(p2.x - p1.x, p2.y - p1.y);\n\n this.hasDragged = true;\n\n if (this.initialPinchDistance === 0) {\n this.initialPinchDistance = distance;\n this.initialPinchScale = this.liveScale;\n } else {\n const ratio = distance / this.initialPinchDistance;\n const newScale = Math.max(this.normalScale(), Math.min(this.zoomedScale(), this.initialPinchScale * ratio));\n\n const constraints = this.calculateConstraints(newScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, this.livePosition.x));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, this.livePosition.y));\n\n this.liveScale = newScale;\n this.livePosition = { x: constrainedX, y: constrainedY };\n\n el.style.setProperty('--px-scale', `${newScale}`);\n el.style.setProperty('--px-position-x', `${constrainedX}px`);\n el.style.setProperty('--px-position-y', `${constrainedY}px`);\n }\n } else if (pointers.length === 1 && this.isDragging) {\n const pointer = pointers[0];\n const newX = pointer.x - this.dragStart.x;\n const newY = pointer.y - this.dragStart.y;\n const constraints = this.calculateConstraints(this.liveScale);\n\n const computedX = Math.max(constraints.minX, Math.min(constraints.maxX, newX));\n const computedY = Math.max(constraints.minY, Math.min(constraints.maxY, newY));\n\n this.livePosition = { x: computedX, y: computedY };\n\n el.style.setProperty('--px-position-x', `${computedX}px`);\n el.style.setProperty('--px-position-y', `${computedY}px`);\n\n const distFromStart = Math.hypot(pointer.x - this.pointerStart.x, pointer.y - this.pointerStart.y);\n if (distFromStart > 5) {\n this.hasDragged = true;\n }\n }\n }\n\n handlePointerUp(e: PointerEvent) {\n const el = this.$el as HTMLElement;\n if (!el) return;\n\n el.style.transition = '';\n\n if (e.pointerType === 'mouse') {\n el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n }\n\n (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);\n this.pointerData.delete(e.pointerId);\n\n if (this.pointerData.size < 2) {\n this.initialPinchDistance = 0;\n this.initialPinchScale = 1;\n }\n\n if (this.pointerData.size === 0) {\n this.isDragging = false;\n this.scale.set(this.liveScale);\n this.position.set(this.livePosition);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryHeaderPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryHeader represents the header section of the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-header',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryHeader }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('header')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'header'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryHeader extends BaseComponent<GalleryHeaderPassThrough> {\n componentName = 'GalleryHeader';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { afterNextRender, ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryContentPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryContent represents the main content area of the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-content',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryContent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('content')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'content'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryContent extends BaseComponent<GalleryContentPassThrough> {\n componentName = 'GalleryContent';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n constructor() {\n super();\n afterNextRender(() => {\n this.gallery.setContentEl(this.$el);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryFooterPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFooter represents the footer section of the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-footer',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryFooter }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('footer')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'footer'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFooter extends BaseComponent<GalleryFooterPassThrough> {\n componentName = 'GalleryFooter';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryBackdropPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryBackdrop represents the backdrop element for fullscreen mode.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-backdrop',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryBackdrop }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('backdrop')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'backdrop'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryBackdrop extends BaseComponent<GalleryBackdropPassThrough> {\n componentName = 'GalleryBackdrop';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryToolbarPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryToolbar represents the toolbar container.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-toolbar',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryToolbar }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('toolbar')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'toolbar'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryToolbar extends BaseComponent<GalleryToolbarPassThrough> {\n componentName = 'GalleryToolbar';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryToolbarItemPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryToolbarItem represents an individual toolbar item.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-toolbar-item',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryToolbarItem }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('toolbarItem')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'toolbarItem'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryToolbarItem extends BaseComponent<GalleryToolbarItemPassThrough> {\n componentName = 'GalleryToolbarItem';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * The action to dispatch when the toolbar item is clicked.\n * @group Props\n */\n action = input<string>();\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onClick() {\n this.gallery.handleClickAction(this.action());\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryPrevPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryPrev represents the previous navigation button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryPrev]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryPrev }],\n host: {\n '[class]': \"gallery.cx('prev')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'prev'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryPrev extends BaseComponent<GalleryPrevPassThrough> {\n componentName = 'GalleryPrev';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handlePrev();\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryNextPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryNext represents the next navigation button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryNext]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryNext }],\n host: {\n '[class]': \"gallery.cx('next')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'next'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryNext extends BaseComponent<GalleryNextPassThrough> {\n componentName = 'GalleryNext';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleNext();\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomInPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomIn represents the zoom in action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryZoomIn]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomIn }],\n host: {\n '[class]': \"gallery.cx('zoomIn')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'zoomIn'\",\n '[attr.data-action]': \"'zoom-in'\",\n '[attr.disabled]': 'disabledState()',\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryZoomIn extends BaseComponent<GalleryZoomInPassThrough> {\n componentName = 'GalleryZoomIn';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n disabledState = computed(() => (this.gallery.activeItemTransform().zoomed ? true : null));\n\n onClick() {\n this.gallery.handleClickAction('zoomIn');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomOutPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomOut represents the zoom out action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryZoomOut]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomOut }],\n host: {\n '[class]': \"gallery.cx('zoomOut')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'zoomOut'\",\n '[attr.data-action]': \"'zoom-out'\",\n '[attr.disabled]': 'disabledState()',\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryZoomOut extends BaseComponent<GalleryZoomOutPassThrough> {\n componentName = 'GalleryZoomOut';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n disabledState = computed(() => (!this.gallery.activeItemTransform().zoomed ? true : null));\n\n onClick() {\n this.gallery.handleClickAction('zoomOut');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomTogglePassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomToggle represents the zoom toggle action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryZoomToggle]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomToggle }],\n host: {\n '[class]': \"gallery.cx('zoomToggle')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'zoomToggle'\",\n '[attr.data-action]': \"'zoom-toggle'\",\n '(click)': 'onToggle()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryZoomToggle extends BaseComponent<GalleryZoomTogglePassThrough> {\n componentName = 'GalleryZoomToggle';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onToggle() {\n this.gallery.handleClickAction(this.gallery.activeItemTransform().zoomed ? 'zoomOut' : 'zoomIn');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryRotateLeftPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryRotateLeft represents the rotate left action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryRotateLeft]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryRotateLeft }],\n host: {\n '[class]': \"gallery.cx('rotateLeft')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'rotateLeft'\",\n '[attr.data-action]': \"'rotate-left'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryRotateLeft extends BaseComponent<GalleryRotateLeftPassThrough> {\n componentName = 'GalleryRotateLeft';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('rotateLeft');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryRotateRightPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryRotateRight represents the rotate right action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryRotateRight]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryRotateRight }],\n host: {\n '[class]': \"gallery.cx('rotateRight')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'rotateRight'\",\n '[attr.data-action]': \"'rotate-right'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryRotateRight extends BaseComponent<GalleryRotateRightPassThrough> {\n componentName = 'GalleryRotateRight';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('rotateRight');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFlipXPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFlipX represents the horizontal flip action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryFlipX]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFlipX }],\n host: {\n '[class]': \"gallery.cx('flipX')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'flipX'\",\n '[attr.data-action]': \"'flip-x'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFlipX extends BaseComponent<GalleryFlipXPassThrough> {\n componentName = 'GalleryFlipX';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('flipX');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFlipYPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFlipY represents the vertical flip action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryFlipY]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFlipY }],\n host: {\n '[class]': \"gallery.cx('flipY')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'flipY'\",\n '[attr.data-action]': \"'flip-y'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFlipY extends BaseComponent<GalleryFlipYPassThrough> {\n componentName = 'GalleryFlipY';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('flipY');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFullScreenPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFullScreen represents the fullscreen toggle button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryFullScreen]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFullScreen }],\n host: {\n '[class]': \"gallery.cx('fullScreen')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'fullScreen'\",\n '[attr.data-action]': \"'fullscreen'\",\n '[attr.data-fullscreen]': 'dataFullscreen()',\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFullScreen extends BaseComponent<GalleryFullScreenPassThrough> {\n componentName = 'GalleryFullScreen';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n dataFullscreen = computed(() => (this.gallery.isFullscreen() ? '' : null));\n\n onClick() {\n this.gallery.handleClickAction('toggleFullScreen');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryDownloadPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryDownload represents the download action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryDownload]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryDownload }],\n host: {\n '[class]': \"gallery.cx('download')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'download'\",\n '[attr.data-action]': \"'download'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryDownload extends BaseComponent<GalleryDownloadPassThrough> {\n componentName = 'GalleryDownload';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('download');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { Gallery } from './gallery';\n\n/**\n * GalleryThumbnailItem represents an individual thumbnail item.\n * Exposes its content as a TemplateRef so GalleryThumbnail can render it inside a carousel item.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-thumbnail-item',\n standalone: true,\n template: `\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class GalleryThumbnailItem {\n /**\n * The index of the thumbnail item.\n * @group Props\n */\n index = input<number>();\n\n gallery = inject(Gallery);\n\n templateRef = viewChild<TemplateRef<any>>('content');\n\n isActive = computed(() => {\n const idx = this.index();\n return idx !== undefined && this.gallery.activeIndex() === idx;\n });\n\n hostClass = computed(() => this.gallery.cx('thumbnailItem'));\n\n dataActive = computed(() => (this.isActive() ? '' : null));\n\n onClick() {\n const idx = this.index();\n if (idx !== undefined) {\n this.gallery.selectItem(idx);\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, inject, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CarouselModule } from 'primeng/carousel';\nimport { Gallery } from './gallery';\nimport type { GalleryThumbnailPassThrough } from 'primeng/types/gallery';\nimport { GalleryThumbnailItem } from './gallery-thumbnail-item';\n\n/**\n * GalleryThumbnail represents the thumbnail carousel wrapper.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-thumbnail',\n standalone: true,\n imports: [BindModule, NgTemplateOutlet, CarouselModule],\n template: `\n <p-carousel\n [autoSize]=\"autoSize()\"\n [loop]=\"loop()\"\n [align]=\"align()\"\n [spacing]=\"spacing()\"\n [orientation]=\"orientation()\"\n [snapType]=\"snapType()\"\n [slidesPerPage]=\"slidesPerPage()\"\n [slide]=\"slide()\"\n [unstyled]=\"gallery.$unstyled()\"\n [pt]=\"ptm('pcCarousel')\"\n >\n <p-carousel-content [class]=\"gallery.cx('thumbnailContent')\" [pt]=\"ptm('pcCarouselContent')\">\n @if (thumbnailItems().length > 0) {\n @for (item of thumbnailItems(); track item; let i = $index) {\n <p-carousel-item [class]=\"item.hostClass()\" [attr.data-active]=\"item.dataActive()\" [attr.tabindex]=\"0\" (click)=\"item.onClick()\" (keydown)=\"onItemKeydown($event, i)\" [pt]=\"ptm('pcCarouselItem')\">\n <ng-container *ngTemplateOutlet=\"item.templateRef()\"></ng-container>\n </p-carousel-item>\n }\n } @else {\n <ng-content></ng-content>\n }\n </p-carousel-content>\n </p-carousel>\n `,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryThumbnail }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('thumbnail')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'thumbnail'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryThumbnail extends BaseComponent<GalleryThumbnailPassThrough> {\n componentName = 'GalleryThumbnail';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n /**\n * Whether the carousel should auto size items.\n * @group Props\n * @defaultValue true\n */\n autoSize = input(true, { transform: booleanAttribute });\n\n /**\n * Whether the carousel should loop.\n * @group Props\n * @defaultValue true\n */\n loop = input(true, { transform: booleanAttribute });\n\n /**\n * Alignment of the carousel items.\n * @group Props\n * @defaultValue 'center'\n */\n align = input<'start' | 'center' | 'end'>('center');\n\n /**\n * Spacing between carousel items in pixels.\n * @group Props\n * @defaultValue 8\n */\n spacing = input(8, { transform: numberAttribute });\n\n /**\n * Orientation of the carousel.\n * @group Props\n * @defaultValue 'horizontal'\n */\n orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n /**\n * Scroll snap type applied to the track.\n * @group Props\n * @defaultValue 'mandatory'\n */\n snapType = input<'mandatory' | 'proximity'>('mandatory');\n\n /**\n * How many slides are visible per page.\n * @group Props\n * @defaultValue 1\n */\n slidesPerPage = input(1, { transform: numberAttribute });\n\n thumbnailItems = contentChildren(GalleryThumbnailItem, { descendants: true });\n\n slide = computed(() => this.gallery.activeIndex());\n\n onItemKeydown(event: KeyboardEvent, index: number) {\n const items = this.thumbnailItems();\n\n switch (event.code) {\n case 'Enter':\n case 'Space':\n event.preventDefault();\n items[index]?.onClick();\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.focusItem((index + 1) % items.length);\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.focusItem((index - 1 + items.length) % items.length);\n break;\n case 'Home':\n event.preventDefault();\n this.focusItem(0);\n break;\n case 'End':\n event.preventDefault();\n this.focusItem(items.length - 1);\n break;\n }\n }\n\n private focusItem(nextIndex: number) {\n this.gallery.selectItem(nextIndex);\n const carouselItems = (this.$el as HTMLElement)?.querySelectorAll('[data-pc-name=\"pccarouselitem\"][tabindex]');\n (carouselItems?.[nextIndex] as HTMLElement)?.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryThumbnailContentPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryThumbnailContent represents the thumbnail carousel content area.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-thumbnail-content',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryThumbnailContent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('thumbnailContent')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'thumbnailContent'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryThumbnailContent extends BaseComponent<GalleryThumbnailContentPassThrough> {\n componentName = 'GalleryThumbnailContent';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { isPlatformServer } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, model, NgModule, output, signal, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { SharedModule } from 'primeng/api';\nimport type { GalleryActiveIndexChangeEvent, GalleryPassThrough, GalleryPendingAction } from 'primeng/types/gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport { GalleryItem } from './gallery-item';\nimport { GalleryHeader } from './gallery-header';\nimport { GalleryContent } from './gallery-content';\nimport { GalleryFooter } from './gallery-footer';\nimport { GalleryBackdrop } from './gallery-backdrop';\nimport { GalleryToolbar } from './gallery-toolbar';\nimport { GalleryToolbarItem } from './gallery-toolbar-item';\nimport { GalleryPrev } from './gallery-prev';\nimport { GalleryNext } from './gallery-next';\nimport { GalleryZoomIn } from './gallery-zoom-in';\nimport { GalleryZoomOut } from './gallery-zoom-out';\nimport { GalleryZoomToggle } from './gallery-zoom-toggle';\nimport { GalleryRotateLeft } from './gallery-rotate-left';\nimport { GalleryRotateRight } from './gallery-rotate-right';\nimport { GalleryFlipX } from './gallery-flip-x';\nimport { GalleryFlipY } from './gallery-flip-y';\nimport { GalleryFullScreen } from './gallery-full-screen';\nimport { GalleryDownload } from './gallery-download';\nimport { GalleryThumbnail } from './gallery-thumbnail';\nimport { GalleryThumbnailContent } from './gallery-thumbnail-content';\nimport { GalleryThumbnailItem } from './gallery-thumbnail-item';\n\n/**\n * Gallery is the main container component for the Gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: Gallery }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cx('root')\",\n tabindex: '0',\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'root'\",\n '[attr.data-fullscreen]': 'dataFullscreen()',\n '[attr.data-zoomed]': 'dataZoomed()',\n '[attr.data-rotated]': 'dataRotated()',\n '[attr.data-flipped]': 'dataFlipped()',\n '(keydown)': 'handleKeyDown($event)'\n },\n hostDirectives: [Bind]\n})\nexport class Gallery extends BaseComponent<GalleryPassThrough> {\n componentName = 'Gallery';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n /**\n * The index of the active item.\n * @group Props\n * @defaultValue 0\n */\n activeIndex = model<number>(0);\n\n /**\n * When defined, puts the fullscreen state in controlled mode; the value drives whether the gallery is fullscreen and changes are reported via onFullscreenChange instead of being handled internally.\n * @group Props\n */\n fullscreen = input<boolean | undefined, boolean | string | undefined>(undefined, { transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });\n\n /**\n * Whether pressing the Escape key exits fullscreen mode.\n * @defaultValue true\n * @group Props\n */\n closeOnEscape = input(true, { transform: booleanAttribute });\n\n /**\n * Callback fired when the gallery's active index changes.\n * @param {GalleryActiveIndexChangeEvent} event - Custom active index change event.\n * @group Emits\n */\n onActiveIndexChange = output<GalleryActiveIndexChangeEvent>();\n\n /**\n * Callback fired when the fullscreen state should change (controlled mode).\n * @param {boolean} value - The next fullscreen state.\n * @group Emits\n */\n onFullscreenChange = output<boolean>();\n\n /**\n * Callback fired when the active item's zoom scale changes.\n * @param {number} scale - The current zoom scale.\n * @group Emits\n */\n onZoomChange = output<number>();\n\n /**\n * Callback fired when the active item's rotation changes.\n * @param {number} rotation - The current rotation in degrees.\n * @group Emits\n */\n onRotateChange = output<number>();\n\n /**\n * Callback fired when the active item's flip state changes.\n * @param {{ x: number; y: number }} flip - The current flip state.\n * @group Emits\n */\n onFlipChange = output<{ x: number; y: number }>();\n\n _componentStyle = inject(GalleryStyle);\n\n private isFullscreenInternal = signal(false);\n\n private fullscreenResizeTimer: ReturnType<typeof setTimeout> | null = null;\n\n private destroyed = false;\n\n isFullscreen = computed(() => this.fullscreen() ?? this.isFullscreenInternal());\n\n activeItemTransform = signal({ zoomed: false, rotated: false, flipped: false });\n\n pendingAction = signal<GalleryPendingAction | null>(null);\n\n itemCounter = 0;\n\n contentEl = signal<HTMLElement | null>(null);\n\n dataFullscreen = computed(() => (this.isFullscreen() ? '' : null));\n\n dataZoomed = computed(() => (this.activeItemTransform().zoomed ? '' : null));\n\n dataRotated = computed(() => (this.activeItemTransform().rotated ? '' : null));\n\n dataFlipped = computed(() => (this.activeItemTransform().flipped ? '' : null));\n\n registerItem(existingIndex: number | null): number {\n if (existingIndex !== null) {\n if (existingIndex >= this.itemCounter) {\n this.itemCounter = existingIndex + 1;\n }\n return existingIndex;\n }\n const newIndex = this.itemCounter;\n this.itemCounter += 1;\n return newIndex;\n }\n\n handleNext() {\n if (this.itemCounter <= 0) return;\n const newIndex = (this.activeIndex() + 1) % this.itemCounter;\n this.activeIndex.set(newIndex);\n this.onActiveIndexChange.emit({ value: newIndex });\n }\n\n handlePrev() {\n if (this.itemCounter <= 0) return;\n const newIndex = (this.activeIndex() - 1 + this.itemCounter) % this.itemCounter;\n this.activeIndex.set(newIndex);\n this.onActiveIndexChange.emit({ value: newIndex });\n }\n\n selectItem(index: number) {\n if (index < 0 || index >= this.itemCounter) return;\n this.activeIndex.set(index);\n this.onActiveIndexChange.emit({ value: index });\n }\n\n dispatchAction(type: GalleryPendingAction['type']) {\n this.pendingAction.set({ type, timestamp: Date.now() });\n }\n\n clearPendingAction() {\n this.pendingAction.set(null);\n }\n\n constructor() {\n super();\n\n effect(() => {\n const fullscreenActive = this.fullscreen();\n if (fullscreenActive === undefined || isPlatformServer(this.platformId)) return;\n\n const el = this.$el as HTMLElement | null;\n if (!el || !this.document) return;\n\n const isNativeFullscreen = this.document.fullscreenElement === el;\n\n if (fullscreenActive && !isNativeFullscreen) {\n el.requestFullscreen?.()?.catch(() => {});\n } else if (!fullscreenActive && this.document.fullscreenElement) {\n this.document.exitFullscreen?.()?.catch(() => {});\n }\n });\n }\n\n onInit() {\n super.onInit();\n if (!isPlatformServer(this.platformId)) {\n this.document?.addEventListener('fullscreenchange', this.onNativeFullscreenChange);\n }\n }\n\n onDestroy() {\n this.destroyed = true;\n if (this.fullscreenResizeTimer) {\n clearTimeout(this.fullscreenResizeTimer);\n this.fullscreenResizeTimer = null;\n }\n this.document?.removeEventListener('fullscreenchange', this.onNativeFullscreenChange);\n if (this.document?.fullscreenElement === this.$el) {\n this.document.exitFullscreen?.().catch(() => {});\n }\n super.onDestroy();\n }\n\n private onNativeFullscreenChange = () => {\n const active = this.document?.fullscreenElement === this.$el;\n this.isFullscreenInternal.set(active);\n\n if (this.fullscreen() !== undefined && this.fullscreen() !== active) {\n this.onFullscreenChange.emit(active);\n }\n\n // Nudge a resize so items recalculate, but track the timer so it can be cleared on destroy —\n // otherwise it fires after teardown and the resulting cascade emits on destroyed outputs (NG0953).\n if (this.fullscreenResizeTimer) clearTimeout(this.fullscreenResizeTimer);\n this.fullscreenResizeTimer = setTimeout(() => {\n this.fullscreenResizeTimer = null;\n window.dispatchEvent(new Event('resize'));\n }, 100);\n };\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.handleNext();\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.handlePrev();\n } else if (event.key === 'Escape' && this.closeOnEscape() && this.isFullscreen()) {\n event.preventDefault();\n this.toggleFullScreen();\n }\n }\n\n toggleFullScreen() {\n if (this.fullscreen() !== undefined) {\n this.onFullscreenChange.emit(!this.fullscreen());\n return;\n }\n\n const el = this.$el as HTMLElement | null;\n if (!el || isPlatformServer(this.platformId)) return;\n\n if (this.document?.fullscreenElement) {\n this.document.exitFullscreen?.();\n } else {\n el.requestFullscreen?.();\n }\n }\n\n private prevReported: { scale: number; rotation: number; flip: { x: number; y: number } } | null = null;\n\n reportItemState(itemState: { zoomed: boolean; rotated: boolean; flipped: boolean; scale: number; rotation: number; flip: { x: number; y: number } }) {\n if (this.destroyed) return;\n this.activeItemTransform.set({ zoomed: itemState.zoomed, rotated: itemState.rotated, flipped: itemState.flipped });\n\n const prev = this.prevReported;\n if (!prev || prev.scale !== itemState.scale) this.onZoomChange.emit(itemState.scale);\n if (!prev || prev.rotation !== itemState.rotation) this.onRotateChange.emit(itemState.rotation);\n if (!prev || prev.flip.x !== itemState.flip.x || prev.flip.y !== itemState.flip.y) this.onFlipChange.emit(itemState.flip);\n\n this.prevReported = { scale: itemState.scale, rotation: itemState.rotation, flip: itemState.flip };\n }\n\n handleClickAction(action?: string) {\n if (!action) return;\n const actionMap: Record<string, () => void> = {\n zoomIn: () => this.dispatchAction('zoom-in'),\n zoomOut: () => this.dispatchAction('zoom-out'),\n rotateLeft: () => this.dispatchAction('rotate-left'),\n rotateRight: () => this.dispatchAction('rotate-right'),\n flipX: () => this.dispatchAction('flip-x'),\n flipY: () => this.dispatchAction('flip-y'),\n download: () => this.dispatchAction('download'),\n next: () => this.handleNext(),\n prev: () => this.handlePrev(),\n toggleFullScreen: () => this.toggleFullScreen()\n };\n actionMap[action]?.();\n }\n\n setContentEl(el: HTMLElement) {\n this.contentEl.set(el);\n }\n}\n\n@NgModule({\n imports: [\n Gallery,\n GalleryItem,\n GalleryHeader,\n GalleryContent,\n GalleryFooter,\n GalleryBackdrop,\n GalleryToolbar,\n GalleryToolbarItem,\n GalleryPrev,\n GalleryNext,\n GalleryZoomIn,\n GalleryZoomOut,\n GalleryZoomToggle,\n GalleryRotateLeft,\n GalleryRotateRight,\n GalleryFlipX,\n GalleryFlipY,\n GalleryFullScreen,\n GalleryDownload,\n GalleryThumbnail,\n GalleryThumbnailContent,\n GalleryThumbnailItem,\n SharedModule\n ],\n exports: [\n Gallery,\n GalleryItem,\n GalleryHeader,\n GalleryContent,\n GalleryFooter,\n GalleryBackdrop,\n GalleryToolbar,\n GalleryToolbarItem,\n GalleryPrev,\n GalleryNext,\n GalleryZoomIn,\n GalleryZoomOut,\n GalleryZoomToggle,\n GalleryRotateLeft,\n GalleryRotateRight,\n GalleryFlipX,\n GalleryFlipY,\n GalleryFullScreen,\n GalleryDownload,\n GalleryThumbnail,\n GalleryThumbnailContent,\n GalleryThumbnailItem,\n SharedModule\n ]\n})\nexport class GalleryModule {}\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-gallery.mjs","names":[],"sources":["../../src/gallery/style/gallerystyle.ts","../../src/gallery/gallery-item.ts","../../src/gallery/gallery-header.ts","../../src/gallery/gallery-content.ts","../../src/gallery/gallery-footer.ts","../../src/gallery/gallery-backdrop.ts","../../src/gallery/gallery-toolbar.ts","../../src/gallery/gallery-toolbar-item.ts","../../src/gallery/gallery-prev.ts","../../src/gallery/gallery-next.ts","../../src/gallery/gallery-zoom-in.ts","../../src/gallery/gallery-zoom-out.ts","../../src/gallery/gallery-zoom-toggle.ts","../../src/gallery/gallery-rotate-left.ts","../../src/gallery/gallery-rotate-right.ts","../../src/gallery/gallery-flip-x.ts","../../src/gallery/gallery-flip-y.ts","../../src/gallery/gallery-full-screen.ts","../../src/gallery/gallery-download.ts","../../src/gallery/gallery-thumbnail-item.ts","../../src/gallery/gallery-thumbnail.ts","../../src/gallery/gallery-thumbnail-content.ts","../../src/gallery/gallery.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/gallery';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-gallery',\n backdrop: 'p-gallery-backdrop',\n header: 'p-gallery-header',\n footer: 'p-gallery-footer',\n content: 'p-gallery-content',\n item: 'p-gallery-item',\n next: 'p-gallery-next',\n prev: 'p-gallery-prev',\n toolbar: 'p-gallery-toolbar',\n toolbarItem: 'p-gallery-toolbar-item',\n zoomIn: 'p-gallery-action',\n zoomOut: 'p-gallery-action',\n zoomToggle: 'p-gallery-action',\n rotateLeft: 'p-gallery-action',\n rotateRight: 'p-gallery-action',\n flipX: 'p-gallery-action',\n flipY: 'p-gallery-action',\n download: 'p-gallery-action',\n fullScreen: 'p-gallery-action',\n thumbnail: 'p-gallery-thumbnail',\n thumbnailContent: 'p-gallery-thumbnail-content',\n thumbnailItem: 'p-gallery-thumbnail-item'\n};\n\n@Injectable()\nexport class GalleryStyle extends BaseStyle {\n name = 'gallery';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Gallery groups a collection of contents in items.\n *\n * [Live Demo](https://www.primeng.org/gallery/)\n *\n * @module gallerystyle\n *\n */\nexport enum GalleryClasses {\n /**\n * Class name of the root element\n */\n root = 'p-gallery',\n /**\n * Class name of the backdrop element\n */\n backdrop = 'p-gallery-backdrop',\n /**\n * Class name of the header element\n */\n header = 'p-gallery-header',\n /**\n * Class name of the footer element\n */\n footer = 'p-gallery-footer',\n /**\n * Class name of the content element\n */\n content = 'p-gallery-content',\n /**\n * Class name of the item element\n */\n item = 'p-gallery-item',\n /**\n * Class name of the next button element\n */\n next = 'p-gallery-next',\n /**\n * Class name of the prev button element\n */\n prev = 'p-gallery-prev',\n /**\n * Class name of the toolbar element\n */\n toolbar = 'p-gallery-toolbar',\n /**\n * Class name of the toolbar item element\n */\n toolbarItem = 'p-gallery-toolbar-item',\n /**\n * Class name of the action element\n */\n action = 'p-gallery-action',\n /**\n * Class name of the thumbnail element\n */\n thumbnail = 'p-gallery-thumbnail',\n /**\n * Class name of the thumbnail content element\n */\n thumbnailContent = 'p-gallery-thumbnail-content',\n /**\n * Class name of the thumbnail item element\n */\n thumbnailItem = 'p-gallery-thumbnail-item'\n}\n\nexport interface GalleryStyleType extends BaseStyle {}\n","import { afterNextRender, ChangeDetectionStrategy, Component, computed, DestroyRef, effect, inject, input, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { GalleryItemPassThrough } from 'primeng/types/gallery';\nimport { Gallery } from './gallery';\n\n/**\n * GalleryItem represents an individual item in the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-item',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryItem }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('item')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'item'\",\n '[attr.data-index]': 'index()',\n '[attr.data-active]': \"isActive() ? '' : null\",\n '[attr.data-rotating]': \"isRotating() ? '' : null\",\n '[style.--px-position-x]': 'stylePositionX()',\n '[style.--px-position-y]': 'stylePositionY()',\n '[style.--px-scale]': 'scale()',\n '[style.--px-rotation]': 'styleRotation()',\n '[style.--px-flip-x]': 'styleFlipX()',\n '[style.--px-flip-y]': 'styleFlipY()',\n '(click)': 'handleClick($event)',\n '(pointerdown)': 'handlePointerDown($event)',\n '(pointermove)': 'handlePointerMove($event)',\n '(pointerup)': 'handlePointerUp($event)',\n '(dragstart)': 'handleDragStart($event)'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryItem extends BaseComponent<GalleryItemPassThrough> {\n componentName = 'GalleryItem';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * The normal scale of the gallery item.\n * @group Props\n * @defaultValue 1\n */\n normalScale = input(1, { transform: numberAttribute });\n\n /**\n * The zoomed scale of the gallery item.\n * @group Props\n * @defaultValue 3\n */\n zoomedScale = input(3, { transform: numberAttribute });\n\n gallery = inject(Gallery);\n\n private _destroyRef = inject(DestroyRef);\n\n index = signal(-1);\n\n isActive = computed(() => this.gallery.activeIndex() === this.index());\n\n dataActive = computed(() => (this.isActive() ? 'true' : 'false'));\n\n stylePositionX = computed(() => this.position().x + 'px');\n\n stylePositionY = computed(() => this.position().y + 'px');\n\n styleRotation = computed(() => this.rotation() + 'deg');\n\n styleFlipX = computed(() => this.flip().x);\n\n styleFlipY = computed(() => this.flip().y);\n\n position = signal({ x: 0, y: 0 });\n\n scale = signal(1);\n\n rotation = signal(0);\n\n isRotating = signal(false);\n\n flip = signal({ x: 1, y: 1 });\n\n private registeredIndex: number | null = null;\n\n private pointerData = new Map<number, { x: number; y: number }>();\n\n private pointerStart = { x: 0, y: 0 };\n\n private initialPinchDistance = 0;\n\n private initialPinchScale = 1;\n\n private liveScale = 1;\n\n private livePosition = { x: 0, y: 0 };\n\n private isDragging = false;\n\n private dragStart = { x: 0, y: 0 };\n\n private hasDragged = false;\n\n private wheelSyncTimer: ReturnType<typeof setTimeout> | null = null;\n\n private wheelListener: (() => void) | null = null;\n\n private resizeListener: (() => void) | null = null;\n\n private imageLoadListener: (() => void) | null = null;\n\n constructor() {\n super();\n afterNextRender(() => {\n const newIndex = this.gallery.registerItem(this.registeredIndex);\n\n this.registeredIndex = newIndex;\n\n if (newIndex !== this.index()) {\n this.index.set(newIndex);\n }\n\n this.setupWheelListener();\n this.setupResizeListener();\n this.setupImageLoadListener();\n });\n\n // Watch activeIndex to recalculate item size\n effect(() => {\n const activeIndex = this.gallery.activeIndex();\n const idx = this.index();\n\n if (activeIndex === idx) {\n this.calculateItemSize();\n }\n });\n\n // Watch rotation changes to recalculate item size\n effect(() => {\n this.rotation(); // track rotation\n const activeIndex = this.gallery.activeIndex();\n const idx = this.index();\n\n if (activeIndex === idx) {\n this.calculateItemSize();\n }\n });\n\n // Watch fullscreen changes to recalculate item size\n effect(() => {\n this.gallery.isFullscreen(); // track fullscreen\n const activeIndex = this.gallery.activeIndex();\n const idx = this.index();\n\n if (activeIndex === idx) {\n this.calculateItemSize();\n }\n });\n\n // Watch pendingAction and execute on active item\n effect(() => {\n const action = this.gallery.pendingAction();\n\n if (!action || !this.isActive()) return;\n\n switch (action.type) {\n case 'zoom-in':\n this.zoomIn();\n break;\n case 'zoom-out':\n this.zoomOut();\n break;\n case 'rotate-left':\n this.rotateLeft();\n break;\n case 'rotate-right':\n this.rotateRight();\n break;\n case 'flip-x':\n this.flipX();\n break;\n case 'flip-y':\n this.flipY();\n break;\n case 'download':\n this.download();\n break;\n }\n\n this.gallery.clearPendingAction();\n });\n\n // Report item state to gallery\n effect(() => {\n const active = this.isActive();\n const s = this.scale();\n const r = this.rotation();\n const f = this.flip();\n const ns = this.normalScale();\n\n if (active) {\n this.gallery.reportItemState({\n zoomed: s > ns,\n rotated: r !== 0,\n flipped: f.x === -1 || f.y === -1,\n scale: s,\n rotation: r,\n flip: f\n });\n }\n });\n\n // Sync liveScale/livePosition with signals (for toolbar-triggered changes)\n effect(() => {\n this.liveScale = this.scale();\n });\n\n effect(() => {\n const p = this.position();\n\n this.livePosition = { x: p.x, y: p.y };\n });\n\n // Reset position when scale <= 1\n effect(() => {\n if (this.scale() <= 1) {\n this.position.set({ x: 0, y: 0 });\n }\n });\n\n this._destroyRef.onDestroy(() => {\n this.wheelListener?.();\n this.resizeListener?.();\n this.imageLoadListener?.();\n\n if (this.rotateTimer) {\n clearTimeout(this.rotateTimer);\n }\n\n if (this.wheelSyncTimer) {\n clearTimeout(this.wheelSyncTimer);\n }\n });\n }\n\n private rotateTimer: ReturnType<typeof setTimeout> | null = null;\n\n private markRotating() {\n this.isRotating.set(true);\n const el = this.$el as HTMLElement | null;\n\n if (el) el.style.transition = '';\n\n if (this.rotateTimer) clearTimeout(this.rotateTimer);\n\n this.rotateTimer = setTimeout(() => this.isRotating.set(false), 300);\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n private setupImageLoadListener() {\n const el = this.$el as HTMLElement;\n const imageElement = el.querySelector('img') as HTMLImageElement;\n\n if (!imageElement) return;\n\n if (imageElement.complete && imageElement.naturalWidth > 0) {\n this.calculateItemSize();\n }\n\n const handler = () => {\n this.calculateItemSize();\n };\n\n imageElement.addEventListener('load', handler);\n this.imageLoadListener = () => imageElement.removeEventListener('load', handler);\n }\n\n private setupWheelListener() {\n const el = this.$el as HTMLElement;\n\n const handler = (e: WheelEvent) => {\n if (!e.ctrlKey || !this.isActive()) return;\n\n e.preventDefault();\n el.style.transition = 'none';\n\n const delta = -e.deltaY;\n const scaleFactor = 1 + delta * 0.01;\n const newScale = Math.max(this.normalScale(), Math.min(this.zoomedScale(), this.liveScale * scaleFactor));\n\n const constraints = this.calculateConstraints(newScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, this.livePosition.x));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, this.livePosition.y));\n\n this.liveScale = newScale;\n this.livePosition = { x: constrainedX, y: constrainedY };\n\n el.style.setProperty('--px-scale', `${newScale}`);\n el.style.setProperty('--px-position-x', `${constrainedX}px`);\n el.style.setProperty('--px-position-y', `${constrainedY}px`);\n\n if (this.wheelSyncTimer) {\n clearTimeout(this.wheelSyncTimer);\n }\n\n this.wheelSyncTimer = setTimeout(() => {\n el.style.transition = '';\n el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n this.scale.set(this.liveScale);\n this.position.set(this.livePosition);\n this.wheelSyncTimer = null;\n }, 150);\n };\n\n el.addEventListener('wheel', handler, { passive: false });\n this.wheelListener = () => el.removeEventListener('wheel', handler);\n }\n\n private setupResizeListener() {\n const handler = () => {\n if (this.gallery.activeIndex() === this.index()) {\n this.calculateItemSize();\n }\n };\n\n window.addEventListener('resize', handler);\n this.resizeListener = () => window.removeEventListener('resize', handler);\n }\n\n calculateItemSize() {\n const contentEl = this.gallery.contentEl();\n const el = this.$el as HTMLElement;\n\n if (!contentEl || !el) return;\n\n const contentRect = contentEl.getBoundingClientRect();\n const imageElement = el.firstElementChild as HTMLImageElement;\n\n if (!imageElement) return;\n\n let naturalWidth = imageElement.naturalWidth || imageElement.offsetWidth;\n let naturalHeight = imageElement.naturalHeight || imageElement.offsetHeight;\n\n if (naturalWidth === 0 || naturalHeight === 0) return;\n\n const isRotated = Math.abs(this.rotation()) % 180 === 90;\n\n if (isRotated) {\n [naturalWidth, naturalHeight] = [naturalHeight, naturalWidth];\n }\n\n const naturalAspectRatio = naturalWidth / naturalHeight;\n const contentAspectRatio = contentRect.width / contentRect.height;\n\n let targetWidth: number, targetHeight: number;\n\n if (naturalAspectRatio > contentAspectRatio) {\n targetWidth = Math.min(contentRect.width * 0.99, naturalWidth);\n targetHeight = targetWidth / naturalAspectRatio;\n } else {\n targetHeight = Math.min(contentRect.height * 0.99, naturalHeight);\n targetWidth = targetHeight * naturalAspectRatio;\n }\n\n if (isRotated) {\n imageElement.style.width = `${targetHeight}px`;\n imageElement.style.height = `${targetWidth}px`;\n el.style.width = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n el.style.height = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n } else {\n imageElement.style.width = `${targetWidth}px`;\n imageElement.style.height = `${targetHeight}px`;\n el.style.width = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n el.style.height = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n }\n\n el.style.aspectRatio = `${naturalWidth / naturalHeight}`;\n }\n\n calculateConstraints(targetScale?: number) {\n const contentEl = this.gallery.contentEl();\n const el = this.$el as HTMLElement;\n\n if (!contentEl || !el) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n const contentRect = contentEl.getBoundingClientRect();\n const scaleToUse = targetScale !== undefined ? targetScale : this.liveScale;\n\n const itemElement = el.firstElementChild as HTMLElement;\n\n if (!itemElement) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n let originalWidth = itemElement.offsetWidth;\n let originalHeight = itemElement.offsetHeight;\n\n const isRotated = Math.abs(this.rotation()) % 180 === 90;\n\n if (isRotated) {\n [originalWidth, originalHeight] = [originalHeight, originalWidth];\n }\n\n const scaledWidth = originalWidth * scaleToUse;\n const scaledHeight = originalHeight * scaleToUse;\n\n const contentCenterX = contentRect.width / 2;\n const contentCenterY = contentRect.height / 2;\n\n const halfScaledWidth = scaledWidth / 2;\n const halfScaledHeight = scaledHeight / 2;\n\n const maxX = halfScaledWidth > contentCenterX ? halfScaledWidth - contentCenterX : 0;\n const minX = halfScaledWidth > contentCenterX ? -(halfScaledWidth - contentCenterX) : 0;\n\n const maxY = halfScaledHeight > contentCenterY ? halfScaledHeight - contentCenterY : 0;\n const minY = halfScaledHeight > contentCenterY ? -(halfScaledHeight - contentCenterY) : 0;\n\n return { minX, maxX, minY, maxY };\n }\n\n zoomIn() {\n this.scale.set(this.zoomedScale());\n const el = this.$el as HTMLElement;\n\n if (el) {\n el.style.cursor = 'zoom-out';\n }\n }\n\n zoomOut() {\n this.scale.set(this.normalScale());\n this.position.set({ x: 0, y: 0 });\n const el = this.$el as HTMLElement;\n\n if (el) {\n el.style.cursor = 'zoom-in';\n }\n }\n\n rotateLeft() {\n this.markRotating();\n this.rotation.update((prev) => prev - 90);\n }\n\n rotateRight() {\n this.markRotating();\n this.rotation.update((prev) => prev + 90);\n }\n\n flipX() {\n this.flip.update((prev) => ({ ...prev, x: Math.sign(prev.x) * -1 }));\n }\n\n flipY() {\n this.flip.update((prev) => ({ ...prev, y: Math.sign(prev.y) * -1 }));\n }\n\n download() {\n const el = this.$el as HTMLElement;\n\n if (!el) return;\n\n const imageElement = el.querySelector('img') as HTMLImageElement;\n\n if (!imageElement || !imageElement.src) return;\n\n const link = document.createElement('a');\n\n link.href = imageElement.src;\n\n const urlParts = imageElement.src.split('/');\n const filename = urlParts[urlParts.length - 1] || 'image.jpg';\n\n link.download = filename;\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n handleClick(e: MouseEvent) {\n if (this.hasDragged) {\n this.hasDragged = false;\n\n return;\n }\n\n const el = this.$el as HTMLElement;\n\n if (this.liveScale === this.normalScale()) {\n if (el) {\n const itemRect = el.getBoundingClientRect();\n const itemCenterX = itemRect.width / 2;\n const itemCenterY = itemRect.height / 2;\n\n const clickX = e.clientX - itemRect.left;\n const clickY = e.clientY - itemRect.top;\n\n const offsetX = itemCenterX - clickX;\n const offsetY = itemCenterY - clickY;\n\n const zoomedScale = this.zoomedScale();\n const zoomOffsetX = offsetX * (zoomedScale - 1);\n const zoomOffsetY = offsetY * (zoomedScale - 1);\n\n const constraints = this.calculateConstraints(zoomedScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, zoomOffsetX));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, zoomOffsetY));\n\n this.position.set({ x: constrainedX, y: constrainedY });\n }\n\n this.zoomIn();\n } else {\n this.zoomOut();\n }\n }\n\n handleDragStart(e: DragEvent) {\n e.preventDefault();\n }\n\n handlePointerDown(e: PointerEvent) {\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this.pointerData.set(e.pointerId, { x: e.clientX, y: e.clientY });\n this.pointerStart = { x: e.clientX, y: e.clientY };\n\n if (e.pointerType === 'touch' && this.pointerData.size >= 2) {\n this.isDragging = false;\n this.initialPinchDistance = 0;\n this.initialPinchScale = this.liveScale;\n } else if (this.liveScale > 1) {\n if (e.pointerType === 'mouse' || (e.pointerType === 'touch' && this.pointerData.size === 1)) {\n this.isDragging = true;\n this.dragStart = { x: e.clientX - this.livePosition.x, y: e.clientY - this.livePosition.y };\n this.hasDragged = false;\n }\n }\n }\n\n handlePointerMove(e: PointerEvent) {\n if (!this.pointerData.has(e.pointerId)) return;\n\n const el = this.$el as HTMLElement;\n\n if (!el) return;\n\n el.style.transition = 'none';\n\n if (e.pointerType === 'mouse' && !el.style.cursor) {\n el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n }\n\n this.pointerData.set(e.pointerId, { x: e.clientX, y: e.clientY });\n\n const pointers = Array.from(this.pointerData.values());\n\n if (pointers.length === 2) {\n const [p1, p2] = pointers;\n const distance = Math.hypot(p2.x - p1.x, p2.y - p1.y);\n\n this.hasDragged = true;\n\n if (this.initialPinchDistance === 0) {\n this.initialPinchDistance = distance;\n this.initialPinchScale = this.liveScale;\n } else {\n const ratio = distance / this.initialPinchDistance;\n const newScale = Math.max(this.normalScale(), Math.min(this.zoomedScale(), this.initialPinchScale * ratio));\n\n const constraints = this.calculateConstraints(newScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, this.livePosition.x));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, this.livePosition.y));\n\n this.liveScale = newScale;\n this.livePosition = { x: constrainedX, y: constrainedY };\n\n el.style.setProperty('--px-scale', `${newScale}`);\n el.style.setProperty('--px-position-x', `${constrainedX}px`);\n el.style.setProperty('--px-position-y', `${constrainedY}px`);\n }\n } else if (pointers.length === 1 && this.isDragging) {\n const pointer = pointers[0];\n const newX = pointer.x - this.dragStart.x;\n const newY = pointer.y - this.dragStart.y;\n const constraints = this.calculateConstraints(this.liveScale);\n\n const computedX = Math.max(constraints.minX, Math.min(constraints.maxX, newX));\n const computedY = Math.max(constraints.minY, Math.min(constraints.maxY, newY));\n\n this.livePosition = { x: computedX, y: computedY };\n\n el.style.setProperty('--px-position-x', `${computedX}px`);\n el.style.setProperty('--px-position-y', `${computedY}px`);\n\n const distFromStart = Math.hypot(pointer.x - this.pointerStart.x, pointer.y - this.pointerStart.y);\n\n if (distFromStart > 5) {\n this.hasDragged = true;\n }\n }\n }\n\n handlePointerUp(e: PointerEvent) {\n const el = this.$el as HTMLElement;\n\n if (!el) return;\n\n el.style.transition = '';\n\n if (e.pointerType === 'mouse') {\n el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n }\n\n (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);\n this.pointerData.delete(e.pointerId);\n\n if (this.pointerData.size < 2) {\n this.initialPinchDistance = 0;\n this.initialPinchScale = 1;\n }\n\n if (this.pointerData.size === 0) {\n this.isDragging = false;\n this.scale.set(this.liveScale);\n this.position.set(this.livePosition);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryHeaderPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryHeader represents the header section of the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-header',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryHeader }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('header')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'header'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryHeader extends BaseComponent<GalleryHeaderPassThrough> {\n componentName = 'GalleryHeader';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { afterNextRender, ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryContentPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryContent represents the main content area of the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-content',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryContent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('content')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'content'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryContent extends BaseComponent<GalleryContentPassThrough> {\n componentName = 'GalleryContent';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n constructor() {\n super();\n afterNextRender(() => {\n this.gallery.setContentEl(this.$el);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryFooterPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFooter represents the footer section of the gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-footer',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryFooter }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('footer')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'footer'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFooter extends BaseComponent<GalleryFooterPassThrough> {\n componentName = 'GalleryFooter';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryBackdropPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryBackdrop represents the backdrop element for fullscreen mode.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-backdrop',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryBackdrop }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('backdrop')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'backdrop'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryBackdrop extends BaseComponent<GalleryBackdropPassThrough> {\n componentName = 'GalleryBackdrop';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryToolbarPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryToolbar represents the toolbar container.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-toolbar',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryToolbar }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('toolbar')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'toolbar'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryToolbar extends BaseComponent<GalleryToolbarPassThrough> {\n componentName = 'GalleryToolbar';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryToolbarItemPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryToolbarItem represents an individual toolbar item.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-toolbar-item',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryToolbarItem }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('toolbarItem')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'toolbarItem'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryToolbarItem extends BaseComponent<GalleryToolbarItemPassThrough> {\n componentName = 'GalleryToolbarItem';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * The action to dispatch when the toolbar item is clicked.\n * @group Props\n */\n action = input<string>();\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onClick() {\n this.gallery.handleClickAction(this.action());\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryPrevPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryPrev represents the previous navigation button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryPrev]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryPrev }],\n host: {\n '[class]': \"gallery.cx('prev')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'prev'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryPrev extends BaseComponent<GalleryPrevPassThrough> {\n componentName = 'GalleryPrev';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handlePrev();\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryNextPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryNext represents the next navigation button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryNext]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryNext }],\n host: {\n '[class]': \"gallery.cx('next')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'next'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryNext extends BaseComponent<GalleryNextPassThrough> {\n componentName = 'GalleryNext';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleNext();\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomInPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomIn represents the zoom in action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryZoomIn]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomIn }],\n host: {\n '[class]': \"gallery.cx('zoomIn')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'zoomIn'\",\n '[attr.data-action]': \"'zoom-in'\",\n '[attr.disabled]': 'disabledState()',\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryZoomIn extends BaseComponent<GalleryZoomInPassThrough> {\n componentName = 'GalleryZoomIn';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n disabledState = computed(() => (this.gallery.activeItemTransform().zoomed ? true : null));\n\n onClick() {\n this.gallery.handleClickAction('zoomIn');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomOutPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomOut represents the zoom out action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryZoomOut]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomOut }],\n host: {\n '[class]': \"gallery.cx('zoomOut')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'zoomOut'\",\n '[attr.data-action]': \"'zoom-out'\",\n '[attr.disabled]': 'disabledState()',\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryZoomOut extends BaseComponent<GalleryZoomOutPassThrough> {\n componentName = 'GalleryZoomOut';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n disabledState = computed(() => (!this.gallery.activeItemTransform().zoomed ? true : null));\n\n onClick() {\n this.gallery.handleClickAction('zoomOut');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomTogglePassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomToggle represents the zoom toggle action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryZoomToggle]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomToggle }],\n host: {\n '[class]': \"gallery.cx('zoomToggle')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'zoomToggle'\",\n '[attr.data-action]': \"'zoom-toggle'\",\n '(click)': 'onToggle()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryZoomToggle extends BaseComponent<GalleryZoomTogglePassThrough> {\n componentName = 'GalleryZoomToggle';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onToggle() {\n this.gallery.handleClickAction(this.gallery.activeItemTransform().zoomed ? 'zoomOut' : 'zoomIn');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryRotateLeftPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryRotateLeft represents the rotate left action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryRotateLeft]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryRotateLeft }],\n host: {\n '[class]': \"gallery.cx('rotateLeft')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'rotateLeft'\",\n '[attr.data-action]': \"'rotate-left'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryRotateLeft extends BaseComponent<GalleryRotateLeftPassThrough> {\n componentName = 'GalleryRotateLeft';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('rotateLeft');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryRotateRightPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryRotateRight represents the rotate right action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryRotateRight]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryRotateRight }],\n host: {\n '[class]': \"gallery.cx('rotateRight')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'rotateRight'\",\n '[attr.data-action]': \"'rotate-right'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryRotateRight extends BaseComponent<GalleryRotateRightPassThrough> {\n componentName = 'GalleryRotateRight';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('rotateRight');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFlipXPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFlipX represents the horizontal flip action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryFlipX]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFlipX }],\n host: {\n '[class]': \"gallery.cx('flipX')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'flipX'\",\n '[attr.data-action]': \"'flip-x'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFlipX extends BaseComponent<GalleryFlipXPassThrough> {\n componentName = 'GalleryFlipX';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('flipX');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFlipYPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFlipY represents the vertical flip action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryFlipY]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFlipY }],\n host: {\n '[class]': \"gallery.cx('flipY')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'flipY'\",\n '[attr.data-action]': \"'flip-y'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFlipY extends BaseComponent<GalleryFlipYPassThrough> {\n componentName = 'GalleryFlipY';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('flipY');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFullScreenPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFullScreen represents the fullscreen toggle button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryFullScreen]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFullScreen }],\n host: {\n '[class]': \"gallery.cx('fullScreen')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'fullScreen'\",\n '[attr.data-action]': \"'fullscreen'\",\n '[attr.data-fullscreen]': 'dataFullscreen()',\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryFullScreen extends BaseComponent<GalleryFullScreenPassThrough> {\n componentName = 'GalleryFullScreen';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n dataFullscreen = computed(() => (this.gallery.isFullscreen() ? '' : null));\n\n onClick() {\n this.gallery.handleClickAction('toggleFullScreen');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryDownloadPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryDownload represents the download action button.\n * @group Components\n */\n@Directive({\n selector: '[pGalleryDownload]',\n standalone: true,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryDownload }],\n host: {\n '[class]': \"gallery.cx('download')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'download'\",\n '[attr.data-action]': \"'download'\",\n '(click)': 'onClick()'\n },\n hostDirectives: [Bind]\n})\nexport class GalleryDownload extends BaseComponent<GalleryDownloadPassThrough> {\n componentName = 'GalleryDownload';\n\n gallery = inject(Gallery);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(GalleryStyle);\n\n onClick() {\n this.gallery.handleClickAction('download');\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { Gallery } from './gallery';\n\n/**\n * GalleryThumbnailItem represents an individual thumbnail item.\n * Exposes its content as a TemplateRef so GalleryThumbnail can render it inside a carousel item.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-thumbnail-item',\n standalone: true,\n template: `\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class GalleryThumbnailItem {\n /**\n * The index of the thumbnail item.\n * @group Props\n */\n index = input<number>();\n\n gallery = inject(Gallery);\n\n templateRef = viewChild<TemplateRef<any>>('content');\n\n isActive = computed(() => {\n const idx = this.index();\n\n return idx !== undefined && this.gallery.activeIndex() === idx;\n });\n\n hostClass = computed(() => this.gallery.cx('thumbnailItem'));\n\n dataActive = computed(() => (this.isActive() ? '' : null));\n\n onClick() {\n const idx = this.index();\n\n if (idx !== undefined) {\n this.gallery.selectItem(idx);\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, inject, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CarouselModule } from 'primeng/carousel';\nimport { Gallery } from './gallery';\nimport type { GalleryThumbnailPassThrough } from 'primeng/types/gallery';\nimport { GalleryThumbnailItem } from './gallery-thumbnail-item';\n\n/**\n * GalleryThumbnail represents the thumbnail carousel wrapper.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-thumbnail',\n standalone: true,\n imports: [BindModule, NgTemplateOutlet, CarouselModule],\n template: `\n <p-carousel\n [autoSize]=\"autoSize()\"\n [loop]=\"loop()\"\n [align]=\"align()\"\n [spacing]=\"spacing()\"\n [orientation]=\"orientation()\"\n [snapType]=\"snapType()\"\n [slidesPerPage]=\"slidesPerPage()\"\n [slide]=\"slide()\"\n [unstyled]=\"gallery.$unstyled()\"\n [pt]=\"ptm('pcCarousel')\"\n >\n <p-carousel-content [class]=\"gallery.cx('thumbnailContent')\" [pt]=\"ptm('pcCarouselContent')\">\n @if (thumbnailItems().length > 0) {\n @for (item of thumbnailItems(); track item; let i = $index) {\n <p-carousel-item [class]=\"item.hostClass()\" [attr.data-active]=\"item.dataActive()\" [attr.tabindex]=\"0\" (click)=\"item.onClick()\" (keydown)=\"onItemKeydown($event, i)\" [pt]=\"ptm('pcCarouselItem')\">\n <ng-container *ngTemplateOutlet=\"item.templateRef()\"></ng-container>\n </p-carousel-item>\n }\n } @else {\n <ng-content></ng-content>\n }\n </p-carousel-content>\n </p-carousel>\n `,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryThumbnail }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('thumbnail')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'thumbnail'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryThumbnail extends BaseComponent<GalleryThumbnailPassThrough> {\n componentName = 'GalleryThumbnail';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n /**\n * Whether the carousel should auto size items.\n * @group Props\n * @defaultValue true\n */\n autoSize = input(true, { transform: booleanAttribute });\n\n /**\n * Whether the carousel should loop.\n * @group Props\n * @defaultValue true\n */\n loop = input(true, { transform: booleanAttribute });\n\n /**\n * Alignment of the carousel items.\n * @group Props\n * @defaultValue 'center'\n */\n align = input<'start' | 'center' | 'end'>('center');\n\n /**\n * Spacing between carousel items in pixels.\n * @group Props\n * @defaultValue 8\n */\n spacing = input(8, { transform: numberAttribute });\n\n /**\n * Orientation of the carousel.\n * @group Props\n * @defaultValue 'horizontal'\n */\n orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n /**\n * Scroll snap type applied to the track.\n * @group Props\n * @defaultValue 'mandatory'\n */\n snapType = input<'mandatory' | 'proximity'>('mandatory');\n\n /**\n * How many slides are visible per page.\n * @group Props\n * @defaultValue 1\n */\n slidesPerPage = input(1, { transform: numberAttribute });\n\n thumbnailItems = contentChildren(GalleryThumbnailItem, { descendants: true });\n\n slide = computed(() => this.gallery.activeIndex());\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onItemKeydown(event: KeyboardEvent, index: number) {\n const items = this.thumbnailItems();\n\n switch (event.code) {\n case 'Enter':\n case 'Space':\n event.preventDefault();\n items[index]?.onClick();\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.focusItem((index + 1) % items.length);\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.focusItem((index - 1 + items.length) % items.length);\n break;\n case 'Home':\n event.preventDefault();\n this.focusItem(0);\n break;\n case 'End':\n event.preventDefault();\n this.focusItem(items.length - 1);\n break;\n }\n }\n\n private focusItem(nextIndex: number) {\n this.gallery.selectItem(nextIndex);\n const carouselItems = (this.$el as HTMLElement)?.querySelectorAll('[data-pc-name=\"pccarouselitem\"][tabindex]');\n\n (carouselItems?.[nextIndex] as HTMLElement)?.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryThumbnailContentPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryThumbnailContent represents the thumbnail carousel content area.\n * @group Components\n */\n@Component({\n selector: 'p-gallery-thumbnail-content',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryThumbnailContent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"gallery.cx('thumbnailContent')\",\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'thumbnailContent'\"\n },\n hostDirectives: [Bind]\n})\nexport class GalleryThumbnailContent extends BaseComponent<GalleryThumbnailContentPassThrough> {\n componentName = 'GalleryThumbnailContent';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n gallery = inject(Gallery);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n","import { isPlatformServer } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, model, NgModule, output, signal, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { SharedModule } from 'primeng/api';\nimport type { GalleryActiveIndexChangeEvent, GalleryPassThrough, GalleryPendingAction } from 'primeng/types/gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport { GalleryItem } from './gallery-item';\nimport { GalleryHeader } from './gallery-header';\nimport { GalleryContent } from './gallery-content';\nimport { GalleryFooter } from './gallery-footer';\nimport { GalleryBackdrop } from './gallery-backdrop';\nimport { GalleryToolbar } from './gallery-toolbar';\nimport { GalleryToolbarItem } from './gallery-toolbar-item';\nimport { GalleryPrev } from './gallery-prev';\nimport { GalleryNext } from './gallery-next';\nimport { GalleryZoomIn } from './gallery-zoom-in';\nimport { GalleryZoomOut } from './gallery-zoom-out';\nimport { GalleryZoomToggle } from './gallery-zoom-toggle';\nimport { GalleryRotateLeft } from './gallery-rotate-left';\nimport { GalleryRotateRight } from './gallery-rotate-right';\nimport { GalleryFlipX } from './gallery-flip-x';\nimport { GalleryFlipY } from './gallery-flip-y';\nimport { GalleryFullScreen } from './gallery-full-screen';\nimport { GalleryDownload } from './gallery-download';\nimport { GalleryThumbnail } from './gallery-thumbnail';\nimport { GalleryThumbnailContent } from './gallery-thumbnail-content';\nimport { GalleryThumbnailItem } from './gallery-thumbnail-item';\n\n/**\n * Gallery is the main container component for the Gallery.\n * @group Components\n */\n@Component({\n selector: 'p-gallery',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: Gallery }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cx('root')\",\n tabindex: '0',\n '[attr.data-scope]': \"'gallery'\",\n '[attr.data-part]': \"'root'\",\n '[attr.data-fullscreen]': 'dataFullscreen()',\n '[attr.data-zoomed]': 'dataZoomed()',\n '[attr.data-rotated]': 'dataRotated()',\n '[attr.data-flipped]': 'dataFlipped()',\n '(keydown)': 'handleKeyDown($event)'\n },\n hostDirectives: [Bind]\n})\nexport class Gallery extends BaseComponent<GalleryPassThrough> {\n componentName = 'Gallery';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * The index of the active item.\n * @group Props\n * @defaultValue 0\n */\n activeIndex = model<number>(0);\n\n /**\n * When defined, puts the fullscreen state in controlled mode; the value drives whether the gallery is fullscreen and changes are reported via onFullscreenChange instead of being handled internally.\n * @group Props\n */\n fullscreen = input<boolean | undefined, boolean | string | undefined>(undefined, { transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });\n\n /**\n * Whether pressing the Escape key exits fullscreen mode.\n * @defaultValue true\n * @group Props\n */\n closeOnEscape = input(true, { transform: booleanAttribute });\n\n /**\n * Callback fired when the gallery's active index changes.\n * @param {GalleryActiveIndexChangeEvent} event - Custom active index change event.\n * @group Emits\n */\n onActiveIndexChange = output<GalleryActiveIndexChangeEvent>();\n\n /**\n * Callback fired when the fullscreen state should change (controlled mode).\n * @param {boolean} value - The next fullscreen state.\n * @group Emits\n */\n onFullscreenChange = output<boolean>();\n\n /**\n * Callback fired when the active item's zoom scale changes.\n * @param {number} scale - The current zoom scale.\n * @group Emits\n */\n onZoomChange = output<number>();\n\n /**\n * Callback fired when the active item's rotation changes.\n * @param {number} rotation - The current rotation in degrees.\n * @group Emits\n */\n onRotateChange = output<number>();\n\n /**\n * Callback fired when the active item's flip state changes.\n * @param {{ x: number; y: number }} flip - The current flip state.\n * @group Emits\n */\n onFlipChange = output<{ x: number; y: number }>();\n\n _componentStyle = inject(GalleryStyle);\n\n private isFullscreenInternal = signal(false);\n\n private fullscreenResizeTimer: ReturnType<typeof setTimeout> | null = null;\n\n private destroyed = false;\n\n isFullscreen = computed(() => this.fullscreen() ?? this.isFullscreenInternal());\n\n activeItemTransform = signal({ zoomed: false, rotated: false, flipped: false });\n\n pendingAction = signal<GalleryPendingAction | null>(null);\n\n itemCounter = 0;\n\n contentEl = signal<HTMLElement | null>(null);\n\n dataFullscreen = computed(() => (this.isFullscreen() ? '' : null));\n\n dataZoomed = computed(() => (this.activeItemTransform().zoomed ? '' : null));\n\n dataRotated = computed(() => (this.activeItemTransform().rotated ? '' : null));\n\n dataFlipped = computed(() => (this.activeItemTransform().flipped ? '' : null));\n\n private onNativeFullscreenChange = () => {\n const active = this.document?.fullscreenElement === this.$el;\n\n this.isFullscreenInternal.set(active);\n\n if (this.fullscreen() !== undefined && this.fullscreen() !== active) {\n this.onFullscreenChange.emit(active);\n }\n\n if (this.fullscreenResizeTimer) clearTimeout(this.fullscreenResizeTimer);\n\n this.fullscreenResizeTimer = setTimeout(() => {\n this.fullscreenResizeTimer = null;\n window.dispatchEvent(new Event('resize'));\n }, 100);\n };\n\n private prevReported: { scale: number; rotation: number; flip: { x: number; y: number } } | null = null;\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n registerItem(existingIndex: number | null): number {\n if (existingIndex !== null) {\n if (existingIndex >= this.itemCounter) {\n this.itemCounter = existingIndex + 1;\n }\n\n return existingIndex;\n }\n\n const newIndex = this.itemCounter;\n\n this.itemCounter += 1;\n\n return newIndex;\n }\n\n handleNext() {\n if (this.itemCounter <= 0) return;\n\n const newIndex = (this.activeIndex() + 1) % this.itemCounter;\n\n this.activeIndex.set(newIndex);\n this.onActiveIndexChange.emit({ value: newIndex });\n }\n\n handlePrev() {\n if (this.itemCounter <= 0) return;\n\n const newIndex = (this.activeIndex() - 1 + this.itemCounter) % this.itemCounter;\n\n this.activeIndex.set(newIndex);\n this.onActiveIndexChange.emit({ value: newIndex });\n }\n\n selectItem(index: number) {\n if (index < 0 || index >= this.itemCounter) return;\n\n this.activeIndex.set(index);\n this.onActiveIndexChange.emit({ value: index });\n }\n\n dispatchAction(type: GalleryPendingAction['type']) {\n this.pendingAction.set({ type, timestamp: Date.now() });\n }\n\n clearPendingAction() {\n this.pendingAction.set(null);\n }\n\n constructor() {\n super();\n\n effect(() => {\n const fullscreenActive = this.fullscreen();\n\n if (fullscreenActive === undefined || isPlatformServer(this.platformId)) return;\n\n const el = this.$el as HTMLElement | null;\n\n if (!el || !this.document) return;\n\n const isNativeFullscreen = this.document.fullscreenElement === el;\n\n if (fullscreenActive && !isNativeFullscreen) {\n el.requestFullscreen?.()?.catch(() => {});\n } else if (!fullscreenActive && this.document.fullscreenElement) {\n this.document.exitFullscreen?.()?.catch(() => {});\n }\n });\n }\n\n onInit() {\n super.onInit();\n\n if (!isPlatformServer(this.platformId)) {\n this.document?.addEventListener('fullscreenchange', this.onNativeFullscreenChange);\n }\n }\n\n onDestroy() {\n this.destroyed = true;\n\n if (this.fullscreenResizeTimer) {\n clearTimeout(this.fullscreenResizeTimer);\n this.fullscreenResizeTimer = null;\n }\n\n this.document?.removeEventListener('fullscreenchange', this.onNativeFullscreenChange);\n\n if (this.document?.fullscreenElement === this.$el) {\n this.document.exitFullscreen?.().catch(() => {});\n }\n\n super.onDestroy();\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.handleNext();\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.handlePrev();\n } else if (event.key === 'Escape' && this.closeOnEscape() && this.isFullscreen()) {\n event.preventDefault();\n this.toggleFullScreen();\n }\n }\n\n toggleFullScreen() {\n if (this.fullscreen() !== undefined) {\n this.onFullscreenChange.emit(!this.fullscreen());\n\n return;\n }\n\n const el = this.$el as HTMLElement | null;\n\n if (!el || isPlatformServer(this.platformId)) return;\n\n if (this.document?.fullscreenElement) {\n this.document.exitFullscreen?.();\n } else {\n el.requestFullscreen?.();\n }\n }\n\n reportItemState(itemState: { zoomed: boolean; rotated: boolean; flipped: boolean; scale: number; rotation: number; flip: { x: number; y: number } }) {\n if (this.destroyed) return;\n\n this.activeItemTransform.set({ zoomed: itemState.zoomed, rotated: itemState.rotated, flipped: itemState.flipped });\n\n const prev = this.prevReported;\n\n if (!prev || prev.scale !== itemState.scale) this.onZoomChange.emit(itemState.scale);\n\n if (!prev || prev.rotation !== itemState.rotation) this.onRotateChange.emit(itemState.rotation);\n\n if (!prev || prev.flip.x !== itemState.flip.x || prev.flip.y !== itemState.flip.y) this.onFlipChange.emit(itemState.flip);\n\n this.prevReported = { scale: itemState.scale, rotation: itemState.rotation, flip: itemState.flip };\n }\n\n handleClickAction(action?: string) {\n if (!action) return;\n\n const actionMap: Record<string, () => void> = {\n zoomIn: () => this.dispatchAction('zoom-in'),\n zoomOut: () => this.dispatchAction('zoom-out'),\n rotateLeft: () => this.dispatchAction('rotate-left'),\n rotateRight: () => this.dispatchAction('rotate-right'),\n flipX: () => this.dispatchAction('flip-x'),\n flipY: () => this.dispatchAction('flip-y'),\n download: () => this.dispatchAction('download'),\n next: () => this.handleNext(),\n prev: () => this.handlePrev(),\n toggleFullScreen: () => this.toggleFullScreen()\n };\n\n actionMap[action]?.();\n }\n\n setContentEl(el: HTMLElement) {\n this.contentEl.set(el);\n }\n}\n\n@NgModule({\n imports: [\n Gallery,\n GalleryItem,\n GalleryHeader,\n GalleryContent,\n GalleryFooter,\n GalleryBackdrop,\n GalleryToolbar,\n GalleryToolbarItem,\n GalleryPrev,\n GalleryNext,\n GalleryZoomIn,\n GalleryZoomOut,\n GalleryZoomToggle,\n GalleryRotateLeft,\n GalleryRotateRight,\n GalleryFlipX,\n GalleryFlipY,\n GalleryFullScreen,\n GalleryDownload,\n GalleryThumbnail,\n GalleryThumbnailContent,\n GalleryThumbnailItem,\n SharedModule\n ],\n exports: [\n Gallery,\n GalleryItem,\n GalleryHeader,\n GalleryContent,\n GalleryFooter,\n GalleryBackdrop,\n GalleryToolbar,\n GalleryToolbarItem,\n GalleryPrev,\n GalleryNext,\n GalleryZoomIn,\n GalleryZoomOut,\n GalleryZoomToggle,\n GalleryRotateLeft,\n GalleryRotateRight,\n GalleryFlipX,\n GalleryFlipY,\n GalleryFullScreen,\n GalleryDownload,\n GalleryThumbnail,\n GalleryThumbnailContent,\n GalleryThumbnailItem,\n SharedModule\n ]\n})\nexport class GalleryModule {}\n"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyUD,IAAa,gBAAb,MAAa,cAAa;CAAb,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAb,OAAA,OAAA,GAAA,oBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,SAAA;GAxUb;GAuRL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAAY;EAAA,SAAA;GA5SP;GAgTL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAAY;CAAA,CAAA;CAGP,OAAA,OAAA,GAAA,oBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,SAAA;GAlDlB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GAYA;GACA;GAEA;GAyBA;EAAY;CAAA,CAAA;;AAGP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAa,YAAA,CAAA;EApDzB,MAAA;EAAS,MAAA,CAAA;GACN,SAAS;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACH;GACD,SAAS;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACH;EACJ,CAAA"}
|