cax-design-system 2.8.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -46
- package/api/confirmation.d.ts +4 -10
- package/api/message.d.ts +0 -1
- package/autocomplete/autocomplete.d.ts +23 -6
- package/autocomplete/autocomplete.module.d.ts +8 -7
- package/avatar/avatar.d.ts +23 -1
- package/badge/badge.d.ts +4 -0
- package/button/button.d.ts +8 -1
- package/button/button.directive.d.ts +3 -1
- package/calendar/calendar.d.ts +33 -11
- package/card/card.d.ts +2 -6
- package/cascadeselect/cascadeselect.d.ts +32 -2
- package/categorycard/categorycard.d.ts +11 -0
- package/categorycard/categorycard.module.d.ts +7 -0
- package/categorycard/index.d.ts +5 -0
- package/categorycard/public_api.d.ts +2 -0
- package/checkbox/checkbox.d.ts +2 -2
- package/chip/chip.d.ts +3 -4
- package/commentbox/commentbox.d.ts +1 -1
- package/comments/comments.d.ts +83 -0
- package/comments/comments.module.d.ts +7 -0
- package/{chips → comments}/index.d.ts +1 -1
- package/comments/public_api.d.ts +2 -0
- package/comparecard/comaparecard.module.d.ts +11 -0
- package/comparecard/comparecard.component.d.ts +44 -0
- package/comparecard/index.d.ts +5 -0
- package/comparecard/public_api.d.ts +2 -0
- package/confirmdialog/confirmdialog.d.ts +13 -22
- package/divider/divider.d.ts +9 -1
- package/dom/domhandler.d.ts +2 -2
- package/dropdown/dropdown-item.d.ts +2 -1
- package/dropdown/dropdown.d.ts +24 -2
- package/editor/editor.d.ts +6 -1
- package/fesm2022/cax-design-system-accordion.mjs +22 -17
- 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 +37 -37
- package/fesm2022/cax-design-system-api.mjs.map +1 -1
- package/fesm2022/cax-design-system-autocomplete.mjs +101 -47
- 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 +39 -8
- package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
- package/fesm2022/cax-design-system-avatargroup.mjs +8 -8
- package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-badge.mjs +16 -12
- 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 +10 -11
- package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
- package/fesm2022/cax-design-system-button.mjs +93 -39
- package/fesm2022/cax-design-system-button.mjs.map +1 -1
- package/fesm2022/cax-design-system-buttongroup.mjs +7 -7
- package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-calendar.mjs +388 -100
- package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
- package/fesm2022/cax-design-system-card.mjs +12 -25
- 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 +90 -30
- package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-categorycard.mjs +57 -0
- package/fesm2022/cax-design-system-categorycard.mjs.map +1 -0
- 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 +15 -14
- package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-chip.mjs +14 -12
- package/fesm2022/cax-design-system-chip.mjs.map +1 -1
- package/fesm2022/cax-design-system-colorpicker.mjs +8 -8
- package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
- package/fesm2022/cax-design-system-commentbox.mjs +8 -8
- package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-comments.mjs +385 -0
- package/fesm2022/cax-design-system-comments.mjs.map +1 -0
- package/fesm2022/cax-design-system-comparecard.mjs +143 -0
- package/fesm2022/cax-design-system-comparecard.mjs.map +1 -0
- package/fesm2022/cax-design-system-confirmdialog.mjs +54 -50
- package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-confirmpopup.mjs +8 -8
- package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
- package/fesm2022/cax-design-system-contextmenu.mjs +10 -10
- 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 +12 -13
- package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-divider.mjs +21 -11
- 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-dom.mjs +16 -6
- package/fesm2022/cax-design-system-dom.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 +57 -22
- package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/cax-design-system-dynamicdialog.mjs +15 -15
- package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-editor.mjs +55 -15
- package/fesm2022/cax-design-system-editor.mjs.map +1 -1
- package/fesm2022/cax-design-system-fieldset.mjs +8 -8
- 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-floatlabel.mjs.map +1 -1
- 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-angledoubledown.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angledoubleright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angledoubleup.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angledown.mjs +4 -4
- package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angleleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angleright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-angleup.mjs +4 -4
- package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-arrowdown.mjs +4 -4
- package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-arrowdownright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-arrowleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-arrowright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-arrowup.mjs +4 -4
- package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-ban.mjs +3 -3
- package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-bars.mjs +3 -3
- package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-blank.mjs +4 -4
- package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-calendar.mjs +4 -4
- package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-caretleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-caretright.mjs +3 -3
- package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-check.mjs +4 -4
- package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-chevrondown.mjs +4 -4
- package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-chevronleft.mjs +3 -3
- package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-chevronright.mjs +4 -4
- package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-chevronup.mjs +4 -4
- package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +3 -3
- package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-eye.mjs +4 -4
- package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-eyeslash.mjs +3 -3
- package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-filter.mjs +3 -3
- package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-filterslash.mjs +4 -4
- package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-home.mjs +3 -3
- package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-infocircle.mjs +3 -3
- package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-minus.mjs +3 -3
- package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-pencil.mjs +3 -3
- package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-plus.mjs +4 -4
- package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-refresh.mjs +4 -4
- package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-search.mjs +4 -4
- package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-searchminus.mjs +4 -4
- package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-searchplus.mjs +4 -4
- package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-sortalt.mjs +3 -3
- package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-sortamountdown.mjs +3 -3
- package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +3 -3
- package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-spinner.mjs +4 -4
- package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-star.mjs +3 -3
- package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-starfill.mjs +3 -3
- package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-thlarge.mjs +3 -3
- package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-times.mjs +4 -4
- package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-timescircle.mjs +4 -4
- package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-trash.mjs +4 -4
- package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-undo.mjs +4 -4
- package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-upload.mjs +3 -3
- package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-windowmaximize.mjs +3 -3
- package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/cax-design-system-icons-windowminimize.mjs +3 -3
- package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/cax-design-system-image.mjs +8 -8
- 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-chips.mjs → cax-design-system-inputchips.mjs} +66 -27
- package/fesm2022/cax-design-system-inputchips.mjs.map +1 -0
- package/fesm2022/cax-design-system-inputgroup.mjs +54 -10
- package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputgroupaddon.mjs +8 -8
- 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 +33 -20
- package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputnumber.mjs +64 -30
- 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 +30 -14
- package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputtextarea.mjs +49 -18
- 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 +39 -369
- package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-logo.mjs +8 -8
- package/fesm2022/cax-design-system-logo.mjs.map +1 -1
- package/fesm2022/cax-design-system-logocard.mjs +37 -0
- package/fesm2022/cax-design-system-logocard.mjs.map +1 -0
- package/fesm2022/cax-design-system-megamenu.mjs +10 -10
- package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-menu.mjs +15 -15
- package/fesm2022/cax-design-system-menu.mjs.map +1 -1
- package/fesm2022/cax-design-system-menubar.mjs +13 -13
- 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 +17 -44
- 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 +58 -24
- package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-navigation.mjs +193 -105
- package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
- package/fesm2022/cax-design-system-orderlist.mjs +7 -7
- package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
- package/fesm2022/cax-design-system-organizationchart.mjs +11 -11
- package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
- package/fesm2022/cax-design-system-overlay.mjs +8 -8
- package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
- package/fesm2022/cax-design-system-overlaypanel.mjs +17 -11
- package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
- package/fesm2022/cax-design-system-paginator.mjs +8 -8
- package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
- package/fesm2022/cax-design-system-panel.mjs +8 -8
- package/fesm2022/cax-design-system-panel.mjs.map +1 -1
- package/fesm2022/cax-design-system-panelmenu.mjs +14 -14
- package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-password.mjs +14 -14
- package/fesm2022/cax-design-system-password.mjs.map +1 -1
- package/fesm2022/cax-design-system-picklist.mjs +7 -7
- package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
- package/fesm2022/cax-design-system-productcard.mjs +90 -0
- package/fesm2022/cax-design-system-productcard.mjs.map +1 -0
- package/fesm2022/cax-design-system-progressbar.mjs +31 -9
- package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
- package/fesm2022/cax-design-system-progressspinner.mjs +17 -15
- package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
- package/fesm2022/cax-design-system-radiobutton.mjs +27 -15
- package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-rating.mjs +7 -7
- package/fesm2022/cax-design-system-rating.mjs.map +1 -1
- package/fesm2022/cax-design-system-ripple.mjs +7 -7
- package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
- package/fesm2022/cax-design-system-scroller.mjs +8 -8
- 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 +8 -8
- package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
- package/fesm2022/cax-design-system-selectbutton.mjs +79 -9
- package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-sidebar.mjs +10 -10
- package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
- package/fesm2022/cax-design-system-skeleton.mjs +11 -10
- package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
- package/fesm2022/cax-design-system-slidemenu.mjs +10 -10
- package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-slider.mjs +14 -199
- package/fesm2022/cax-design-system-slider.mjs.map +1 -1
- package/fesm2022/cax-design-system-speeddial.mjs +16 -9
- 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 +10 -13
- package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-splitter.mjs +8 -8
- package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
- package/fesm2022/cax-design-system-stepper.mjs +20 -20
- package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
- package/fesm2022/cax-design-system-steps.mjs +30 -11
- 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 +97 -0
- package/fesm2022/cax-design-system-subscriptioncard.mjs.map +1 -0
- package/fesm2022/cax-design-system-table-paginator.mjs +129 -0
- package/fesm2022/cax-design-system-table-paginator.mjs.map +1 -0
- package/fesm2022/cax-design-system-table.mjs +284 -400
- package/fesm2022/cax-design-system-table.mjs.map +1 -1
- package/fesm2022/cax-design-system-tableconfiguration.mjs +19 -10
- package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
- package/fesm2022/cax-design-system-tabmenu.mjs +7 -7
- package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-tabview.mjs +168 -95
- package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
- package/fesm2022/cax-design-system-tag.mjs +71 -15
- package/fesm2022/cax-design-system-tag.mjs.map +1 -1
- package/fesm2022/cax-design-system-terminal.mjs +14 -14
- package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
- package/fesm2022/cax-design-system-tieredmenu.mjs +21 -14
- package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
- package/fesm2022/cax-design-system-timeline.mjs +8 -8
- package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
- package/fesm2022/cax-design-system-toast.mjs +13 -25
- package/fesm2022/cax-design-system-toast.mjs.map +1 -1
- package/fesm2022/cax-design-system-togglebutton.mjs +9 -9
- package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-toggleswitch.mjs +26 -8
- 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 +40 -20
- package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/cax-design-system-tree.mjs +12 -12
- package/fesm2022/cax-design-system-tree.mjs.map +1 -1
- package/fesm2022/cax-design-system-treeselect.mjs +8 -8
- 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 +8 -8
- package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-upload.mjs +209 -96
- package/fesm2022/cax-design-system-upload.mjs.map +1 -1
- package/fesm2022/cax-design-system-utils.mjs.map +1 -1
- package/fesm2022/cax-design-system-virtualscroller.mjs +7 -7
- package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
- package/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
- package/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
- package/fonts/Inter/OFL.txt +93 -0
- package/fonts/Inter/README.txt +118 -0
- package/fonts/Inter/static/Inter_18pt-Black.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-BlackItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-Bold.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-BoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-ExtraBold.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-ExtraBoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-ExtraLight.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-ExtraLightItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-Italic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-Light.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-LightItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-Medium.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-MediumItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-Regular.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-SemiBold.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-SemiBoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-Thin.ttf +0 -0
- package/fonts/Inter/static/Inter_18pt-ThinItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-Black.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-BlackItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-Bold.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-BoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-ExtraBold.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-ExtraBoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-ExtraLight.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-ExtraLightItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-Italic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-Light.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-LightItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-Medium.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-MediumItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-Regular.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-SemiBold.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-SemiBoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-Thin.ttf +0 -0
- package/fonts/Inter/static/Inter_24pt-ThinItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-Black.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-BlackItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-Bold.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-BoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-ExtraBold.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-ExtraBoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-ExtraLight.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-ExtraLightItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-Italic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-Light.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-LightItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-Medium.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-MediumItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-Regular.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-SemiBold.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-SemiBoldItalic.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-Thin.ttf +0 -0
- package/fonts/Inter/static/Inter_28pt-ThinItalic.ttf +0 -0
- package/inputchips/index.d.ts +5 -0
- package/{chips/chips.d.ts → inputchips/inputchips.d.ts} +24 -6
- package/{chips/chips.interface.d.ts → inputchips/inputchips.interface.d.ts} +1 -1
- package/inputchips/inputchips.module.d.ts +14 -0
- package/inputchips/public_api.d.ts +3 -0
- package/inputgroup/inputgroup.d.ts +32 -1
- package/inputmask/inputmask.d.ts +9 -3
- package/inputnumber/inputnumber.d.ts +30 -4
- package/inputtext/inputtext.component.d.ts +2 -1
- package/inputtext/inputtext.directive.d.ts +3 -1
- package/inputtextarea/inputtextarea.component.d.ts +8 -1
- package/inputtextarea/inputtextarea.directive.d.ts +12 -1
- package/listbox/listbox.d.ts +14 -16
- package/listbox/listbox.module.d.ts +14 -0
- package/listbox/public_api.d.ts +1 -0
- package/logocard/index.d.ts +5 -0
- package/logocard/logocard.d.ts +6 -0
- package/logocard/logocard.module.d.ts +7 -0
- package/logocard/public_api.d.ts +2 -0
- package/messages/messages.d.ts +2 -11
- package/messages/messages.interface.d.ts +0 -2
- package/multiselect/multiselect.d.ts +28 -2
- package/navigation/navigation.d.ts +17 -12
- package/overlaypanel/overlaypanel.d.ts +6 -1
- package/package.json +240 -220
- package/productcard/index.d.ts +5 -0
- package/productcard/productcard.d.ts +19 -0
- package/productcard/productcard.module.d.ts +7 -0
- package/productcard/public_api.d.ts +2 -0
- package/progressbar/progressbar.d.ts +17 -2
- package/radiobutton/radiobutton.d.ts +1 -0
- package/resources/cax.min.scss +6351 -1
- package/resources/cax.scss +11281 -12539
- package/resources/components/accordion/accordion.scss +0 -46
- package/resources/components/autocomplete/autocomplete.scss +249 -184
- package/resources/components/avatar/avatar.scss +30 -34
- package/resources/components/avatargroup/avatargroup.scss +10 -10
- package/resources/components/badge/badge.scss +68 -67
- package/resources/components/blockui/blockui.css +26 -26
- package/resources/components/breadcrumb/breadcrumb.scss +36 -33
- package/resources/components/button/button.scss +160 -163
- package/resources/components/calendar/calendar.scss +368 -231
- package/resources/components/card/card.scss +9 -50
- package/resources/components/carousel/carousel.css +71 -71
- package/resources/components/cascadeselect/cascadeselect.scss +104 -105
- package/resources/components/categorycard/categorycard.scss +46 -0
- package/resources/components/checkbox/checkbox.scss +30 -30
- package/resources/components/chip/chip.scss +6 -6
- package/resources/components/colorpicker/colorpicker-images.scss +7 -7
- package/resources/components/colorpicker/colorpicker.scss +82 -82
- package/resources/components/commentbox/commentbox.scss +621 -611
- package/resources/components/comments/comments.scss +0 -0
- package/resources/components/common/common.scss +183 -183
- package/resources/components/comparecard/comparecard.component.scss +50 -0
- package/resources/components/confirmpopup/confirmpopup.css +53 -53
- package/resources/components/contextmenu/contextmenu.css +42 -42
- package/resources/components/dataview/dataview.css +13 -13
- package/resources/components/dialog/dialog.scss +193 -171
- package/resources/components/divider/divider.scss +0 -86
- package/resources/components/dock/dock.css +107 -107
- package/resources/components/dropdown/dropdown.scss +93 -94
- package/resources/components/editor/editor.scss +97 -4
- package/resources/components/fieldset/fieldset.css +30 -30
- package/resources/components/fileupload/fileupload.css +47 -47
- package/resources/components/galleria/galleria.css +281 -281
- package/resources/components/iconfield/iconfield.css +5 -5
- package/resources/components/image/image.scss +97 -92
- package/resources/components/inplace/inplace.css +19 -19
- package/resources/components/{chips/chips.scss → inputchips/inputchips.scss} +181 -205
- package/resources/components/inputicon/inputicon.css +6 -6
- package/resources/components/inputmask/inputmask.scss +48 -12
- package/resources/components/inputnumber/inputnumber.scss +109 -109
- package/resources/components/inputotp/inputotp.css +2 -2
- package/resources/components/inputswitch/inputswitch.css +23 -23
- package/resources/components/inputtext/inputtext.scss +138 -145
- package/resources/components/inputtextarea/inputtextarea.scss +15 -10
- package/resources/components/knob/knob.css +20 -20
- package/resources/components/listbox/listbox.scss +49 -0
- package/resources/components/logocard/logocard.scss +6 -0
- package/resources/components/megamenu/megamenu.css +108 -108
- package/resources/components/menu/menu.scss +31 -31
- package/resources/components/menubar/menubar.css +81 -81
- package/resources/components/message/message.css +17 -17
- package/resources/components/messages/messages.scss +53 -55
- package/resources/components/multiselect/multiselect.scss +132 -132
- package/resources/components/navigation/navigation.scss +236 -197
- package/resources/components/orderlist/orderlist.css +78 -78
- package/resources/components/organizationchart/organizationchart.css +62 -62
- package/resources/components/overlay/overlay.scss +80 -80
- package/resources/components/overlaypanel/overlaypanel.scss +84 -66
- package/resources/components/paginator/paginator.scss +41 -41
- package/resources/components/panel/panel.css +29 -29
- package/resources/components/panelmenu/panelmenu.css +45 -45
- package/resources/components/password/password.css +54 -54
- package/resources/components/picklist/picklist.css +60 -60
- package/resources/components/productcard/productcard.scss +95 -0
- package/resources/components/progressbar/progressbar.scss +107 -107
- package/resources/components/progressspinner/progressspinner.scss +0 -94
- package/resources/components/radiobutton/radiobutton.scss +34 -34
- package/resources/components/rating/rating.css +15 -15
- package/resources/components/ripple/ripple.scss +29 -29
- package/resources/components/scroller/scroller.scss +58 -58
- package/resources/components/scrollpanel/scrollpanel.css +50 -50
- package/resources/components/scrolltop/scrolltop.css +18 -18
- package/resources/components/sidebar/sidebar.scss +117 -117
- package/resources/components/skeleton/skeleton.scss +24 -25
- package/resources/components/slidemenu/slidemenu.css +100 -100
- package/resources/components/slider/{slider.css → slider.scss} +41 -41
- package/resources/components/speeddial/speeddial.scss +131 -122
- package/resources/components/spinner/spinner.css +63 -63
- package/resources/components/splitbutton/splitbutton.scss +57 -53
- package/resources/components/splitter/splitter.scss +73 -73
- package/resources/components/stepper/stepper.css +9 -9
- package/resources/components/steps/steps.scss +49 -50
- package/resources/components/subscriptioncard/subscriptioncard.component.scss +65 -0
- package/resources/components/table/table.scss +511 -458
- package/resources/components/table-paginator/table-paginator.component.scss +72 -0
- package/resources/components/tableconfiguration/tableconfiguration.scss +3 -125
- package/resources/components/tabmenu/tabmenu.css +80 -80
- package/resources/components/tabview/tabview.scss +206 -198
- package/resources/components/tag/tag.scss +7 -23
- package/resources/components/terminal/terminal.css +24 -24
- package/resources/components/tieredmenu/tieredmenu.scss +55 -55
- package/resources/components/timeline/timeline.scss +128 -128
- package/resources/components/toast/toast.scss +78 -87
- package/resources/components/toggleswitch/toggleswitch.scss +45 -36
- package/resources/components/toolbar/toolbar.css +19 -19
- package/resources/components/tooltip/tooltip.scss +124 -124
- package/resources/components/tree/tree.scss +154 -154
- package/resources/components/treeselect/treeselect.scss +114 -114
- package/resources/components/treetable/treetable.css +205 -205
- package/resources/components/upload/upload.component.scss +84 -145
- package/resources/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
- package/resources/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
- package/resources/fonts/Inter/OFL.txt +93 -0
- package/resources/fonts/Inter/README.txt +118 -0
- package/resources/fonts/Inter/static/Inter_18pt-Black.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-BlackItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-Bold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-BoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-ExtraBold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-ExtraBoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-ExtraLight.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-ExtraLightItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-Italic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-Light.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-LightItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-Medium.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-MediumItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-Regular.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-SemiBold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-SemiBoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-Thin.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_18pt-ThinItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-Black.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-BlackItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-Bold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-BoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-ExtraBold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-ExtraBoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-ExtraLight.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-ExtraLightItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-Italic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-Light.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-LightItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-Medium.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-MediumItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-Regular.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-SemiBold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-SemiBoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-Thin.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_24pt-ThinItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-Black.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-BlackItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-Bold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-BoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-ExtraBold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-ExtraBoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-ExtraLight.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-ExtraLightItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-Italic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-Light.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-LightItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-Medium.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-MediumItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-Regular.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-SemiBold.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-SemiBoldItalic.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-Thin.ttf +0 -0
- package/resources/fonts/Inter/static/Inter_28pt-ThinItalic.ttf +0 -0
- package/resources/logo/cax-intro-logo.svg +75 -0
- package/resources/logo/cax-sidebar-logo.svg +6 -0
- package/resources/logo/dataX-dark.svg +12 -12
- package/resources/logo/dataX-icon-dark.svg +5 -5
- package/resources/logo/dataX-icon.svg +5 -5
- package/resources/logo/dataX.svg +12 -12
- package/resources/styles/colors.scss +568 -397
- package/resources/styles/fonts.scss +15 -0
- package/resources/styles/transitions.scss +23 -0
- package/resources/styles/typography.scss +555 -116
- package/resources/styles/variables.scss +85 -0
- package/selectbutton/selectbutton.d.ts +50 -1
- package/slider/public_api.d.ts +1 -0
- package/slider/slider.d.ts +1 -8
- package/slider/slider.module.d.ts +9 -0
- package/speeddial/speeddial.d.ts +6 -1
- package/splitbutton/splitbutton.d.ts +2 -2
- package/steps/steps.d.ts +11 -4
- package/steps/steps.module.d.ts +2 -1
- package/subscriptioncard/index.d.ts +5 -0
- package/subscriptioncard/public_api.d.ts +2 -0
- package/subscriptioncard/subscriptioncard.component.d.ts +33 -0
- package/subscriptioncard/subscriptioncard.module.d.ts +11 -0
- package/table/components/column-filter/column-filter.d.ts +0 -34
- package/table/components/table-header-checkbox/table-header-checkbox.d.ts +3 -1
- package/table/directives/cell-extend.directive.d.ts +14 -0
- package/table/directives/cell-highlight.directive.d.ts +4 -6
- package/table/public_api.d.ts +1 -0
- package/table/table.d.ts +34 -60
- package/table/table.interface.d.ts +21 -0
- package/table/table.module.d.ts +4 -3
- package/table-paginator/index.d.ts +5 -0
- package/table-paginator/public_api.d.ts +3 -0
- package/table-paginator/table-paginator.component.d.ts +28 -0
- package/table-paginator/table-paginator.interface.d.ts +21 -0
- package/table-paginator/table-paginator.module.d.ts +9 -0
- package/tableconfiguration/tableconfiguration.d.ts +3 -1
- package/tabview/tabview.d.ts +14 -12
- package/tabview/tabview.module.d.ts +2 -1
- package/tag/tag.d.ts +43 -5
- package/terminal/terminal.d.ts +1 -1
- package/tieredmenu/tieredmenu.d.ts +6 -1
- package/toast/toast.d.ts +1 -9
- package/toggleswitch/toggleswitch.d.ts +5 -0
- package/upload/upload.component.d.ts +51 -19
- package/chips/chips.module.d.ts +0 -14
- package/chips/public_api.d.ts +0 -3
- package/fesm2022/cax-design-system-chips.mjs.map +0 -1
- package/resources/components/listbox/listbox.css +0 -40
- package/resources/styles/shadow-blur.scss +0 -22
- package/resources/styles/space-radius-border.scss +0 -49
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-fileupload.mjs","sources":["../../src/app/components/fileupload/fileupload.ts","../../src/app/components/fileupload/cax-design-system-fileupload.ts"],"sourcesContent":["import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { HttpClient, HttpEvent, HttpEventType, HttpHeaders } from '@angular/common/http';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgModule,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { BlockableUI, Message, caxConfig, CaxTemplate, SharedModule, TranslationKeys } from 'cax-design-system/api';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { PlusIcon } from 'cax-design-system/icons/plus';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { UploadIcon } from 'cax-design-system/icons/upload';\nimport { MessagesModule } from 'cax-design-system/messages';\nimport { ProgressBarModule } from 'cax-design-system/progressbar';\nimport { RippleModule } from 'cax-design-system/ripple';\nimport { VoidListener } from 'cax-design-system/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { FileBeforeUploadEvent, FileProgressEvent, FileRemoveEvent, FileSelectEvent, FileSendEvent, FileUploadErrorEvent, FileUploadEvent, FileUploadHandlerEvent, RemoveUploadedFileEvent } from './fileupload.interface';\n/**\n * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.\n * @group Components\n */\n@Component({\n selector: 'p-fileUpload',\n template: `\n <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\" [attr.data-pc-name]=\"'fileupload'\" [attr.data-pc-section]=\"'root'\">\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #advancedfileinput\n type=\"file\"\n (change)=\"onFileSelect($event)\"\n [multiple]=\"multiple\"\n [accept]=\"accept\"\n [disabled]=\"disabled || isChooseDisabled()\"\n [attr.title]=\"''\"\n [attr.data-pc-section]=\"'input'\"\n [style.display]=\"'none'\"\n />\n <div class=\"p-fileupload-buttonbar\" [attr.data-pc-section]=\"'buttonbar'\">\n <ng-container *ngIf=\"!headerTemplate\">\n <span\n class=\"p-button p-component p-fileupload-choose\"\n [ngClass]=\"{ 'p-focus': focus, 'p-disabled': disabled || isChooseDisabled() }\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n pRipple\n (click)=\"choose()\"\n (keydown.enter)=\"choose()\"\n tabindex=\"0\"\n [class]=\"chooseStyleClass\"\n [attr.data-pc-section]=\"'choosebutton'\"\n >\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #advancedfileinput\n type=\"file\"\n (change)=\"onFileSelect($event)\"\n [multiple]=\"multiple\"\n [accept]=\"accept\"\n [disabled]=\"disabled || isChooseDisabled()\"\n [attr.title]=\"''\"\n [attr.data-pc-section]=\"'input'\"\n />\n <span *ngIf=\"chooseIcon\" [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\" [attr.aria-label]=\"true\" [attr.data-pc-section]=\"'chooseicon'\"></span>\n <ng-container *ngIf=\"!chooseIcon\">\n <PlusIcon *ngIf=\"!chooseIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" [attr.aria-label]=\"true\" [attr.data-pc-section]=\"'chooseicon'\" />\n <span *ngIf=\"chooseIconTemplate\" class=\"p-button-icon p-button-icon-left\" [attr.aria-label]=\"true\" [attr.data-pc-section]=\"'chooseicon'\">\n <ng-template *ngTemplateOutlet=\"chooseIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <span class=\"p-button-label\" [attr.data-pc-section]=\"'choosebuttonlabel'\">{{ chooseButtonLabel }}</span>\n </span>\n\n <p-button *ngIf=\"!auto && showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\" [styleClass]=\"uploadStyleClass\">\n <span *ngIf=\"uploadIcon\" [ngClass]=\"uploadIcon\" [attr.aria-hidden]=\"true\" class=\"p-button-icon p-button-icon-left\"></span>\n <ng-container *ngIf=\"!uploadIcon\">\n <UploadIcon *ngIf=\"!uploadIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" />\n <span *ngIf=\"uploadIconTemplate\" class=\"p-button-icon p-button-icon-left\" [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"uploadIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </p-button>\n <p-button *ngIf=\"!auto && showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\" [styleClass]=\"cancelStyleClass\">\n <span *ngIf=\"cancelIcon\" [ngClass]=\"cancelIcon\" class=\"p-button-icon p-button-icon-left\"></span>\n <ng-container *ngIf=\"!cancelIcon\">\n <TimesIcon *ngIf=\"!cancelIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" [attr.aria-hidden]=\"true\" />\n <span *ngIf=\"cancelIconTemplate\" class=\"p-button-icon p-button-icon-left\" [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"cancelIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </p-button>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: files, uploadedFiles: uploadedFiles, chooseCallback: choose.bind(this), clearCallback: clear.bind(this), uploadCallback: upload.bind(this) }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </div>\n <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\" [attr.data-pc-section]=\"'content'\">\n <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n <div *ngIf=\"!fileTemplate\">\n <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index\">\n <div *ngIf=\"isImage(file)\"><img [src]=\"file.objectURL\" [width]=\"previewWidth\" (error)=\"imageError($event)\" /></div>\n <div class=\"p-fileupload-filename\">{{ file.name }}</div>\n <div>{{ formatSize(file.size) }}</div>\n <div>\n <button type=\"button\" pButton (click)=\"remove($event, i)\" [disabled]=\"uploading\" class=\"p-button-icon-only\" [class]=\"removeStyleClass\">\n <TimesIcon *ngIf=\"!cancelIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"cancelIconTemplate\"></ng-template>\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"fileTemplate\">\n <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n </div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n contentTemplate;\n context: {\n $implicit: files,\n uploadedFiles: uploadedFiles,\n chooseCallback: choose.bind(this),\n clearCallback: clear.bind(this),\n removeUploadedFileCallback: removeUploadedFile.bind(this),\n removeFileCallback: remove.bind(this),\n progress: progress,\n messages: msgs\n }\n \"\n ></ng-container>\n <div *ngIf=\"emptyTemplate && !hasFiles() && !hasUploadedFiles()\" class=\"p-fileupload-empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\" [attr.data-pc-name]=\"'fileupload'\">\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n <span\n [ngClass]=\"{ 'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !basicButtonLabel, 'p-fileupload-choose-selected': hasFiles(), 'p-focus': focus, 'p-disabled': disabled }\"\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n (click)=\"onBasicUploaderClick()\"\n (keydown)=\"onBasicKeydown($event)\"\n tabindex=\"0\"\n pRipple\n [attr.data-pc-section]=\"'choosebutton'\"\n >\n <ng-container *ngIf=\"hasFiles() && !auto; else chooseSection\">\n <span *ngIf=\"uploadIcon\" class=\"p-button-icon p-button-icon-left\" [ngClass]=\"uploadIcon\"></span>\n <ng-container *ngIf=\"!uploadIcon\">\n <UploadIcon *ngIf=\"!uploadIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" />\n <span *ngIf=\"uploadIconTemplate\" class=\"p-button-icon p-button-icon-left\">\n <ng-template *ngTemplateOutlet=\"uploadIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n <ng-template #chooseSection>\n <span *ngIf=\"chooseIcon\" class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"chooseIcon\"></span>\n <ng-container *ngIf=\"!chooseIcon\">\n <PlusIcon [styleClass]=\"'p-button-icon p-button-icon-left pi'\" *ngIf=\"!chooseIconTemplate\" [attr.aria-hidden]=\"true\" [attr.data-pc-section]=\"'uploadicon'\" />\n <span *ngIf=\"chooseIconTemplate\" class=\"p-button-icon p-button-icon-left pi\" [attr.aria-hidden]=\"true\" [attr.data-pc-section]=\"'uploadicon'\">\n <ng-template *ngTemplateOutlet=\"chooseIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-template>\n <span *ngIf=\"basicButtonLabel\" class=\"p-button-label\" [attr.data-pc-section]=\"'label'\">{{ basicButtonLabel }}</span>\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #basicfileinput\n type=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelect($event)\"\n *ngIf=\"!hasFiles()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.data-pc-section]=\"'input'\"\n />\n </span>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./fileupload.css'],\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class FileUpload implements AfterViewInit, AfterContentInit, OnInit, OnDestroy, BlockableUI {\n /**\n * Name of the request parameter to identify the files at backend.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Remote url to upload the files.\n * @group Props\n */\n @Input() url: string | undefined;\n /**\n * HTTP method to send the files to the url such as \"post\" and \"put\".\n * @group Props\n */\n @Input() method: 'post' | 'put' | undefined = 'post';\n /**\n * Used to select multiple files at once from file dialog.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) multiple: boolean | undefined;\n /**\n * Comma-separated list of pattern to restrict the allowed file types. Can be any combination of either the MIME types (such as \"image/*\") or the file extensions (such as \".jpg\").\n * @group Props\n */\n @Input() accept: string | undefined;\n /**\n * Disables the upload functionality.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * When enabled, upload begins automatically after selection is completed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) auto: boolean | undefined;\n /**\n * Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) withCredentials: boolean | undefined;\n /**\n * Maximum file size allowed in bytes.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxFileSize: number | undefined;\n /**\n * Summary message of the invalid file size.\n * @group Props\n */\n @Input() invalidFileSizeMessageSummary: string = '{0}: Invalid file size, ';\n /**\n * Detail message of the invalid file size.\n * @group Props\n */\n @Input() invalidFileSizeMessageDetail: string = 'maximum upload size is {0}.';\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileTypeMessageSummary: string = '{0}: Invalid file type, ';\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileTypeMessageDetail: string = 'allowed file types: {0}.';\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileLimitMessageDetail: string = 'limit is {0} at most.';\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileLimitMessageSummary: string = 'Maximum number of files exceeded, ';\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Width of the image thumbnail in pixels.\n * @group Props\n */\n @Input({ transform: numberAttribute }) previewWidth: number = 50;\n /**\n * Label of the choose button. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input() chooseLabel: string | undefined;\n /**\n * Label of the upload button. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input() uploadLabel: string | undefined;\n /**\n * Label of the cancel button. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input() cancelLabel: string | undefined;\n /**\n * Icon of the choose button.\n * @group Props\n */\n @Input() chooseIcon: string | undefined;\n /**\n * Icon of the upload button.\n * @group Props\n */\n @Input() uploadIcon: string | undefined;\n /**\n * Icon of the cancel button.\n * @group Props\n */\n @Input() cancelIcon: string | undefined;\n /**\n * Whether to show the upload button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showUploadButton: boolean = true;\n /**\n * Whether to show the cancel button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCancelButton: boolean = true;\n /**\n * Defines the UI of the component.\n * @group Props\n */\n @Input() mode: 'advanced' | 'basic' | undefined = 'advanced';\n /**\n * HttpHeaders class represents the header configuration options for an HTTP request.\n * @group Props\n */\n @Input() headers: HttpHeaders | undefined;\n /**\n * Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customUpload: boolean | undefined;\n /**\n * Maximum number of files that can be uploaded.\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) }) fileLimit: number | undefined;\n /**\n * Style class of the upload button.\n * @group Props\n */\n @Input() uploadStyleClass: string | undefined;\n /**\n * Style class of the cancel button.\n * @group Props\n */\n @Input() cancelStyleClass: string | undefined;\n /**\n * Style class of the remove button.\n * @group Props\n */\n @Input() removeStyleClass: string | undefined;\n /**\n * Style class of the choose button.\n * @group Props\n */\n @Input() chooseStyleClass: string | undefined;\n /**\n * Callback to invoke before file upload is initialized.\n * @param {FileBeforeUploadEvent} event - Custom upload event.\n * @group Emits\n */\n @Output() onBeforeUpload: EventEmitter<FileBeforeUploadEvent> = new EventEmitter<FileBeforeUploadEvent>();\n /**\n * An event indicating that the request was sent to the server. Useful when a request may be retried multiple times, to distinguish between retries on the final event stream.\n * @param {FileSendEvent} event - Custom send event.\n * @group Emits\n */\n @Output() onSend: EventEmitter<FileSendEvent> = new EventEmitter<FileSendEvent>();\n /**\n * Callback to invoke when file upload is complete.\n * @param {FileUploadEvent} event - Custom upload event.\n * @group Emits\n */\n @Output() onUpload: EventEmitter<FileUploadEvent> = new EventEmitter<FileUploadEvent>();\n /**\n * Callback to invoke if file upload fails.\n * @param {FileUploadErrorEvent} event - Custom error event.\n * @group Emits\n */\n @Output() onError: EventEmitter<FileUploadErrorEvent> = new EventEmitter<FileUploadErrorEvent>();\n /**\n * Callback to invoke when files in queue are removed without uploading using clear all button.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onClear: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when a file is removed without uploading using clear button of a file.\n * @param {FileRemoveEvent} event - Remove event.\n * @group Emits\n */\n @Output() onRemove: EventEmitter<FileRemoveEvent> = new EventEmitter<FileRemoveEvent>();\n /**\n * Callback to invoke when files are selected.\n * @param {FileSelectEvent} event - Select event.\n * @group Emits\n */\n @Output() onSelect: EventEmitter<FileSelectEvent> = new EventEmitter<FileSelectEvent>();\n /**\n * Callback to invoke when files are being uploaded.\n * @param {FileProgressEvent} event - Progress event.\n * @group Emits\n */\n @Output() onProgress: EventEmitter<FileProgressEvent> = new EventEmitter<FileProgressEvent>();\n /**\n * Callback to invoke in custom upload mode to upload the files manually.\n * @param {FileUploadHandlerEvent} event - Upload handler event.\n * @group Emits\n */\n @Output() uploadHandler: EventEmitter<FileUploadHandlerEvent> = new EventEmitter<FileUploadHandlerEvent>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onImageError: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * This event is triggered if an error occurs while removing an uploaded file.\n * @param {RemoveUploadedFileEvent} event - Remove event.\n * @group Emits\n */\n @Output() onRemoveUploadedFile: EventEmitter<RemoveUploadedFileEvent> = new EventEmitter<RemoveUploadedFileEvent>();\n\n @ContentChildren(CaxTemplate) templates: QueryList<CaxTemplate> | undefined;\n\n @ViewChild('advancedfileinput') advancedFileInput: ElementRef | undefined | any;\n\n @ViewChild('basicfileinput') basicFileInput: ElementRef | undefined;\n\n @ViewChild('content') content: ElementRef | undefined;\n\n @Input() set files(files) {\n this._files = [];\n\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (<any>file).objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this._files.push(files[i]);\n }\n }\n }\n\n get files(): File[] {\n return this._files;\n }\n\n public get basicButtonLabel(): string {\n if (this.auto || !this.hasFiles()) {\n return this.chooseLabel as string;\n }\n\n return this.uploadLabel ?? this.files[0].name;\n }\n\n public _files: File[] = [];\n\n public progress: number = 0;\n\n public dragHighlight: boolean | undefined;\n\n public msgs: Message[] | undefined;\n\n public fileTemplate: TemplateRef<any> | undefined;\n\n public headerTemplate: TemplateRef<any> | undefined;\n\n public contentTemplate: TemplateRef<any> | undefined;\n\n public toolbarTemplate: TemplateRef<any> | undefined;\n\n chooseIconTemplate: TemplateRef<any> | undefined;\n\n uploadIconTemplate: TemplateRef<any> | undefined;\n\n cancelIconTemplate: TemplateRef<any> | undefined;\n\n emptyTemplate: TemplateRef<any> | undefined;\n\n public uploadedFileCount: number = 0;\n\n focus: boolean | undefined;\n\n uploading: boolean | undefined;\n\n duplicateIEEvent: boolean | undefined; // flag to recognize duplicate onchange event for file input\n\n translationSubscription: Subscription | undefined;\n\n dragOverListener: VoidListener;\n\n public uploadedFiles = [];\n\n private fileUploadSubcription: Subscription;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n private el: ElementRef,\n public sanitizer: DomSanitizer,\n public zone: NgZone,\n private http: HttpClient,\n public cd: ChangeDetectorRef,\n public config: caxConfig\n ) {}\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'file':\n this.fileTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n\n case 'chooseicon':\n this.chooseIconTemplate = item.template;\n break;\n\n case 'uploadicon':\n this.uploadIconTemplate = item.template;\n break;\n\n case 'cancelicon':\n this.cancelIconTemplate = item.template;\n break;\n\n case 'empty':\n this.emptyTemplate = item.template;\n break;\n\n default:\n this.fileTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mode === 'advanced') {\n this.zone.runOutsideAngular(() => {\n if (this.content) {\n this.dragOverListener = this.renderer.listen(this.content.nativeElement, 'dragover', this.onDragOver.bind(this));\n }\n });\n }\n }\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n choose() {\n this.advancedFileInput?.nativeElement.click();\n }\n\n onFileSelect(event: any) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.msgs = [];\n if (!this.multiple) {\n this.files = [];\n }\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this.files.push(files[i]);\n }\n }\n }\n\n this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });\n\n // this will check the fileLimit with the uploaded files\n this.checkFileLimit(files);\n\n if (this.hasFiles() && this.auto && (this.mode !== 'advanced' || !this.isFileLimitExceeded())) {\n this.upload();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n }\n\n isFileSelected(file: File): boolean {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {\n return true;\n }\n }\n\n return false;\n }\n\n isIE11() {\n if (isPlatformBrowser(this.platformId)) {\n return !!(this.document.defaultView as any)['MSInputMethodContext'] && !!(this.document as any)['documentMode'];\n }\n }\n\n validate(file: File): boolean {\n this.msgs = this.msgs || [];\n if (this.accept && !this.isFileTypeValid(file)) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n });\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n });\n return false;\n }\n\n return true;\n }\n\n private isFileTypeValid(file: File): boolean {\n let acceptableTypes = this.accept?.split(',').map((type) => type.trim());\n for (let type of acceptableTypes!) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n }\n\n getTypeClass(fileType: string): string {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n\n isWildcard(fileType: string): boolean {\n return fileType.indexOf('*') !== -1;\n }\n\n getFileExtension(file: File): string {\n return '.' + file.name.split('.').pop();\n }\n\n isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n onImageLoad(img: any) {\n window.URL.revokeObjectURL(img.src);\n }\n /**\n * Uploads the selected files.\n * @group Method\n */\n upload() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.uploadHandler.emit({\n files: this.files\n });\n\n this.cd.markForCheck();\n } else {\n this.uploading = true;\n this.msgs = [];\n let formData = new FormData();\n\n this.onBeforeUpload.emit({\n formData: formData\n });\n\n for (let i = 0; i < this.files.length; i++) {\n formData.append(this.name!, this.files[i], this.files[i].name);\n }\n\n // If the previous upload hasn't been finished, it is aborted.\n this.cancelUploadRequest();\n\n this.fileUploadSubcription = this.http\n .request(<string>this.method, this.url as string, {\n body: formData,\n headers: this.headers,\n reportProgress: true,\n observe: 'events',\n withCredentials: this.withCredentials\n })\n .subscribe(\n (event: HttpEvent<any>) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n formData: formData\n });\n break;\n case HttpEventType.Response:\n this.uploading = false;\n this.progress = 0;\n\n if (event['status'] >= 200 && event['status'] < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.onUpload.emit({ originalEvent: event, files: this.files });\n } else {\n this.onError.emit({ files: this.files });\n }\n this.uploadedFiles.push(...this.files);\n this.clear();\n break;\n case HttpEventType.UploadProgress: {\n if (event['loaded']) {\n this.progress = Math.round((event['loaded'] * 100) / event['total']!);\n }\n\n this.onProgress.emit({ originalEvent: event, progress: this.progress });\n break;\n }\n }\n\n this.cd.markForCheck();\n },\n (error: ErrorEvent) => {\n this.uploading = false;\n this.onError.emit({ files: this.files, error: error });\n }\n );\n }\n }\n /**\n * Clears the files list.\n * @group Method\n */\n clear() {\n this.files = [];\n this.uploadedFileCount = 0;\n this.cancelUploadRequest();\n this.onClear.emit();\n this.clearInputElement();\n this.cd.markForCheck();\n }\n /**\n * Removes a single file.\n * @param {Event} event - Browser event.\n * @param {Number} index - Index of the file.\n * @group Method\n */\n remove(event: Event, index: number) {\n this.cancelUploadRequest();\n this.clearInputElement();\n this.onRemove.emit({ originalEvent: event, file: this.files[index] });\n this.files.splice(index, 1);\n this.checkFileLimit(this.files);\n }\n /**\n * Removes uploaded file.\n * @param {Number} index - Index of the file to be removed.\n * @group Method\n */\n removeUploadedFile(index) {\n let removedFile = this.uploadedFiles.splice(index, 1)[0];\n this.uploadedFiles = [...this.uploadedFiles];\n this.onRemoveUploadedFile.emit({ file: removedFile, files: this.uploadedFiles });\n }\n\n /**\n * Cancel upload file request.\n * */\n cancelUploadRequest() {\n if (this.fileUploadSubcription) {\n this.fileUploadSubcription.unsubscribe();\n this.fileUploadSubcription = undefined;\n }\n }\n\n isFileLimitExceeded() {\n const isAutoMode = this.auto;\n const totalFileCount = isAutoMode ? this.files.length : this.files.length + this.uploadedFileCount;\n\n if (this.fileLimit && this.fileLimit <= totalFileCount && this.focus) {\n this.focus = false;\n }\n\n return this.fileLimit && this.fileLimit < totalFileCount;\n }\n\n isChooseDisabled() {\n if (this.auto) {\n return this.fileLimit && this.fileLimit <= this.files.length;\n } else {\n return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n }\n }\n\n checkFileLimit(files: File[]) {\n this.msgs ??= [];\n const hasExistingValidationMessages = this.msgs.length > 0 && this.fileLimit < files.length;\n if (this.isFileLimitExceeded() || hasExistingValidationMessages) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileLimitMessageSummary.replace('{0}', (this.fileLimit as number).toString()),\n detail: this.invalidFileLimitMessageDetail.replace('{0}', (this.fileLimit as number).toString())\n });\n }\n }\n\n clearInputElement() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.advancedFileInput.nativeElement.value = '';\n }\n\n if (this.basicFileInput && this.basicFileInput.nativeElement) {\n this.basicFileInput.nativeElement.value = '';\n }\n }\n\n clearIEInput() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.advancedFileInput.nativeElement.value = '';\n }\n }\n\n hasFiles(): boolean {\n return this.files && this.files.length > 0;\n }\n\n hasUploadedFiles() {\n return this.uploadedFiles && this.uploadedFiles.length > 0;\n }\n\n onDragEnter(e: DragEvent) {\n if (!this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragOver(e: DragEvent) {\n if (!this.disabled) {\n DomHandler.addClass(this.content?.nativeElement, 'p-fileupload-highlight');\n this.dragHighlight = true;\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content?.nativeElement, 'p-fileupload-highlight');\n }\n }\n\n onDrop(event: any) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content?.nativeElement, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n let allowDrop = this.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n\n onFocus() {\n this.focus = true;\n }\n\n onBlur() {\n this.focus = false;\n }\n\n formatSize(bytes: number) {\n const k = 1024;\n const dm = 3;\n const sizes = this.getTranslation(TranslationKeys.FILE_SIZE_TYPES);\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);\n\n return `${formattedSize} ${sizes[i]}`;\n }\n\n onBasicUploaderClick() {\n if (this.hasFiles()) this.upload();\n else this.basicFileInput?.nativeElement.click();\n }\n\n onBasicKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n this.onBasicUploaderClick();\n\n event.preventDefault();\n break;\n }\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n get chooseButtonLabel(): string {\n return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n }\n\n get uploadButtonLabel(): string {\n return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n }\n\n get cancelButtonLabel(): string {\n return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n }\n\n get browseFilesLabel(): string {\n return this.config.getTranslation(TranslationKeys.ARIA)[TranslationKeys.BROWSE_FILES];\n }\n\n ngOnDestroy() {\n if (this.content && this.content.nativeElement) {\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule, PlusIcon, UploadIcon, TimesIcon],\n exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule],\n declarations: [FileUpload]\n})\nexport class FileUploadModule {}\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-fileupload.mjs","sources":["../../src/app/components/fileupload/fileupload.ts","../../src/app/components/fileupload/cax-design-system-fileupload.ts"],"sourcesContent":["import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { HttpClient, HttpEvent, HttpEventType, HttpHeaders } from '@angular/common/http';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgModule,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { BlockableUI, Message, caxConfig, CaxTemplate, SharedModule, TranslationKeys } from 'cax-design-system/api';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { PlusIcon } from 'cax-design-system/icons/plus';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { UploadIcon } from 'cax-design-system/icons/upload';\nimport { MessagesModule } from 'cax-design-system/messages';\nimport { ProgressBarModule } from 'cax-design-system/progressbar';\nimport { RippleModule } from 'cax-design-system/ripple';\nimport { VoidListener } from 'cax-design-system/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { FileBeforeUploadEvent, FileProgressEvent, FileRemoveEvent, FileSelectEvent, FileSendEvent, FileUploadErrorEvent, FileUploadEvent, FileUploadHandlerEvent, RemoveUploadedFileEvent } from './fileupload.interface';\n/**\n * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.\n * @group Components\n */\n@Component({\n selector: 'p-fileUpload',\n template: `\n <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\" [attr.data-pc-name]=\"'fileupload'\" [attr.data-pc-section]=\"'root'\">\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #advancedfileinput\n type=\"file\"\n (change)=\"onFileSelect($event)\"\n [multiple]=\"multiple\"\n [accept]=\"accept\"\n [disabled]=\"disabled || isChooseDisabled()\"\n [attr.title]=\"''\"\n [attr.data-pc-section]=\"'input'\"\n [style.display]=\"'none'\"\n />\n <div class=\"p-fileupload-buttonbar\" [attr.data-pc-section]=\"'buttonbar'\">\n <ng-container *ngIf=\"!headerTemplate\">\n <span\n class=\"p-button p-component p-fileupload-choose\"\n [ngClass]=\"{ 'p-focus': focus, 'p-disabled': disabled || isChooseDisabled() }\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n pRipple\n (click)=\"choose()\"\n (keydown.enter)=\"choose()\"\n tabindex=\"0\"\n [class]=\"chooseStyleClass\"\n [attr.data-pc-section]=\"'choosebutton'\"\n >\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #advancedfileinput\n type=\"file\"\n (change)=\"onFileSelect($event)\"\n [multiple]=\"multiple\"\n [accept]=\"accept\"\n [disabled]=\"disabled || isChooseDisabled()\"\n [attr.title]=\"''\"\n [attr.data-pc-section]=\"'input'\"\n />\n <span *ngIf=\"chooseIcon\" [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\" [attr.aria-label]=\"true\" [attr.data-pc-section]=\"'chooseicon'\"></span>\n <ng-container *ngIf=\"!chooseIcon\">\n <PlusIcon *ngIf=\"!chooseIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" [attr.aria-label]=\"true\" [attr.data-pc-section]=\"'chooseicon'\" />\n <span *ngIf=\"chooseIconTemplate\" class=\"p-button-icon p-button-icon-left\" [attr.aria-label]=\"true\" [attr.data-pc-section]=\"'chooseicon'\">\n <ng-template *ngTemplateOutlet=\"chooseIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <span class=\"p-button-label\" [attr.data-pc-section]=\"'choosebuttonlabel'\">{{ chooseButtonLabel }}</span>\n </span>\n\n <p-button *ngIf=\"!auto && showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\" [styleClass]=\"uploadStyleClass\">\n <span *ngIf=\"uploadIcon\" [ngClass]=\"uploadIcon\" [attr.aria-hidden]=\"true\" class=\"p-button-icon p-button-icon-left\"></span>\n <ng-container *ngIf=\"!uploadIcon\">\n <UploadIcon *ngIf=\"!uploadIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" />\n <span *ngIf=\"uploadIconTemplate\" class=\"p-button-icon p-button-icon-left\" [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"uploadIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </p-button>\n <p-button *ngIf=\"!auto && showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\" [styleClass]=\"cancelStyleClass\">\n <span *ngIf=\"cancelIcon\" [ngClass]=\"cancelIcon\" class=\"p-button-icon p-button-icon-left\"></span>\n <ng-container *ngIf=\"!cancelIcon\">\n <TimesIcon *ngIf=\"!cancelIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" [attr.aria-hidden]=\"true\" />\n <span *ngIf=\"cancelIconTemplate\" class=\"p-button-icon p-button-icon-left\" [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"cancelIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </p-button>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: files, uploadedFiles: uploadedFiles, chooseCallback: choose.bind(this), clearCallback: clear.bind(this), uploadCallback: upload.bind(this) }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </div>\n <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\" [attr.data-pc-section]=\"'content'\">\n <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n <div *ngIf=\"!fileTemplate\">\n <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index\">\n <div *ngIf=\"isImage(file)\"><img [src]=\"file.objectURL\" [width]=\"previewWidth\" (error)=\"imageError($event)\" /></div>\n <div class=\"p-fileupload-filename\">{{ file.name }}</div>\n <div>{{ formatSize(file.size) }}</div>\n <div>\n <button type=\"button\" pButton (click)=\"remove($event, i)\" [disabled]=\"uploading\" class=\"p-button-icon-only\" [class]=\"removeStyleClass\">\n <TimesIcon *ngIf=\"!cancelIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"cancelIconTemplate\"></ng-template>\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"fileTemplate\">\n <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n </div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n contentTemplate;\n context: {\n $implicit: files,\n uploadedFiles: uploadedFiles,\n chooseCallback: choose.bind(this),\n clearCallback: clear.bind(this),\n removeUploadedFileCallback: removeUploadedFile.bind(this),\n removeFileCallback: remove.bind(this),\n progress: progress,\n messages: msgs\n }\n \"\n ></ng-container>\n <div *ngIf=\"emptyTemplate && !hasFiles() && !hasUploadedFiles()\" class=\"p-fileupload-empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\" [attr.data-pc-name]=\"'fileupload'\">\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n <span\n [ngClass]=\"{ 'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !basicButtonLabel, 'p-fileupload-choose-selected': hasFiles(), 'p-focus': focus, 'p-disabled': disabled }\"\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n (click)=\"onBasicUploaderClick()\"\n (keydown)=\"onBasicKeydown($event)\"\n tabindex=\"0\"\n pRipple\n [attr.data-pc-section]=\"'choosebutton'\"\n >\n <ng-container *ngIf=\"hasFiles() && !auto; else chooseSection\">\n <span *ngIf=\"uploadIcon\" class=\"p-button-icon p-button-icon-left\" [ngClass]=\"uploadIcon\"></span>\n <ng-container *ngIf=\"!uploadIcon\">\n <UploadIcon *ngIf=\"!uploadIconTemplate\" [styleClass]=\"'p-button-icon p-button-icon-left'\" />\n <span *ngIf=\"uploadIconTemplate\" class=\"p-button-icon p-button-icon-left\">\n <ng-template *ngTemplateOutlet=\"uploadIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n <ng-template #chooseSection>\n <span *ngIf=\"chooseIcon\" class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"chooseIcon\"></span>\n <ng-container *ngIf=\"!chooseIcon\">\n <PlusIcon [styleClass]=\"'p-button-icon p-button-icon-left pi'\" *ngIf=\"!chooseIconTemplate\" [attr.aria-hidden]=\"true\" [attr.data-pc-section]=\"'uploadicon'\" />\n <span *ngIf=\"chooseIconTemplate\" class=\"p-button-icon p-button-icon-left pi\" [attr.aria-hidden]=\"true\" [attr.data-pc-section]=\"'uploadicon'\">\n <ng-template *ngTemplateOutlet=\"chooseIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-template>\n <span *ngIf=\"basicButtonLabel\" class=\"p-button-label\" [attr.data-pc-section]=\"'label'\">{{ basicButtonLabel }}</span>\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #basicfileinput\n type=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelect($event)\"\n *ngIf=\"!hasFiles()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.data-pc-section]=\"'input'\"\n />\n </span>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./fileupload.css'],\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class FileUpload implements AfterViewInit, AfterContentInit, OnInit, OnDestroy, BlockableUI {\n /**\n * Name of the request parameter to identify the files at backend.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Remote url to upload the files.\n * @group Props\n */\n @Input() url: string | undefined;\n /**\n * HTTP method to send the files to the url such as \"post\" and \"put\".\n * @group Props\n */\n @Input() method: 'post' | 'put' | undefined = 'post';\n /**\n * Used to select multiple files at once from file dialog.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) multiple: boolean | undefined;\n /**\n * Comma-separated list of pattern to restrict the allowed file types. Can be any combination of either the MIME types (such as \"image/*\") or the file extensions (such as \".jpg\").\n * @group Props\n */\n @Input() accept: string | undefined;\n /**\n * Disables the upload functionality.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * When enabled, upload begins automatically after selection is completed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) auto: boolean | undefined;\n /**\n * Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) withCredentials: boolean | undefined;\n /**\n * Maximum file size allowed in bytes.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxFileSize: number | undefined;\n /**\n * Summary message of the invalid file size.\n * @group Props\n */\n @Input() invalidFileSizeMessageSummary: string = '{0}: Invalid file size, ';\n /**\n * Detail message of the invalid file size.\n * @group Props\n */\n @Input() invalidFileSizeMessageDetail: string = 'maximum upload size is {0}.';\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileTypeMessageSummary: string = '{0}: Invalid file type, ';\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileTypeMessageDetail: string = 'allowed file types: {0}.';\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileLimitMessageDetail: string = 'limit is {0} at most.';\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n @Input() invalidFileLimitMessageSummary: string = 'Maximum number of files exceeded, ';\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Width of the image thumbnail in pixels.\n * @group Props\n */\n @Input({ transform: numberAttribute }) previewWidth: number = 50;\n /**\n * Label of the choose button. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input() chooseLabel: string | undefined;\n /**\n * Label of the upload button. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input() uploadLabel: string | undefined;\n /**\n * Label of the cancel button. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input() cancelLabel: string | undefined;\n /**\n * Icon of the choose button.\n * @group Props\n */\n @Input() chooseIcon: string | undefined;\n /**\n * Icon of the upload button.\n * @group Props\n */\n @Input() uploadIcon: string | undefined;\n /**\n * Icon of the cancel button.\n * @group Props\n */\n @Input() cancelIcon: string | undefined;\n /**\n * Whether to show the upload button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showUploadButton: boolean = true;\n /**\n * Whether to show the cancel button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCancelButton: boolean = true;\n /**\n * Defines the UI of the component.\n * @group Props\n */\n @Input() mode: 'advanced' | 'basic' | undefined = 'advanced';\n /**\n * HttpHeaders class represents the header configuration options for an HTTP request.\n * @group Props\n */\n @Input() headers: HttpHeaders | undefined;\n /**\n * Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to cax Locale configuration.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customUpload: boolean | undefined;\n /**\n * Maximum number of files that can be uploaded.\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) }) fileLimit: number | undefined;\n /**\n * Style class of the upload button.\n * @group Props\n */\n @Input() uploadStyleClass: string | undefined;\n /**\n * Style class of the cancel button.\n * @group Props\n */\n @Input() cancelStyleClass: string | undefined;\n /**\n * Style class of the remove button.\n * @group Props\n */\n @Input() removeStyleClass: string | undefined;\n /**\n * Style class of the choose button.\n * @group Props\n */\n @Input() chooseStyleClass: string | undefined;\n /**\n * Callback to invoke before file upload is initialized.\n * @param {FileBeforeUploadEvent} event - Custom upload event.\n * @group Emits\n */\n @Output() onBeforeUpload: EventEmitter<FileBeforeUploadEvent> = new EventEmitter<FileBeforeUploadEvent>();\n /**\n * An event indicating that the request was sent to the server. Useful when a request may be retried multiple times, to distinguish between retries on the final event stream.\n * @param {FileSendEvent} event - Custom send event.\n * @group Emits\n */\n @Output() onSend: EventEmitter<FileSendEvent> = new EventEmitter<FileSendEvent>();\n /**\n * Callback to invoke when file upload is complete.\n * @param {FileUploadEvent} event - Custom upload event.\n * @group Emits\n */\n @Output() onUpload: EventEmitter<FileUploadEvent> = new EventEmitter<FileUploadEvent>();\n /**\n * Callback to invoke if file upload fails.\n * @param {FileUploadErrorEvent} event - Custom error event.\n * @group Emits\n */\n @Output() onError: EventEmitter<FileUploadErrorEvent> = new EventEmitter<FileUploadErrorEvent>();\n /**\n * Callback to invoke when files in queue are removed without uploading using clear all button.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onClear: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when a file is removed without uploading using clear button of a file.\n * @param {FileRemoveEvent} event - Remove event.\n * @group Emits\n */\n @Output() onRemove: EventEmitter<FileRemoveEvent> = new EventEmitter<FileRemoveEvent>();\n /**\n * Callback to invoke when files are selected.\n * @param {FileSelectEvent} event - Select event.\n * @group Emits\n */\n @Output() onSelect: EventEmitter<FileSelectEvent> = new EventEmitter<FileSelectEvent>();\n /**\n * Callback to invoke when files are being uploaded.\n * @param {FileProgressEvent} event - Progress event.\n * @group Emits\n */\n @Output() onProgress: EventEmitter<FileProgressEvent> = new EventEmitter<FileProgressEvent>();\n /**\n * Callback to invoke in custom upload mode to upload the files manually.\n * @param {FileUploadHandlerEvent} event - Upload handler event.\n * @group Emits\n */\n @Output() uploadHandler: EventEmitter<FileUploadHandlerEvent> = new EventEmitter<FileUploadHandlerEvent>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onImageError: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * This event is triggered if an error occurs while removing an uploaded file.\n * @param {RemoveUploadedFileEvent} event - Remove event.\n * @group Emits\n */\n @Output() onRemoveUploadedFile: EventEmitter<RemoveUploadedFileEvent> = new EventEmitter<RemoveUploadedFileEvent>();\n\n @ContentChildren(CaxTemplate) templates: QueryList<CaxTemplate> | undefined;\n\n @ViewChild('advancedfileinput') advancedFileInput: ElementRef | undefined | any;\n\n @ViewChild('basicfileinput') basicFileInput: ElementRef | undefined;\n\n @ViewChild('content') content: ElementRef | undefined;\n\n @Input() set files(files) {\n this._files = [];\n\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (<any>file).objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this._files.push(files[i]);\n }\n }\n }\n\n get files(): File[] {\n return this._files;\n }\n\n public get basicButtonLabel(): string {\n if (this.auto || !this.hasFiles()) {\n return this.chooseLabel as string;\n }\n\n return this.uploadLabel ?? this.files[0].name;\n }\n\n public _files: File[] = [];\n\n public progress: number = 0;\n\n public dragHighlight: boolean | undefined;\n\n public msgs: Message[] | undefined;\n\n public fileTemplate: TemplateRef<any> | undefined;\n\n public headerTemplate: TemplateRef<any> | undefined;\n\n public contentTemplate: TemplateRef<any> | undefined;\n\n public toolbarTemplate: TemplateRef<any> | undefined;\n\n chooseIconTemplate: TemplateRef<any> | undefined;\n\n uploadIconTemplate: TemplateRef<any> | undefined;\n\n cancelIconTemplate: TemplateRef<any> | undefined;\n\n emptyTemplate: TemplateRef<any> | undefined;\n\n public uploadedFileCount: number = 0;\n\n focus: boolean | undefined;\n\n uploading: boolean | undefined;\n\n duplicateIEEvent: boolean | undefined; // flag to recognize duplicate onchange event for file input\n\n translationSubscription: Subscription | undefined;\n\n dragOverListener: VoidListener;\n\n public uploadedFiles = [];\n\n private fileUploadSubcription: Subscription;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n private el: ElementRef,\n public sanitizer: DomSanitizer,\n public zone: NgZone,\n private http: HttpClient,\n public cd: ChangeDetectorRef,\n public config: caxConfig\n ) {}\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'file':\n this.fileTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n\n case 'chooseicon':\n this.chooseIconTemplate = item.template;\n break;\n\n case 'uploadicon':\n this.uploadIconTemplate = item.template;\n break;\n\n case 'cancelicon':\n this.cancelIconTemplate = item.template;\n break;\n\n case 'empty':\n this.emptyTemplate = item.template;\n break;\n\n default:\n this.fileTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mode === 'advanced') {\n this.zone.runOutsideAngular(() => {\n if (this.content) {\n this.dragOverListener = this.renderer.listen(this.content.nativeElement, 'dragover', this.onDragOver.bind(this));\n }\n });\n }\n }\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n choose() {\n this.advancedFileInput?.nativeElement.click();\n }\n\n onFileSelect(event: any) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.msgs = [];\n if (!this.multiple) {\n this.files = [];\n }\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this.files.push(files[i]);\n }\n }\n }\n\n this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });\n\n // this will check the fileLimit with the uploaded files\n this.checkFileLimit(files);\n\n if (this.hasFiles() && this.auto && (this.mode !== 'advanced' || !this.isFileLimitExceeded())) {\n this.upload();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n }\n\n isFileSelected(file: File): boolean {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {\n return true;\n }\n }\n\n return false;\n }\n\n isIE11() {\n if (isPlatformBrowser(this.platformId)) {\n return !!(this.document.defaultView as any)['MSInputMethodContext'] && !!(this.document as any)['documentMode'];\n }\n }\n\n validate(file: File): boolean {\n this.msgs = this.msgs || [];\n if (this.accept && !this.isFileTypeValid(file)) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n });\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n });\n return false;\n }\n\n return true;\n }\n\n private isFileTypeValid(file: File): boolean {\n let acceptableTypes = this.accept?.split(',').map((type) => type.trim());\n for (let type of acceptableTypes!) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n }\n\n getTypeClass(fileType: string): string {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n\n isWildcard(fileType: string): boolean {\n return fileType.indexOf('*') !== -1;\n }\n\n getFileExtension(file: File): string {\n return '.' + file.name.split('.').pop();\n }\n\n isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n onImageLoad(img: any) {\n window.URL.revokeObjectURL(img.src);\n }\n /**\n * Uploads the selected files.\n * @group Method\n */\n upload() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.uploadHandler.emit({\n files: this.files\n });\n\n this.cd.markForCheck();\n } else {\n this.uploading = true;\n this.msgs = [];\n let formData = new FormData();\n\n this.onBeforeUpload.emit({\n formData: formData\n });\n\n for (let i = 0; i < this.files.length; i++) {\n formData.append(this.name!, this.files[i], this.files[i].name);\n }\n\n // If the previous upload hasn't been finished, it is aborted.\n this.cancelUploadRequest();\n\n this.fileUploadSubcription = this.http\n .request(<string>this.method, this.url as string, {\n body: formData,\n headers: this.headers,\n reportProgress: true,\n observe: 'events',\n withCredentials: this.withCredentials\n })\n .subscribe(\n (event: HttpEvent<any>) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n formData: formData\n });\n break;\n case HttpEventType.Response:\n this.uploading = false;\n this.progress = 0;\n\n if (event['status'] >= 200 && event['status'] < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.onUpload.emit({ originalEvent: event, files: this.files });\n } else {\n this.onError.emit({ files: this.files });\n }\n this.uploadedFiles.push(...this.files);\n this.clear();\n break;\n case HttpEventType.UploadProgress: {\n if (event['loaded']) {\n this.progress = Math.round((event['loaded'] * 100) / event['total']!);\n }\n\n this.onProgress.emit({ originalEvent: event, progress: this.progress });\n break;\n }\n }\n\n this.cd.markForCheck();\n },\n (error: ErrorEvent) => {\n this.uploading = false;\n this.onError.emit({ files: this.files, error: error });\n }\n );\n }\n }\n /**\n * Clears the files list.\n * @group Method\n */\n clear() {\n this.files = [];\n this.uploadedFileCount = 0;\n this.cancelUploadRequest();\n this.onClear.emit();\n this.clearInputElement();\n this.cd.markForCheck();\n }\n /**\n * Removes a single file.\n * @param {Event} event - Browser event.\n * @param {Number} index - Index of the file.\n * @group Method\n */\n remove(event: Event, index: number) {\n this.cancelUploadRequest();\n this.clearInputElement();\n this.onRemove.emit({ originalEvent: event, file: this.files[index] });\n this.files.splice(index, 1);\n this.checkFileLimit(this.files);\n }\n /**\n * Removes uploaded file.\n * @param {Number} index - Index of the file to be removed.\n * @group Method\n */\n removeUploadedFile(index) {\n let removedFile = this.uploadedFiles.splice(index, 1)[0];\n this.uploadedFiles = [...this.uploadedFiles];\n this.onRemoveUploadedFile.emit({ file: removedFile, files: this.uploadedFiles });\n }\n\n /**\n * Cancel upload file request.\n * */\n cancelUploadRequest() {\n if (this.fileUploadSubcription) {\n this.fileUploadSubcription.unsubscribe();\n this.fileUploadSubcription = undefined;\n }\n }\n\n isFileLimitExceeded() {\n const isAutoMode = this.auto;\n const totalFileCount = isAutoMode ? this.files.length : this.files.length + this.uploadedFileCount;\n\n if (this.fileLimit && this.fileLimit <= totalFileCount && this.focus) {\n this.focus = false;\n }\n\n return this.fileLimit && this.fileLimit < totalFileCount;\n }\n\n isChooseDisabled() {\n if (this.auto) {\n return this.fileLimit && this.fileLimit <= this.files.length;\n } else {\n return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n }\n }\n\n checkFileLimit(files: File[]) {\n this.msgs ??= [];\n const hasExistingValidationMessages = this.msgs.length > 0 && this.fileLimit < files.length;\n if (this.isFileLimitExceeded() || hasExistingValidationMessages) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileLimitMessageSummary.replace('{0}', (this.fileLimit as number).toString()),\n detail: this.invalidFileLimitMessageDetail.replace('{0}', (this.fileLimit as number).toString())\n });\n }\n }\n\n clearInputElement() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.advancedFileInput.nativeElement.value = '';\n }\n\n if (this.basicFileInput && this.basicFileInput.nativeElement) {\n this.basicFileInput.nativeElement.value = '';\n }\n }\n\n clearIEInput() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.advancedFileInput.nativeElement.value = '';\n }\n }\n\n hasFiles(): boolean {\n return this.files && this.files.length > 0;\n }\n\n hasUploadedFiles() {\n return this.uploadedFiles && this.uploadedFiles.length > 0;\n }\n\n onDragEnter(e: DragEvent) {\n if (!this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragOver(e: DragEvent) {\n if (!this.disabled) {\n DomHandler.addClass(this.content?.nativeElement, 'p-fileupload-highlight');\n this.dragHighlight = true;\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content?.nativeElement, 'p-fileupload-highlight');\n }\n }\n\n onDrop(event: any) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content?.nativeElement, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n let allowDrop = this.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n\n onFocus() {\n this.focus = true;\n }\n\n onBlur() {\n this.focus = false;\n }\n\n formatSize(bytes: number) {\n const k = 1024;\n const dm = 3;\n const sizes = this.getTranslation(TranslationKeys.FILE_SIZE_TYPES);\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);\n\n return `${formattedSize} ${sizes[i]}`;\n }\n\n onBasicUploaderClick() {\n if (this.hasFiles()) this.upload();\n else this.basicFileInput?.nativeElement.click();\n }\n\n onBasicKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n this.onBasicUploaderClick();\n\n event.preventDefault();\n break;\n }\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n get chooseButtonLabel(): string {\n return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n }\n\n get uploadButtonLabel(): string {\n return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n }\n\n get cancelButtonLabel(): string {\n return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n }\n\n get browseFilesLabel(): string {\n return this.config.getTranslation(TranslationKeys.ARIA)[TranslationKeys.BROWSE_FILES];\n }\n\n ngOnDestroy() {\n if (this.content && this.content.nativeElement) {\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule, PlusIcon, UploadIcon, TimesIcon],\n exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule],\n declarations: [FileUpload]\n})\nexport class FileUploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -9,14 +9,14 @@ import { SharedModule } from 'cax-design-system/api';
|
|
|
9
9
|
* @group Components
|
|
10
10
|
*/
|
|
11
11
|
class FloatLabel {
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
13
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FloatLabel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: FloatLabel, isStandalone: false, selector: "cax-floatLabel", ngImport: i0, template: `
|
|
14
14
|
<span class="cax-float-label">
|
|
15
15
|
<ng-content></ng-content>
|
|
16
16
|
</span>
|
|
17
17
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FloatLabel, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{
|
|
22
22
|
selector: 'cax-floatLabel',
|
|
@@ -32,11 +32,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImpo
|
|
|
32
32
|
}] });
|
|
33
33
|
|
|
34
34
|
class FloatLabelModule {
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
36
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
37
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FloatLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
36
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: FloatLabelModule, declarations: [FloatLabel], imports: [CommonModule, SharedModule, RouterModule], exports: [FloatLabel, SharedModule] });
|
|
37
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FloatLabelModule, imports: [CommonModule, SharedModule, RouterModule, SharedModule] });
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FloatLabelModule, decorators: [{
|
|
40
40
|
type: NgModule,
|
|
41
41
|
args: [{
|
|
42
42
|
imports: [CommonModule, SharedModule, RouterModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-floatlabel.mjs","sources":["../../src/app/components/floatlabel/floatlabel.ts","../../src/app/components/floatlabel/floatlabel.module.ts","../../src/app/components/floatlabel/cax-design-system-floatlabel.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * FloatLabel appears on top of the input field when focused.\n * @group Components\n */\n@Component({\n selector: 'cax-floatLabel',\n template: `\n <span class=\"cax-float-label\">\n <ng-content></ng-content>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class FloatLabel {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from 'cax-design-system/api';\nimport { FloatLabel } from './floatlabel';\n\n@NgModule({\n imports: [CommonModule, SharedModule, RouterModule],\n exports: [FloatLabel, SharedModule],\n declarations: [FloatLabel]\n})\nexport class FloatLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;AAEA;;;AAGG;MAYU,UAAU,CAAA;wGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,
|
|
1
|
+
{"version":3,"file":"cax-design-system-floatlabel.mjs","sources":["../../src/app/components/floatlabel/floatlabel.ts","../../src/app/components/floatlabel/floatlabel.module.ts","../../src/app/components/floatlabel/cax-design-system-floatlabel.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * FloatLabel appears on top of the input field when focused.\n * @group Components\n */\n@Component({\n selector: 'cax-floatLabel',\n template: `\n <span class=\"cax-float-label\">\n <ng-content></ng-content>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class FloatLabel {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from 'cax-design-system/api';\nimport { FloatLabel } from './floatlabel';\n\n@NgModule({\n imports: [CommonModule, SharedModule, RouterModule],\n exports: [FloatLabel, SharedModule],\n declarations: [FloatLabel]\n})\nexport class FloatLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;AAEA;;;AAGG;MAYU,UAAU,CAAA;wGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EATT;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FAKQ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAXtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE;;;;AAIT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCLY,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAhB,gBAAgB,EAAA,YAAA,EAAA,CAFV,UAAU,CAAA,EAAA,OAAA,EAAA,CAFf,YAAY,EAAE,YAAY,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CACxC,UAAU,EAAE,YAAY,CAAA,EAAA,CAAA;AAGzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJf,YAAY,EAAE,YAAY,EAAE,YAAY,EAC5B,YAAY,CAAA,EAAA,CAAA;;4FAGzB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACnD,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;oBACnC,YAAY,EAAE,CAAC,UAAU;AAC5B,iBAAA;;;ACVD;;AAEG;;;;"}
|
|
@@ -73,10 +73,10 @@ class FocusTrap {
|
|
|
73
73
|
const focusableElement = relatedTarget === this.firstHiddenFocusableElement || !this.host.nativeElement?.contains(relatedTarget) ? DomHandler.getLastFocusableElement(currentTarget.parentElement, ':not(.cax-hidden-focusable)') : this.firstHiddenFocusableElement;
|
|
74
74
|
DomHandler.focus(focusableElement);
|
|
75
75
|
}
|
|
76
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
77
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FocusTrap, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.21", type: FocusTrap, isStandalone: false, selector: "[caxFocusTrap]", inputs: { caxFocusTrapDisabled: ["caxFocusTrapDisabled", "caxFocusTrapDisabled", booleanAttribute] }, host: { classAttribute: "cax-element" }, usesOnChanges: true, ngImport: i0 });
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FocusTrap, decorators: [{
|
|
80
80
|
type: Directive,
|
|
81
81
|
args: [{
|
|
82
82
|
selector: '[caxFocusTrap]',
|
|
@@ -90,11 +90,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImpo
|
|
|
90
90
|
args: [{ transform: booleanAttribute }]
|
|
91
91
|
}] } });
|
|
92
92
|
class FocusTrapModule {
|
|
93
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
94
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
95
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FocusTrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
94
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: FocusTrapModule, declarations: [FocusTrap], imports: [CommonModule], exports: [FocusTrap] });
|
|
95
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FocusTrapModule, imports: [CommonModule] });
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FocusTrapModule, decorators: [{
|
|
98
98
|
type: NgModule,
|
|
99
99
|
args: [{
|
|
100
100
|
imports: [CommonModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-focustrap.mjs","sources":["../../src/app/components/focustrap/focustrap.ts","../../src/app/components/focustrap/cax-design-system-focustrap.ts"],"sourcesContent":["import { DomHandler } from 'cax-design-system/dom';\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, Input, NgModule, inject, booleanAttribute, PLATFORM_ID, SimpleChanges } from '@angular/core';\n\n/**\n * Focus Trap keeps focus within a certain DOM element while tabbing.\n * @group Components\n */\n@Directive({\n selector: '[caxFocusTrap]',\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class FocusTrap {\n /**\n * When set as true, focus wouldn't be managed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) caxFocusTrapDisabled: boolean = false;\n\n platformId = inject(PLATFORM_ID);\n\n host: ElementRef = inject(ElementRef);\n\n document: Document = inject(DOCUMENT);\n\n firstHiddenFocusableElement!: HTMLElement;\n\n lastHiddenFocusableElement!: HTMLElement;\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId) && !this.caxFocusTrapDisabled) {\n !this.firstHiddenFocusableElement && !this.lastHiddenFocusableElement && this.createHiddenFocusableElements();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.caxFocusTrapDisabled && isPlatformBrowser(this.platformId)) {\n if (changes.caxFocusTrapDisabled.currentValue) {\n this.removeHiddenFocusableElements();\n } else {\n this.createHiddenFocusableElements();\n }\n }\n }\n\n removeHiddenFocusableElements() {\n if (this.firstHiddenFocusableElement && this.firstHiddenFocusableElement.parentNode) {\n this.firstHiddenFocusableElement.parentNode.removeChild(this.firstHiddenFocusableElement);\n }\n\n if (this.lastHiddenFocusableElement && this.lastHiddenFocusableElement.parentNode) {\n this.lastHiddenFocusableElement.parentNode.removeChild(this.lastHiddenFocusableElement);\n }\n }\n getComputedSelector(selector) {\n return `:not(.cax-hidden-focusable):not([data-cax-hidden-focusable=\"true\"])${selector ?? ''}`;\n }\n\n createHiddenFocusableElements() {\n const tabindex = '0';\n\n const createFocusableElement = (onFocus) => {\n return DomHandler.createElement('span', {\n class: 'cax-hidden-accessible cax-hidden-focusable',\n tabindex,\n role: 'presentation',\n 'data-cax-hidden-accessible': true,\n 'data-cax-hidden-focusable': true,\n onFocus: onFocus?.bind(this)\n });\n };\n\n this.firstHiddenFocusableElement = createFocusableElement(this.onFirstHiddenElementFocus);\n this.lastHiddenFocusableElement = createFocusableElement(this.onLastHiddenElementFocus);\n\n this.firstHiddenFocusableElement.setAttribute('data-pc-section', 'firstfocusableelement');\n this.lastHiddenFocusableElement.setAttribute('data-pc-section', 'lastfocusableelement');\n\n this.host.nativeElement.prepend(this.firstHiddenFocusableElement);\n this.host.nativeElement.append(this.lastHiddenFocusableElement);\n }\n\n onFirstHiddenElementFocus(event) {\n const { currentTarget, relatedTarget } = event;\n const focusableElement =\n relatedTarget === this.lastHiddenFocusableElement || !this.host.nativeElement?.contains(relatedTarget) ? DomHandler.getFirstFocusableElement(currentTarget.parentElement, ':not(.cax-hidden-focusable)') : this.lastHiddenFocusableElement;\n\n DomHandler.focus(focusableElement);\n }\n\n onLastHiddenElementFocus(event) {\n const { currentTarget, relatedTarget } = event;\n const focusableElement =\n relatedTarget === this.firstHiddenFocusableElement || !this.host.nativeElement?.contains(relatedTarget) ? DomHandler.getLastFocusableElement(currentTarget.parentElement, ':not(.cax-hidden-focusable)') : this.firstHiddenFocusableElement;\n\n DomHandler.focus(focusableElement);\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [FocusTrap],\n declarations: [FocusTrap]\n})\nexport class FocusTrapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAIA;;;AAGG;MAQU,SAAS,CAAA;AAClB;;;AAGG;IACqC,oBAAoB,GAAY,KAAK;AAE7E,IAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAEhC,IAAA,IAAI,GAAe,MAAM,CAAC,UAAU,CAAC;AAErC,IAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC;AAErC,IAAA,2BAA2B;AAE3B,IAAA,0BAA0B;IAE1B,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAClE,YAAA,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,6BAA6B,EAAE
|
|
1
|
+
{"version":3,"file":"cax-design-system-focustrap.mjs","sources":["../../src/app/components/focustrap/focustrap.ts","../../src/app/components/focustrap/cax-design-system-focustrap.ts"],"sourcesContent":["import { DomHandler } from 'cax-design-system/dom';\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, Input, NgModule, inject, booleanAttribute, PLATFORM_ID, SimpleChanges } from '@angular/core';\n\n/**\n * Focus Trap keeps focus within a certain DOM element while tabbing.\n * @group Components\n */\n@Directive({\n selector: '[caxFocusTrap]',\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class FocusTrap {\n /**\n * When set as true, focus wouldn't be managed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) caxFocusTrapDisabled: boolean = false;\n\n platformId = inject(PLATFORM_ID);\n\n host: ElementRef = inject(ElementRef);\n\n document: Document = inject(DOCUMENT);\n\n firstHiddenFocusableElement!: HTMLElement;\n\n lastHiddenFocusableElement!: HTMLElement;\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId) && !this.caxFocusTrapDisabled) {\n !this.firstHiddenFocusableElement && !this.lastHiddenFocusableElement && this.createHiddenFocusableElements();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.caxFocusTrapDisabled && isPlatformBrowser(this.platformId)) {\n if (changes.caxFocusTrapDisabled.currentValue) {\n this.removeHiddenFocusableElements();\n } else {\n this.createHiddenFocusableElements();\n }\n }\n }\n\n removeHiddenFocusableElements() {\n if (this.firstHiddenFocusableElement && this.firstHiddenFocusableElement.parentNode) {\n this.firstHiddenFocusableElement.parentNode.removeChild(this.firstHiddenFocusableElement);\n }\n\n if (this.lastHiddenFocusableElement && this.lastHiddenFocusableElement.parentNode) {\n this.lastHiddenFocusableElement.parentNode.removeChild(this.lastHiddenFocusableElement);\n }\n }\n getComputedSelector(selector) {\n return `:not(.cax-hidden-focusable):not([data-cax-hidden-focusable=\"true\"])${selector ?? ''}`;\n }\n\n createHiddenFocusableElements() {\n const tabindex = '0';\n\n const createFocusableElement = (onFocus) => {\n return DomHandler.createElement('span', {\n class: 'cax-hidden-accessible cax-hidden-focusable',\n tabindex,\n role: 'presentation',\n 'data-cax-hidden-accessible': true,\n 'data-cax-hidden-focusable': true,\n onFocus: onFocus?.bind(this)\n });\n };\n\n this.firstHiddenFocusableElement = createFocusableElement(this.onFirstHiddenElementFocus);\n this.lastHiddenFocusableElement = createFocusableElement(this.onLastHiddenElementFocus);\n\n this.firstHiddenFocusableElement.setAttribute('data-pc-section', 'firstfocusableelement');\n this.lastHiddenFocusableElement.setAttribute('data-pc-section', 'lastfocusableelement');\n\n this.host.nativeElement.prepend(this.firstHiddenFocusableElement);\n this.host.nativeElement.append(this.lastHiddenFocusableElement);\n }\n\n onFirstHiddenElementFocus(event) {\n const { currentTarget, relatedTarget } = event;\n const focusableElement =\n relatedTarget === this.lastHiddenFocusableElement || !this.host.nativeElement?.contains(relatedTarget) ? DomHandler.getFirstFocusableElement(currentTarget.parentElement, ':not(.cax-hidden-focusable)') : this.lastHiddenFocusableElement;\n\n DomHandler.focus(focusableElement);\n }\n\n onLastHiddenElementFocus(event) {\n const { currentTarget, relatedTarget } = event;\n const focusableElement =\n relatedTarget === this.firstHiddenFocusableElement || !this.host.nativeElement?.contains(relatedTarget) ? DomHandler.getLastFocusableElement(currentTarget.parentElement, ':not(.cax-hidden-focusable)') : this.firstHiddenFocusableElement;\n\n DomHandler.focus(focusableElement);\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [FocusTrap],\n declarations: [FocusTrap]\n})\nexport class FocusTrapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|