cax-design-system 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/accordion/index.d.ts +286 -3
- package/animate/index.d.ts +41 -3
- package/animateonscroll/index.d.ts +75 -3
- package/api/index.d.ts +1849 -3
- package/autocomplete/index.d.ts +817 -3
- package/autofocus/index.d.ts +29 -3
- package/avatar/index.d.ts +102 -3
- package/avatargroup/index.d.ts +30 -3
- package/badge/index.d.ts +71 -5
- package/baseicon/index.d.ts +18 -5
- package/blockui/index.d.ts +77 -3
- package/breadcrumb/index.d.ts +105 -3
- package/button/index.d.ts +179 -3
- package/buttongroup/index.d.ts +14 -5
- package/calendar/index.d.ts +957 -3
- package/card/index.d.ts +88 -3
- package/carousel/index.d.ts +290 -3
- package/cascadeselect/index.d.ts +594 -3
- package/categorycard/index.d.ts +20 -5
- package/chart/index.d.ts +88 -3
- package/checkbox/index.d.ts +204 -3
- package/chip/index.d.ts +63 -3
- package/colorpicker/index.d.ts +265 -3
- package/commentbox/index.d.ts +138 -5
- package/comments/index.d.ts +91 -5
- package/comparecard/index.d.ts +57 -5
- package/confirmdialog/index.d.ts +327 -3
- package/confirmpopup/index.d.ts +148 -3
- package/contextmenu/index.d.ts +261 -3
- package/dataview/index.d.ts +457 -3
- package/defer/index.d.ts +40 -3
- package/dialog/index.d.ts +411 -3
- package/divider/index.d.ts +64 -3
- package/dock/index.d.ts +136 -3
- package/dom/index.d.ts +105 -3
- package/dragdrop/index.d.ts +120 -3
- package/dropdown/index.d.ts +841 -3
- package/dynamicdialog/index.d.ts +490 -3
- package/editor/index.d.ts +182 -3
- package/fesm2022/cax-design-system-accordion.mjs +10 -10
- package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
- package/fesm2022/cax-design-system-animate.mjs +7 -7
- package/fesm2022/cax-design-system-animate.mjs.map +1 -1
- package/fesm2022/cax-design-system-animateonscroll.mjs +7 -7
- package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
- package/fesm2022/cax-design-system-api.mjs +39 -39
- package/fesm2022/cax-design-system-api.mjs.map +1 -1
- package/fesm2022/cax-design-system-autocomplete.mjs +17 -17
- package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
- package/fesm2022/cax-design-system-autofocus.mjs +7 -7
- package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
- package/fesm2022/cax-design-system-avatar.mjs +7 -7
- package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
- package/fesm2022/cax-design-system-avatargroup.mjs +7 -7
- package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-badge.mjs +10 -10
- package/fesm2022/cax-design-system-badge.mjs.map +1 -1
- package/fesm2022/cax-design-system-baseicon.mjs +3 -3
- package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
- package/fesm2022/cax-design-system-blockui.mjs +7 -7
- package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
- package/fesm2022/cax-design-system-breadcrumb.mjs +7 -7
- package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
- package/fesm2022/cax-design-system-button.mjs +10 -10
- package/fesm2022/cax-design-system-button.mjs.map +1 -1
- package/fesm2022/cax-design-system-buttongroup.mjs +7 -7
- package/fesm2022/cax-design-system-calendar.mjs +7 -7
- package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
- package/fesm2022/cax-design-system-card.mjs +8 -8
- package/fesm2022/cax-design-system-card.mjs.map +1 -1
- package/fesm2022/cax-design-system-carousel.mjs +7 -7
- package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
- package/fesm2022/cax-design-system-cascadeselect.mjs +15 -15
- package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-categorycard.mjs +7 -7
- package/fesm2022/cax-design-system-categorycard.mjs.map +1 -1
- package/fesm2022/cax-design-system-chart.mjs +7 -7
- package/fesm2022/cax-design-system-chart.mjs.map +1 -1
- package/fesm2022/cax-design-system-checkbox.mjs +7 -7
- package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-chip.mjs +7 -7
- package/fesm2022/cax-design-system-chip.mjs.map +1 -1
- package/fesm2022/cax-design-system-colorpicker.mjs +7 -7
- package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
- package/fesm2022/cax-design-system-commentbox.mjs +7 -7
- package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-comments.mjs +11 -11
- package/fesm2022/cax-design-system-comments.mjs.map +1 -1
- package/fesm2022/cax-design-system-comparecard.mjs +8 -8
- package/fesm2022/cax-design-system-comparecard.mjs.map +1 -1
- package/fesm2022/cax-design-system-confirmdialog.mjs +7 -7
- package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-confirmpopup.mjs +7 -7
- package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
- package/fesm2022/cax-design-system-contextmenu.mjs +14 -14
- package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-dataview.mjs +10 -10
- package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
- package/fesm2022/cax-design-system-defer.mjs +7 -7
- package/fesm2022/cax-design-system-defer.mjs.map +1 -1
- package/fesm2022/cax-design-system-dialog.mjs +7 -7
- package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-divider.mjs +7 -7
- package/fesm2022/cax-design-system-divider.mjs.map +1 -1
- package/fesm2022/cax-design-system-dock.mjs +7 -7
- package/fesm2022/cax-design-system-dock.mjs.map +1 -1
- package/fesm2022/cax-design-system-dragdrop.mjs +10 -10
- package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
- package/fesm2022/cax-design-system-dropdown.mjs +20 -20
- package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/cax-design-system-dynamicdialog.mjs +14 -14
- package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-editor.mjs +7 -7
- package/fesm2022/cax-design-system-editor.mjs.map +1 -1
- package/fesm2022/cax-design-system-fieldset.mjs +7 -7
- package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
- package/fesm2022/cax-design-system-fileupload.mjs +7 -7
- package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
- package/fesm2022/cax-design-system-floatlabel.mjs +7 -7
- package/fesm2022/cax-design-system-focustrap.mjs +7 -7
- package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
- package/fesm2022/cax-design-system-galleria.mjs +19 -19
- package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
- package/fesm2022/cax-design-system-iconfield.mjs +7 -7
- package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angledoubledown.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angledoubleright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angledoubleup.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angledown.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angleleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angleright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angleup.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowdown.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowdownright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowup.mjs +3 -3
- package/fesm2022/cax-design-system-icons-ban.mjs +3 -3
- package/fesm2022/cax-design-system-icons-bars.mjs +3 -3
- package/fesm2022/cax-design-system-icons-blank.mjs +3 -3
- package/fesm2022/cax-design-system-icons-calendar.mjs +3 -3
- package/fesm2022/cax-design-system-icons-caretleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-caretright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-check.mjs +3 -3
- package/fesm2022/cax-design-system-icons-chevrondown.mjs +3 -3
- package/fesm2022/cax-design-system-icons-chevronleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-chevronright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-chevronup.mjs +3 -3
- package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +3 -3
- package/fesm2022/cax-design-system-icons-eye.mjs +3 -3
- package/fesm2022/cax-design-system-icons-eyeslash.mjs +3 -3
- package/fesm2022/cax-design-system-icons-filter.mjs +3 -3
- package/fesm2022/cax-design-system-icons-filterslash.mjs +3 -3
- package/fesm2022/cax-design-system-icons-home.mjs +3 -3
- package/fesm2022/cax-design-system-icons-infocircle.mjs +3 -3
- package/fesm2022/cax-design-system-icons-minus.mjs +3 -3
- package/fesm2022/cax-design-system-icons-pencil.mjs +3 -3
- package/fesm2022/cax-design-system-icons-plus.mjs +3 -3
- package/fesm2022/cax-design-system-icons-refresh.mjs +3 -3
- package/fesm2022/cax-design-system-icons-search.mjs +3 -3
- package/fesm2022/cax-design-system-icons-searchminus.mjs +3 -3
- package/fesm2022/cax-design-system-icons-searchplus.mjs +3 -3
- package/fesm2022/cax-design-system-icons-sortalt.mjs +3 -3
- package/fesm2022/cax-design-system-icons-sortamountdown.mjs +3 -3
- package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +3 -3
- package/fesm2022/cax-design-system-icons-spinner.mjs +3 -3
- package/fesm2022/cax-design-system-icons-star.mjs +3 -3
- package/fesm2022/cax-design-system-icons-starfill.mjs +3 -3
- package/fesm2022/cax-design-system-icons-thlarge.mjs +3 -3
- package/fesm2022/cax-design-system-icons-times.mjs +3 -3
- package/fesm2022/cax-design-system-icons-timescircle.mjs +3 -3
- package/fesm2022/cax-design-system-icons-trash.mjs +3 -3
- package/fesm2022/cax-design-system-icons-undo.mjs +3 -3
- package/fesm2022/cax-design-system-icons-upload.mjs +3 -3
- package/fesm2022/cax-design-system-icons-windowmaximize.mjs +3 -3
- package/fesm2022/cax-design-system-icons-windowminimize.mjs +3 -3
- package/fesm2022/cax-design-system-image.mjs +7 -7
- package/fesm2022/cax-design-system-image.mjs.map +1 -1
- package/fesm2022/cax-design-system-inplace.mjs +13 -13
- package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputchips.mjs +7 -7
- package/fesm2022/cax-design-system-inputchips.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputgroup.mjs +7 -7
- package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputgroupaddon.mjs +7 -7
- package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputicon.mjs +7 -7
- package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputmask.mjs +7 -7
- package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputnumber.mjs +7 -7
- package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputotp.mjs +7 -7
- package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputswitch.mjs +7 -7
- package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputtext.mjs +10 -10
- package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputtextarea.mjs +10 -10
- package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
- package/fesm2022/cax-design-system-keyfilter.mjs +7 -7
- package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
- package/fesm2022/cax-design-system-knob.mjs +7 -7
- package/fesm2022/cax-design-system-knob.mjs.map +1 -1
- package/fesm2022/cax-design-system-listbox.mjs +13 -13
- package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-logo.mjs +7 -7
- package/fesm2022/cax-design-system-logo.mjs.map +1 -1
- package/fesm2022/cax-design-system-logocard.mjs +7 -7
- package/fesm2022/cax-design-system-logocard.mjs.map +1 -1
- package/fesm2022/cax-design-system-megamenu.mjs +12 -12
- package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-menu.mjs +16 -16
- package/fesm2022/cax-design-system-menu.mjs.map +1 -1
- package/fesm2022/cax-design-system-menubar.mjs +16 -16
- package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
- package/fesm2022/cax-design-system-message.mjs +7 -7
- package/fesm2022/cax-design-system-message.mjs.map +1 -1
- package/fesm2022/cax-design-system-messages.mjs +7 -7
- package/fesm2022/cax-design-system-messages.mjs.map +1 -1
- package/fesm2022/cax-design-system-metergroup.mjs +10 -10
- package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-multiselect.mjs +19 -19
- package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-navigation.mjs +21 -9
- package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
- package/fesm2022/cax-design-system-orderlist.mjs +8 -8
- package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
- package/fesm2022/cax-design-system-organizationchart.mjs +10 -10
- package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
- package/fesm2022/cax-design-system-overlay.mjs +7 -7
- package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
- package/fesm2022/cax-design-system-overlaypanel.mjs +7 -7
- package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
- package/fesm2022/cax-design-system-paginator.mjs +7 -7
- package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
- package/fesm2022/cax-design-system-panel.mjs +7 -7
- package/fesm2022/cax-design-system-panel.mjs.map +1 -1
- package/fesm2022/cax-design-system-panelmenu.mjs +18 -18
- package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-password.mjs +13 -13
- package/fesm2022/cax-design-system-password.mjs.map +1 -1
- package/fesm2022/cax-design-system-picklist.mjs +8 -8
- package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
- package/fesm2022/cax-design-system-productcard.mjs +7 -7
- package/fesm2022/cax-design-system-productcard.mjs.map +1 -1
- package/fesm2022/cax-design-system-progressbar.mjs +7 -7
- package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
- package/fesm2022/cax-design-system-progressspinner.mjs +7 -7
- package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
- package/fesm2022/cax-design-system-radiobutton.mjs +10 -10
- package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-rating.mjs +8 -8
- package/fesm2022/cax-design-system-rating.mjs.map +1 -1
- package/fesm2022/cax-design-system-ripple.mjs +7 -7
- package/fesm2022/cax-design-system-scroller.mjs +7 -7
- package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
- package/fesm2022/cax-design-system-scrollpanel.mjs +7 -7
- package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
- package/fesm2022/cax-design-system-scrolltop.mjs +7 -7
- package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
- package/fesm2022/cax-design-system-selectbutton.mjs +7 -7
- package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-sidebar.mjs +8 -8
- package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
- package/fesm2022/cax-design-system-skeleton.mjs +7 -7
- package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
- package/fesm2022/cax-design-system-slidemenu.mjs +13 -13
- package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-slider.mjs +7 -7
- package/fesm2022/cax-design-system-slider.mjs.map +1 -1
- package/fesm2022/cax-design-system-speeddial.mjs +8 -8
- package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
- package/fesm2022/cax-design-system-spinner.mjs +7 -7
- package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
- package/fesm2022/cax-design-system-splitbutton.mjs +8 -8
- package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-splitter.mjs +7 -7
- package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
- package/fesm2022/cax-design-system-stepper.mjs +19 -19
- package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
- package/fesm2022/cax-design-system-steps.mjs +7 -7
- package/fesm2022/cax-design-system-steps.mjs.map +1 -1
- package/fesm2022/cax-design-system-styleclass.mjs +7 -7
- package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
- package/fesm2022/cax-design-system-subscriptioncard.mjs +7 -7
- package/fesm2022/cax-design-system-subscriptioncard.mjs.map +1 -1
- package/fesm2022/cax-design-system-table-paginator.mjs +7 -8
- package/fesm2022/cax-design-system-table-paginator.mjs.map +1 -1
- package/fesm2022/cax-design-system-table.mjs +91 -91
- package/fesm2022/cax-design-system-table.mjs.map +1 -1
- package/fesm2022/cax-design-system-tableconfiguration.mjs +7 -7
- package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
- package/fesm2022/cax-design-system-tabmenu.mjs +8 -8
- package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-tabview.mjs +10 -10
- package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
- package/fesm2022/cax-design-system-tag.mjs +7 -7
- package/fesm2022/cax-design-system-tag.mjs.map +1 -1
- package/fesm2022/cax-design-system-terminal.mjs +10 -10
- package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
- package/fesm2022/cax-design-system-tieredmenu.mjs +15 -15
- package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-timeline.mjs +7 -7
- package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
- package/fesm2022/cax-design-system-toast.mjs +10 -10
- package/fesm2022/cax-design-system-toast.mjs.map +1 -1
- package/fesm2022/cax-design-system-togglebutton.mjs +7 -7
- package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-toggleswitch.mjs +7 -7
- package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
- package/fesm2022/cax-design-system-toolbar.mjs +7 -7
- package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
- package/fesm2022/cax-design-system-tooltip.mjs +7 -7
- package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/cax-design-system-tree.mjs +10 -10
- package/fesm2022/cax-design-system-tree.mjs.map +1 -1
- package/fesm2022/cax-design-system-treeselect.mjs +7 -7
- package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-treetable.mjs +55 -55
- package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
- package/fesm2022/cax-design-system-tristatecheckbox.mjs +7 -7
- package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-upload.mjs +7 -7
- package/fesm2022/cax-design-system-upload.mjs.map +1 -1
- package/fesm2022/cax-design-system-virtualscroller.mjs +7 -7
- package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
- package/fieldset/index.d.ts +140 -3
- package/fileupload/index.d.ts +606 -3
- package/floatlabel/index.d.ts +19 -3
- package/focustrap/index.d.ts +35 -3
- package/galleria/index.d.ts +502 -3
- package/iconfield/index.d.ts +26 -3
- package/icons/angledoubledown/index.d.ts +9 -5
- package/icons/angledoubleleft/index.d.ts +9 -5
- package/icons/angledoubleright/index.d.ts +9 -5
- package/icons/angledoubleup/index.d.ts +9 -5
- package/icons/angledown/index.d.ts +9 -5
- package/icons/angleleft/index.d.ts +9 -5
- package/icons/angleright/index.d.ts +9 -5
- package/icons/angleup/index.d.ts +9 -5
- package/icons/arrowdown/index.d.ts +12 -5
- package/icons/arrowdownleft/index.d.ts +9 -5
- package/icons/arrowdownright/index.d.ts +9 -5
- package/icons/arrowleft/index.d.ts +11 -5
- package/icons/arrowright/index.d.ts +9 -5
- package/icons/arrowup/index.d.ts +11 -5
- package/icons/ban/index.d.ts +11 -5
- package/icons/bars/index.d.ts +9 -5
- package/icons/blank/index.d.ts +9 -5
- package/icons/calendar/index.d.ts +9 -5
- package/icons/caretleft/index.d.ts +9 -5
- package/icons/caretright/index.d.ts +9 -5
- package/icons/check/index.d.ts +9 -5
- package/icons/chevrondown/index.d.ts +9 -5
- package/icons/chevronleft/index.d.ts +9 -5
- package/icons/chevronright/index.d.ts +9 -5
- package/icons/chevronup/index.d.ts +9 -5
- package/icons/exclamationtriangle/index.d.ts +12 -5
- package/icons/eye/index.d.ts +9 -5
- package/icons/eyeslash/index.d.ts +11 -5
- package/icons/filter/index.d.ts +11 -5
- package/icons/filterslash/index.d.ts +11 -5
- package/icons/home/index.d.ts +11 -5
- package/icons/infocircle/index.d.ts +11 -5
- package/icons/minus/index.d.ts +9 -5
- package/icons/pencil/index.d.ts +11 -5
- package/icons/plus/index.d.ts +11 -5
- package/icons/refresh/index.d.ts +11 -5
- package/icons/search/index.d.ts +11 -5
- package/icons/searchminus/index.d.ts +11 -5
- package/icons/searchplus/index.d.ts +11 -5
- package/icons/sortalt/index.d.ts +11 -5
- package/icons/sortamountdown/index.d.ts +11 -5
- package/icons/sortamountupalt/index.d.ts +11 -5
- package/icons/spinner/index.d.ts +11 -5
- package/icons/star/index.d.ts +11 -5
- package/icons/starfill/index.d.ts +11 -5
- package/icons/thlarge/index.d.ts +11 -5
- package/icons/times/index.d.ts +9 -5
- package/icons/timescircle/index.d.ts +11 -5
- package/icons/trash/index.d.ts +11 -5
- package/icons/undo/index.d.ts +11 -5
- package/icons/upload/index.d.ts +11 -5
- package/icons/windowmaximize/index.d.ts +11 -5
- package/icons/windowminimize/index.d.ts +11 -5
- package/image/index.d.ts +228 -3
- package/index.d.ts +2 -5
- package/inplace/index.d.ts +130 -3
- package/inputchips/index.d.ts +323 -3
- package/inputgroup/index.d.ts +79 -3
- package/inputgroupaddon/index.d.ts +35 -3
- package/inputicon/index.d.ts +22 -3
- package/inputmask/index.d.ts +310 -3
- package/inputnumber/index.d.ts +469 -3
- package/inputotp/index.d.ts +189 -3
- package/inputswitch/index.d.ts +123 -3
- package/inputtext/index.d.ts +79 -5
- package/inputtextarea/index.d.ts +130 -3
- package/keyfilter/index.d.ts +65 -3
- package/knob/index.d.ts +179 -3
- package/listbox/index.d.ts +631 -3
- package/logo/index.d.ts +20 -5
- package/logocard/index.d.ts +15 -5
- package/megamenu/index.d.ts +230 -3
- package/menu/index.d.ts +222 -3
- package/menubar/index.d.ts +290 -3
- package/message/index.d.ts +53 -3
- package/messages/index.d.ts +129 -3
- package/metergroup/index.d.ts +224 -3
- package/multiselect/index.d.ts +1000 -3
- package/navigation/index.d.ts +110 -5
- package/orderlist/index.d.ts +381 -3
- package/organizationchart/index.d.ts +192 -3
- package/overlay/index.d.ts +246 -3
- package/overlaypanel/index.d.ts +175 -3
- package/package.json +387 -387
- package/paginator/index.d.ts +249 -3
- package/panel/index.d.ts +185 -3
- package/panelmenu/index.d.ts +249 -3
- package/password/index.d.ts +342 -3
- package/picklist/index.d.ts +696 -3
- package/productcard/index.d.ts +28 -5
- package/progressbar/index.d.ts +76 -3
- package/progressspinner/index.d.ts +58 -3
- package/radiobutton/index.d.ts +174 -3
- package/rating/index.d.ts +181 -3
- package/ripple/index.d.ts +37 -3
- package/scroller/index.d.ts +528 -3
- package/scrollpanel/index.d.ts +116 -3
- package/scrolltop/index.d.ts +117 -3
- package/selectbutton/index.d.ts +233 -3
- package/sidebar/index.d.ts +213 -3
- package/skeleton/index.d.ts +69 -3
- package/slidemenu/index.d.ts +339 -3
- package/slider/index.d.ts +215 -3
- package/speeddial/index.d.ts +324 -3
- package/spinner/index.d.ts +93 -5
- package/splitbutton/index.d.ts +264 -3
- package/splitter/index.d.ts +201 -3
- package/stepper/index.d.ts +145 -3
- package/steps/index.d.ts +95 -3
- package/styleclass/index.d.ts +109 -3
- package/subscriptioncard/index.d.ts +46 -5
- package/table/index.d.ts +2530 -3
- package/table-paginator/index.d.ts +59 -3
- package/tableconfiguration/index.d.ts +27 -5
- package/tabmenu/index.d.ts +160 -3
- package/tabview/index.d.ts +360 -3
- package/tag/index.d.ts +120 -3
- package/terminal/index.d.ts +68 -3
- package/tieredmenu/index.d.ts +312 -3
- package/timeline/index.d.ts +100 -3
- package/toast/index.d.ts +194 -3
- package/togglebutton/index.d.ts +150 -3
- package/toggleswitch/index.d.ts +30 -5
- package/toolbar/index.d.ts +64 -3
- package/tooltip/index.d.ts +218 -3
- package/tree/index.d.ts +673 -3
- package/treeselect/index.d.ts +517 -3
- package/treetable/index.d.ts +1461 -3
- package/tristatecheckbox/index.d.ts +155 -3
- package/ts-helpers/index.d.ts +6 -5
- package/upload/index.d.ts +113 -5
- package/utils/index.d.ts +35 -5
- package/virtualscroller/index.d.ts +161 -3
- package/accordion/accordion.d.ts +0 -224
- package/accordion/accordion.interface.d.ts +0 -49
- package/accordion/accordion.module.d.ts +0 -13
- package/accordion/public_api.d.ts +0 -3
- package/animate/animate.d.ts +0 -40
- package/animate/public_api.d.ts +0 -1
- package/animateonscroll/animateonscroll.d.ts +0 -75
- package/animateonscroll/public_api.d.ts +0 -1
- package/api/blockableui.d.ts +0 -10
- package/api/caxconfig.d.ts +0 -24
- package/api/confirmaeventtype.d.ts +0 -8
- package/api/confirmation.d.ts +0 -90
- package/api/confirmationservice.d.ts +0 -30
- package/api/contextmenuservice.d.ts +0 -11
- package/api/filtermatchmode.d.ts +0 -22
- package/api/filtermetadata.d.ts +0 -18
- package/api/filteroperator.d.ts +0 -4
- package/api/filterservice.d.ts +0 -10
- package/api/lazyloadevent.d.ts +0 -47
- package/api/lazyloadmeta.d.ts +0 -19
- package/api/megamenuitem.d.ts +0 -130
- package/api/menuitem.d.ts +0 -176
- package/api/message.d.ts +0 -29
- package/api/messageservice.d.ts +0 -32
- package/api/overlayoptions.d.ts +0 -188
- package/api/overlayservice.d.ts +0 -9
- package/api/primeicons.d.ts +0 -313
- package/api/public_api.d.ts +0 -34
- package/api/scrolleroptions.d.ts +0 -116
- package/api/selectitem.d.ts +0 -12
- package/api/selectitemgroup.d.ts +0 -10
- package/api/shared.d.ts +0 -24
- package/api/sortevent.d.ts +0 -12
- package/api/sortmeta.d.ts +0 -8
- package/api/tablestate.d.ts +0 -60
- package/api/themegeneratorservice.d.ts +0 -12
- package/api/tooltipoptions.d.ts +0 -69
- package/api/translation.d.ts +0 -135
- package/api/translationkeys.d.ts +0 -50
- package/api/treedragdropservice.d.ts +0 -12
- package/api/treenode.d.ts +0 -91
- package/api/treenodedragevent.d.ts +0 -27
- package/api/treetablenode.d.ts +0 -36
- package/autocomplete/autocomplete.d.ts +0 -633
- package/autocomplete/autocomplete.interface.d.ts +0 -164
- package/autocomplete/autocomplete.module.d.ts +0 -21
- package/autocomplete/public_api.d.ts +0 -3
- package/autofocus/autofocus.d.ts +0 -28
- package/autofocus/public_api.d.ts +0 -1
- package/avatar/avatar.d.ts +0 -95
- package/avatar/avatar.module.d.ts +0 -7
- package/avatar/public_api.d.ts +0 -2
- package/avatargroup/avatargroup.d.ts +0 -21
- package/avatargroup/avatargroup.module.d.ts +0 -9
- package/avatargroup/public_api.d.ts +0 -2
- package/badge/badge.d.ts +0 -25
- package/badge/badge.directive.d.ts +0 -35
- package/badge/badge.module.d.ts +0 -10
- package/badge/public_api.d.ts +0 -3
- package/baseicon/baseicon.d.ts +0 -15
- package/baseicon/public_api.d.ts +0 -1
- package/blockui/blockui.d.ts +0 -64
- package/blockui/blockui.interface.d.ts +0 -11
- package/blockui/public_api.d.ts +0 -2
- package/breadcrumb/breadcrumb.d.ts +0 -55
- package/breadcrumb/breadcrumb.interface.d.ts +0 -38
- package/breadcrumb/breadcrumb.module.d.ts +0 -13
- package/breadcrumb/public_api.d.ts +0 -3
- package/button/button.d.ts +0 -92
- package/button/button.directive.d.ts +0 -51
- package/button/button.interface.d.ts +0 -30
- package/button/button.module.d.ts +0 -9
- package/button/public_api.d.ts +0 -4
- package/buttongroup/buttongroup.d.ts +0 -11
- package/buttongroup/public_api.d.ts +0 -1
- package/calendar/calendar.d.ts +0 -744
- package/calendar/calendar.interface.d.ts +0 -204
- package/calendar/calendar.module.d.ts +0 -9
- package/calendar/public_api.d.ts +0 -3
- package/card/card.d.ts +0 -49
- package/card/card.interface.d.ts +0 -27
- package/card/card.module.d.ts +0 -11
- package/card/public_api.d.ts +0 -3
- package/carousel/carousel.d.ts +0 -227
- package/carousel/carousel.interface.d.ts +0 -63
- package/carousel/public_api.d.ts +0 -2
- package/cascadeselect/cascadeselect.d.ts +0 -465
- package/cascadeselect/cascadeselect.interface.d.ts +0 -115
- package/cascadeselect/cascadeselect.module.d.ts +0 -15
- package/cascadeselect/public_api.d.ts +0 -3
- package/categorycard/categorycard.d.ts +0 -11
- package/categorycard/categorycard.module.d.ts +0 -7
- package/categorycard/public_api.d.ts +0 -2
- package/chart/chart.d.ts +0 -87
- package/chart/public_api.d.ts +0 -1
- package/checkbox/checkbox.d.ts +0 -168
- package/checkbox/checkbox.interface.d.ts +0 -26
- package/checkbox/checkbox.module.d.ts +0 -10
- package/checkbox/public_api.d.ts +0 -3
- package/chip/chip.d.ts +0 -37
- package/chip/chip.interface.d.ts +0 -15
- package/chip/chip.module.d.ts +0 -10
- package/chip/public_api.d.ts +0 -3
- package/colorpicker/colorpicker.d.ts +0 -240
- package/colorpicker/colorpicker.interface.d.ts +0 -15
- package/colorpicker/colorpicker.module.d.ts +0 -9
- package/colorpicker/public_api.d.ts +0 -3
- package/commentbox/commentbox.d.ts +0 -120
- package/commentbox/commentbox.module.d.ts +0 -17
- package/commentbox/public_api.d.ts +0 -2
- package/comments/comments.d.ts +0 -83
- package/comments/comments.module.d.ts +0 -7
- package/comments/public_api.d.ts +0 -2
- package/comparecard/comaparecard.module.d.ts +0 -11
- package/comparecard/comparecard.component.d.ts +0 -44
- package/comparecard/public_api.d.ts +0 -2
- package/confirmdialog/confirmdialog.d.ts +0 -272
- package/confirmdialog/confirmdialog.interface.d.ts +0 -39
- package/confirmdialog/confirmdialog.module.d.ts +0 -15
- package/confirmdialog/public_api.d.ts +0 -3
- package/confirmpopup/confirmpopup.d.ts +0 -119
- package/confirmpopup/confirmpopup.interface.d.ts +0 -27
- package/confirmpopup/public_api.d.ts +0 -2
- package/contextmenu/contextmenu.d.ts +0 -260
- package/contextmenu/public_api.d.ts +0 -1
- package/dataview/dataview.d.ts +0 -274
- package/dataview/dataview.interface.d.ts +0 -183
- package/dataview/public_api.d.ts +0 -2
- package/defer/defer.d.ts +0 -39
- package/defer/public_api.d.ts +0 -1
- package/dialog/dialog.d.ts +0 -364
- package/dialog/dialog.interface.d.ts +0 -31
- package/dialog/dialog.module.d.ts +0 -15
- package/dialog/public_api.d.ts +0 -3
- package/divider/divider.d.ts +0 -57
- package/divider/divider.module.d.ts +0 -7
- package/divider/public_api.d.ts +0 -2
- package/dock/dock.d.ts +0 -115
- package/dock/dock.interface.d.ts +0 -19
- package/dock/public_api.d.ts +0 -2
- package/dom/connectedoverlayscrollhandler.d.ts +0 -9
- package/dom/domhandler.d.ts +0 -95
- package/dom/public_api.d.ts +0 -2
- package/dragdrop/dragdrop.d.ts +0 -112
- package/dragdrop/dragdrop.module.d.ts +0 -8
- package/dragdrop/public_api.d.ts +0 -2
- package/dropdown/dropdown-item.d.ts +0 -31
- package/dropdown/dropdown.d.ts +0 -650
- package/dropdown/dropdown.interface.d.ts +0 -154
- package/dropdown/dropdown.module.d.ts +0 -11
- package/dropdown/public_api.d.ts +0 -4
- package/dynamicdialog/dialogservice.d.ts +0 -35
- package/dynamicdialog/dynamicdialog-config.d.ts +0 -221
- package/dynamicdialog/dynamicdialog-injector.d.ts +0 -7
- package/dynamicdialog/dynamicdialog-ref.d.ts +0 -101
- package/dynamicdialog/dynamicdialog.d.ts +0 -124
- package/dynamicdialog/dynamicdialogcontent.d.ts +0 -8
- package/dynamicdialog/public_api.d.ts +0 -6
- package/editor/editor.d.ts +0 -109
- package/editor/editor.interface.d.ts +0 -64
- package/editor/editor.module.d.ts +0 -9
- package/editor/public_api.d.ts +0 -3
- package/fieldset/fieldset.d.ts +0 -93
- package/fieldset/fieldset.interface.d.ts +0 -46
- package/fieldset/public_api.d.ts +0 -2
- package/fileupload/fileupload.d.ts +0 -380
- package/fileupload/fileupload.interface.d.ts +0 -226
- package/fileupload/public_api.d.ts +0 -2
- package/floatlabel/floatlabel.d.ts +0 -9
- package/floatlabel/floatlabel.module.d.ts +0 -10
- package/floatlabel/public_api.d.ts +0 -2
- package/focustrap/focustrap.d.ts +0 -34
- package/focustrap/public_api.d.ts +0 -1
- package/galleria/galleria.d.ts +0 -404
- package/galleria/galleria.interface.d.ts +0 -97
- package/galleria/public_api.d.ts +0 -2
- package/iconfield/iconfield.d.ts +0 -25
- package/iconfield/public_api.d.ts +0 -1
- package/icons/angledoubledown/angledoubledown.d.ts +0 -6
- package/icons/angledoubledown/public_api.d.ts +0 -1
- package/icons/angledoubleleft/angledoubleleft.d.ts +0 -6
- package/icons/angledoubleleft/public_api.d.ts +0 -1
- package/icons/angledoubleright/angledoubleright.d.ts +0 -6
- package/icons/angledoubleright/public_api.d.ts +0 -1
- package/icons/angledoubleup/angledoubleup.d.ts +0 -6
- package/icons/angledoubleup/public_api.d.ts +0 -1
- package/icons/angledown/angledown.d.ts +0 -6
- package/icons/angledown/public_api.d.ts +0 -1
- package/icons/angleleft/angleleft.d.ts +0 -6
- package/icons/angleleft/public_api.d.ts +0 -1
- package/icons/angleright/angleright.d.ts +0 -6
- package/icons/angleright/public_api.d.ts +0 -1
- package/icons/angleup/angleup.d.ts +0 -6
- package/icons/angleup/public_api.d.ts +0 -1
- package/icons/arrowdown/arrowdown.d.ts +0 -9
- package/icons/arrowdown/public_api.d.ts +0 -1
- package/icons/arrowdownleft/arrowdownleft.d.ts +0 -6
- package/icons/arrowdownleft/public_api.d.ts +0 -1
- package/icons/arrowdownright/arrowdownright.d.ts +0 -6
- package/icons/arrowdownright/public_api.d.ts +0 -1
- package/icons/arrowleft/arrowleft.d.ts +0 -8
- package/icons/arrowleft/public_api.d.ts +0 -1
- package/icons/arrowright/arrowright.d.ts +0 -6
- package/icons/arrowright/public_api.d.ts +0 -1
- package/icons/arrowup/arrowup.d.ts +0 -8
- package/icons/arrowup/public_api.d.ts +0 -1
- package/icons/ban/ban.d.ts +0 -8
- package/icons/ban/public_api.d.ts +0 -1
- package/icons/bars/bars.d.ts +0 -6
- package/icons/bars/public_api.d.ts +0 -1
- package/icons/blank/blank.d.ts +0 -6
- package/icons/blank/public_api.d.ts +0 -1
- package/icons/calendar/calendar.d.ts +0 -6
- package/icons/calendar/public_api.d.ts +0 -1
- package/icons/caretleft/caretleft.d.ts +0 -6
- package/icons/caretleft/public_api.d.ts +0 -1
- package/icons/caretright/caretright.d.ts +0 -6
- package/icons/caretright/public_api.d.ts +0 -1
- package/icons/check/check.d.ts +0 -6
- package/icons/check/public_api.d.ts +0 -1
- package/icons/chevrondown/chevrondown.d.ts +0 -6
- package/icons/chevrondown/public_api.d.ts +0 -1
- package/icons/chevronleft/chevronleft.d.ts +0 -6
- package/icons/chevronleft/public_api.d.ts +0 -1
- package/icons/chevronright/chevronright.d.ts +0 -6
- package/icons/chevronright/public_api.d.ts +0 -1
- package/icons/chevronup/chevronup.d.ts +0 -6
- package/icons/chevronup/public_api.d.ts +0 -1
- package/icons/exclamationtriangle/exclamationtriangle.d.ts +0 -9
- package/icons/exclamationtriangle/public_api.d.ts +0 -1
- package/icons/eye/eye.d.ts +0 -6
- package/icons/eye/public_api.d.ts +0 -1
- package/icons/eyeslash/eyeslash.d.ts +0 -8
- package/icons/eyeslash/public_api.d.ts +0 -1
- package/icons/filter/filter.d.ts +0 -8
- package/icons/filter/public_api.d.ts +0 -1
- package/icons/filterslash/filterslash.d.ts +0 -8
- package/icons/filterslash/public_api.d.ts +0 -1
- package/icons/home/home.d.ts +0 -8
- package/icons/home/public_api.d.ts +0 -1
- package/icons/infocircle/infocircle.d.ts +0 -8
- package/icons/infocircle/public_api.d.ts +0 -1
- package/icons/minus/minus.d.ts +0 -6
- package/icons/minus/public_api.d.ts +0 -1
- package/icons/pencil/pencil.d.ts +0 -8
- package/icons/pencil/public_api.d.ts +0 -1
- package/icons/plus/plus.d.ts +0 -8
- package/icons/plus/public_api.d.ts +0 -1
- package/icons/refresh/public_api.d.ts +0 -1
- package/icons/refresh/refresh.d.ts +0 -8
- package/icons/search/public_api.d.ts +0 -1
- package/icons/search/search.d.ts +0 -8
- package/icons/searchminus/public_api.d.ts +0 -1
- package/icons/searchminus/searchminus.d.ts +0 -8
- package/icons/searchplus/public_api.d.ts +0 -1
- package/icons/searchplus/searchplus.d.ts +0 -8
- package/icons/sortalt/public_api.d.ts +0 -1
- package/icons/sortalt/sortalt.d.ts +0 -8
- package/icons/sortamountdown/public_api.d.ts +0 -1
- package/icons/sortamountdown/sortamountdown.d.ts +0 -8
- package/icons/sortamountupalt/public_api.d.ts +0 -1
- package/icons/sortamountupalt/sortamountupalt.d.ts +0 -8
- package/icons/spinner/public_api.d.ts +0 -1
- package/icons/spinner/spinner.d.ts +0 -8
- package/icons/star/public_api.d.ts +0 -1
- package/icons/star/star.d.ts +0 -8
- package/icons/starfill/public_api.d.ts +0 -1
- package/icons/starfill/starfill.d.ts +0 -8
- package/icons/thlarge/public_api.d.ts +0 -1
- package/icons/thlarge/thlarge.d.ts +0 -8
- package/icons/times/public_api.d.ts +0 -1
- package/icons/times/times.d.ts +0 -6
- package/icons/timescircle/public_api.d.ts +0 -1
- package/icons/timescircle/timescircle.d.ts +0 -8
- package/icons/trash/public_api.d.ts +0 -1
- package/icons/trash/trash.d.ts +0 -8
- package/icons/undo/public_api.d.ts +0 -1
- package/icons/undo/undo.d.ts +0 -8
- package/icons/upload/public_api.d.ts +0 -1
- package/icons/upload/upload.d.ts +0 -8
- package/icons/windowmaximize/public_api.d.ts +0 -1
- package/icons/windowmaximize/windowmaximize.d.ts +0 -8
- package/icons/windowminimize/public_api.d.ts +0 -1
- package/icons/windowminimize/windowminimize.d.ts +0 -8
- package/image/image.d.ts +0 -188
- package/image/image.interface.d.ts +0 -31
- package/image/image.module.d.ts +0 -8
- package/image/public_api.d.ts +0 -3
- package/inplace/inplace.d.ts +0 -109
- package/inplace/inplace.interface.d.ts +0 -19
- package/inplace/public_api.d.ts +0 -2
- package/inputchips/inputchips.d.ts +0 -251
- package/inputchips/inputchips.interface.d.ts +0 -58
- package/inputchips/inputchips.module.d.ts +0 -14
- package/inputchips/public_api.d.ts +0 -3
- package/inputgroup/inputgroup.d.ts +0 -64
- package/inputgroup/inputgroup.module.d.ts +0 -15
- package/inputgroup/public_api.d.ts +0 -2
- package/inputgroupaddon/inputgroupaddon.d.ts +0 -21
- package/inputgroupaddon/inputgroupaddon.module.d.ts +0 -14
- package/inputgroupaddon/public_api.d.ts +0 -2
- package/inputicon/inputicon.d.ts +0 -21
- package/inputicon/public_api.d.ts +0 -1
- package/inputmask/inputmask.d.ts +0 -279
- package/inputmask/inputmask.interface.d.ts +0 -19
- package/inputmask/inputmask.module.d.ts +0 -12
- package/inputmask/public_api.d.ts +0 -3
- package/inputnumber/inputnumber.d.ts +0 -423
- package/inputnumber/inputnumber.interface.d.ts +0 -38
- package/inputnumber/inputnumber.module.d.ts +0 -8
- package/inputnumber/public_api.d.ts +0 -3
- package/inputotp/inputotp.d.ts +0 -123
- package/inputotp/inputotp.interface.d.ts +0 -65
- package/inputotp/public_api.d.ts +0 -2
- package/inputswitch/inputswitch.d.ts +0 -106
- package/inputswitch/inputswitch.interface.d.ts +0 -15
- package/inputswitch/public_api.d.ts +0 -2
- package/inputtext/inputtext.component.d.ts +0 -44
- package/inputtext/inputtext.directive.d.ts +0 -27
- package/inputtext/inputtext.module.d.ts +0 -10
- package/inputtext/public_api.d.ts +0 -3
- package/inputtextarea/inputtextarea.component.d.ts +0 -64
- package/inputtextarea/inputtextarea.directive.d.ts +0 -58
- package/inputtextarea/inputtextarea.module.d.ts +0 -10
- package/inputtextarea/public_api.d.ts +0 -3
- package/keyfilter/keyfilter.d.ts +0 -58
- package/keyfilter/keyfilter.interface.d.ts +0 -5
- package/keyfilter/public_api.d.ts +0 -2
- package/knob/knob.d.ts +0 -178
- package/knob/public_api.d.ts +0 -1
- package/listbox/listbox.d.ts +0 -461
- package/listbox/listbox.interface.d.ts +0 -156
- package/listbox/listbox.module.d.ts +0 -14
- package/listbox/public_api.d.ts +0 -3
- package/logo/logo.d.ts +0 -11
- package/logo/logo.module.d.ts +0 -7
- package/logo/public_api.d.ts +0 -2
- package/logocard/logocard.d.ts +0 -6
- package/logocard/logocard.module.d.ts +0 -7
- package/logocard/public_api.d.ts +0 -2
- package/megamenu/megamenu.d.ts +0 -198
- package/megamenu/megamenu.interface.d.ts +0 -31
- package/megamenu/public_api.d.ts +0 -2
- package/menu/menu.d.ts +0 -210
- package/menu/menu.module.d.ts +0 -12
- package/menu/public_api.d.ts +0 -2
- package/menubar/menubar.d.ts +0 -248
- package/menubar/menubar.interface.d.ts +0 -40
- package/menubar/public_api.d.ts +0 -2
- package/message/message.d.ts +0 -52
- package/message/public_api.d.ts +0 -1
- package/messages/messages.d.ts +0 -106
- package/messages/messages.interface.d.ts +0 -16
- package/messages/messages.module.d.ts +0 -8
- package/messages/public_api.d.ts +0 -3
- package/metergroup/metergroup.d.ts +0 -101
- package/metergroup/metergroup.interface.d.ts +0 -122
- package/metergroup/public_api.d.ts +0 -2
- package/multiselect/multiselect.d.ts +0 -736
- package/multiselect/multiselect.interface.d.ts +0 -247
- package/multiselect/multiselect.module.d.ts +0 -20
- package/multiselect/public_api.d.ts +0 -3
- package/navigation/navigation.d.ts +0 -75
- package/navigation/navigation.interface.d.ts +0 -26
- package/navigation/navigation.module.d.ts +0 -7
- package/navigation/public_api.d.ts +0 -2
- package/orderlist/orderlist.d.ts +0 -270
- package/orderlist/orderlist.interface.d.ts +0 -110
- package/orderlist/public_api.d.ts +0 -2
- package/organizationchart/organizationchart.d.ts +0 -132
- package/organizationchart/organizationchart.interface.d.ts +0 -59
- package/organizationchart/public_api.d.ts +0 -2
- package/overlay/overlay.d.ts +0 -238
- package/overlay/overlay.module.d.ts +0 -8
- package/overlay/public_api.d.ts +0 -2
- package/overlaypanel/overlaypanel.d.ts +0 -167
- package/overlaypanel/overlaypanel.module.d.ts +0 -8
- package/overlaypanel/public_api.d.ts +0 -2
- package/paginator/paginator.d.ts +0 -195
- package/paginator/paginator.interface.d.ts +0 -37
- package/paginator/paginator.module.d.ts +0 -17
- package/paginator/public_api.d.ts +0 -3
- package/panel/panel.d.ts +0 -126
- package/panel/panel.interface.d.ts +0 -58
- package/panel/public_api.d.ts +0 -2
- package/panelmenu/panelmenu.d.ts +0 -225
- package/panelmenu/panelmenu.interface.d.ts +0 -23
- package/panelmenu/public_api.d.ts +0 -2
- package/password/password.d.ts +0 -342
- package/password/public_api.d.ts +0 -1
- package/picklist/picklist.d.ts +0 -453
- package/picklist/picklist.interface.d.ts +0 -242
- package/picklist/public_api.d.ts +0 -2
- package/productcard/productcard.d.ts +0 -19
- package/productcard/productcard.module.d.ts +0 -7
- package/productcard/public_api.d.ts +0 -2
- package/progressbar/progressbar.d.ts +0 -69
- package/progressbar/progressbar.module.d.ts +0 -8
- package/progressbar/public_api.d.ts +0 -2
- package/progressspinner/progressspinner.d.ts +0 -50
- package/progressspinner/progressspinner.module.d.ts +0 -8
- package/progressspinner/public_api.d.ts +0 -2
- package/public_api.d.ts +0 -2
- package/radiobutton/public_api.d.ts +0 -3
- package/radiobutton/radiobutton.d.ts +0 -151
- package/radiobutton/radiobutton.interface.d.ts +0 -15
- package/radiobutton/radiobutton.module.d.ts +0 -7
- package/rating/public_api.d.ts +0 -2
- package/rating/rating.d.ts +0 -146
- package/rating/rating.interface.d.ts +0 -34
- package/ripple/public_api.d.ts +0 -2
- package/ripple/ripple.d.ts +0 -30
- package/ripple/ripple.module.d.ts +0 -7
- package/scroller/public_api.d.ts +0 -3
- package/scroller/scroller.d.ts +0 -343
- package/scroller/scroller.interface.d.ts +0 -177
- package/scroller/scroller.module.d.ts +0 -8
- package/scrollpanel/public_api.d.ts +0 -2
- package/scrollpanel/scrollpanel.d.ts +0 -103
- package/scrollpanel/scrollpanel.interface.d.ts +0 -11
- package/scrolltop/public_api.d.ts +0 -2
- package/scrolltop/scrolltop.d.ts +0 -97
- package/scrolltop/scrolltop.interface.d.ts +0 -18
- package/selectbutton/public_api.d.ts +0 -3
- package/selectbutton/selectbutton.d.ts +0 -177
- package/selectbutton/selectbutton.interface.d.ts +0 -45
- package/selectbutton/selectbutton.module.d.ts +0 -11
- package/sidebar/public_api.d.ts +0 -3
- package/sidebar/sidebar.d.ts +0 -173
- package/sidebar/sidebar.interface.d.ts +0 -27
- package/sidebar/sidebar.module.d.ts +0 -12
- package/skeleton/public_api.d.ts +0 -2
- package/skeleton/skeleton.d.ts +0 -61
- package/skeleton/skeleton.module.d.ts +0 -8
- package/slidemenu/public_api.d.ts +0 -2
- package/slidemenu/slidemenu.d.ts +0 -322
- package/slidemenu/slidemenu.interface.d.ts +0 -15
- package/slider/public_api.d.ts +0 -3
- package/slider/slider.d.ts +0 -167
- package/slider/slider.interface.d.ts +0 -38
- package/slider/slider.module.d.ts +0 -9
- package/speeddial/public_api.d.ts +0 -3
- package/speeddial/speeddial.d.ts +0 -282
- package/speeddial/speeddial.interface.d.ts +0 -28
- package/speeddial/speeddial.module.d.ts +0 -14
- package/spinner/public_api.d.ts +0 -1
- package/spinner/spinner.d.ts +0 -90
- package/splitbutton/public_api.d.ts +0 -3
- package/splitbutton/splitbutton.d.ts +0 -222
- package/splitbutton/splitbutton.interface.d.ts +0 -30
- package/splitbutton/splitbutton.module.d.ts +0 -13
- package/splitter/public_api.d.ts +0 -3
- package/splitter/splitter.d.ts +0 -158
- package/splitter/splitter.interface.d.ts +0 -34
- package/splitter/splitter.module.d.ts +0 -9
- package/stepper/public_api.d.ts +0 -2
- package/stepper/stepper.d.ts +0 -117
- package/stepper/stepper.interface.d.ts +0 -26
- package/steps/public_api.d.ts +0 -2
- package/steps/steps.d.ts +0 -84
- package/steps/steps.module.d.ts +0 -11
- package/styleclass/public_api.d.ts +0 -1
- package/styleclass/styleclass.d.ts +0 -108
- package/subscriptioncard/public_api.d.ts +0 -2
- package/subscriptioncard/subscriptioncard.component.d.ts +0 -33
- package/subscriptioncard/subscriptioncard.module.d.ts +0 -11
- package/table/columnfilter.interface.d.ts +0 -247
- package/table/components/cell-editor/cell-editor.d.ts +0 -20
- package/table/components/column-filter/column-filter.d.ts +0 -257
- package/table/components/column-filter-form-element/column-filter-form-element.d.ts +0 -37
- package/table/components/sort-icon/sort-icon.d.ts +0 -22
- package/table/components/table-body/table-body.d.ts +0 -36
- package/table/components/table-checkbox/table-checkbox.d.ts +0 -32
- package/table/components/table-header-checkbox/table-header-checkbox.d.ts +0 -31
- package/table/components/table-radio-button/table-radio-button.d.ts +0 -29
- package/table/directives/cancel-editable-row.directive.d.ts +0 -11
- package/table/directives/cell-extend.directive.d.ts +0 -14
- package/table/directives/cell-highlight.directive.d.ts +0 -12
- package/table/directives/content-menu-row.directive.d.ts +0 -22
- package/table/directives/dynamic-column-width.directive.d.ts +0 -12
- package/table/directives/editable-column.directive.d.ts +0 -40
- package/table/directives/editable-row.directive.d.ts +0 -12
- package/table/directives/frozen-column.directive.d.ts +0 -16
- package/table/directives/init-editable-row.directive.d.ts +0 -11
- package/table/directives/reorderable-column.directive.d.ts +0 -32
- package/table/directives/reorderable-row-handle.directive.d.ts +0 -9
- package/table/directives/reorderable-row.directive.d.ts +0 -34
- package/table/directives/resizable-column.directive.d.ts +0 -35
- package/table/directives/row-group-header.directive.d.ts +0 -9
- package/table/directives/row-toggler.directive.d.ts +0 -13
- package/table/directives/save-editable-row.directive.d.ts +0 -11
- package/table/directives/selectable-row-double-click.directive.d.ts +0 -22
- package/table/directives/selectable-row.directive.d.ts +0 -37
- package/table/directives/sortable-column.directive.d.ts +0 -24
- package/table/public_api.d.ts +0 -31
- package/table/table.d.ts +0 -845
- package/table/table.interface.d.ts +0 -644
- package/table/table.module.d.ts +0 -35
- package/table/table.service.d.ts +0 -24
- package/table-paginator/public_api.d.ts +0 -3
- package/table-paginator/table-paginator.component.d.ts +0 -28
- package/table-paginator/table-paginator.interface.d.ts +0 -21
- package/table-paginator/table-paginator.module.d.ts +0 -9
- package/tableconfiguration/public_api.d.ts +0 -2
- package/tableconfiguration/tableconfiguration.d.ts +0 -18
- package/tableconfiguration/tableconfiguration.module.d.ts +0 -7
- package/tabmenu/public_api.d.ts +0 -2
- package/tabmenu/tabmenu.d.ts +0 -126
- package/tabmenu/tabmenu.interface.d.ts +0 -32
- package/tabview/public_api.d.ts +0 -3
- package/tabview/tabview.d.ts +0 -295
- package/tabview/tabview.interface.d.ts +0 -49
- package/tabview/tabview.module.d.ts +0 -16
- package/tag/public_api.d.ts +0 -3
- package/tag/tag.d.ts +0 -99
- package/tag/tag.interface.d.ts +0 -11
- package/tag/tag.module.d.ts +0 -9
- package/terminal/public_api.d.ts +0 -2
- package/terminal/terminal.d.ts +0 -56
- package/terminal/terminalservice.d.ts +0 -11
- package/tieredmenu/public_api.d.ts +0 -3
- package/tieredmenu/tieredmenu.d.ts +0 -271
- package/tieredmenu/tieredmenu.interface.d.ts +0 -27
- package/tieredmenu/tiredmenu.module.d.ts +0 -13
- package/timeline/public_api.d.ts +0 -3
- package/timeline/timeline.d.ts +0 -47
- package/timeline/timeline.interface.d.ts +0 -43
- package/timeline/timeline.module.d.ts +0 -9
- package/toast/public_api.d.ts +0 -3
- package/toast/toast.d.ts +0 -134
- package/toast/toast.interface.d.ts +0 -52
- package/toast/toast.module.d.ts +0 -9
- package/toast/toastitem.d.ts +0 -37
- package/togglebutton/public_api.d.ts +0 -2
- package/togglebutton/togglebutton.d.ts +0 -115
- package/togglebutton/togglebutton.interface.d.ts +0 -34
- package/toggleswitch/public_api.d.ts +0 -2
- package/toggleswitch/toggleswitch.d.ts +0 -19
- package/toggleswitch/toggleswitch.module.d.ts +0 -9
- package/toolbar/public_api.d.ts +0 -2
- package/toolbar/toolbar.d.ts +0 -43
- package/toolbar/toolbar.interface.d.ts +0 -19
- package/tooltip/public_api.d.ts +0 -2
- package/tooltip/tooltip.d.ts +0 -208
- package/tooltip/tooltip.module.d.ts +0 -10
- package/tree/public_api.d.ts +0 -3
- package/tree/tree.d.ts +0 -461
- package/tree/tree.interface.d.ts +0 -193
- package/tree/tree.module.d.ts +0 -21
- package/treeselect/public_api.d.ts +0 -3
- package/treeselect/treeselect.d.ts +0 -394
- package/treeselect/treeselect.interface.d.ts +0 -108
- package/treeselect/treeselect.module.d.ts +0 -16
- package/treetable/public_api.d.ts +0 -2
- package/treetable/treetable.d.ts +0 -988
- package/treetable/treetable.interface.d.ts +0 -472
- package/tristatecheckbox/public_api.d.ts +0 -3
- package/tristatecheckbox/tristatecheckbox.d.ts +0 -117
- package/tristatecheckbox/tristatecheckbox.interface.d.ts +0 -30
- package/tristatecheckbox/tristatecheckbox.module.d.ts +0 -8
- package/ts-helpers/public_api.d.ts +0 -1
- package/ts-helpers/ts-helpers.d.ts +0 -4
- package/upload/public_api.d.ts +0 -2
- package/upload/upload.component.d.ts +0 -99
- package/upload/upload.component.module.d.ts +0 -11
- package/utils/objectutils.d.ts +0 -24
- package/utils/public_api.d.ts +0 -4
- package/utils/uniquecomponentid.d.ts +0 -2
- package/utils/zindexutils.d.ts +0 -7
- package/virtualscroller/public_api.d.ts +0 -2
- package/virtualscroller/virtualscroller.d.ts +0 -89
- package/virtualscroller/virtualscroller.interface.d.ts +0 -72
|
@@ -167,10 +167,10 @@ class TriStateCheckbox {
|
|
|
167
167
|
this.disabled = disabled;
|
|
168
168
|
this.cd.markForCheck();
|
|
169
169
|
}
|
|
170
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
171
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "
|
|
170
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TriStateCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.caxConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
171
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.25", type: TriStateCheckbox, isStandalone: true, selector: "cax-triStateCheckbox", inputs: { disabled: ["disabled", "disabled", booleanAttribute], name: "name", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", variant: "variant", tabindex: ["tabindex", "tabindex", numberAttribute], inputId: "inputId", style: "style", styleClass: "styleClass", label: "label", readonly: ["readonly", "readonly", booleanAttribute], checkboxTrueIcon: "checkboxTrueIcon", checkboxFalseIcon: "checkboxFalseIcon", autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onChange: "onChange" }, host: { classAttribute: "cax-element" }, providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: CaxTemplate }], ngImport: i0, template: "<div\n [ngStyle]=\"style\"\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\n [class]=\"styleClass\"\n (click)=\"onClick($event, input)\"\n [attr.data-pc-name]=\"'tristatecheckbox'\"\n [attr.data-pc-section]=\"'root'\"\n>\n <div class=\"cax-hidden-accessible\">\n <input\n #input\n [attr.id]=\"inputId\"\n type=\"checkbox\"\n [name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n inputmode=\"none\"\n [attr.data-pc-section]=\"'hiddenInput'\"\n pAutoFocus\n [autofocus]=\"autofocus\"\n />\n </div>\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\n <ng-container *ngIf=\"value === true\">\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\n <ng-container *ngIf=\"!checkboxTrueIcon\">\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"value === false\">\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\n <ng-container *ngIf=\"!checkboxFalseIcon\">\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "component", type: CheckIcon, selector: "CheckIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
172
172
|
}
|
|
173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TriStateCheckbox, decorators: [{
|
|
174
174
|
type: Component,
|
|
175
175
|
args: [{ selector: 'cax-triStateCheckbox', providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, SharedModule, AutoFocusModule, CheckIcon, TimesIcon], host: {
|
|
176
176
|
class: 'cax-element'
|
|
@@ -215,11 +215,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
215
215
|
}] } });
|
|
216
216
|
|
|
217
217
|
class TriStateCheckboxModule {
|
|
218
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
219
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
220
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
218
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TriStateCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
219
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: TriStateCheckboxModule, imports: [TriStateCheckbox, SharedModule], exports: [TriStateCheckbox, SharedModule] });
|
|
220
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TriStateCheckboxModule, imports: [TriStateCheckbox, SharedModule, SharedModule] });
|
|
221
221
|
}
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TriStateCheckboxModule, decorators: [{
|
|
223
223
|
type: NgModule,
|
|
224
224
|
args: [{
|
|
225
225
|
imports: [TriStateCheckbox, SharedModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-tristatecheckbox.mjs","sources":["../../src/app/components/tristatecheckbox/tristatecheckbox.ts","../../src/app/components/tristatecheckbox/tristatecheckbox.html","../../src/app/components/tristatecheckbox/tristatecheckbox.module.ts","../../src/app/components/tristatecheckbox/cax-design-system-tristatecheckbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef, ViewEncapsulation, booleanAttribute, forwardRef, numberAttribute } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { caxConfig, CaxTemplate, SharedModule } from 'cax-design-system/api';\nimport { CheckIcon } from 'cax-design-system/icons/check';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { AutoFocusModule } from 'cax-design-system/autofocus';\nimport { TriStateCheckboxChangeEvent } from './tristatecheckbox.interface';\n\nexport const TRISTATECHECKBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TriStateCheckbox),\n multi: true\n};\n/**\n * TriStateCheckbox is used to select either 'true', 'false' or 'null' as the value.\n * @group Components\n */\n@Component({\n selector: 'cax-triStateCheckbox',\n templateUrl: './tristatecheckbox.html',\n providers: [TRISTATECHECKBOX_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, SharedModule, AutoFocusModule, CheckIcon, TimesIcon],\n host: {\n class: 'cax-element'\n }\n})\nexport class TriStateCheckbox implements ControlValueAccessor {\n constructor(\n private cd: ChangeDetectorRef,\n public config: caxConfig\n ) {}\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * Name of the component.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Label of the checkbox.\n * @group Props\n */\n @Input() label: string | undefined;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonly: boolean | undefined;\n /**\n * Specifies the icon for checkbox true value.\n * @group Props\n */\n @Input() checkboxTrueIcon: string | undefined;\n /**\n * Specifies the icon for checkbox false value.\n * @group Props\n */\n @Input() checkboxFalseIcon: string | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Callback to invoke on value change.\n * @param {TriStateCheckboxChangeEvent} event - Custom change event.\n * @group Emits\n */\n @Output() onChange: EventEmitter<TriStateCheckboxChangeEvent> = new EventEmitter<TriStateCheckboxChangeEvent>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n checkIconTemplate: Nullable<TemplateRef<any>>;\n\n uncheckIconTemplate: Nullable<TemplateRef<any>>;\n\n focused: Nullable<boolean>;\n\n value: Nullable<boolean>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n onClick(event: Event, input: HTMLInputElement) {\n if (!this.disabled && !this.readonly) {\n this.toggle(event);\n this.focused = true;\n input.focus();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n\n toggle(event: Event) {\n if (this.value == null || this.value == undefined) this.value = true;\n else if (this.value == true) this.value = false;\n else if (this.value == false) this.value = null;\n\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'checkicon':\n this.checkIconTemplate = item.template;\n break;\n\n case 'uncheckicon':\n this.uncheckIconTemplate = item.template;\n break;\n }\n });\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n this.onModelTouched();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cd.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this.cd.markForCheck();\n }\n}\n","<div\n [ngStyle]=\"style\"\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\n [class]=\"styleClass\"\n (click)=\"onClick($event, input)\"\n [attr.data-pc-name]=\"'tristatecheckbox'\"\n [attr.data-pc-section]=\"'root'\"\n>\n <div class=\"cax-hidden-accessible\">\n <input\n #input\n [attr.id]=\"inputId\"\n type=\"checkbox\"\n [name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n inputmode=\"none\"\n [attr.data-pc-section]=\"'hiddenInput'\"\n pAutoFocus\n [autofocus]=\"autofocus\"\n />\n </div>\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\n <ng-container *ngIf=\"value === true\">\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\n <ng-container *ngIf=\"!checkboxTrueIcon\">\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"value === false\">\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\n <ng-container *ngIf=\"!checkboxFalseIcon\">\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { TriStateCheckbox } from './tristatecheckbox';\n\n@NgModule({\n imports: [TriStateCheckbox, SharedModule],\n exports: [TriStateCheckbox, SharedModule]\n})\nexport class TriStateCheckboxModule {}\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":"cax-design-system-tristatecheckbox.mjs","sources":["../../src/app/components/tristatecheckbox/tristatecheckbox.ts","../../src/app/components/tristatecheckbox/tristatecheckbox.html","../../src/app/components/tristatecheckbox/tristatecheckbox.module.ts","../../src/app/components/tristatecheckbox/cax-design-system-tristatecheckbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef, ViewEncapsulation, booleanAttribute, forwardRef, numberAttribute } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { caxConfig, CaxTemplate, SharedModule } from 'cax-design-system/api';\nimport { CheckIcon } from 'cax-design-system/icons/check';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { AutoFocusModule } from 'cax-design-system/autofocus';\nimport { TriStateCheckboxChangeEvent } from './tristatecheckbox.interface';\n\nexport const TRISTATECHECKBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TriStateCheckbox),\n multi: true\n};\n/**\n * TriStateCheckbox is used to select either 'true', 'false' or 'null' as the value.\n * @group Components\n */\n@Component({\n selector: 'cax-triStateCheckbox',\n templateUrl: './tristatecheckbox.html',\n providers: [TRISTATECHECKBOX_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, SharedModule, AutoFocusModule, CheckIcon, TimesIcon],\n host: {\n class: 'cax-element'\n }\n})\nexport class TriStateCheckbox implements ControlValueAccessor {\n constructor(\n private cd: ChangeDetectorRef,\n public config: caxConfig\n ) {}\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * Name of the component.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Label of the checkbox.\n * @group Props\n */\n @Input() label: string | undefined;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonly: boolean | undefined;\n /**\n * Specifies the icon for checkbox true value.\n * @group Props\n */\n @Input() checkboxTrueIcon: string | undefined;\n /**\n * Specifies the icon for checkbox false value.\n * @group Props\n */\n @Input() checkboxFalseIcon: string | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Callback to invoke on value change.\n * @param {TriStateCheckboxChangeEvent} event - Custom change event.\n * @group Emits\n */\n @Output() onChange: EventEmitter<TriStateCheckboxChangeEvent> = new EventEmitter<TriStateCheckboxChangeEvent>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n checkIconTemplate: Nullable<TemplateRef<any>>;\n\n uncheckIconTemplate: Nullable<TemplateRef<any>>;\n\n focused: Nullable<boolean>;\n\n value: Nullable<boolean>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n onClick(event: Event, input: HTMLInputElement) {\n if (!this.disabled && !this.readonly) {\n this.toggle(event);\n this.focused = true;\n input.focus();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n\n toggle(event: Event) {\n if (this.value == null || this.value == undefined) this.value = true;\n else if (this.value == true) this.value = false;\n else if (this.value == false) this.value = null;\n\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'checkicon':\n this.checkIconTemplate = item.template;\n break;\n\n case 'uncheckicon':\n this.uncheckIconTemplate = item.template;\n break;\n }\n });\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n this.onModelTouched();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cd.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this.cd.markForCheck();\n }\n}\n","<div\n [ngStyle]=\"style\"\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\n [class]=\"styleClass\"\n (click)=\"onClick($event, input)\"\n [attr.data-pc-name]=\"'tristatecheckbox'\"\n [attr.data-pc-section]=\"'root'\"\n>\n <div class=\"cax-hidden-accessible\">\n <input\n #input\n [attr.id]=\"inputId\"\n type=\"checkbox\"\n [name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n inputmode=\"none\"\n [attr.data-pc-section]=\"'hiddenInput'\"\n pAutoFocus\n [autofocus]=\"autofocus\"\n />\n </div>\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\n <ng-container *ngIf=\"value === true\">\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\n <ng-container *ngIf=\"!checkboxTrueIcon\">\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"value === false\">\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\n <ng-container *ngIf=\"!checkboxFalseIcon\">\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { TriStateCheckbox } from './tristatecheckbox';\n\n@NgModule({\n imports: [TriStateCheckbox, SharedModule],\n exports: [TriStateCheckbox, SharedModule]\n})\nexport class TriStateCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -438,10 +438,10 @@ class UploadComponent {
|
|
|
438
438
|
// Use timeout to allow Angular to render the items before measuring
|
|
439
439
|
setTimeout(() => this.calculateMaxHeight(), 0);
|
|
440
440
|
}
|
|
441
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
442
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
441
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: UploadComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
442
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: UploadComponent, isStandalone: false, selector: "cax-upload", inputs: { style: "style", maxFileSize: "maxFileSize", labelText: "labelText", uploadString: "uploadString", allowMultiple: "allowMultiple", allowedFileTypes: "allowedFileTypes", aspectRatios: "aspectRatios" }, outputs: { onSelect: "onSelect", onUpload: "onUpload", onRemove: "onRemove", onClear: "onClear", onError: "onError", onStatusChange: "onStatusChange", onFileListChange: "onFileListChange" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, classAttribute: "cax-element" }, viewQueries: [{ propertyName: "previewItems", predicate: ["previewItem"], descendants: true }], ngImport: i0, template: "<div class=\"cax-upload-container\" [ngStyle]=\"style\">\n <span class=\"cax-upload-label cax-text-action-md-semibold\">{{ labelText }}</span>\n <div class=\"cax-upload-menu\" [class.dragging]=\"isDragging\" (click)=\"openFileSelector()\">\n <input type=\"file\" id=\"fileInput-{{ uniqueId }}\" style=\"display: none\" [multiple]=\"allowMultiple\" [accept]=\"acceptFileTypes\" (change)=\"handleFileInput($event)\" />\n <div class=\"cax-upload-options\" *ngIf=\"!isDragging\">\n <span class=\"cax-upload-text cax-text-action-lg-medium\">Drag & drop files here or browse</span>\n <div class=\"cax-upload-file-config\" *ngIf=\"maxFileSize || allowedFileTypes.length > 0 || aspectRatios.length > 0\">\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"maxFileSize\">Max. File Size: {{ maxFileSize }}MB</span>\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"allowedFileTypes.length > 0\">File Type: {{ allowedFileTypes.join(', ') | uppercase }}</span>\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"aspectRatios.length > 0\">Aspect Ratio: {{ aspectRatios.join(', ') }}</span>\n </div>\n </div>\n <div class=\"cax-upload-options\" *ngIf=\"isDragging\">\n <span class=\"cax-upload-text dragging cax-text-action-lg-medium\"><i class=\"cax cax-archive-down\"></i>Drop files to upload</span>\n </div>\n </div>\n <div class=\"cax-file-preview-wrapper\" *ngIf=\"uploadedFiles.length > 0\">\n <div class=\"cax-upload-more-count\" *ngIf=\"uploadedFiles.length > 4\">\n <div>\n <span class=\"cax-text-action-sm-medium\">{{ uploadedFiles.length }} files</span>\n <span class=\"cax-upload-failed-count cax-text-action-sm-medium\" *ngIf=\"failedFilesCount > 0\">{{ failedFilesCount }} failed</span>\n </div>\n <span class=\"cax-upload-show-more cax-text-action-sm-link-regular\" (click)=\"toggleExpand()\">{{ isExpanded ? 'Show less' : 'Show more' }}</span>\n </div>\n <div class=\"cax-file-list\" [class.expanded]=\"isExpanded\" [style.max-height]=\"dynamicMaxHeight\">\n <div\n #previewItem\n *ngFor=\"let item of isExpanded ? uploadedFiles : uploadedFiles.slice(0, 4); let i = index\"\n class=\"cax-file-preview\"\n [class.cax-file-preview-error]=\"item.status === 'error'\"\n [class.active-gradient]=\"!isExpanded && i === 3 && uploadedFiles.length > 4\"\n >\n <div class=\"cax-file-preview-content\">\n <div class=\"file-info\">\n <i class=\"cax\" [class.cax-document-text]=\"item.status !== 'error'\" [class.cax-danger-triangle-bold]=\"item.status === 'error'\" [style.color]=\"item.status === 'error' ? 'var(--error-600)' : ''\"></i>\n <p class=\"file-name cax-text-action-md-medium\">{{ item.file.name }}</p>\n <span class=\"file-size cax-text-body-xsm-regular\">{{ formatBytes(item.file.size) }}</span>\n </div>\n\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\n <cax-progressSpinner [strokeColor]=\"'primary'\" [size]=\"'sm'\" [animationDuration]=\"'2s'\"> </cax-progressSpinner>\n </div>\n\n <button *ngIf=\"item.status === 'complete' || item.status === 'canceled' || item.status === 'error'\" class=\"remove-button\" (click)=\"removeFile(i); $event.stopPropagation()\">\n <i class=\"cax cax-close\"></i>\n </button>\n </div>\n <span class=\"file-error cax-text-body-sm-regular\" *ngIf=\"item.status === 'error'\">{{ item.errorMessage }}</span>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@layer cax{.cax-upload-container{display:flex;flex-direction:column;gap:8px}.cax-upload-menu{border-radius:12px;padding:24px 56px}.status-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:16px;height:150px}.status-container p{margin:0;font-size:14px;font-weight:500}.status-container .success-icon{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-container .success-icon i{font-size:1.5rem;font-weight:800}.cax-error-upload{font-size:14px;font-weight:400;padding-top:8px}.cax-options-container{display:flex;gap:24px;justify-content:center}.cax-upload-option{display:flex;flex-direction:column;align-items:center;cursor:pointer}.cax-upload-option .icon-container{width:48px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.cax-upload-option span{font-size:14px;font-weight:600;padding-top:10px}.cax-file-preview-wrapper{display:flex;flex-direction:column;gap:10px}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ProgressSpinner, selector: "cax-progressSpinner", inputs: ["styleClass", "strokeColor", "backgroundStrokeColor", "size", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }] });
|
|
443
443
|
}
|
|
444
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
444
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: UploadComponent, decorators: [{
|
|
445
445
|
type: Component,
|
|
446
446
|
args: [{ selector: 'cax-upload', standalone: false, host: {
|
|
447
447
|
class: 'cax-element'
|
|
@@ -489,11 +489,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
489
489
|
}] } });
|
|
490
490
|
|
|
491
491
|
class UploadModule {
|
|
492
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
493
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
494
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
492
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: UploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
493
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: UploadModule, declarations: [UploadComponent], imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button], exports: [UploadComponent] });
|
|
494
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: UploadModule, imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button] });
|
|
495
495
|
}
|
|
496
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
496
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: UploadModule, decorators: [{
|
|
497
497
|
type: NgModule,
|
|
498
498
|
args: [{
|
|
499
499
|
declarations: [UploadComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-upload.mjs","sources":["../../src/app/components/upload/upload.component.ts","../../src/app/components/upload/upload.component.html","../../src/app/components/upload/upload.component.module.ts","../../src/app/components/upload/cax-design-system-upload.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Input, Output, OnInit, ViewChildren, QueryList, ElementRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';\n\nexport type UploadFileStatus = 'queued' | 'uploading' | 'complete' | 'canceled' | 'error';\n\nexport type UploadFile = {\n file: File;\n status: UploadFileStatus;\n progress?: number;\n errorMessage?: string;\n};\n\n@Component({\n selector: 'cax-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class UploadComponent implements OnInit, AfterViewInit {\n @ViewChildren('previewItem') previewItems!: QueryList<ElementRef>;\n @Input() style: { [klass: string]: any } | null | undefined;\n @Input() maxFileSize: number = 3;\n @Input() labelText: string = 'Input Files';\n @Input() uploadString: string = 'uploading the file';\n @Input() allowMultiple: boolean = true;\n @Input() allowedFileTypes: string[] = [];\n @Input() aspectRatios: string[] = [];\n\n // Simplified event emitters\n @Output() onSelect = new EventEmitter<File[]>();\n @Output() onUpload = new EventEmitter<File>();\n @Output() onRemove = new EventEmitter<File>();\n @Output() onClear = new EventEmitter<void>();\n @Output() onError = new EventEmitter<{ file: File; error: string }>();\n @Output() onStatusChange = new EventEmitter<'idle' | 'uploading' | 'complete'>();\n @Output() onFileListChange = new EventEmitter<{ successful: File[]; failed: { file: File; error: string }[] }>();\n\n isDragging: boolean = false;\n uploadedFiles: UploadFile[] = [];\n uploadStatus: 'idle' | 'uploading' | 'complete' = 'idle';\n isProcessingQueue: boolean = false;\n uniqueId: string = '';\n isExpanded: boolean = false;\n dynamicMaxHeight: string = 'none';\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n // Computed property for accept attribute in file input\n get acceptFileTypes(): string {\n if (!this.allowedFileTypes || this.allowedFileTypes.length === 0) return '';\n return this.allowedFileTypes.map((type) => `.${type}`).join(',');\n }\n\n // Track actual files to process (excludes canceled ones)\n private get activeFilesCount(): number {\n return this.uploadedFiles.filter((file) => file.status !== 'canceled').length;\n }\n\n get failedFilesCount(): number {\n return this.uploadedFiles.filter((file) => file.status === 'error').length;\n }\n\n ngOnInit() {\n // Generate unique ID\n this.uniqueId = `upload-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n ngAfterViewInit() {\n // Recalculate max-height whenever the list items change\n this.previewItems.changes.subscribe(() => {\n this.calculateMaxHeight();\n });\n\n // Initial check\n this.calculateMaxHeight();\n }\n\n /**\n * Calculates the dynamic max-height to show exactly 6.5 items\n */\n calculateMaxHeight(): void {\n if (!this.isExpanded || !this.previewItems || this.previewItems.length < 7) {\n this.dynamicMaxHeight = 'none';\n } else {\n const items = this.previewItems.toArray();\n let totalHeight = 0;\n const gap = 8; // var(--space-200)\n\n for (let i = 0; i < 6; i++) {\n totalHeight += items[i].nativeElement.offsetHeight + gap;\n }\n // Add half of the 7th item\n totalHeight += items[6].nativeElement.offsetHeight / 2;\n\n this.dynamicMaxHeight = `${totalHeight}px`;\n }\n this.cdr.detectChanges();\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n }\n\n @HostListener('drop', ['$event'])\n async onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n\n const files = event.dataTransfer?.files;\n if (!files || files.length === 0) return;\n\n const fileArray = Array.from(files);\n\n // Process all files with async validation\n const results = await Promise.all(\n fileArray.map(async (file) => ({\n file,\n error: await this.getValidationError(file)\n }))\n );\n\n results.forEach((res) => this.queueFile(res.file, res.error));\n\n // Emit the queued files event (for valid ones only)\n const validFiles = results.filter((res) => !res.error).map((res) => res.file);\n if (validFiles.length > 0) {\n this.onSelect.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n\n this.emitFileListUpdate();\n }\n\n async handleFileInput(event: any): Promise<void> {\n const files: FileList = event.target.files;\n if (!files) return;\n\n const fileArray = Array.from(files);\n\n // Process all files with async validation\n const results = await Promise.all(\n fileArray.map(async (file) => ({\n file,\n error: await this.getValidationError(file)\n }))\n );\n\n results.forEach((res) => this.queueFile(res.file, res.error));\n\n // Emit the queued files event (for valid ones only)\n const validFiles = results.filter((res) => !res.error).map((res) => res.file);\n if (validFiles.length > 0) {\n this.onSelect.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n\n this.emitFileListUpdate();\n\n // 🔹 Reset the input value so the same file can be selected again\n event.target.value = null;\n }\n\n // New method for file validation returning error message if any\n private async getValidationError(file: File): Promise<string | null> {\n // Size validation\n if (file.size > this.maxFileSize * 1024 * 1024) {\n const msg = `File size should be less than ${this.maxFileSize}MB`;\n this.emitError(file, msg);\n return msg;\n }\n\n // File type validation\n if (this.allowedFileTypes.length > 0) {\n const fileExtension = this.getFileExtension(file.name).toLowerCase();\n if (!this.allowedFileTypes.includes(fileExtension)) {\n const msg = `Only ${this.allowedFileTypes.join(', ')} files are allowed`;\n this.emitError(file, msg);\n return msg;\n }\n }\n\n // Aspect ratio validation for images\n const aspectError = await this.checkAspectRatio(file);\n if (aspectError) {\n this.emitError(file, aspectError);\n return aspectError;\n }\n\n return null;\n }\n\n /**\n * Checks if an image file matches the required aspect ratios\n */\n private async checkAspectRatio(file: File): Promise<string | null> {\n if (!file.type.startsWith('image/') || !this.aspectRatios || this.aspectRatios.length === 0) {\n return null;\n }\n\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n const actualRatio = img.width / img.height;\n const isValid = this.aspectRatios.some((ratioStr) => {\n const [w, h] = ratioStr.split(':').map(Number);\n if (!w || !h) return false;\n const targetRatio = w / h;\n // Use a small epsilon for floating point comparison (5% tolerance)\n return Math.abs(actualRatio - targetRatio) < 0.05;\n });\n\n if (isValid) {\n resolve(null);\n } else {\n resolve(`Image aspect ratio should be ${this.aspectRatios.join(' or ')}`);\n }\n URL.revokeObjectURL(img.src);\n };\n img.onerror = () => {\n // If we can't load the image, we skip aspect ratio validation\n resolve(null);\n URL.revokeObjectURL(img.src);\n };\n img.src = URL.createObjectURL(file);\n });\n }\n\n // Helper method to get file extension\n private getFileExtension(filename: string): string {\n return filename.split('.').pop() || '';\n }\n\n // Queue a file for upload\n private queueFile(file: File, errorMessage: string | null = null): void {\n const uploadEntry: UploadFile = {\n file,\n status: errorMessage ? 'error' : 'queued',\n progress: 0,\n errorMessage: errorMessage || undefined\n };\n\n this.uploadedFiles.unshift(uploadEntry);\n\n if (this.uploadStatus === 'idle' && !errorMessage) {\n this.updateUploadStatus('uploading');\n }\n }\n\n // Update upload status and emit event\n private updateUploadStatus(status: 'idle' | 'uploading' | 'complete'): void {\n if (this.uploadStatus !== status) {\n this.uploadStatus = status;\n this.onStatusChange.emit(status);\n }\n }\n\n /**\n * Emits the current state of the file list categorized by success/failure\n */\n private emitFileListUpdate(): void {\n const successful = this.uploadedFiles.filter((f) => f.status === 'complete').map((f) => f.file);\n\n const failed = this.uploadedFiles\n .filter((f) => f.status === 'error')\n .map((f) => ({\n file: f.file,\n error: f.errorMessage || 'Unknown error'\n }));\n\n this.onFileListChange.emit({ successful, failed });\n }\n\n // Process the queue of files simultaneously\n private async processQueue(): Promise<void> {\n if (this.isProcessingQueue) return;\n\n this.isProcessingQueue = true;\n\n while (this.uploadedFiles.some((file) => file.status === 'queued')) {\n const currentlyQueued = this.uploadedFiles.filter((file) => file.status === 'queued');\n\n // Process all currently queued files in parallel\n await Promise.all(\n currentlyQueued.map((fileEntry) => {\n const index = this.uploadedFiles.indexOf(fileEntry);\n return this.processFile(fileEntry, index);\n })\n );\n }\n\n this.isProcessingQueue = false;\n\n // Check if all uploads are complete\n if (this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('complete');\n }\n }\n\n // Trigger file input click programmatically\n openFileSelector(): void {\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.click();\n }\n }\n\n // Emit error event\n private emitError(file: File, message: string): void {\n this.onError.emit({ file, error: message });\n }\n\n private async processFile(fileEntry: UploadFile, index: number): Promise<void> {\n // Update status to uploading\n fileEntry.status = 'uploading';\n fileEntry.progress = 0;\n\n try {\n // Simulate upload with progress updates\n for (let progress = 0; progress <= 100; progress += 10) {\n // Check if upload was canceled during progress\n // Need to check current status since it might have changed\n if (fileEntry.status !== 'uploading') {\n // Either canceled or errored\n break;\n }\n\n fileEntry.progress = progress;\n\n // Simulate network delay based on file size (min 100ms, max 1000ms per step)\n const stepDelay = Math.max(100, Math.min(1000, fileEntry.file.size / 1024 / 10));\n await new Promise((resolve) => setTimeout(resolve, stepDelay));\n }\n\n // Only set to complete if still uploading (not canceled or errored)\n if (fileEntry.status === 'uploading') {\n fileEntry.status = 'complete';\n fileEntry.progress = 100;\n this.onUpload.emit(fileEntry.file);\n this.emitFileListUpdate();\n }\n } catch (error) {\n // Handle errors\n fileEntry.status = 'error';\n const errorMessage = error instanceof Error ? error.message : 'Unknown upload error';\n fileEntry.errorMessage = errorMessage;\n this.emitError(fileEntry.file, errorMessage);\n this.emitFileListUpdate();\n }\n }\n\n cancelUpload(index: number): void {\n // Cancel the specified file and all files below it\n for (let i = index; i < this.uploadedFiles.length; i++) {\n const fileToCancel = this.uploadedFiles[i];\n if (fileToCancel) {\n const previousStatus = fileToCancel.status;\n if (previousStatus === 'uploading' || previousStatus === 'queued') {\n fileToCancel.status = 'canceled';\n }\n }\n }\n // If the file at the specified index was uploading, process the next file in queue\n // (which would now be a file before the index that might be queued)\n if (this.uploadedFiles[index]?.status === 'canceled') {\n setTimeout(() => this.processQueue(), 0);\n }\n }\n\n // Cancel the current upload\n cancelCurrentUpload(): void {\n // Find the file that's currently uploading\n const currentUploadIndex = this.uploadedFiles.findIndex((file) => file.status === 'uploading');\n if (currentUploadIndex >= 0) {\n this.cancelUpload(currentUploadIndex);\n }\n }\n\n // Cancel all uploads\n cancelAllUploads(): void {\n let hadActiveUploads = false;\n\n this.uploadedFiles.forEach((file) => {\n if (file.status === 'uploading' || file.status === 'queued') {\n hadActiveUploads = true;\n file.status = 'canceled';\n }\n });\n\n if (hadActiveUploads && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('idle');\n }\n }\n\n removeFile(index: number): void {\n const fileToRemove = this.uploadedFiles[index];\n\n if (fileToRemove.status === 'uploading' || fileToRemove.status === 'queued') {\n this.cancelUpload(index);\n }\n\n this.onRemove.emit(fileToRemove.file);\n this.uploadedFiles.splice(index, 1);\n this.emitFileListUpdate();\n\n // 🔹 Reset input element to allow re-uploading same file\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n\n if (this.uploadedFiles.length === 0) {\n this.updateUploadStatus('idle');\n } else if (!this.hasQueuedOrUploading && this.uploadStatus !== 'complete') {\n this.updateUploadStatus('complete');\n }\n }\n\n // Remove all files\n removeAllFiles(): void {\n // Cancel any active uploads\n this.cancelAllUploads();\n\n // Only emit if there were files to remove\n if (this.uploadedFiles.length > 0) {\n this.onClear.emit();\n }\n\n this.uploadedFiles = [];\n this.updateUploadStatus('idle');\n this.emitFileListUpdate();\n\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n }\n\n get hasUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading');\n }\n\n get hasQueuedOrUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading' || file.status === 'queued');\n }\n\n get hasErrors(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'error');\n }\n\n get allUploadsComplete(): boolean {\n return this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading;\n }\n\n get uploadingProgressText(): string {\n // Count active files (excluding canceled ones)\n const totalActiveFiles = this.activeFilesCount;\n const completedCount = this.uploadedFiles.filter((file) => file.status === 'complete').length;\n const uploadingFile = this.uploadedFiles.find((file) => file.status === 'uploading');\n if (uploadingFile) {\n // We're currently uploading the (completedCount + 1)th active file\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n if (this.uploadedFiles.some((file) => file.status === 'queued')) {\n return `Uploading ${completedCount + 1}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n\n // Calculate overall progress percentage across all files\n get overallProgress(): number {\n if (this.uploadedFiles.length === 0) return 0;\n\n const totalProgress = this.uploadedFiles.reduce((sum, file) => {\n if (file.status === 'complete') return sum + 100;\n if (file.status === 'canceled' || file.status === 'error') return sum;\n return sum + (file.progress || 0);\n }, 0);\n\n const activeFilesCount = this.uploadedFiles.filter((file) => file.status !== 'canceled' && file.status !== 'error').length;\n\n return activeFilesCount > 0 ? Math.round((totalProgress / (activeFilesCount * 100)) * 100) : 0;\n }\n\n /**\n * Formats bytes into a human-readable string (KB, MB, GB, etc.)\n * @param bytes The number of bytes to format\n * @param decimals Number of decimal places\n * @returns A formatted string\n */\n formatBytes(bytes: number, decimals: number = 2): string {\n if (!+bytes) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n /**\n * Toggles the expanded state of the file list preview\n */\n toggleExpand(): void {\n this.isExpanded = !this.isExpanded;\n // Use timeout to allow Angular to render the items before measuring\n setTimeout(() => this.calculateMaxHeight(), 0);\n }\n}\n","<div class=\"cax-upload-container\" [ngStyle]=\"style\">\n <span class=\"cax-upload-label cax-text-action-md-semibold\">{{ labelText }}</span>\n <div class=\"cax-upload-menu\" [class.dragging]=\"isDragging\" (click)=\"openFileSelector()\">\n <input type=\"file\" id=\"fileInput-{{ uniqueId }}\" style=\"display: none\" [multiple]=\"allowMultiple\" [accept]=\"acceptFileTypes\" (change)=\"handleFileInput($event)\" />\n <div class=\"cax-upload-options\" *ngIf=\"!isDragging\">\n <span class=\"cax-upload-text cax-text-action-lg-medium\">Drag & drop files here or browse</span>\n <div class=\"cax-upload-file-config\" *ngIf=\"maxFileSize || allowedFileTypes.length > 0 || aspectRatios.length > 0\">\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"maxFileSize\">Max. File Size: {{ maxFileSize }}MB</span>\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"allowedFileTypes.length > 0\">File Type: {{ allowedFileTypes.join(', ') | uppercase }}</span>\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"aspectRatios.length > 0\">Aspect Ratio: {{ aspectRatios.join(', ') }}</span>\n </div>\n </div>\n <div class=\"cax-upload-options\" *ngIf=\"isDragging\">\n <span class=\"cax-upload-text dragging cax-text-action-lg-medium\"><i class=\"cax cax-archive-down\"></i>Drop files to upload</span>\n </div>\n </div>\n <div class=\"cax-file-preview-wrapper\" *ngIf=\"uploadedFiles.length > 0\">\n <div class=\"cax-upload-more-count\" *ngIf=\"uploadedFiles.length > 4\">\n <div>\n <span class=\"cax-text-action-sm-medium\">{{ uploadedFiles.length }} files</span>\n <span class=\"cax-upload-failed-count cax-text-action-sm-medium\" *ngIf=\"failedFilesCount > 0\">{{ failedFilesCount }} failed</span>\n </div>\n <span class=\"cax-upload-show-more cax-text-action-sm-link-regular\" (click)=\"toggleExpand()\">{{ isExpanded ? 'Show less' : 'Show more' }}</span>\n </div>\n <div class=\"cax-file-list\" [class.expanded]=\"isExpanded\" [style.max-height]=\"dynamicMaxHeight\">\n <div\n #previewItem\n *ngFor=\"let item of isExpanded ? uploadedFiles : uploadedFiles.slice(0, 4); let i = index\"\n class=\"cax-file-preview\"\n [class.cax-file-preview-error]=\"item.status === 'error'\"\n [class.active-gradient]=\"!isExpanded && i === 3 && uploadedFiles.length > 4\"\n >\n <div class=\"cax-file-preview-content\">\n <div class=\"file-info\">\n <i class=\"cax\" [class.cax-document-text]=\"item.status !== 'error'\" [class.cax-danger-triangle-bold]=\"item.status === 'error'\" [style.color]=\"item.status === 'error' ? 'var(--error-600)' : ''\"></i>\n <p class=\"file-name cax-text-action-md-medium\">{{ item.file.name }}</p>\n <span class=\"file-size cax-text-body-xsm-regular\">{{ formatBytes(item.file.size) }}</span>\n </div>\n\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\n <cax-progressSpinner [strokeColor]=\"'primary'\" [size]=\"'sm'\" [animationDuration]=\"'2s'\"> </cax-progressSpinner>\n </div>\n\n <button *ngIf=\"item.status === 'complete' || item.status === 'canceled' || item.status === 'error'\" class=\"remove-button\" (click)=\"removeFile(i); $event.stopPropagation()\">\n <i class=\"cax cax-close\"></i>\n </button>\n </div>\n <span class=\"file-error cax-text-body-sm-regular\" *ngIf=\"item.status === 'error'\">{{ item.errorMessage }}</span>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { UploadComponent } from './upload.component';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { ProgressSpinnerModule } from 'cax-design-system/progressspinner';\nimport { Button } from 'cax-design-system/button';\n\n@NgModule({\n declarations: [UploadComponent],\n imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button],\n exports: [UploadComponent]\n})\nexport class UploadModule {}\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":"cax-design-system-upload.mjs","sources":["../../src/app/components/upload/upload.component.ts","../../src/app/components/upload/upload.component.html","../../src/app/components/upload/upload.component.module.ts","../../src/app/components/upload/cax-design-system-upload.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Input, Output, OnInit, ViewChildren, QueryList, ElementRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';\n\nexport type UploadFileStatus = 'queued' | 'uploading' | 'complete' | 'canceled' | 'error';\n\nexport type UploadFile = {\n file: File;\n status: UploadFileStatus;\n progress?: number;\n errorMessage?: string;\n};\n\n@Component({\n selector: 'cax-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class UploadComponent implements OnInit, AfterViewInit {\n @ViewChildren('previewItem') previewItems!: QueryList<ElementRef>;\n @Input() style: { [klass: string]: any } | null | undefined;\n @Input() maxFileSize: number = 3;\n @Input() labelText: string = 'Input Files';\n @Input() uploadString: string = 'uploading the file';\n @Input() allowMultiple: boolean = true;\n @Input() allowedFileTypes: string[] = [];\n @Input() aspectRatios: string[] = [];\n\n // Simplified event emitters\n @Output() onSelect = new EventEmitter<File[]>();\n @Output() onUpload = new EventEmitter<File>();\n @Output() onRemove = new EventEmitter<File>();\n @Output() onClear = new EventEmitter<void>();\n @Output() onError = new EventEmitter<{ file: File; error: string }>();\n @Output() onStatusChange = new EventEmitter<'idle' | 'uploading' | 'complete'>();\n @Output() onFileListChange = new EventEmitter<{ successful: File[]; failed: { file: File; error: string }[] }>();\n\n isDragging: boolean = false;\n uploadedFiles: UploadFile[] = [];\n uploadStatus: 'idle' | 'uploading' | 'complete' = 'idle';\n isProcessingQueue: boolean = false;\n uniqueId: string = '';\n isExpanded: boolean = false;\n dynamicMaxHeight: string = 'none';\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n // Computed property for accept attribute in file input\n get acceptFileTypes(): string {\n if (!this.allowedFileTypes || this.allowedFileTypes.length === 0) return '';\n return this.allowedFileTypes.map((type) => `.${type}`).join(',');\n }\n\n // Track actual files to process (excludes canceled ones)\n private get activeFilesCount(): number {\n return this.uploadedFiles.filter((file) => file.status !== 'canceled').length;\n }\n\n get failedFilesCount(): number {\n return this.uploadedFiles.filter((file) => file.status === 'error').length;\n }\n\n ngOnInit() {\n // Generate unique ID\n this.uniqueId = `upload-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n ngAfterViewInit() {\n // Recalculate max-height whenever the list items change\n this.previewItems.changes.subscribe(() => {\n this.calculateMaxHeight();\n });\n\n // Initial check\n this.calculateMaxHeight();\n }\n\n /**\n * Calculates the dynamic max-height to show exactly 6.5 items\n */\n calculateMaxHeight(): void {\n if (!this.isExpanded || !this.previewItems || this.previewItems.length < 7) {\n this.dynamicMaxHeight = 'none';\n } else {\n const items = this.previewItems.toArray();\n let totalHeight = 0;\n const gap = 8; // var(--space-200)\n\n for (let i = 0; i < 6; i++) {\n totalHeight += items[i].nativeElement.offsetHeight + gap;\n }\n // Add half of the 7th item\n totalHeight += items[6].nativeElement.offsetHeight / 2;\n\n this.dynamicMaxHeight = `${totalHeight}px`;\n }\n this.cdr.detectChanges();\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n }\n\n @HostListener('drop', ['$event'])\n async onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n\n const files = event.dataTransfer?.files;\n if (!files || files.length === 0) return;\n\n const fileArray = Array.from(files);\n\n // Process all files with async validation\n const results = await Promise.all(\n fileArray.map(async (file) => ({\n file,\n error: await this.getValidationError(file)\n }))\n );\n\n results.forEach((res) => this.queueFile(res.file, res.error));\n\n // Emit the queued files event (for valid ones only)\n const validFiles = results.filter((res) => !res.error).map((res) => res.file);\n if (validFiles.length > 0) {\n this.onSelect.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n\n this.emitFileListUpdate();\n }\n\n async handleFileInput(event: any): Promise<void> {\n const files: FileList = event.target.files;\n if (!files) return;\n\n const fileArray = Array.from(files);\n\n // Process all files with async validation\n const results = await Promise.all(\n fileArray.map(async (file) => ({\n file,\n error: await this.getValidationError(file)\n }))\n );\n\n results.forEach((res) => this.queueFile(res.file, res.error));\n\n // Emit the queued files event (for valid ones only)\n const validFiles = results.filter((res) => !res.error).map((res) => res.file);\n if (validFiles.length > 0) {\n this.onSelect.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n\n this.emitFileListUpdate();\n\n // 🔹 Reset the input value so the same file can be selected again\n event.target.value = null;\n }\n\n // New method for file validation returning error message if any\n private async getValidationError(file: File): Promise<string | null> {\n // Size validation\n if (file.size > this.maxFileSize * 1024 * 1024) {\n const msg = `File size should be less than ${this.maxFileSize}MB`;\n this.emitError(file, msg);\n return msg;\n }\n\n // File type validation\n if (this.allowedFileTypes.length > 0) {\n const fileExtension = this.getFileExtension(file.name).toLowerCase();\n if (!this.allowedFileTypes.includes(fileExtension)) {\n const msg = `Only ${this.allowedFileTypes.join(', ')} files are allowed`;\n this.emitError(file, msg);\n return msg;\n }\n }\n\n // Aspect ratio validation for images\n const aspectError = await this.checkAspectRatio(file);\n if (aspectError) {\n this.emitError(file, aspectError);\n return aspectError;\n }\n\n return null;\n }\n\n /**\n * Checks if an image file matches the required aspect ratios\n */\n private async checkAspectRatio(file: File): Promise<string | null> {\n if (!file.type.startsWith('image/') || !this.aspectRatios || this.aspectRatios.length === 0) {\n return null;\n }\n\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n const actualRatio = img.width / img.height;\n const isValid = this.aspectRatios.some((ratioStr) => {\n const [w, h] = ratioStr.split(':').map(Number);\n if (!w || !h) return false;\n const targetRatio = w / h;\n // Use a small epsilon for floating point comparison (5% tolerance)\n return Math.abs(actualRatio - targetRatio) < 0.05;\n });\n\n if (isValid) {\n resolve(null);\n } else {\n resolve(`Image aspect ratio should be ${this.aspectRatios.join(' or ')}`);\n }\n URL.revokeObjectURL(img.src);\n };\n img.onerror = () => {\n // If we can't load the image, we skip aspect ratio validation\n resolve(null);\n URL.revokeObjectURL(img.src);\n };\n img.src = URL.createObjectURL(file);\n });\n }\n\n // Helper method to get file extension\n private getFileExtension(filename: string): string {\n return filename.split('.').pop() || '';\n }\n\n // Queue a file for upload\n private queueFile(file: File, errorMessage: string | null = null): void {\n const uploadEntry: UploadFile = {\n file,\n status: errorMessage ? 'error' : 'queued',\n progress: 0,\n errorMessage: errorMessage || undefined\n };\n\n this.uploadedFiles.unshift(uploadEntry);\n\n if (this.uploadStatus === 'idle' && !errorMessage) {\n this.updateUploadStatus('uploading');\n }\n }\n\n // Update upload status and emit event\n private updateUploadStatus(status: 'idle' | 'uploading' | 'complete'): void {\n if (this.uploadStatus !== status) {\n this.uploadStatus = status;\n this.onStatusChange.emit(status);\n }\n }\n\n /**\n * Emits the current state of the file list categorized by success/failure\n */\n private emitFileListUpdate(): void {\n const successful = this.uploadedFiles.filter((f) => f.status === 'complete').map((f) => f.file);\n\n const failed = this.uploadedFiles\n .filter((f) => f.status === 'error')\n .map((f) => ({\n file: f.file,\n error: f.errorMessage || 'Unknown error'\n }));\n\n this.onFileListChange.emit({ successful, failed });\n }\n\n // Process the queue of files simultaneously\n private async processQueue(): Promise<void> {\n if (this.isProcessingQueue) return;\n\n this.isProcessingQueue = true;\n\n while (this.uploadedFiles.some((file) => file.status === 'queued')) {\n const currentlyQueued = this.uploadedFiles.filter((file) => file.status === 'queued');\n\n // Process all currently queued files in parallel\n await Promise.all(\n currentlyQueued.map((fileEntry) => {\n const index = this.uploadedFiles.indexOf(fileEntry);\n return this.processFile(fileEntry, index);\n })\n );\n }\n\n this.isProcessingQueue = false;\n\n // Check if all uploads are complete\n if (this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('complete');\n }\n }\n\n // Trigger file input click programmatically\n openFileSelector(): void {\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.click();\n }\n }\n\n // Emit error event\n private emitError(file: File, message: string): void {\n this.onError.emit({ file, error: message });\n }\n\n private async processFile(fileEntry: UploadFile, index: number): Promise<void> {\n // Update status to uploading\n fileEntry.status = 'uploading';\n fileEntry.progress = 0;\n\n try {\n // Simulate upload with progress updates\n for (let progress = 0; progress <= 100; progress += 10) {\n // Check if upload was canceled during progress\n // Need to check current status since it might have changed\n if (fileEntry.status !== 'uploading') {\n // Either canceled or errored\n break;\n }\n\n fileEntry.progress = progress;\n\n // Simulate network delay based on file size (min 100ms, max 1000ms per step)\n const stepDelay = Math.max(100, Math.min(1000, fileEntry.file.size / 1024 / 10));\n await new Promise((resolve) => setTimeout(resolve, stepDelay));\n }\n\n // Only set to complete if still uploading (not canceled or errored)\n if (fileEntry.status === 'uploading') {\n fileEntry.status = 'complete';\n fileEntry.progress = 100;\n this.onUpload.emit(fileEntry.file);\n this.emitFileListUpdate();\n }\n } catch (error) {\n // Handle errors\n fileEntry.status = 'error';\n const errorMessage = error instanceof Error ? error.message : 'Unknown upload error';\n fileEntry.errorMessage = errorMessage;\n this.emitError(fileEntry.file, errorMessage);\n this.emitFileListUpdate();\n }\n }\n\n cancelUpload(index: number): void {\n // Cancel the specified file and all files below it\n for (let i = index; i < this.uploadedFiles.length; i++) {\n const fileToCancel = this.uploadedFiles[i];\n if (fileToCancel) {\n const previousStatus = fileToCancel.status;\n if (previousStatus === 'uploading' || previousStatus === 'queued') {\n fileToCancel.status = 'canceled';\n }\n }\n }\n // If the file at the specified index was uploading, process the next file in queue\n // (which would now be a file before the index that might be queued)\n if (this.uploadedFiles[index]?.status === 'canceled') {\n setTimeout(() => this.processQueue(), 0);\n }\n }\n\n // Cancel the current upload\n cancelCurrentUpload(): void {\n // Find the file that's currently uploading\n const currentUploadIndex = this.uploadedFiles.findIndex((file) => file.status === 'uploading');\n if (currentUploadIndex >= 0) {\n this.cancelUpload(currentUploadIndex);\n }\n }\n\n // Cancel all uploads\n cancelAllUploads(): void {\n let hadActiveUploads = false;\n\n this.uploadedFiles.forEach((file) => {\n if (file.status === 'uploading' || file.status === 'queued') {\n hadActiveUploads = true;\n file.status = 'canceled';\n }\n });\n\n if (hadActiveUploads && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('idle');\n }\n }\n\n removeFile(index: number): void {\n const fileToRemove = this.uploadedFiles[index];\n\n if (fileToRemove.status === 'uploading' || fileToRemove.status === 'queued') {\n this.cancelUpload(index);\n }\n\n this.onRemove.emit(fileToRemove.file);\n this.uploadedFiles.splice(index, 1);\n this.emitFileListUpdate();\n\n // 🔹 Reset input element to allow re-uploading same file\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n\n if (this.uploadedFiles.length === 0) {\n this.updateUploadStatus('idle');\n } else if (!this.hasQueuedOrUploading && this.uploadStatus !== 'complete') {\n this.updateUploadStatus('complete');\n }\n }\n\n // Remove all files\n removeAllFiles(): void {\n // Cancel any active uploads\n this.cancelAllUploads();\n\n // Only emit if there were files to remove\n if (this.uploadedFiles.length > 0) {\n this.onClear.emit();\n }\n\n this.uploadedFiles = [];\n this.updateUploadStatus('idle');\n this.emitFileListUpdate();\n\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n }\n\n get hasUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading');\n }\n\n get hasQueuedOrUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading' || file.status === 'queued');\n }\n\n get hasErrors(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'error');\n }\n\n get allUploadsComplete(): boolean {\n return this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading;\n }\n\n get uploadingProgressText(): string {\n // Count active files (excluding canceled ones)\n const totalActiveFiles = this.activeFilesCount;\n const completedCount = this.uploadedFiles.filter((file) => file.status === 'complete').length;\n const uploadingFile = this.uploadedFiles.find((file) => file.status === 'uploading');\n if (uploadingFile) {\n // We're currently uploading the (completedCount + 1)th active file\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n if (this.uploadedFiles.some((file) => file.status === 'queued')) {\n return `Uploading ${completedCount + 1}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n\n // Calculate overall progress percentage across all files\n get overallProgress(): number {\n if (this.uploadedFiles.length === 0) return 0;\n\n const totalProgress = this.uploadedFiles.reduce((sum, file) => {\n if (file.status === 'complete') return sum + 100;\n if (file.status === 'canceled' || file.status === 'error') return sum;\n return sum + (file.progress || 0);\n }, 0);\n\n const activeFilesCount = this.uploadedFiles.filter((file) => file.status !== 'canceled' && file.status !== 'error').length;\n\n return activeFilesCount > 0 ? Math.round((totalProgress / (activeFilesCount * 100)) * 100) : 0;\n }\n\n /**\n * Formats bytes into a human-readable string (KB, MB, GB, etc.)\n * @param bytes The number of bytes to format\n * @param decimals Number of decimal places\n * @returns A formatted string\n */\n formatBytes(bytes: number, decimals: number = 2): string {\n if (!+bytes) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n /**\n * Toggles the expanded state of the file list preview\n */\n toggleExpand(): void {\n this.isExpanded = !this.isExpanded;\n // Use timeout to allow Angular to render the items before measuring\n setTimeout(() => this.calculateMaxHeight(), 0);\n }\n}\n","<div class=\"cax-upload-container\" [ngStyle]=\"style\">\n <span class=\"cax-upload-label cax-text-action-md-semibold\">{{ labelText }}</span>\n <div class=\"cax-upload-menu\" [class.dragging]=\"isDragging\" (click)=\"openFileSelector()\">\n <input type=\"file\" id=\"fileInput-{{ uniqueId }}\" style=\"display: none\" [multiple]=\"allowMultiple\" [accept]=\"acceptFileTypes\" (change)=\"handleFileInput($event)\" />\n <div class=\"cax-upload-options\" *ngIf=\"!isDragging\">\n <span class=\"cax-upload-text cax-text-action-lg-medium\">Drag & drop files here or browse</span>\n <div class=\"cax-upload-file-config\" *ngIf=\"maxFileSize || allowedFileTypes.length > 0 || aspectRatios.length > 0\">\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"maxFileSize\">Max. File Size: {{ maxFileSize }}MB</span>\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"allowedFileTypes.length > 0\">File Type: {{ allowedFileTypes.join(', ') | uppercase }}</span>\n <span class=\"cax-text-body-xs-regular\" *ngIf=\"aspectRatios.length > 0\">Aspect Ratio: {{ aspectRatios.join(', ') }}</span>\n </div>\n </div>\n <div class=\"cax-upload-options\" *ngIf=\"isDragging\">\n <span class=\"cax-upload-text dragging cax-text-action-lg-medium\"><i class=\"cax cax-archive-down\"></i>Drop files to upload</span>\n </div>\n </div>\n <div class=\"cax-file-preview-wrapper\" *ngIf=\"uploadedFiles.length > 0\">\n <div class=\"cax-upload-more-count\" *ngIf=\"uploadedFiles.length > 4\">\n <div>\n <span class=\"cax-text-action-sm-medium\">{{ uploadedFiles.length }} files</span>\n <span class=\"cax-upload-failed-count cax-text-action-sm-medium\" *ngIf=\"failedFilesCount > 0\">{{ failedFilesCount }} failed</span>\n </div>\n <span class=\"cax-upload-show-more cax-text-action-sm-link-regular\" (click)=\"toggleExpand()\">{{ isExpanded ? 'Show less' : 'Show more' }}</span>\n </div>\n <div class=\"cax-file-list\" [class.expanded]=\"isExpanded\" [style.max-height]=\"dynamicMaxHeight\">\n <div\n #previewItem\n *ngFor=\"let item of isExpanded ? uploadedFiles : uploadedFiles.slice(0, 4); let i = index\"\n class=\"cax-file-preview\"\n [class.cax-file-preview-error]=\"item.status === 'error'\"\n [class.active-gradient]=\"!isExpanded && i === 3 && uploadedFiles.length > 4\"\n >\n <div class=\"cax-file-preview-content\">\n <div class=\"file-info\">\n <i class=\"cax\" [class.cax-document-text]=\"item.status !== 'error'\" [class.cax-danger-triangle-bold]=\"item.status === 'error'\" [style.color]=\"item.status === 'error' ? 'var(--error-600)' : ''\"></i>\n <p class=\"file-name cax-text-action-md-medium\">{{ item.file.name }}</p>\n <span class=\"file-size cax-text-body-xsm-regular\">{{ formatBytes(item.file.size) }}</span>\n </div>\n\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\n <cax-progressSpinner [strokeColor]=\"'primary'\" [size]=\"'sm'\" [animationDuration]=\"'2s'\"> </cax-progressSpinner>\n </div>\n\n <button *ngIf=\"item.status === 'complete' || item.status === 'canceled' || item.status === 'error'\" class=\"remove-button\" (click)=\"removeFile(i); $event.stopPropagation()\">\n <i class=\"cax cax-close\"></i>\n </button>\n </div>\n <span class=\"file-error cax-text-body-sm-regular\" *ngIf=\"item.status === 'error'\">{{ item.errorMessage }}</span>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { UploadComponent } from './upload.component';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { ProgressSpinnerModule } from 'cax-design-system/progressspinner';\nimport { Button } from 'cax-design-system/button';\n\n@NgModule({\n declarations: [UploadComponent],\n imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button],\n exports: [UploadComponent]\n})\nexport class UploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -112,8 +112,8 @@ class VirtualScroller {
|
|
|
112
112
|
scrollToIndex(index, mode) {
|
|
113
113
|
this.scroller?.scrollToIndex(index, mode);
|
|
114
114
|
}
|
|
115
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
116
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "
|
|
115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VirtualScroller, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.25", type: VirtualScroller, isStandalone: false, selector: "p-virtualScroller", inputs: { value: "value", itemSize: ["itemSize", "itemSize", numberAttribute], style: "style", styleClass: "styleClass", scrollHeight: "scrollHeight", lazy: ["lazy", "lazy", booleanAttribute], options: "options", delay: ["delay", "delay", numberAttribute] }, outputs: { onLazyLoad: "onLazyLoad" }, host: { classAttribute: "cax-element" }, queries: [{ propertyName: "header", first: true, predicate: Header, descendants: true }, { propertyName: "footer", first: true, predicate: Footer, descendants: true }, { propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }], ngImport: i0, template: `
|
|
117
117
|
<div [ngClass]="'p-virtualscroller p-component'" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'virtualscroller'" [attr.data-pc-section]="'root'">
|
|
118
118
|
<div class="p-virtualscroller-header" *ngIf="header || headerTemplate">
|
|
119
119
|
<ng-content select="cax-header"></ng-content>
|
|
@@ -135,7 +135,7 @@ class VirtualScroller {
|
|
|
135
135
|
</div>
|
|
136
136
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.CaxTemplate, selector: "[caxTemplate]", inputs: ["type", "caxTemplate"] }, { kind: "component", type: i3.Scroller, selector: "cax-scroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
137
137
|
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VirtualScroller, decorators: [{
|
|
139
139
|
type: Component,
|
|
140
140
|
args: [{
|
|
141
141
|
selector: 'p-virtualScroller',
|
|
@@ -202,11 +202,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
202
202
|
args: ['scroller']
|
|
203
203
|
}] } });
|
|
204
204
|
class VirtualScrollerModule {
|
|
205
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
206
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
207
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
205
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VirtualScrollerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
206
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: VirtualScrollerModule, declarations: [VirtualScroller], imports: [CommonModule, SharedModule, ScrollerModule], exports: [VirtualScroller, SharedModule, ScrollerModule] });
|
|
207
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VirtualScrollerModule, imports: [CommonModule, SharedModule, ScrollerModule, SharedModule, ScrollerModule] });
|
|
208
208
|
}
|
|
209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VirtualScrollerModule, decorators: [{
|
|
210
210
|
type: NgModule,
|
|
211
211
|
args: [{
|
|
212
212
|
imports: [CommonModule, SharedModule, ScrollerModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-virtualscroller.mjs","sources":["../../src/app/components/virtualscroller/virtualscroller.ts","../../src/app/components/virtualscroller/cax-design-system-virtualscroller.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n NgModule,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute\n} from '@angular/core';\nimport { BlockableUI, Footer, Header, CaxTemplate, ScrollerOptions, SharedModule } from 'cax-design-system/api';\nimport { Scroller, ScrollerModule } from 'cax-design-system/scroller';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { VirtualScrollerLazyLoadEvent } from './virtualscroller.interface';\n/**\n * VirtualScroller is a performant approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'p-virtualScroller',\n standalone: false,\n template: `\n <div [ngClass]=\"'p-virtualscroller p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" [attr.data-pc-name]=\"'virtualscroller'\" [attr.data-pc-section]=\"'root'\">\n <div class=\"p-virtualscroller-header\" *ngIf=\"header || headerTemplate\">\n <ng-content select=\"cax-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n <div #content class=\"p-virtualscroller-content\" [attr.data-pc-section]=\"'content'\">\n <cax-scroller #scroller [items]=\"value\" styleClass=\"p-virtualscroller-list\" [style]=\"{ height: scrollHeight }\" [itemSize]=\"itemSize\" [lazy]=\"lazy\" (onLazyLoad)=\"onLazyItemLoad($event)\" [options]=\"options\">\n <ng-template caxTemplate=\"item\" let-item let-scrollerOptions=\"options\">\n <div [ngStyle]=\"{ height: itemSize + 'px' }\" class=\"p-virtualscroller-item\">\n <ng-container *ngTemplateOutlet=\"item ? itemTemplate : loadingItemTemplate; context: { $implicit: item, options: scrollerOptions }\"></ng-container>\n </div>\n </ng-template>\n </cax-scroller>\n </div>\n <div class=\"p-virtualscroller-footer\" *ngIf=\"footer || footerTemplate\" [attr.data-pc-section]=\"'footer'\">\n <ng-content select=\"cax-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'cax-element'\n }\n})\nexport class VirtualScroller implements AfterContentInit, BlockableUI {\n /**\n * An array of objects to display.\n * @group Props\n */\n @Input() value: any[] | undefined;\n /**\n * Height of an item in the list.\n * @group Props\n */\n @Input({ transform: numberAttribute }) itemSize: number | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Max height of the content area in inline mode.\n * @group Props\n */\n @Input() scrollHeight: any;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() options: ScrollerOptions | undefined;\n /**\n * Threshold in milliseconds to delay lazy loading during scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) delay: number = 250;\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {VirtualScrollerLazyLoadEvent} event - custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<VirtualScrollerLazyLoadEvent> = new EventEmitter<VirtualScrollerLazyLoadEvent>();\n\n @ContentChild(Header) header: Header | undefined;\n\n @ContentChild(Footer) footer: Footer | undefined;\n\n @ContentChildren(CaxTemplate) templates: Nullable<QueryList<CaxTemplate>>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n itemTemplate: Nullable<TemplateRef<any>>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n loadingItemTemplate: Nullable<TemplateRef<any>>;\n\n virtualScrollTimeout: any;\n\n constructor(\n public el: ElementRef,\n public cd: ChangeDetectorRef\n ) {}\n\n ngAfterContentInit() {\n (this.templates as QueryList<CaxTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'loadingItem':\n this.loadingItemTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n onLazyItemLoad(event: VirtualScrollerLazyLoadEvent) {\n if (this.virtualScrollTimeout) {\n clearTimeout(this.virtualScrollTimeout);\n }\n\n this.virtualScrollTimeout = setTimeout(() => {\n this.onLazyLoad.emit({\n ...event,\n rows: <number>event.last - <number>event.first,\n forceUpdate: () => this.cd.detectChanges()\n });\n }, this.delay);\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n scrollToIndex(index: number, mode?: ScrollBehavior): void {\n this.scroller?.scrollToIndex(index, mode);\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, ScrollerModule],\n exports: [VirtualScroller, SharedModule, ScrollerModule],\n declarations: [VirtualScroller]\n})\nexport class VirtualScrollerModule {}\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":"cax-design-system-virtualscroller.mjs","sources":["../../src/app/components/virtualscroller/virtualscroller.ts","../../src/app/components/virtualscroller/cax-design-system-virtualscroller.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n NgModule,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute\n} from '@angular/core';\nimport { BlockableUI, Footer, Header, CaxTemplate, ScrollerOptions, SharedModule } from 'cax-design-system/api';\nimport { Scroller, ScrollerModule } from 'cax-design-system/scroller';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { VirtualScrollerLazyLoadEvent } from './virtualscroller.interface';\n/**\n * VirtualScroller is a performant approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'p-virtualScroller',\n standalone: false,\n template: `\n <div [ngClass]=\"'p-virtualscroller p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" [attr.data-pc-name]=\"'virtualscroller'\" [attr.data-pc-section]=\"'root'\">\n <div class=\"p-virtualscroller-header\" *ngIf=\"header || headerTemplate\">\n <ng-content select=\"cax-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n <div #content class=\"p-virtualscroller-content\" [attr.data-pc-section]=\"'content'\">\n <cax-scroller #scroller [items]=\"value\" styleClass=\"p-virtualscroller-list\" [style]=\"{ height: scrollHeight }\" [itemSize]=\"itemSize\" [lazy]=\"lazy\" (onLazyLoad)=\"onLazyItemLoad($event)\" [options]=\"options\">\n <ng-template caxTemplate=\"item\" let-item let-scrollerOptions=\"options\">\n <div [ngStyle]=\"{ height: itemSize + 'px' }\" class=\"p-virtualscroller-item\">\n <ng-container *ngTemplateOutlet=\"item ? itemTemplate : loadingItemTemplate; context: { $implicit: item, options: scrollerOptions }\"></ng-container>\n </div>\n </ng-template>\n </cax-scroller>\n </div>\n <div class=\"p-virtualscroller-footer\" *ngIf=\"footer || footerTemplate\" [attr.data-pc-section]=\"'footer'\">\n <ng-content select=\"cax-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'cax-element'\n }\n})\nexport class VirtualScroller implements AfterContentInit, BlockableUI {\n /**\n * An array of objects to display.\n * @group Props\n */\n @Input() value: any[] | undefined;\n /**\n * Height of an item in the list.\n * @group Props\n */\n @Input({ transform: numberAttribute }) itemSize: number | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Max height of the content area in inline mode.\n * @group Props\n */\n @Input() scrollHeight: any;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() options: ScrollerOptions | undefined;\n /**\n * Threshold in milliseconds to delay lazy loading during scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) delay: number = 250;\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {VirtualScrollerLazyLoadEvent} event - custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<VirtualScrollerLazyLoadEvent> = new EventEmitter<VirtualScrollerLazyLoadEvent>();\n\n @ContentChild(Header) header: Header | undefined;\n\n @ContentChild(Footer) footer: Footer | undefined;\n\n @ContentChildren(CaxTemplate) templates: Nullable<QueryList<CaxTemplate>>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n itemTemplate: Nullable<TemplateRef<any>>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n loadingItemTemplate: Nullable<TemplateRef<any>>;\n\n virtualScrollTimeout: any;\n\n constructor(\n public el: ElementRef,\n public cd: ChangeDetectorRef\n ) {}\n\n ngAfterContentInit() {\n (this.templates as QueryList<CaxTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'loadingItem':\n this.loadingItemTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n onLazyItemLoad(event: VirtualScrollerLazyLoadEvent) {\n if (this.virtualScrollTimeout) {\n clearTimeout(this.virtualScrollTimeout);\n }\n\n this.virtualScrollTimeout = setTimeout(() => {\n this.onLazyLoad.emit({\n ...event,\n rows: <number>event.last - <number>event.first,\n forceUpdate: () => this.cd.detectChanges()\n });\n }, this.delay);\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n scrollToIndex(index: number, mode?: ScrollBehavior): void {\n this.scroller?.scrollToIndex(index, mode);\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, ScrollerModule],\n exports: [VirtualScroller, SharedModule, ScrollerModule],\n declarations: [VirtualScroller]\n})\nexport class VirtualScrollerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|