@sapudex/web-components 2.47.0 → 2.49.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/bundle.esm.js +2 -0
- package/cypress/specs/AccordionSpotlight.cy.tsx +402 -0
- package/cypress/specs/BusyIndicator.cy.tsx +15 -0
- package/cypress/specs/Carousel.cy.tsx +142 -0
- package/cypress/specs/DatePicker.cy.tsx +62 -0
- package/cypress/specs/FilterMenu.cy.tsx +968 -10
- package/cypress/specs/List.cy.tsx +106 -0
- package/cypress/specs/ListItem.cy.tsx +291 -1
- package/cypress/specs/MediaPlayer.cy.tsx +32 -0
- package/cypress/specs/SelectBox.cy.tsx +134 -3
- package/cypress/specs/Tag.cy.tsx +34 -3
- package/cypress/specs/TextField.cy.tsx +68 -0
- package/cypress/support/component-imports.instrumented.ts +6 -0
- package/cypress/support/component-imports.src.ts +6 -0
- package/dist/AccordionSpotlight.d.ts +149 -0
- package/dist/AccordionSpotlight.js +284 -0
- package/dist/AccordionSpotlight.js.map +1 -0
- package/dist/AccordionSpotlightItem.d.ts +76 -0
- package/dist/AccordionSpotlightItem.js +115 -0
- package/dist/AccordionSpotlightItem.js.map +1 -0
- package/dist/AccordionSpotlightItemTemplate.d.ts +2 -0
- package/dist/AccordionSpotlightItemTemplate.js +5 -0
- package/dist/AccordionSpotlightItemTemplate.js.map +1 -0
- package/dist/AccordionSpotlightTemplate.d.ts +2 -0
- package/dist/AccordionSpotlightTemplate.js +10 -0
- package/dist/AccordionSpotlightTemplate.js.map +1 -0
- package/dist/BusyIndicator.d.ts +9 -0
- package/dist/BusyIndicator.js +7 -1
- package/dist/BusyIndicator.js.map +1 -1
- package/dist/Carousel.d.ts +64 -8
- package/dist/Carousel.js +191 -33
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +9 -2
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/DatePicker.d.ts +5 -0
- package/dist/DatePicker.js +10 -0
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePickerTemplate.js +1 -1
- package/dist/DatePickerTemplate.js.map +1 -1
- package/dist/FilterMenu.d.ts +12 -2
- package/dist/FilterMenu.js +24 -4
- package/dist/FilterMenu.js.map +1 -1
- package/dist/FilterMenuTemplate.js +1 -1
- package/dist/FilterMenuTemplate.js.map +1 -1
- package/dist/List.d.ts +1 -0
- package/dist/List.js +24 -11
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +5 -1
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +22 -0
- package/dist/ListGroupHeaderBase.js +44 -0
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListItem.d.ts +4 -0
- package/dist/ListItem.js +32 -0
- package/dist/ListItem.js.map +1 -1
- package/dist/MediaPlayer.d.ts +2 -0
- package/dist/MediaPlayer.js +12 -0
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/PromoTile.js +1 -1
- package/dist/PromoTile.js.map +1 -1
- package/dist/SearchableListBase.d.ts +10 -1
- package/dist/SearchableListBase.js +23 -7
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +3 -2
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SelectBase.d.ts +14 -0
- package/dist/SelectBase.js +56 -3
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBoxTemplate.js +1 -1
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/TabNavigation.d.ts +6 -0
- package/dist/TabNavigation.js +5 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.js +3 -2
- package/dist/Tag.js.map +1 -1
- package/dist/TagTemplate.js +2 -2
- package/dist/TagTemplate.js.map +1 -1
- package/dist/TextField.d.ts +12 -0
- package/dist/TextField.js +15 -0
- package/dist/TextField.js.map +1 -1
- package/dist/TextFieldTemplate.js +1 -1
- package/dist/TextFieldTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-CbKVAumI.js → InputSuggestions-DaB1A6jW.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-C3-WJZBS.js → ListItemStandardExpandableTextTemplate-Co4KQuVw.js} +1 -1
- package/dist/assets/{bundle-JYo3bV8v.css → bundle-CkxyEA8c.css} +1 -1
- package/dist/assets/{bundle.esm-D8jQybCx.js → bundle.esm-al3NYhoB.js} +242 -239
- package/dist/assets/messagebundle_ar-BUZ_gTvQ.js +1 -0
- package/dist/assets/messagebundle_en-DoNTK1BE.js +1 -0
- package/dist/assets/messagebundle_no-BZQfeWxT.js +1 -0
- package/dist/assets/messagebundle_pl-CsXeN1y6.js +1 -0
- package/dist/assets/messagebundle_pt_PT-CQ5YAsmx.js +1 -0
- package/dist/css/themes/Accordion.css +1 -1
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/AccordionSpotlight.css +1 -0
- package/dist/css/themes/AccordionSpotlightItem.css +1 -0
- package/dist/css/themes/Badge.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -0
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/Divider.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/ImageGridTableItem.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/ProgressBar.css +1 -1
- package/dist/css/themes/PromoTile.css +1 -1
- package/dist/css/themes/Review.css +1 -1
- package/dist/css/themes/ReviewItem.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SelectBase.css +1 -1
- package/dist/css/themes/SelectBox.css +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationGroup.css +1 -1
- package/dist/css/themes/SocialMediaButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCell.css +1 -1
- package/dist/css/themes/TableGroupRow.css +1 -1
- package/dist/css/themes/TableHeaderCell.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/TagGroup.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/custom-elements-internal.json +511 -35
- package/dist/custom-elements.json +455 -49
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +3 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +24 -21
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Accordion.css.d.ts +1 -1
- package/dist/generated/themes/Accordion.css.js +1 -1
- package/dist/generated/themes/Accordion.css.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.d.ts +2 -0
- package/dist/generated/themes/AccordionSpotlight.css.js +8 -0
- package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -0
- package/dist/generated/themes/AccordionSpotlightItem.css.d.ts +2 -0
- package/dist/generated/themes/AccordionSpotlightItem.css.js +8 -0
- package/dist/generated/themes/AccordionSpotlightItem.css.js.map +1 -0
- package/dist/generated/themes/Badge.css.d.ts +1 -1
- package/dist/generated/themes/Badge.css.js +1 -1
- package/dist/generated/themes/Badge.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +2 -0
- package/dist/generated/themes/BusyIndicator.css.js +8 -0
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -0
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/Divider.css.d.ts +1 -1
- package/dist/generated/themes/Divider.css.js +1 -1
- package/dist/generated/themes/Divider.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.d.ts +1 -1
- package/dist/generated/themes/Dropdown.css.js +1 -1
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
- package/dist/generated/themes/FilterMenu.css.js +1 -1
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/ImageGridTableItem.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridTableItem.css.js +1 -1
- package/dist/generated/themes/ImageGridTableItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.d.ts +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/ProgressBar.css.d.ts +1 -1
- package/dist/generated/themes/ProgressBar.css.js +1 -1
- package/dist/generated/themes/ProgressBar.css.js.map +1 -1
- package/dist/generated/themes/PromoTile.css.d.ts +1 -1
- package/dist/generated/themes/PromoTile.css.js +1 -1
- package/dist/generated/themes/PromoTile.css.js.map +1 -1
- package/dist/generated/themes/Review.css.d.ts +1 -1
- package/dist/generated/themes/Review.css.js +1 -1
- package/dist/generated/themes/Review.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.d.ts +1 -1
- package/dist/generated/themes/ReviewItem.css.js +1 -1
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SelectBase.css.d.ts +1 -1
- package/dist/generated/themes/SelectBase.css.js +1 -1
- package/dist/generated/themes/SelectBase.css.js.map +1 -1
- package/dist/generated/themes/SelectBox.css.d.ts +1 -1
- package/dist/generated/themes/SelectBox.css.js +1 -1
- package/dist/generated/themes/SelectBox.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
- package/dist/generated/themes/SocialMediaButton.css.d.ts +1 -1
- package/dist/generated/themes/SocialMediaButton.css.js +1 -1
- package/dist/generated/themes/SocialMediaButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCell.css.d.ts +1 -1
- package/dist/generated/themes/TableCell.css.js +1 -1
- package/dist/generated/themes/TableCell.css.js.map +1 -1
- package/dist/generated/themes/TableGroupRow.css.d.ts +1 -1
- package/dist/generated/themes/TableGroupRow.css.js +1 -1
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderCell.css.d.ts +1 -1
- package/dist/generated/themes/TableHeaderCell.css.js +1 -1
- package/dist/generated/themes/TableHeaderCell.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.d.ts +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/TagGroup.css.d.ts +1 -1
- package/dist/generated/themes/TagGroup.css.js +1 -1
- package/dist/generated/themes/TagGroup.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.d.ts +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/messagebundle.properties +3 -0
- package/dist/messagebundle_ar.properties +99 -0
- package/dist/messagebundle_en.properties +2 -0
- package/dist/messagebundle_no.properties +126 -1
- package/dist/messagebundle_pl.properties +134 -1
- package/dist/messagebundle_pt_PT.properties +126 -1
- package/dist/vscode.html-custom-data.json +92 -12
- package/dist/web-types.json +233 -27
- package/package.json +1 -1
- package/src/AccordionSpotlight.ts +321 -0
- package/src/AccordionSpotlightItem.ts +117 -0
- package/src/AccordionSpotlightItemTemplate.tsx +7 -0
- package/src/AccordionSpotlightTemplate.tsx +107 -0
- package/src/BusyIndicator.ts +17 -2
- package/src/Carousel.ts +243 -34
- package/src/CarouselTemplate.tsx +66 -27
- package/src/DatePicker.ts +9 -0
- package/src/DatePickerTemplate.tsx +2 -1
- package/src/FilterMenu.ts +25 -4
- package/src/FilterMenuTemplate.tsx +1 -1
- package/src/List.ts +23 -11
- package/src/ListGroupHeader.hbs +11 -10
- package/src/ListGroupHeader.ts +5 -1
- package/src/ListGroupHeaderBase.ts +48 -0
- package/src/ListItem.hbs +5 -1
- package/src/ListItem.ts +36 -0
- package/src/MediaPlayer.ts +11 -0
- package/src/PromoTile.ts +1 -1
- package/src/SearchableListBase.ts +24 -7
- package/src/SearchableListBaseTemplate.tsx +5 -2
- package/src/SelectBase.ts +58 -3
- package/src/SelectBoxTemplate.tsx +1 -0
- package/src/TabNavigation.ts +6 -0
- package/src/Tag.ts +3 -2
- package/src/TagTemplate.tsx +2 -0
- package/src/TextField.ts +26 -1
- package/src/TextFieldTemplate.tsx +1 -0
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +24 -21
- package/src/generated/templates/ListItemTemplate.lit.ts +2 -2
- package/src/generated/themes/Accordion.css.ts +1 -1
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/AccordionSpotlight.css.ts +9 -0
- package/src/generated/themes/AccordionSpotlightItem.css.ts +9 -0
- package/src/generated/themes/Badge.css.ts +1 -1
- package/src/generated/themes/BusyIndicator.css.ts +9 -0
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/Carousel.css.ts +1 -1
- package/src/generated/themes/Divider.css.ts +1 -1
- package/src/generated/themes/Dropdown.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/ImageGridTableItem.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/ProgressBar.css.ts +1 -1
- package/src/generated/themes/PromoTile.css.ts +1 -1
- package/src/generated/themes/Review.css.ts +1 -1
- package/src/generated/themes/ReviewItem.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SelectBase.css.ts +1 -1
- package/src/generated/themes/SelectBox.css.ts +1 -1
- package/src/generated/themes/SideNavigation.css.ts +1 -1
- package/src/generated/themes/SideNavigationGroup.css.ts +1 -1
- package/src/generated/themes/SocialMediaButton.css.ts +1 -1
- package/src/generated/themes/StepInput.css.ts +1 -1
- package/src/generated/themes/Switch.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Table.css.ts +1 -1
- package/src/generated/themes/TableCell.css.ts +1 -1
- package/src/generated/themes/TableGroupRow.css.ts +1 -1
- package/src/generated/themes/TableHeaderCell.css.ts +1 -1
- package/src/generated/themes/Tag.css.ts +1 -1
- package/src/generated/themes/TagGroup.css.ts +1 -1
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/Toast.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_ar.properties +99 -0
- package/src/i18n/messagebundle_en.properties +2 -0
- package/src/i18n/messagebundle_no.properties +126 -1
- package/src/i18n/messagebundle_pl.properties +134 -1
- package/src/i18n/messagebundle_pt_PT.properties +126 -1
- package/src/themes/Accordion.css +1 -1
- package/src/themes/AccordionItem.css +4 -4
- package/src/themes/AccordionSpotlight.css +264 -0
- package/src/themes/AccordionSpotlightItem.css +3 -0
- package/src/themes/Badge.css +7 -7
- package/src/themes/BusyIndicator.css +24 -0
- package/src/themes/Button.css +57 -57
- package/src/themes/Carousel.css +20 -8
- package/src/themes/Divider.css +1 -1
- package/src/themes/Dropdown.css +1 -1
- package/src/themes/FilterMenu.css +2 -2
- package/src/themes/Footer.css +1 -1
- package/src/themes/ImageGridTableItem.css +1 -1
- package/src/themes/MastheadItem.css +7 -4
- package/src/themes/MastheadProfileMenu.css +0 -13
- package/src/themes/MastheadShell.css +2 -2
- package/src/themes/MediaPlayer.css +5 -34
- package/src/themes/PhoneNumberField.css +6 -6
- package/src/themes/ProgressBar.css +4 -0
- package/src/themes/PromoTile.css +4 -4
- package/src/themes/Review.css +2 -2
- package/src/themes/ReviewItem.css +2 -2
- package/src/themes/Search.css +5 -5
- package/src/themes/SelectBase.css +14 -14
- package/src/themes/SelectBox.css +1 -1
- package/src/themes/SideNavigation.css +1 -1
- package/src/themes/SideNavigationGroup.css +1 -1
- package/src/themes/SocialMediaButton.css +2 -2
- package/src/themes/StepInput.css +8 -8
- package/src/themes/Switch.css +9 -9
- package/src/themes/TabNavigation.css +1 -1
- package/src/themes/Table.css +1 -1
- package/src/themes/TableCell.css +3 -3
- package/src/themes/TableGroupRow.css +1 -1
- package/src/themes/TableHeaderCell.css +3 -4
- package/src/themes/Tag.css +28 -4
- package/src/themes/TagGroup.css +1 -0
- package/src/themes/TextArea.css +4 -4
- package/src/themes/TextField.css +13 -13
- package/src/themes/Toast.css +1 -1
- package/dist/assets/messagebundle_ar-BNhVFt1-.js +0 -1
- package/dist/assets/messagebundle_en-BZqDcZHN.js +0 -1
- package/dist/assets/messagebundle_no-BIUfmTWJ.js +0 -1
- package/dist/assets/messagebundle_pl-BmaELnDD.js +0 -1
- package/dist/assets/messagebundle_pt_PT-DcVh6BH6.js +0 -1
package/dist/Carousel.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
3
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
4
|
+
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
5
|
import type UI5Carousel from "@ui5/webcomponents/dist/Carousel.js";
|
|
5
6
|
import type { CarouselNavigateEventDetail } from "@ui5/webcomponents/dist/Carousel.js";
|
|
6
7
|
import type { UI5CustomEvent } from "@ui5/webcomponents-base";
|
|
7
8
|
import type CarouselPageIndicatorType from "@ui5/webcomponents/dist/types/CarouselPageIndicatorType.js";
|
|
8
|
-
import type UDExButton from "./Button.js";
|
|
9
9
|
export declare enum UDExCarouselNavigationPosition {
|
|
10
10
|
top = "top",
|
|
11
11
|
bottom = "bottom"
|
|
@@ -14,6 +14,9 @@ export declare enum UDExCarouselButtonDesign {
|
|
|
14
14
|
Secondary = "Secondary",
|
|
15
15
|
Tertiary = "Tertiary"
|
|
16
16
|
}
|
|
17
|
+
type UDExCarouselAutoplayToggleEventDetails = {
|
|
18
|
+
isPaused: boolean;
|
|
19
|
+
};
|
|
17
20
|
/**
|
|
18
21
|
* @class
|
|
19
22
|
*
|
|
@@ -35,6 +38,7 @@ export declare enum UDExCarouselButtonDesign {
|
|
|
35
38
|
declare class UDExCarousel extends UI5Element {
|
|
36
39
|
eventDetails: {
|
|
37
40
|
"navigate": CarouselNavigateEventDetail;
|
|
41
|
+
"autoplay-toggle-click": UDExCarouselAutoplayToggleEventDetails;
|
|
38
42
|
};
|
|
39
43
|
/**
|
|
40
44
|
* Defines the position of the navigation.
|
|
@@ -48,6 +52,30 @@ declare class UDExCarousel extends UI5Element {
|
|
|
48
52
|
* @public
|
|
49
53
|
*/
|
|
50
54
|
navigationPlacement: `${UDExCarouselNavigationPosition}`;
|
|
55
|
+
/**
|
|
56
|
+
* Controls carousel autoplay functionality
|
|
57
|
+
* @public
|
|
58
|
+
* @default undefined
|
|
59
|
+
*/
|
|
60
|
+
autoplay?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Defines carousel autoplay speed in milliseconds till next slide
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
autoplaySpeed: number;
|
|
66
|
+
/**
|
|
67
|
+
* Indicates current state of autoplay.
|
|
68
|
+
*
|
|
69
|
+
* @default true
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
_autoplayIsPaused: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.
|
|
75
|
+
* @public
|
|
76
|
+
* @default false
|
|
77
|
+
*/
|
|
78
|
+
cyclic?: boolean;
|
|
51
79
|
/**
|
|
52
80
|
* Defines the content of the component.
|
|
53
81
|
*
|
|
@@ -100,10 +128,42 @@ declare class UDExCarousel extends UI5Element {
|
|
|
100
128
|
* @public
|
|
101
129
|
*/
|
|
102
130
|
accessibleName: string;
|
|
131
|
+
/**
|
|
132
|
+
* Tracks whether the inner carousel has multiple pages (updated after render).
|
|
133
|
+
*
|
|
134
|
+
* @default false
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
_hasManyPages: boolean;
|
|
103
138
|
static i18nBundle: I18nBundle;
|
|
139
|
+
_autoplayInterval: ReturnType<typeof setInterval> | null;
|
|
140
|
+
_autoplayLastToggle: number;
|
|
141
|
+
_autoplayMinTimeBetweenToggle: number;
|
|
142
|
+
_autoplayManualStop: boolean;
|
|
143
|
+
_resizeHandler: ResizeObserverCallback;
|
|
144
|
+
constructor();
|
|
145
|
+
onAfterRendering(): void;
|
|
146
|
+
onExitDOM(): void;
|
|
147
|
+
onEnterDOM(): void;
|
|
148
|
+
_onResize(): void;
|
|
149
|
+
_autoplayLoop: () => void;
|
|
150
|
+
_startAutoplay(): void;
|
|
151
|
+
_stopAutoplay(): void;
|
|
152
|
+
_onAutoplayToggleClick(): void;
|
|
153
|
+
_onFocusIn(): void;
|
|
154
|
+
_onFocusOut(): void;
|
|
155
|
+
_onMouseEnter(): void;
|
|
156
|
+
_onMouseLeave(): void;
|
|
157
|
+
_calculateDisabledButtonsState(): void;
|
|
158
|
+
_prevButtonClick(): void;
|
|
159
|
+
_nextButtonClick(): void;
|
|
160
|
+
_onkeydown(e: KeyboardEvent): void;
|
|
161
|
+
_handleNavigate(e: UI5CustomEvent<UI5Carousel, "navigate">): void;
|
|
104
162
|
get nextPageText(): string;
|
|
105
163
|
get previousPageText(): string;
|
|
106
164
|
get carouselClass(): string;
|
|
165
|
+
get navigationWrapperClass(): string;
|
|
166
|
+
get navigationButtonWrapperClass(): string;
|
|
107
167
|
get buttonDesign(): UDExCarouselButtonDesign;
|
|
108
168
|
get showNavigationButtons(): {
|
|
109
169
|
top: boolean;
|
|
@@ -111,12 +171,8 @@ declare class UDExCarousel extends UI5Element {
|
|
|
111
171
|
};
|
|
112
172
|
get _hidePageIndicator(): boolean;
|
|
113
173
|
get _carousel(): UI5Carousel | null;
|
|
114
|
-
get
|
|
115
|
-
|
|
116
|
-
_prevButtonClick(e: UI5CustomEvent<UDExButton, "click">): void;
|
|
117
|
-
_nextButtonClick(e: UI5CustomEvent<UDExButton, "click">): void;
|
|
118
|
-
_onkeydown(e: KeyboardEvent): void;
|
|
119
|
-
_handleNavigate(e: UI5CustomEvent<UI5Carousel, "navigate">): void;
|
|
120
|
-
onAfterRendering(): void;
|
|
174
|
+
get _isBottomNavigation(): boolean;
|
|
175
|
+
get autoplayToggleButtonTooltipText(): string;
|
|
121
176
|
}
|
|
122
177
|
export default UDExCarousel;
|
|
178
|
+
export type { CarouselNavigateEventDetail, UDExCarouselAutoplayToggleEventDetails };
|
package/dist/Carousel.js
CHANGED
|
@@ -12,8 +12,9 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
|
12
12
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
13
13
|
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
14
14
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
15
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
15
16
|
import { isUp, isDown, isRight, isLeft, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
|
-
import { CAROUSEL_NEXT_ARROW_TEXT, CAROUSEL_PREVIOUS_ARROW_TEXT } from "./generated/i18n/i18n-defaults.js";
|
|
17
|
+
import { CAROUSEL_NEXT_ARROW_TEXT, CAROUSEL_PREVIOUS_ARROW_TEXT, CAROUSEL_AUTOPLAY_TOGGLE_START, CAROUSEL_AUTOPLAY_TOGGLE_STOP, } from "./generated/i18n/i18n-defaults.js";
|
|
17
18
|
import redirectAttributes from "./utils/redirectAttributes.js";
|
|
18
19
|
import translate from "./utils/translate.js";
|
|
19
20
|
import CarouselTemplate from "./CarouselTemplate.js";
|
|
@@ -49,7 +50,7 @@ export var UDExCarouselButtonDesign;
|
|
|
49
50
|
*/
|
|
50
51
|
let UDExCarousel = UDExCarousel_1 = class UDExCarousel extends UI5Element {
|
|
51
52
|
constructor() {
|
|
52
|
-
super(
|
|
53
|
+
super();
|
|
53
54
|
/**
|
|
54
55
|
* Defines the position of the navigation.
|
|
55
56
|
* <br><br>
|
|
@@ -62,6 +63,18 @@ let UDExCarousel = UDExCarousel_1 = class UDExCarousel extends UI5Element {
|
|
|
62
63
|
* @public
|
|
63
64
|
*/
|
|
64
65
|
this.navigationPlacement = UDExCarouselNavigationPosition.top;
|
|
66
|
+
/**
|
|
67
|
+
* Defines carousel autoplay speed in milliseconds till next slide
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
this.autoplaySpeed = 2000;
|
|
71
|
+
/**
|
|
72
|
+
* Indicates current state of autoplay.
|
|
73
|
+
*
|
|
74
|
+
* @default true
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
77
|
+
this._autoplayIsPaused = true;
|
|
65
78
|
/**
|
|
66
79
|
* Defines the number of items per page depending on the carousel width.
|
|
67
80
|
*
|
|
@@ -93,52 +106,129 @@ let UDExCarousel = UDExCarousel_1 = class UDExCarousel extends UI5Element {
|
|
|
93
106
|
* @public
|
|
94
107
|
*/
|
|
95
108
|
this.accessibleName = "";
|
|
109
|
+
/**
|
|
110
|
+
* Tracks whether the inner carousel has multiple pages (updated after render).
|
|
111
|
+
*
|
|
112
|
+
* @default false
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
this._hasManyPages = false;
|
|
116
|
+
this._autoplayInterval = null;
|
|
117
|
+
this._autoplayLastToggle = Date.now();
|
|
118
|
+
this._autoplayMinTimeBetweenToggle = 250;
|
|
119
|
+
this._autoplayManualStop = false;
|
|
120
|
+
this._autoplayLoop = () => {
|
|
121
|
+
const items = this._carousel?.items;
|
|
122
|
+
if (!items) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const currentSlide = this._carousel._currentPageIndex;
|
|
126
|
+
const itemsPerPage = this._carousel.effectiveItemsPerPage;
|
|
127
|
+
const isLastSlide = currentSlide === (items.length - itemsPerPage);
|
|
128
|
+
if (isLastSlide && !this.cyclic) {
|
|
129
|
+
this._stopAutoplay();
|
|
130
|
+
this._autoplayManualStop = true;
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const nextSlide = isLastSlide ? 0 : (currentSlide + itemsPerPage);
|
|
134
|
+
this._carousel?.navigateTo(nextSlide);
|
|
135
|
+
this._calculateDisabledButtonsState();
|
|
136
|
+
};
|
|
137
|
+
this._resizeHandler = this._onResize.bind(this);
|
|
96
138
|
}
|
|
97
|
-
|
|
98
|
-
|
|
139
|
+
onAfterRendering() {
|
|
140
|
+
redirectAttributes(this, "carousel");
|
|
141
|
+
this._calculateDisabledButtonsState();
|
|
142
|
+
if (this._autoplayInterval === null) {
|
|
143
|
+
this._startAutoplay();
|
|
144
|
+
}
|
|
99
145
|
}
|
|
100
|
-
|
|
101
|
-
|
|
146
|
+
onExitDOM() {
|
|
147
|
+
ResizeHandler.deregister(this, this._resizeHandler);
|
|
148
|
+
if (this._autoplayInterval) {
|
|
149
|
+
clearInterval(this._autoplayInterval);
|
|
150
|
+
}
|
|
102
151
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
return `${classes} udex-carousel__navigation--${this.navigationPlacement}`;
|
|
152
|
+
onEnterDOM() {
|
|
153
|
+
ResizeHandler.register(this, this._resizeHandler);
|
|
106
154
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
? UDExCarouselButtonDesign.Secondary
|
|
110
|
-
: UDExCarouselButtonDesign.Tertiary;
|
|
155
|
+
_onResize() {
|
|
156
|
+
this._hasManyPages = this._carousel?.hasManyPages ?? false;
|
|
111
157
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
158
|
+
_startAutoplay() {
|
|
159
|
+
if (!this.autoplay) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (!this._carousel?.items) {
|
|
163
|
+
console.warn("[UDExCarousel] Cannot start autoplay on an empty carousel");
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const toggleBuffer = Date.now() - this._autoplayLastToggle;
|
|
167
|
+
if (this._autoplayInterval !== null && toggleBuffer <= this._autoplayMinTimeBetweenToggle) {
|
|
168
|
+
this._autoplayLastToggle = Date.now();
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (this._autoplayInterval !== null) {
|
|
172
|
+
clearInterval(this._autoplayInterval);
|
|
173
|
+
}
|
|
174
|
+
this._autoplayInterval = setInterval(this._autoplayLoop, this.autoplaySpeed);
|
|
175
|
+
this._autoplayIsPaused = false;
|
|
176
|
+
this._autoplayLastToggle = Date.now();
|
|
117
177
|
}
|
|
118
|
-
|
|
119
|
-
|
|
178
|
+
_stopAutoplay() {
|
|
179
|
+
if (!this._autoplayInterval) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
clearInterval(this._autoplayInterval);
|
|
183
|
+
this._autoplayIsPaused = true;
|
|
184
|
+
this._autoplayLastToggle = Date.now();
|
|
120
185
|
}
|
|
121
|
-
|
|
122
|
-
|
|
186
|
+
_onAutoplayToggleClick() {
|
|
187
|
+
if (this._autoplayIsPaused) {
|
|
188
|
+
this._startAutoplay();
|
|
189
|
+
this._autoplayManualStop = false;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
this._stopAutoplay();
|
|
193
|
+
this._autoplayManualStop = true;
|
|
194
|
+
}
|
|
195
|
+
this.fireDecoratorEvent("autoplay-toggle-click", {
|
|
196
|
+
isPaused: this._autoplayIsPaused,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
_onFocusIn() {
|
|
200
|
+
this._stopAutoplay();
|
|
201
|
+
}
|
|
202
|
+
_onFocusOut() {
|
|
203
|
+
if (!this._autoplayManualStop) {
|
|
204
|
+
this._startAutoplay();
|
|
205
|
+
}
|
|
123
206
|
}
|
|
124
|
-
|
|
125
|
-
|
|
207
|
+
_onMouseEnter() {
|
|
208
|
+
this._stopAutoplay();
|
|
209
|
+
}
|
|
210
|
+
_onMouseLeave() {
|
|
211
|
+
if (!this._autoplayManualStop) {
|
|
212
|
+
this._startAutoplay();
|
|
213
|
+
}
|
|
126
214
|
}
|
|
127
215
|
_calculateDisabledButtonsState() {
|
|
128
216
|
this.isPrevButtonDisabled = !this._carousel?.hasPrev;
|
|
129
217
|
this.isNextButtonDisabled = !this._carousel?.hasNext;
|
|
130
218
|
}
|
|
131
|
-
_prevButtonClick(
|
|
132
|
-
if (this.isPrevButtonDisabled) {
|
|
219
|
+
_prevButtonClick() {
|
|
220
|
+
if (this.isPrevButtonDisabled || !this._carousel) {
|
|
133
221
|
return;
|
|
134
222
|
}
|
|
135
|
-
this._carousel
|
|
223
|
+
this._carousel.navigateLeft();
|
|
224
|
+
this._calculateDisabledButtonsState();
|
|
136
225
|
}
|
|
137
|
-
_nextButtonClick(
|
|
138
|
-
if (this.isNextButtonDisabled) {
|
|
226
|
+
_nextButtonClick() {
|
|
227
|
+
if (this.isNextButtonDisabled || !this._carousel) {
|
|
139
228
|
return;
|
|
140
229
|
}
|
|
141
|
-
this._carousel
|
|
230
|
+
this._carousel.navigateRight();
|
|
231
|
+
this._calculateDisabledButtonsState();
|
|
142
232
|
}
|
|
143
233
|
_onkeydown(e) {
|
|
144
234
|
if (isLeft(e) || isDown(e) || isRight(e) || isUp(e)) {
|
|
@@ -149,14 +239,71 @@ let UDExCarousel = UDExCarousel_1 = class UDExCarousel extends UI5Element {
|
|
|
149
239
|
this._calculateDisabledButtonsState();
|
|
150
240
|
this.fireDecoratorEvent("navigate", e.detail);
|
|
151
241
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
242
|
+
get nextPageText() {
|
|
243
|
+
return translate(UDExCarousel_1, CAROUSEL_NEXT_ARROW_TEXT);
|
|
244
|
+
}
|
|
245
|
+
get previousPageText() {
|
|
246
|
+
return translate(UDExCarousel_1, CAROUSEL_PREVIOUS_ARROW_TEXT);
|
|
247
|
+
}
|
|
248
|
+
get carouselClass() {
|
|
249
|
+
const classes = "udex-carousel";
|
|
250
|
+
return `${classes} udex-carousel__navigation--${this.navigationPlacement}`;
|
|
251
|
+
}
|
|
252
|
+
get navigationWrapperClass() {
|
|
253
|
+
let _class = "udex-carousel__navigation-wrapper";
|
|
254
|
+
if (this.autoplay) {
|
|
255
|
+
_class += " udex-carousel__navigation-wrapper--autoplay";
|
|
256
|
+
}
|
|
257
|
+
return _class;
|
|
258
|
+
}
|
|
259
|
+
get navigationButtonWrapperClass() {
|
|
260
|
+
let _class = "udex-carousel__navigation-button-wrapper";
|
|
261
|
+
if (this._carousel?.isPageTypeDots) {
|
|
262
|
+
_class += " udex-carousel__navigation-button-wrapper--dot-indicators";
|
|
263
|
+
}
|
|
264
|
+
return _class;
|
|
265
|
+
}
|
|
266
|
+
get buttonDesign() {
|
|
267
|
+
return this.navigationPlacement === UDExCarouselNavigationPosition.top
|
|
268
|
+
? UDExCarouselButtonDesign.Secondary
|
|
269
|
+
: UDExCarouselButtonDesign.Tertiary;
|
|
270
|
+
}
|
|
271
|
+
get showNavigationButtons() {
|
|
272
|
+
return {
|
|
273
|
+
top: this.navigationPlacement === UDExCarouselNavigationPosition.top && this._hasManyPages,
|
|
274
|
+
bottom: this.navigationPlacement === UDExCarouselNavigationPosition.bottom && this._hasManyPages,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
get _hidePageIndicator() {
|
|
278
|
+
return this.navigationPlacement === UDExCarouselNavigationPosition.top;
|
|
279
|
+
}
|
|
280
|
+
get _carousel() {
|
|
281
|
+
return this.shadowRoot.querySelector("[ui5-carousel]");
|
|
282
|
+
}
|
|
283
|
+
get _isBottomNavigation() {
|
|
284
|
+
return this.navigationPlacement === UDExCarouselNavigationPosition.bottom;
|
|
285
|
+
}
|
|
286
|
+
get autoplayToggleButtonTooltipText() {
|
|
287
|
+
return this._autoplayIsPaused
|
|
288
|
+
? translate(UDExCarousel_1, CAROUSEL_AUTOPLAY_TOGGLE_START)
|
|
289
|
+
: translate(UDExCarousel_1, CAROUSEL_AUTOPLAY_TOGGLE_STOP);
|
|
155
290
|
}
|
|
156
291
|
};
|
|
157
292
|
__decorate([
|
|
158
293
|
property()
|
|
159
294
|
], UDExCarousel.prototype, "navigationPlacement", void 0);
|
|
295
|
+
__decorate([
|
|
296
|
+
property({ type: Boolean })
|
|
297
|
+
], UDExCarousel.prototype, "autoplay", void 0);
|
|
298
|
+
__decorate([
|
|
299
|
+
property({ type: Number })
|
|
300
|
+
], UDExCarousel.prototype, "autoplaySpeed", void 0);
|
|
301
|
+
__decorate([
|
|
302
|
+
property({ type: Boolean })
|
|
303
|
+
], UDExCarousel.prototype, "_autoplayIsPaused", void 0);
|
|
304
|
+
__decorate([
|
|
305
|
+
property({ type: Boolean })
|
|
306
|
+
], UDExCarousel.prototype, "cyclic", void 0);
|
|
160
307
|
__decorate([
|
|
161
308
|
slot({ "default": true, type: HTMLElement, individualSlots: true })
|
|
162
309
|
], UDExCarousel.prototype, "items", void 0);
|
|
@@ -175,6 +322,9 @@ __decorate([
|
|
|
175
322
|
__decorate([
|
|
176
323
|
property({ type: String })
|
|
177
324
|
], UDExCarousel.prototype, "accessibleName", void 0);
|
|
325
|
+
__decorate([
|
|
326
|
+
property({ type: Boolean, noAttribute: true })
|
|
327
|
+
], UDExCarousel.prototype, "_hasManyPages", void 0);
|
|
178
328
|
__decorate([
|
|
179
329
|
i18n("@sapudex/web-components")
|
|
180
330
|
], UDExCarousel, "i18nBundle", void 0);
|
|
@@ -192,6 +342,14 @@ UDExCarousel = UDExCarousel_1 = __decorate([
|
|
|
192
342
|
*/
|
|
193
343
|
,
|
|
194
344
|
event("navigate")
|
|
345
|
+
/**
|
|
346
|
+
* Fired event when the user click on a play/paused button.
|
|
347
|
+
*
|
|
348
|
+
* @public
|
|
349
|
+
* @param {boolean} isPaused - Indicates current state of autoplay
|
|
350
|
+
*/
|
|
351
|
+
,
|
|
352
|
+
event("autoplay-toggle-click", { bubbles: true })
|
|
195
353
|
], UDExCarousel);
|
|
196
354
|
UDExCarousel.define();
|
|
197
355
|
export default UDExCarousel;
|
package/dist/Carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n isUp, isDown, isRight, isLeft,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { CAROUSEL_NEXT_ARROW_TEXT, CAROUSEL_PREVIOUS_ARROW_TEXT } from \"./generated/i18n/i18n-defaults.js\";\nimport redirectAttributes from \"./utils/redirectAttributes.js\";\nimport type UI5Carousel from \"@ui5/webcomponents/dist/Carousel.js\";\nimport type { CarouselNavigateEventDetail } from \"@ui5/webcomponents/dist/Carousel.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport type Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport translate from \"./utils/translate.js\";\n\nimport CarouselTemplate from \"./CarouselTemplate.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\nimport type CarouselPageIndicatorType from \"@ui5/webcomponents/dist/types/CarouselPageIndicatorType.js\";\nimport type UDExButton from \"./Button.js\";\n\nexport enum UDExCarouselNavigationPosition {\n top = \"top\",\n bottom = \"bottom\",\n}\n\nexport enum UDExCarouselButtonDesign {\n Secondary = \"Secondary\",\n Tertiary = \"Tertiary\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-carousel</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Carousel.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-carousel\n * @public\n */\n@customElement({\n tag: \"udex-carousel\",\n renderer: jsxRenderer,\n styles: CarouselCss,\n template: CarouselTemplate,\n})\n/**\n * Triggered when carousel navigates to a new slide\n * @public\n * @param { CustomEvent }\n */\n@event(\"navigate\")\n\nclass UDExCarousel extends UI5Element {\n eventDetails!: {\n \"navigate\": CarouselNavigateEventDetail,\n };\n /**\n * Defines the position of the navigation.\n * <br><br>\n * Available options are:\n * <ul>\n * <li><code>top</code> - the navigation button are placed above the component.</li>\n * <li><code>bottom</code> - the navigation button arrows are placed below the component.</li>\n * </ul>\n *\n * @public\n */\n @property()\n navigationPlacement: `${UDExCarouselNavigationPosition}` = UDExCarouselNavigationPosition.top;\n\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n items!: DefaultSlot<HTMLElement>;\n\n /**\n * Defines the number of items per page depending on the carousel width.\n *\n * - 'S' for screens smaller than 600 pixels.\n * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n * - 'XL' for screens greater than or equal to 1440 pixels.\n *\n * One item per page is shown by default.\n * @default \"S1 M1 L1 XL1\"\n * @public\n */\n @property()\n itemsPerPage = \"S1 M1 L1 XL1\";\n\n /**\n * Defines the style of the page indicator.\n * Available options are:\n *\n * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n * @since 1.10\n * @default \"Default\"\n * @public\n */\n @property()\n pageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n /**\n * Defines the prev button is disabled\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isPrevButtonDisabled!: boolean;\n\n /**\n * Defines the next button is disabled\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isNextButtonDisabled!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default ''\n * @public\n */\n @property({ type: String })\n accessibleName: string = \"\";\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n get nextPageText(): string {\n return translate(UDExCarousel, CAROUSEL_NEXT_ARROW_TEXT);\n }\n\n get previousPageText(): string {\n return translate(UDExCarousel, CAROUSEL_PREVIOUS_ARROW_TEXT);\n }\n\n get carouselClass(): string {\n const classes = \"udex-carousel\";\n\n return `${classes} udex-carousel__navigation--${this.navigationPlacement}`;\n }\n\n get buttonDesign(): UDExCarouselButtonDesign {\n return this.navigationPlacement === UDExCarouselNavigationPosition.top\n ? UDExCarouselButtonDesign.Secondary\n : UDExCarouselButtonDesign.Tertiary;\n }\n\n get showNavigationButtons(): { top: boolean; bottom: boolean } {\n return {\n top: this.navigationPlacement === UDExCarouselNavigationPosition.top,\n bottom: this.navigationPlacement === UDExCarouselNavigationPosition.bottom,\n };\n }\n\n get _hidePageIndicator(): boolean {\n return this.navigationPlacement === UDExCarouselNavigationPosition.top;\n }\n\n get _carousel(): UI5Carousel | null {\n return this.shadowRoot!.querySelector<UI5Carousel>(\"[ui5-carousel]\");\n }\n\n get _ui5CarouselRoot(): HTMLElement | null | undefined {\n return this._carousel?.shadowRoot?.querySelector(\".ui5-carousel-root\");\n }\n\n _calculateDisabledButtonsState() {\n this.isPrevButtonDisabled = !this._carousel?.hasPrev;\n this.isNextButtonDisabled = !this._carousel?.hasNext;\n }\n\n _prevButtonClick(e: UI5CustomEvent<UDExButton, \"click\">) {\n if (this.isPrevButtonDisabled) {\n return;\n }\n\n this._carousel?._navButtonClick(e as unknown as UI5CustomEvent<Icon, \"click\">);\n }\n\n _nextButtonClick(e: UI5CustomEvent<UDExButton, \"click\">) {\n if (this.isNextButtonDisabled) {\n return;\n }\n\n this._carousel?._navButtonClick(e as unknown as UI5CustomEvent<Icon, \"click\">);\n }\n\n _onkeydown(e: KeyboardEvent) {\n if (isLeft(e) || isDown(e) || isRight(e) || isUp(e)) {\n this._calculateDisabledButtonsState();\n }\n }\n\n _handleNavigate(e: UI5CustomEvent<UI5Carousel, \"navigate\">): void {\n this._calculateDisabledButtonsState();\n\n this.fireDecoratorEvent(\"navigate\", e.detail);\n }\n\n onAfterRendering() {\n redirectAttributes(this, \"carousel\");\n\n this._calculateDisabledButtonsState();\n }\n}\n\nUDExCarousel.define();\n\nexport default UDExCarousel;\n"]}
|
|
1
|
+
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n isUp, isDown, isRight, isLeft,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n CAROUSEL_NEXT_ARROW_TEXT,\n CAROUSEL_PREVIOUS_ARROW_TEXT,\n CAROUSEL_AUTOPLAY_TOGGLE_START,\n CAROUSEL_AUTOPLAY_TOGGLE_STOP,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport redirectAttributes from \"./utils/redirectAttributes.js\";\nimport type UI5Carousel from \"@ui5/webcomponents/dist/Carousel.js\";\nimport type { CarouselNavigateEventDetail } from \"@ui5/webcomponents/dist/Carousel.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport translate from \"./utils/translate.js\";\n\nimport CarouselTemplate from \"./CarouselTemplate.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\nimport type CarouselPageIndicatorType from \"@ui5/webcomponents/dist/types/CarouselPageIndicatorType.js\";\n\nexport enum UDExCarouselNavigationPosition {\n top = \"top\",\n bottom = \"bottom\",\n}\n\nexport enum UDExCarouselButtonDesign {\n Secondary = \"Secondary\",\n Tertiary = \"Tertiary\",\n}\n\ntype UDExCarouselAutoplayToggleEventDetails = {\n isPaused: boolean;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-carousel</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Carousel.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-carousel\n * @public\n */\n@customElement({\n tag: \"udex-carousel\",\n renderer: jsxRenderer,\n styles: CarouselCss,\n template: CarouselTemplate,\n})\n/**\n * Triggered when carousel navigates to a new slide\n * @public\n * @param { CustomEvent }\n */\n@event(\"navigate\")\n/**\n * Fired event when the user click on a play/paused button.\n *\n * @public\n * @param {boolean} isPaused - Indicates current state of autoplay\n */\n@event(\"autoplay-toggle-click\", { bubbles: true })\n\nclass UDExCarousel extends UI5Element {\n eventDetails!: {\n \"navigate\": CarouselNavigateEventDetail,\n \"autoplay-toggle-click\": UDExCarouselAutoplayToggleEventDetails,\n };\n /**\n * Defines the position of the navigation.\n * <br><br>\n * Available options are:\n * <ul>\n * <li><code>top</code> - the navigation button are placed above the component.</li>\n * <li><code>bottom</code> - the navigation button arrows are placed below the component.</li>\n * </ul>\n *\n * @public\n */\n @property()\n navigationPlacement: `${UDExCarouselNavigationPosition}` = UDExCarouselNavigationPosition.top;\n /**\n * Controls carousel autoplay functionality\n * @public\n * @default undefined\n */\n @property({ type: Boolean })\n autoplay?: boolean;\n\n /**\n * Defines carousel autoplay speed in milliseconds till next slide\n * @public\n */\n @property({ type: Number })\n autoplaySpeed: number = 2000;\n\n /**\n * Indicates current state of autoplay.\n *\n * @default true\n * @private\n */\n @property({ type: Boolean })\n _autoplayIsPaused = true;\n\n /**\n * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.\n * @public\n * @default false\n */\n @property({ type: Boolean })\n cyclic?: boolean;\n\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n items!: DefaultSlot<HTMLElement>;\n\n /**\n * Defines the number of items per page depending on the carousel width.\n *\n * - 'S' for screens smaller than 600 pixels.\n * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n * - 'XL' for screens greater than or equal to 1440 pixels.\n *\n * One item per page is shown by default.\n * @default \"S1 M1 L1 XL1\"\n * @public\n */\n @property()\n itemsPerPage = \"S1 M1 L1 XL1\";\n\n /**\n * Defines the style of the page indicator.\n * Available options are:\n *\n * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n * @since 1.10\n * @default \"Default\"\n * @public\n */\n @property()\n pageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n /**\n * Defines the prev button is disabled\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isPrevButtonDisabled!: boolean;\n\n /**\n * Defines the next button is disabled\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isNextButtonDisabled!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default ''\n * @public\n */\n @property({ type: String })\n accessibleName: string = \"\";\n\n /**\n * Tracks whether the inner carousel has multiple pages (updated after render).\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _hasManyPages = false;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _autoplayInterval: ReturnType<typeof setInterval> | null = null;\n _autoplayLastToggle = Date.now();\n _autoplayMinTimeBetweenToggle = 250;\n _autoplayManualStop = false;\n _resizeHandler: ResizeObserverCallback;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n }\n\n onAfterRendering() {\n redirectAttributes(this, \"carousel\");\n\n this._calculateDisabledButtonsState();\n\n if (this._autoplayInterval === null) {\n this._startAutoplay();\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._resizeHandler);\n\n if (this._autoplayInterval) {\n clearInterval(this._autoplayInterval);\n }\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._resizeHandler);\n }\n\n _onResize(): void {\n this._hasManyPages = this._carousel?.hasManyPages ?? false;\n }\n\n _autoplayLoop = () => {\n const items = this._carousel?.items;\n if (!items) {\n return;\n }\n\n const currentSlide = this._carousel._currentPageIndex;\n const itemsPerPage = this._carousel.effectiveItemsPerPage;\n const isLastSlide = currentSlide === (items.length - itemsPerPage);\n\n if (isLastSlide && !this.cyclic) {\n this._stopAutoplay();\n this._autoplayManualStop = true;\n\n return;\n }\n\n const nextSlide = isLastSlide ? 0 : (currentSlide + itemsPerPage);\n\n this._carousel?.navigateTo(nextSlide);\n this._calculateDisabledButtonsState();\n };\n\n _startAutoplay(): void {\n if (!this.autoplay) {\n return;\n }\n\n if (!this._carousel?.items) {\n console.warn(\"[UDExCarousel] Cannot start autoplay on an empty carousel\");\n return;\n }\n\n const toggleBuffer = Date.now() - this._autoplayLastToggle;\n if (this._autoplayInterval !== null && toggleBuffer <= this._autoplayMinTimeBetweenToggle) {\n this._autoplayLastToggle = Date.now();\n return;\n }\n\n if (this._autoplayInterval !== null) {\n clearInterval(this._autoplayInterval);\n }\n\n this._autoplayInterval = setInterval(this._autoplayLoop, this.autoplaySpeed);\n this._autoplayIsPaused = false;\n this._autoplayLastToggle = Date.now();\n }\n\n _stopAutoplay(): void {\n if (!this._autoplayInterval) {\n return;\n }\n\n clearInterval(this._autoplayInterval);\n this._autoplayIsPaused = true;\n this._autoplayLastToggle = Date.now();\n }\n\n _onAutoplayToggleClick(): void {\n if (this._autoplayIsPaused) {\n this._startAutoplay();\n this._autoplayManualStop = false;\n } else {\n this._stopAutoplay();\n this._autoplayManualStop = true;\n }\n\n this.fireDecoratorEvent(\"autoplay-toggle-click\", {\n isPaused: this._autoplayIsPaused,\n });\n }\n\n _onFocusIn(): void {\n this._stopAutoplay();\n }\n\n _onFocusOut(): void {\n if (!this._autoplayManualStop) {\n this._startAutoplay();\n }\n }\n\n _onMouseEnter(): void {\n this._stopAutoplay();\n }\n\n _onMouseLeave(): void {\n if (!this._autoplayManualStop) {\n this._startAutoplay();\n }\n }\n\n _calculateDisabledButtonsState() {\n this.isPrevButtonDisabled = !this._carousel?.hasPrev;\n this.isNextButtonDisabled = !this._carousel?.hasNext;\n }\n\n _prevButtonClick() {\n if (this.isPrevButtonDisabled || !this._carousel) {\n return;\n }\n\n this._carousel.navigateLeft();\n this._calculateDisabledButtonsState();\n }\n\n _nextButtonClick() {\n if (this.isNextButtonDisabled || !this._carousel) {\n return;\n }\n\n this._carousel.navigateRight();\n this._calculateDisabledButtonsState();\n }\n\n _onkeydown(e: KeyboardEvent) {\n if (isLeft(e) || isDown(e) || isRight(e) || isUp(e)) {\n this._calculateDisabledButtonsState();\n }\n }\n\n _handleNavigate(e: UI5CustomEvent<UI5Carousel, \"navigate\">): void {\n this._calculateDisabledButtonsState();\n\n this.fireDecoratorEvent(\"navigate\", e.detail);\n }\n\n get nextPageText(): string {\n return translate(UDExCarousel, CAROUSEL_NEXT_ARROW_TEXT);\n }\n\n get previousPageText(): string {\n return translate(UDExCarousel, CAROUSEL_PREVIOUS_ARROW_TEXT);\n }\n\n get carouselClass(): string {\n const classes = \"udex-carousel\";\n\n return `${classes} udex-carousel__navigation--${this.navigationPlacement}`;\n }\n\n get navigationWrapperClass(): string {\n let _class = \"udex-carousel__navigation-wrapper\";\n\n if (this.autoplay) {\n _class += \" udex-carousel__navigation-wrapper--autoplay\";\n }\n\n return _class;\n }\n\n get navigationButtonWrapperClass(): string {\n let _class = \"udex-carousel__navigation-button-wrapper\";\n\n if (this._carousel?.isPageTypeDots) {\n _class += \" udex-carousel__navigation-button-wrapper--dot-indicators\";\n }\n\n return _class;\n }\n\n get buttonDesign(): UDExCarouselButtonDesign {\n return this.navigationPlacement === UDExCarouselNavigationPosition.top\n ? UDExCarouselButtonDesign.Secondary\n : UDExCarouselButtonDesign.Tertiary;\n }\n\n get showNavigationButtons(): { top: boolean; bottom: boolean } {\n return {\n top: this.navigationPlacement === UDExCarouselNavigationPosition.top && this._hasManyPages,\n bottom: this.navigationPlacement === UDExCarouselNavigationPosition.bottom && this._hasManyPages,\n };\n }\n\n get _hidePageIndicator(): boolean {\n return this.navigationPlacement === UDExCarouselNavigationPosition.top;\n }\n\n get _carousel(): UI5Carousel | null {\n return this.shadowRoot!.querySelector<UI5Carousel>(\"[ui5-carousel]\");\n }\n\n get _isBottomNavigation(): boolean {\n return this.navigationPlacement === UDExCarouselNavigationPosition.bottom;\n }\n\n get autoplayToggleButtonTooltipText(): string {\n return this._autoplayIsPaused\n ? translate(UDExCarousel, CAROUSEL_AUTOPLAY_TOGGLE_START)\n : translate(UDExCarousel, CAROUSEL_AUTOPLAY_TOGGLE_STOP);\n }\n}\n\nUDExCarousel.define();\n\nexport default UDExCarousel;\nexport type { CarouselNavigateEventDetail, UDExCarouselAutoplayToggleEventDetails };\n"]}
|
package/dist/CarouselTemplate.js
CHANGED
|
@@ -2,14 +2,21 @@ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime"
|
|
|
2
2
|
import UI5Carousel from "@ui5/webcomponents/dist/Carousel.js";
|
|
3
3
|
import UDExButton from "./Button.js";
|
|
4
4
|
import UDExButtonSize from "./types/ButtonSize.js";
|
|
5
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
5
6
|
import CarouselArrowsPlacement from "@ui5/webcomponents/dist/types/CarouselArrowsPlacement.js";
|
|
6
7
|
import slimArrowLeft from "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
|
|
7
8
|
import slimArrowRight from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
9
|
+
import play from "@ui5/webcomponents-icons/dist/play.js";
|
|
10
|
+
import pause from "@ui5/webcomponents-icons/dist/pause.js";
|
|
8
11
|
export default function CarouselTemplate() {
|
|
9
|
-
return (_jsxs("div", { className: this.carouselClass, onKeyDown: this._onkeydown, children: [this.showNavigationButtons.top && navigation.call(this), _jsx(UI5Carousel, { itemsPerPage: this.itemsPerPage, pageIndicatorType: this.pageIndicatorType, id: "carousel", hideNavigationArrows: true, arrowsPlacement: CarouselArrowsPlacement.Navigation, accessibleName: this.accessibleName, hidePageIndicator: this._hidePageIndicator, onNavigate: this._handleNavigate, children: this.items.map(item => _jsx("slot", { name: item._individualSlot })) }), this.showNavigationButtons.bottom && navigation.call(this)] }));
|
|
12
|
+
return (_jsxs("div", { className: this.carouselClass, onKeyDown: this._onkeydown, children: [this.showNavigationButtons.top && navigation.call(this), _jsx(UI5Carousel, { itemsPerPage: this.itemsPerPage, pageIndicatorType: this.pageIndicatorType, id: "carousel", hideNavigationArrows: true, arrowsPlacement: CarouselArrowsPlacement.Navigation, accessibleName: this.accessibleName, hidePageIndicator: this._hidePageIndicator, onNavigate: this._handleNavigate, onMouseEnter: this._onMouseEnter, onMouseLeave: this._onMouseLeave, onFocusIn: this._onFocusIn, onFocusOut: this._onFocusOut, cyclic: this.cyclic, children: this.items.map(item => _jsx("slot", { name: item._individualSlot })) }), this.showNavigationButtons.bottom && navigation.call(this)] }));
|
|
10
13
|
}
|
|
11
14
|
function navigation() {
|
|
12
15
|
const btnClassName = "udex-carousel__navigation-button";
|
|
13
|
-
|
|
16
|
+
const icon = this._autoplayIsPaused ? play : pause;
|
|
17
|
+
return (_jsxs("div", { className: this.navigationWrapperClass, part: "navigation", children: [this.autoplay &&
|
|
18
|
+
_jsx(UDExButton, { class: `udex-carousel__autoplay-toggle-button`, size: UDExButtonSize.Large, design: UDExButtonDesign.Tertiary, icon: icon, onClick: this._onAutoplayToggleClick, tooltip: this.autoplayToggleButtonTooltipText }), _jsxs("div", { className: this.navigationButtonWrapperClass, children: [_jsx(UDExButton, { "data-ui5-arrow-back": true, size: UDExButtonSize.Large, disabled: this.isPrevButtonDisabled, class: btnClassName, icon: slimArrowLeft, design: this.buttonDesign, tooltip: this.previousPageText, onClick: this._prevButtonClick, part: "prev-button" }), this._isBottomNavigation &&
|
|
19
|
+
_jsx("div", { className: "udex-carousel__navigation-page-indicator-spacer" }), _jsx(UDExButton, { "data-ui5-arrow-forward": true, size: UDExButtonSize.Large, disabled: this.isNextButtonDisabled, class: btnClassName, icon: slimArrowRight, design: this.buttonDesign, tooltip: this.nextPageText, onClick: this._nextButtonClick, part: "next-button" })] }), this.autoplay && this._isBottomNavigation &&
|
|
20
|
+
_jsx("div", { className: "udex-carousel__navigation-spacer" })] }));
|
|
14
21
|
}
|
|
15
22
|
//# sourceMappingURL=CarouselTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselTemplate.js","sourceRoot":"","sources":["../src/CarouselTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,WAAW,MAAM,qCAAqC,CAAC;AAC9D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CarouselTemplate.js","sourceRoot":"","sources":["../src/CarouselTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Carousel from \"./Carousel.js\";\nimport UI5Carousel from \"@ui5/webcomponents/dist/Carousel.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport type SlottedChild from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport CarouselArrowsPlacement from \"@ui5/webcomponents/dist/types/CarouselArrowsPlacement.js\";\nimport slimArrowLeft from \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport play from \"@ui5/webcomponents-icons/dist/play.js\";\nimport pause from \"@ui5/webcomponents-icons/dist/pause.js\";\n\nexport default function CarouselTemplate(this: Carousel) {\n return (\n <div className={this.carouselClass} onKeyDown={this._onkeydown}>\n {this.showNavigationButtons.top && navigation.call(this)}\n\n <UI5Carousel\n itemsPerPage={this.itemsPerPage}\n pageIndicatorType={this.pageIndicatorType}\n id=\"carousel\"\n hideNavigationArrows\n arrowsPlacement={CarouselArrowsPlacement.Navigation}\n accessibleName={this.accessibleName}\n hidePageIndicator={this._hidePageIndicator}\n onNavigate={this._handleNavigate}\n onMouseEnter={this._onMouseEnter}\n onMouseLeave={this._onMouseLeave}\n onFocusIn={this._onFocusIn}\n onFocusOut={this._onFocusOut}\n cyclic={this.cyclic}\n >\n {\n this.items.map(item =>\n <slot name={(item as SlottedChild)._individualSlot}></slot>\n )\n }\n </UI5Carousel>\n\n {this.showNavigationButtons.bottom && navigation.call(this)}\n </div>\n );\n}\n\nfunction navigation(this: Carousel) {\n const btnClassName = \"udex-carousel__navigation-button\";\n const icon = this._autoplayIsPaused ? play : pause;\n\n return (\n <div className={this.navigationWrapperClass} part=\"navigation\">\n {\n this.autoplay &&\n <UDExButton\n class={`udex-carousel__autoplay-toggle-button`}\n size={UDExButtonSize.Large}\n design={UDExButtonDesign.Tertiary}\n icon={icon}\n onClick={this._onAutoplayToggleClick}\n tooltip={this.autoplayToggleButtonTooltipText}\n ></UDExButton>\n }\n\n <div className={this.navigationButtonWrapperClass}>\n <UDExButton\n data-ui5-arrow-back\n size={UDExButtonSize.Large}\n disabled={this.isPrevButtonDisabled}\n class={btnClassName}\n icon={slimArrowLeft}\n design={this.buttonDesign}\n tooltip={this.previousPageText}\n onClick={this._prevButtonClick}\n part=\"prev-button\">\n </UDExButton>\n\n {\n this._isBottomNavigation &&\n <div className=\"udex-carousel__navigation-page-indicator-spacer\" />\n }\n\n <UDExButton\n data-ui5-arrow-forward\n size={UDExButtonSize.Large}\n disabled={this.isNextButtonDisabled}\n class={btnClassName}\n icon={slimArrowRight}\n design={this.buttonDesign}\n tooltip={this.nextPageText}\n onClick={this._nextButtonClick}\n part=\"next-button\">\n </UDExButton>\n </div>\n\n {\n this.autoplay && this._isBottomNavigation &&\n <div className=\"udex-carousel__navigation-spacer\"></div>\n }\n </div>\n );\n}\n"]}
|
package/dist/DatePicker.d.ts
CHANGED
|
@@ -136,6 +136,11 @@ declare class UDExDatePicker extends DateComponentBase {
|
|
|
136
136
|
* @private
|
|
137
137
|
*/
|
|
138
138
|
_tempValue: string;
|
|
139
|
+
/**
|
|
140
|
+
* Tracks whether the calendar popover is currently open, used to reflect aria-expanded on the control button.
|
|
141
|
+
* @private
|
|
142
|
+
*/
|
|
143
|
+
_isPopoverOpen: boolean;
|
|
139
144
|
static i18nBundle: I18nBundle;
|
|
140
145
|
responsivePopover?: UDExDropdown;
|
|
141
146
|
private _getCurrentFormat;
|
package/dist/DatePicker.js
CHANGED
|
@@ -88,6 +88,11 @@ let UDExDatePicker = UDExDatePicker_1 = class UDExDatePicker extends DateCompone
|
|
|
88
88
|
*/
|
|
89
89
|
this.valueState = UDExValueState.Standard;
|
|
90
90
|
this.formatPattern = UDExDatePicker_1.DEFAULT_FORMAT_PATTERN;
|
|
91
|
+
/**
|
|
92
|
+
* Tracks whether the calendar popover is currently open, used to reflect aria-expanded on the control button.
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
this._isPopoverOpen = false;
|
|
91
96
|
}
|
|
92
97
|
_getCurrentFormat() { return this.getFormat(); }
|
|
93
98
|
_getResponsePopover() {
|
|
@@ -101,12 +106,14 @@ let UDExDatePicker = UDExDatePicker_1 = class UDExDatePicker extends DateCompone
|
|
|
101
106
|
return this.shadowRoot.querySelector("[udex-text-field]");
|
|
102
107
|
}
|
|
103
108
|
_afterDropdownClose() {
|
|
109
|
+
this._isPopoverOpen = false;
|
|
104
110
|
this._dropdownTrigger.active = false;
|
|
105
111
|
this._dropdownTrigger.iconActive = false;
|
|
106
112
|
this._dropdownTrigger.shadowRoot?.querySelector("input")?.blur();
|
|
107
113
|
this._tempValue = "";
|
|
108
114
|
}
|
|
109
115
|
_afterDropdownOpen() {
|
|
116
|
+
this._isPopoverOpen = true;
|
|
110
117
|
this._dropdownTrigger.iconActive = true;
|
|
111
118
|
}
|
|
112
119
|
_closeRespPopover() {
|
|
@@ -417,6 +424,9 @@ __decorate([
|
|
|
417
424
|
__decorate([
|
|
418
425
|
property()
|
|
419
426
|
], UDExDatePicker.prototype, "_tempValue", void 0);
|
|
427
|
+
__decorate([
|
|
428
|
+
property({ type: Boolean, noAttribute: true })
|
|
429
|
+
], UDExDatePicker.prototype, "_isPopoverOpen", void 0);
|
|
420
430
|
__decorate([
|
|
421
431
|
i18n("@sapudex/web-components")
|
|
422
432
|
], UDExDatePicker, "i18nBundle", void 0);
|