@sapudex/web-components 2.1.1 → 2.3.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 +1 -0
- package/cypress/fixtures/event-ribbon-links.ts +5 -0
- package/cypress/specs/Accordion.cy.tsx +1 -2
- package/cypress/specs/AccordionItem.cy.tsx +1 -1
- package/cypress/specs/Avatar.cy.tsx +1 -1
- package/cypress/specs/AvatarGroup.cy.tsx +1 -2
- package/cypress/specs/Badge.cy.tsx +1 -1
- package/cypress/specs/CountrySelector.cy.tsx +10 -4
- package/cypress/specs/EventRibbon.cy.tsx +110 -0
- package/cypress/specs/Footer.cy.tsx +1 -1
- package/cypress/specs/ListItem.cy.tsx +5 -5
- package/cypress/specs/PhoneNumberField.cy.tsx +4 -2
- package/cypress/specs/Review.cy.tsx +1 -3
- package/cypress/specs/ReviewItem.cy.tsx +1 -1
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +129 -131
- package/cypress/specs/SecondaryNavigationMobile.cy.tsx +27 -38
- package/cypress/specs/SelectBox.cy.tsx +93 -88
- package/cypress/specs/Slider.cy.tsx +5 -4
- package/cypress/specs/StatusBadge.cy.tsx +1 -1
- package/cypress/specs/StatusMessage.cy.tsx +1 -1
- package/cypress/specs/Switch.cy.tsx +1 -2
- package/cypress/specs/Table.cy.tsx +1 -9
- package/cypress/specs/Tag.cy.tsx +1 -1
- package/cypress/specs/TagGroup.cy.tsx +1 -2
- package/cypress/specs/TextField.cy.tsx +1 -1
- package/cypress/specs/Textarea.cy.tsx +1 -1
- package/cypress/specs/Toast.cy.tsx +1 -1
- package/cypress/specs/Tooltip.cy.tsx +1 -2
- package/cypress/specs/TruncatedText.cy.tsx +2 -1
- package/cypress/specs/Upload.cy.tsx +1 -2
- package/cypress/specs/UploadItem.cy.tsx +1 -1
- package/cypress/specs/Wizard.cy.tsx +7 -4
- package/cypress/support/component-imports.instrumented.ts +91 -0
- package/cypress/support/component-imports.src.ts +91 -0
- package/cypress/support/component.ts +1 -1
- package/cypress.config.ts +6 -0
- package/dist/AssetsVariables.js +4 -0
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/Badge.d.ts +2 -2
- package/dist/Badge.js +4 -4
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +1 -0
- package/dist/Breadcrumbs.js +11 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.d.ts +19 -1
- package/dist/Button.js +15 -1
- package/dist/Button.js.map +1 -1
- package/dist/Checkbox.d.ts +1 -0
- package/dist/Checkbox.js +3 -0
- package/dist/Checkbox.js.map +1 -1
- package/dist/ControlButton.d.ts +2 -1
- package/dist/ControlButton.js +2 -1
- package/dist/ControlButton.js.map +1 -1
- package/dist/CountrySelector.d.ts +2 -2
- package/dist/CountrySelector.js +3 -1
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +2 -2
- package/dist/DatePicker.js +2 -1
- package/dist/DatePicker.js.map +1 -1
- package/dist/EventRibbon.d.ts +80 -0
- package/dist/EventRibbon.js +111 -0
- package/dist/EventRibbon.js.map +1 -0
- package/dist/EventRibbonTemplate.d.ts +2 -0
- package/dist/EventRibbonTemplate.js +7 -0
- package/dist/EventRibbonTemplate.js.map +1 -0
- package/dist/HeroBanner.d.ts +1 -1
- package/dist/InputGroup.d.ts +5 -2
- package/dist/InputGroup.js +6 -0
- package/dist/InputGroup.js.map +1 -1
- package/dist/ListItem.d.ts +3 -2
- package/dist/ListItem.js +2 -2
- package/dist/ListItem.js.map +1 -1
- package/dist/MastheadItem.js +1 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadShell.d.ts +4 -1
- package/dist/MastheadShell.js +21 -5
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.d.ts +2 -1
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerYoutube.d.ts +2 -1
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/Pagination.d.ts +18 -4
- package/dist/Pagination.js +33 -31
- package/dist/Pagination.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +10 -7
- package/dist/PhoneNumberField.js +8 -2
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/ProgressBar.d.ts +2 -2
- package/dist/ProgressBar.js +6 -6
- package/dist/ProgressBar.js.map +1 -1
- package/dist/RadioButton.d.ts +2 -2
- package/dist/RadioButton.js +6 -6
- package/dist/RadioButton.js.map +1 -1
- package/dist/Search.d.ts +0 -1
- package/dist/Search.js +1 -3
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +9 -0
- package/dist/SearchableListBase.js +10 -2
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +4 -1
- package/dist/SecondaryNavigation.js +38 -10
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +10 -0
- package/dist/SecondaryNavigationItem.js +19 -0
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.d.ts +1 -0
- package/dist/SecondaryNavigationItemBase.js +4 -0
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +0 -1
- package/dist/SecondaryNavigationSubItem.js +0 -4
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SegmentedButton.d.ts +1 -1
- package/dist/SegmentedButton.js +1 -1
- package/dist/SegmentedButton.js.map +1 -1
- package/dist/SegmentedButtonItem.d.ts +1 -1
- package/dist/SegmentedButtonItem.js +2 -2
- package/dist/SegmentedButtonItem.js.map +1 -1
- package/dist/StatusBadge.d.ts +8 -3
- package/dist/StatusBadge.js +9 -1
- package/dist/StatusBadge.js.map +1 -1
- package/dist/StepInput.d.ts +3 -3
- package/dist/StepInput.js.map +1 -1
- package/dist/TableCellBase.d.ts +2 -2
- package/dist/TableCellBase.js.map +1 -1
- package/dist/Tag.d.ts +2 -2
- package/dist/Tag.js +4 -4
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.d.ts +2 -2
- package/dist/TextArea.js +9 -9
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.d.ts +9 -2
- package/dist/TextField.js +8 -5
- package/dist/TextField.js.map +1 -1
- package/dist/Toast.js +1 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Upload.d.ts +1 -1
- package/dist/Upload.js +1 -1
- package/dist/Upload.js.map +1 -1
- package/dist/UploadItem.d.ts +3 -3
- package/dist/UploadItem.js +9 -9
- package/dist/UploadItem.js.map +1 -1
- package/dist/Wizard.d.ts +20 -1
- package/dist/Wizard.js +22 -9
- package/dist/Wizard.js.map +1 -1
- package/dist/WizardTemplate.js +1 -1
- package/dist/WizardTemplate.js.map +1 -1
- package/dist/assets/InputSuggestions-BgbbJ4tc.js +2 -0
- package/dist/assets/{ListItemStandardExpandableTextTemplate-CLBtdbBK.js → ListItemStandardExpandableTextTemplate-onAnn1Tj.js} +2 -2
- package/dist/assets/bundle.esm-CwUfibNQ.js +389 -0
- package/dist/assets/parameters-bundle.css-1GGBOW8m.js +2 -0
- package/dist/assets/parameters-bundle.css-A9eeRg2R.js +2 -0
- package/dist/assets/parameters-bundle.css-COBI_9-U.js +2 -0
- package/dist/assets/parameters-bundle.css-CgAoZ-Ir.js +2 -0
- package/dist/assets/parameters-bundle.css-DuFHHRNK.js +2 -0
- package/dist/assets/parameters-bundle.css-Pf68NO0T.js +2 -0
- package/dist/assets/parameters-bundle.css-aX_t_-9o.js +2 -0
- package/dist/assets/parameters-bundle.css-rNSryFKH.js +2 -0
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/DatePickerPopover.css +1 -1
- package/dist/css/themes/EventRibbon.css +1 -0
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SideNavigationItem.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/custom-elements-internal.json +471 -37
- package/dist/custom-elements.json +442 -35
- package/dist/data/CountryListISO3166.d.ts +13 -4
- package/dist/data/CountryListISO3166.js +8 -0
- package/dist/data/CountryListISO3166.js.map +1 -1
- package/dist/generated/json-imports/Themes-node.d.ts +1 -0
- package/dist/generated/json-imports/Themes-node.js +19 -0
- package/dist/generated/json-imports/Themes-node.js.map +1 -0
- package/dist/generated/json-imports/i18n-node.d.ts +1 -0
- package/dist/generated/json-imports/i18n-node.js +82 -0
- package/dist/generated/json-imports/i18n-node.js.map +1 -0
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +2 -2
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +3 -3
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +2 -2
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- 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/DatePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.d.ts +2 -0
- package/dist/generated/themes/EventRibbon.css.js +8 -0
- package/dist/generated/themes/EventRibbon.css.js.map +1 -0
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
- package/dist/generated/themes/MastheadCountrySelector.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/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/Modal.css.d.ts +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.d.ts +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.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/SideNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.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/types/ButtonAccessibleRole.d.ts +8 -0
- package/dist/types/ButtonAccessibleRole.js +10 -0
- package/dist/types/ButtonAccessibleRole.js.map +1 -0
- package/dist/types/{Button.d.ts → ButtonDesign.d.ts} +1 -15
- package/dist/types/ButtonDesign.js +16 -0
- package/dist/types/ButtonDesign.js.map +1 -0
- package/dist/types/ButtonSize.d.ts +6 -0
- package/dist/types/ButtonSize.js +8 -0
- package/dist/types/ButtonSize.js.map +1 -0
- package/dist/types/ControlButtonDesign.d.ts +10 -0
- package/dist/types/ControlButtonDesign.js +12 -0
- package/dist/types/ControlButtonDesign.js.map +1 -0
- package/dist/types/EventRibbon.d.ts +37 -0
- package/dist/types/EventRibbon.js +43 -0
- package/dist/types/EventRibbon.js.map +1 -0
- package/dist/types/ProgressBar.d.ts +1 -1
- package/dist/types/ProgressBar.js +1 -1
- package/dist/types/ProgressBar.js.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.js +1 -1
- package/dist/types/common.js.map +1 -1
- package/dist/vscode.html-custom-data.json +110 -10
- package/dist/web-types.json +159 -13
- package/filter-coverage.js +58 -0
- package/package.json +14 -9
- package/src/AssetsVariables.ts +4 -0
- package/src/Badge.ts +4 -4
- package/src/Breadcrumbs.hbs +7 -10
- package/src/Breadcrumbs.ts +14 -1
- package/src/BreadcrumbsPopover.hbs +3 -1
- package/src/Button.ts +21 -1
- package/src/Checkbox.ts +4 -0
- package/src/ControlButton.ts +2 -1
- package/src/CountrySelector.ts +5 -3
- package/src/DatePicker.ts +4 -3
- package/src/EventRibbon.ts +143 -0
- package/src/EventRibbonTemplate.tsx +18 -0
- package/src/InputGroup.ts +5 -2
- package/src/ListItem.ts +4 -4
- package/src/MastheadItem.ts +1 -1
- package/src/MastheadShell.ts +25 -5
- package/src/MediaPlayer.ts +3 -1
- package/src/MediaPlayerYoutube.ts +4 -2
- package/src/Pagination.hbs +7 -3
- package/src/Pagination.ts +49 -32
- package/src/PhoneNumberField.hbs +1 -1
- package/src/PhoneNumberField.ts +13 -5
- package/src/ProgressBar.ts +6 -6
- package/src/RadioButton.ts +6 -6
- package/src/Search.hbs +3 -2
- package/src/Search.ts +1 -3
- package/src/SearchableListBase.ts +18 -2
- package/src/SecondaryNavigation.hbs +1 -0
- package/src/SecondaryNavigation.ts +41 -12
- package/src/SecondaryNavigationItem.hbs +2 -1
- package/src/SecondaryNavigationItem.ts +31 -0
- package/src/SecondaryNavigationItemBase.ts +3 -0
- package/src/SecondaryNavigationSubItem.ts +0 -3
- package/src/SegmentedButton.ts +1 -1
- package/src/SegmentedButtonItem.ts +2 -2
- package/src/StatusBadge.ts +8 -3
- package/src/StepInput.ts +3 -3
- package/src/TableCellBase.ts +2 -2
- package/src/Tag.ts +4 -4
- package/src/TextArea.ts +9 -9
- package/src/TextField.ts +14 -5
- package/src/Toast.ts +1 -1
- package/src/Upload.ts +1 -1
- package/src/UploadItem.ts +9 -9
- package/src/Wizard.ts +39 -11
- package/src/WizardTemplate.tsx +5 -1
- package/src/data/CountryListISO3166.ts +10 -2
- package/src/generated/json-imports/Themes-node.ts +21 -0
- package/src/generated/json-imports/i18n-node.ts +85 -0
- package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/BreadcrumbsTemplate.lit.ts +1 -1
- package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
- package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchTemplate.lit.ts +3 -3
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +2 -2
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
- package/src/generated/themes/Breadcrumbs.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/DatePickerPopover.css.ts +1 -1
- package/src/generated/themes/EventRibbon.css.ts +9 -0
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SideNavigationItem.css.ts +1 -1
- package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/themes/Breadcrumbs.css +3 -0
- package/src/themes/Button.css +71 -29
- package/src/themes/DatePickerPopover.css +64 -6
- package/src/themes/EventRibbon.css +411 -0
- package/src/themes/ListItem.css +4 -0
- package/src/themes/MastheadCountrySelector.css +8 -5
- package/src/themes/MastheadItem.css +12 -4
- package/src/themes/MastheadShell.css +5 -2
- package/src/themes/Modal.css +6 -1
- package/src/themes/Pagination.css +19 -0
- package/src/themes/Search.css +8 -1
- package/src/themes/SideNavigationItem.css +9 -1
- package/src/themes/SideNavigationSubItem.css +7 -0
- package/src/themes/TextField.css +2 -13
- package/src/types/ButtonAccessibleRole.ts +9 -0
- package/src/types/{Button.ts → ButtonDesign.ts} +1 -17
- package/src/types/ButtonSize.ts +7 -0
- package/src/types/ControlButtonDesign.ts +11 -0
- package/src/types/EventRibbon.ts +51 -0
- package/src/types/ProgressBar.ts +1 -1
- package/src/types/common.ts +1 -1
- package/swap-component-imports.js +18 -0
- package/dist/assets/InputSuggestions-CP3cBQsh.js +0 -2
- package/dist/assets/bundle.esm-jHcdiVfj.js +0 -380
- package/dist/assets/parameters-bundle.css-BU4Bi-ho.js +0 -2
- package/dist/assets/parameters-bundle.css-Beilb2gS.js +0 -2
- package/dist/assets/parameters-bundle.css-BzQMaZUt.js +0 -2
- package/dist/assets/parameters-bundle.css-Bzfv_Fox.js +0 -2
- package/dist/assets/parameters-bundle.css-CLwmjytB.js +0 -2
- package/dist/assets/parameters-bundle.css-CU3plTdF.js +0 -2
- package/dist/assets/parameters-bundle.css-DRX-o-Cb.js +0 -2
- package/dist/assets/parameters-bundle.css-DhFMZJhW.js +0 -2
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +0 -1
- package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +0 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.d.ts +0 -2
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +0 -3
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +0 -1
- package/dist/types/Button.js +0 -33
- package/dist/types/Button.js.map +0 -1
- package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +0 -2
- package/src/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +0 -195
package/src/Badge.ts
CHANGED
|
@@ -9,7 +9,7 @@ import BadgeTemplate from "./generated/templates/BadgeTemplate.lit.js";
|
|
|
9
9
|
|
|
10
10
|
// Styles
|
|
11
11
|
import BadgeCss from "./generated/themes/Badge.css.js";
|
|
12
|
-
import
|
|
12
|
+
import UDExIconPlacement from "./types/IconPlacement.js";
|
|
13
13
|
|
|
14
14
|
import {
|
|
15
15
|
UDExNumberBadgeDesign, UDExSizeBadgeDesign, UDExTextBadgeDesign, UDExTypeBadgeDesign,
|
|
@@ -81,7 +81,7 @@ class UDExBadge extends UI5Element {
|
|
|
81
81
|
* @public
|
|
82
82
|
*/
|
|
83
83
|
@property()
|
|
84
|
-
iconPlacement: `${
|
|
84
|
+
iconPlacement: `${UDExIconPlacement}` = UDExIconPlacement.End;
|
|
85
85
|
/**
|
|
86
86
|
* Defines icon name
|
|
87
87
|
*
|
|
@@ -100,11 +100,11 @@ class UDExBadge extends UI5Element {
|
|
|
100
100
|
default!: Array<Node>;
|
|
101
101
|
|
|
102
102
|
get startIcon(): boolean {
|
|
103
|
-
return !!this.icon && this.iconPlacement ===
|
|
103
|
+
return !!this.icon && this.iconPlacement === UDExIconPlacement.Start;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
get endIcon(): boolean {
|
|
107
|
-
return !!this.icon && this.iconPlacement ===
|
|
107
|
+
return !!this.icon && this.iconPlacement === UDExIconPlacement.End;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
get textClasses(): string {
|
package/src/Breadcrumbs.hbs
CHANGED
|
@@ -3,19 +3,16 @@
|
|
|
3
3
|
aria-label="{{_accessibleNameText}}">
|
|
4
4
|
<ol @focusin="{{_onfocusin}}">
|
|
5
5
|
<li class="udex-breadcrumbs__arrow-wrapper ui5-breadcrumbs-dropdown-arrow-link-wrapper">
|
|
6
|
-
|
|
6
|
+
<udex-link
|
|
7
7
|
id="udex-{{this._id}}-breadcrumbs__opener"
|
|
8
8
|
@click="{{_toggleDropdown}}"
|
|
9
9
|
class="udex-breadcrumbs__trigger {{_triggerClass}}"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
title="{{_dropdownArrowAccessibleNameText}}">
|
|
17
|
-
</ui5-icon>
|
|
18
|
-
</button>
|
|
10
|
+
accessible-role="button"
|
|
11
|
+
aria-label="{{_dropdownArrowAccessibleNameText}}"
|
|
12
|
+
icon="slim-arrow-down"
|
|
13
|
+
icon-placement="Start"
|
|
14
|
+
aria-haspopup="true">
|
|
15
|
+
</udex-link>
|
|
19
16
|
</li>
|
|
20
17
|
{{#each _linksData}}
|
|
21
18
|
<li
|
package/src/Breadcrumbs.ts
CHANGED
|
@@ -122,6 +122,7 @@ class UDExBreadcrumbs extends UI5Element {
|
|
|
122
122
|
|
|
123
123
|
_responsivePopover?: UDExDropdown;
|
|
124
124
|
_itemNavigation?: ItemNavigation;
|
|
125
|
+
_shouldFocusFirstVisibleItem!: boolean;
|
|
125
126
|
|
|
126
127
|
onBeforeRendering(): void {
|
|
127
128
|
this._preprocessItems();
|
|
@@ -130,7 +131,13 @@ class UDExBreadcrumbs extends UI5Element {
|
|
|
130
131
|
onAfterRendering(): void {
|
|
131
132
|
this._responsivePopover = this._getResponsePopover();
|
|
132
133
|
this._initItemNavigation();
|
|
134
|
+
this._dropdownArrowLink.forcedTabIndex = "0";
|
|
133
135
|
this._handleOutsideClick();
|
|
136
|
+
|
|
137
|
+
if (this._shouldFocusFirstVisibleItem) {
|
|
138
|
+
this._getFocusableItems()[1].focus();
|
|
139
|
+
this._shouldFocusFirstVisibleItem = false;
|
|
140
|
+
}
|
|
134
141
|
}
|
|
135
142
|
|
|
136
143
|
_preprocessItems(): void {
|
|
@@ -236,6 +243,12 @@ class UDExBreadcrumbs extends UI5Element {
|
|
|
236
243
|
const isLastItem = itemIndex === (this.items.length - 2).toString();
|
|
237
244
|
const isFirstItem = itemIndex === "0";
|
|
238
245
|
|
|
246
|
+
if (isTabNext(e) && isLastItem) {
|
|
247
|
+
this._shouldFocusFirstVisibleItem = true;
|
|
248
|
+
this._toggleDropdown();
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
|
|
239
252
|
if ((isTabNext(e) && isLastItem) || (isTabPrevious(e) && isFirstItem) || isEscape(e)) {
|
|
240
253
|
this._toggleDropdown();
|
|
241
254
|
}
|
|
@@ -267,7 +280,7 @@ class UDExBreadcrumbs extends UI5Element {
|
|
|
267
280
|
* Getter for the list of links corresponding to the abstract breadcrumb items
|
|
268
281
|
*/
|
|
269
282
|
get _links(): Array<UDExLink> {
|
|
270
|
-
return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(".udex-breadcrumbs__link-wrapper [
|
|
283
|
+
return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(".udex-breadcrumbs__link-wrapper [udex-link]"));
|
|
271
284
|
}
|
|
272
285
|
|
|
273
286
|
/**
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
class="udex-breadcrumbs__popover ui5-breadcrumbs-popover"
|
|
5
5
|
placement="Bottom"
|
|
6
6
|
horizontal-align="Start"
|
|
7
|
-
@keydown="{{_handleKeydown}}"
|
|
7
|
+
@keydown="{{_handleKeydown}}"
|
|
8
|
+
@close="{{_afterDropdownClose}}"
|
|
9
|
+
@open="{{_afterDropdownOpen}}">
|
|
8
10
|
<div class="udex-breadcrumbs__popover-content">
|
|
9
11
|
{{#each _dropdownItems}}
|
|
10
12
|
{{#if this.icon}}
|
package/src/Button.ts
CHANGED
|
@@ -8,7 +8,8 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
8
8
|
import {
|
|
9
9
|
BUTTON_ARIA_ATTENTION, BUTTON_ARIA_DEFAULT, BUTTON_ARIA_EMPHASIZED, BUTTON_ARIA_TRANSPARENT, BUTTON_ARIA_TYPE_NEGATIVE, BUTTON_ARIA_TYPE_POSITIVE, BUTTON_ARIA_TYPE_PRIMARY, BUTTON_ARIA_TYPE_SECONDARY, BUTTON_ARIA_TYPE_TERTIARY, BUTTON_ARIA_TYPE_WARNING, TOGGLED,
|
|
10
10
|
} from "./generated/i18n/i18n-defaults.js";
|
|
11
|
-
import
|
|
11
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
12
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
12
13
|
|
|
13
14
|
// Styles
|
|
14
15
|
import ButtonCss from "./generated/themes/Button.css.js";
|
|
@@ -16,6 +17,16 @@ import ButtonCss from "./generated/themes/Button.css.js";
|
|
|
16
17
|
/**
|
|
17
18
|
* @class
|
|
18
19
|
*
|
|
20
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
21
|
+
*
|
|
22
|
+
*
|
|
23
|
+
* <h3>Usage</h3>
|
|
24
|
+
*
|
|
25
|
+
* For the <code>udex-button</code>
|
|
26
|
+
* <h3>ES6 Module Import</h3>
|
|
27
|
+
*
|
|
28
|
+
* <code>import "@sapudex/web-components/dist/Button.js";</code>
|
|
29
|
+
*
|
|
19
30
|
* @constructor
|
|
20
31
|
* @extends Button
|
|
21
32
|
* @tagname udex-button
|
|
@@ -57,6 +68,15 @@ class UDExButton extends Button {
|
|
|
57
68
|
/** @ts-expect-error */
|
|
58
69
|
design: `${UDExButtonDesign}` = UDExButtonDesign.Primary;
|
|
59
70
|
|
|
71
|
+
/**
|
|
72
|
+
* Defines if button is in pseudo-disabled state.
|
|
73
|
+
*
|
|
74
|
+
* @default false
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
77
|
+
@property({ type: Boolean })
|
|
78
|
+
_ariaDisabled!: boolean;
|
|
79
|
+
|
|
60
80
|
@i18n("@sapudex/web-components")
|
|
61
81
|
static i18nBundle: I18nBundle;
|
|
62
82
|
|
package/src/Checkbox.ts
CHANGED
|
@@ -74,6 +74,10 @@ class UDExCheckbox extends CheckBox {
|
|
|
74
74
|
ResizeHandler.register(this, this._handleResizeBound);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
onAfterRendering() {
|
|
78
|
+
this.shadowRoot?.querySelector(".ui5-checkbox-label")?.removeAttribute("required");
|
|
79
|
+
}
|
|
80
|
+
|
|
77
81
|
onExitDOM(): void {
|
|
78
82
|
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
79
83
|
}
|
package/src/ControlButton.ts
CHANGED
|
@@ -5,7 +5,8 @@ import Button from "@ui5/webcomponents/dist/Button.js";
|
|
|
5
5
|
// Styles
|
|
6
6
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
7
7
|
import ControlButtonCss from "./generated/themes/ControlButton.css.js";
|
|
8
|
-
import
|
|
8
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
9
|
+
import UDExControlButtonDesign from "./types/ControlButtonDesign.js";
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* @class
|
package/src/CountrySelector.ts
CHANGED
|
@@ -267,7 +267,7 @@ class UDExCountrySelector extends UDExSearchableListBase {
|
|
|
267
267
|
|
|
268
268
|
countryList: Country[] = CountryListDB;
|
|
269
269
|
selectedCountry!: Country | undefined;
|
|
270
|
-
_trigger!:
|
|
270
|
+
_trigger!: UDExTextField;
|
|
271
271
|
|
|
272
272
|
_dropdown!: UDExDropdown;
|
|
273
273
|
_search!: Search;
|
|
@@ -314,16 +314,18 @@ class UDExCountrySelector extends UDExSearchableListBase {
|
|
|
314
314
|
this._trigger = this.getTrigger();
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
-
getTrigger():
|
|
318
|
-
return this.shadowRoot!.querySelector("
|
|
317
|
+
getTrigger(): UDExTextField {
|
|
318
|
+
return this.shadowRoot!.querySelector<UDExTextField>("[udex-text-field]")!;
|
|
319
319
|
}
|
|
320
320
|
|
|
321
321
|
_dropdownClose() {
|
|
322
322
|
this.fireDecoratorEvent("close");
|
|
323
|
+
this._trigger.iconActive = false;
|
|
323
324
|
}
|
|
324
325
|
|
|
325
326
|
_dropdownOpen() {
|
|
326
327
|
this.fireDecoratorEvent("open");
|
|
328
|
+
this._trigger.iconActive = true;
|
|
327
329
|
}
|
|
328
330
|
|
|
329
331
|
_dropdownBeforeOpen() {
|
package/src/DatePicker.ts
CHANGED
|
@@ -28,13 +28,13 @@ export enum UDExDatePickerSelectionMode {
|
|
|
28
28
|
Range = "Range",
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
type UDExDatePickerSelectionChangeEventDetail = {
|
|
31
|
+
export type UDExDatePickerSelectionChangeEventDetail = {
|
|
32
32
|
selectedValues: Array<string>;
|
|
33
33
|
selectedDates: Array<number | undefined>;
|
|
34
34
|
timestamp: number | undefined;
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
type UDExDatePickerValueStateChangeEventDetail = {
|
|
37
|
+
export type UDExDatePickerValueStateChangeEventDetail = {
|
|
38
38
|
valueState: `${UDExValueState}`,
|
|
39
39
|
valid: boolean
|
|
40
40
|
}
|
|
@@ -230,12 +230,13 @@ class UDExDatePicker extends DateComponentBase {
|
|
|
230
230
|
|
|
231
231
|
_afterDropdownClose(): void {
|
|
232
232
|
this._dropdownTrigger.active = false;
|
|
233
|
+
this._dropdownTrigger.iconActive = false;
|
|
233
234
|
this._dropdownTrigger.shadowRoot?.querySelector("input")?.blur();
|
|
234
235
|
this._tempValue = "";
|
|
235
236
|
}
|
|
236
237
|
|
|
237
238
|
_afterDropdownOpen(): void {
|
|
238
|
-
this._dropdownTrigger.
|
|
239
|
+
this._dropdownTrigger.iconActive = true;
|
|
239
240
|
}
|
|
240
241
|
|
|
241
242
|
_closeRespPopover(): void {
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
3
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
5
|
+
import type {
|
|
6
|
+
UDExEventRibbonColorSheme, UDExEventRibbonLink, UDExEventRibbonIcon, UDExEventRibbonLogo,
|
|
7
|
+
} from "./types/EventRibbon.js";
|
|
8
|
+
import { eventLogoText, UDExEventRibbonMode } from "./types/EventRibbon.js";
|
|
9
|
+
import "@ui5/webcomponents-icons/add-calendar.js";
|
|
10
|
+
import "@ui5/webcomponents-icons/media-play.js";
|
|
11
|
+
import EventRibbonTemplate from "./EventRibbonTemplate.js";
|
|
12
|
+
|
|
13
|
+
// Styles
|
|
14
|
+
import EventRibbonCss from "./generated/themes/EventRibbon.css.js";
|
|
15
|
+
import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @class
|
|
19
|
+
*
|
|
20
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
21
|
+
*
|
|
22
|
+
*
|
|
23
|
+
* <h3>Usage</h3>
|
|
24
|
+
*
|
|
25
|
+
* For the <code>udex-event-ribbon</code>
|
|
26
|
+
* <h3>ES6 Module Import</h3>
|
|
27
|
+
*
|
|
28
|
+
* <code>import "@sapudex/web-components/dist/EventRibbon.js";</code>
|
|
29
|
+
*
|
|
30
|
+
* @constructor
|
|
31
|
+
* @extends UI5Element
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
@customElement({
|
|
35
|
+
tag: "udex-event-ribbon",
|
|
36
|
+
renderer: jsxRenderer,
|
|
37
|
+
styles: EventRibbonCss,
|
|
38
|
+
template: EventRibbonTemplate,
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
class UDExEventRibbon extends UI5Element {
|
|
42
|
+
/**
|
|
43
|
+
* Defines the text of the event logo.
|
|
44
|
+
*
|
|
45
|
+
* @default ""
|
|
46
|
+
* @public
|
|
47
|
+
*/
|
|
48
|
+
@property({ type: String })
|
|
49
|
+
eventLogo!: `${UDExEventRibbonLogo}`;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Defines the link details of the event ribbon.
|
|
53
|
+
*
|
|
54
|
+
* @default "{}"
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
@property({ type: String })
|
|
58
|
+
eventLink: string = "{}";
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Defines the icon displayed next to the link.
|
|
62
|
+
*
|
|
63
|
+
* @default ""
|
|
64
|
+
* @public
|
|
65
|
+
*/
|
|
66
|
+
@property({ type: String })
|
|
67
|
+
eventLinkIcon!: `${UDExEventRibbonIcon}`;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Defines the text displayed in event ribbon.
|
|
71
|
+
*
|
|
72
|
+
* @default ""
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
@property({ type: String })
|
|
76
|
+
eventText!: string;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Defines whether event-ribbon uses dark or light theme.
|
|
80
|
+
*
|
|
81
|
+
* @default "light"
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
@property({ type: String })
|
|
85
|
+
mode: `${UDExEventRibbonMode}` = UDExEventRibbonMode.light;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Defines the solid background color.
|
|
89
|
+
*
|
|
90
|
+
* @default "Blue"
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
@property({ type: String })
|
|
94
|
+
backgroundColorScheme!: UDExEventRibbonColorSheme;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Allows control over the background image source.
|
|
98
|
+
*
|
|
99
|
+
* @public
|
|
100
|
+
*/
|
|
101
|
+
@property({ type: String })
|
|
102
|
+
backgroundImage?: string;
|
|
103
|
+
|
|
104
|
+
_eventLink!: UDExEventRibbonLink;
|
|
105
|
+
|
|
106
|
+
onBeforeRendering(): void {
|
|
107
|
+
this._eventLink = JSON.parse(this.eventLink);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
onAfterRendering(): void {
|
|
111
|
+
this.applyColorScheme();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
applyColorScheme(): void {
|
|
115
|
+
const backgroundColorLowercase = this.backgroundColorScheme.toLowerCase();
|
|
116
|
+
const backgroundColor: string = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-default-background-color)`;
|
|
117
|
+
const backgroundColorHover: string = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-hover-background-color)`;
|
|
118
|
+
|
|
119
|
+
this.style.setProperty("--udex-event-ribbon-background-color", backgroundColor);
|
|
120
|
+
this.style.setProperty("--udex-event-ribbon-hover-background-color", backgroundColorHover);
|
|
121
|
+
|
|
122
|
+
this.style.setProperty("--udex-event-ribbon-background-image", `url("${this.backgroundImage}")`);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
handleKeyDown(e: KeyboardEvent): void {
|
|
126
|
+
if (isSpace(e) || isEnter(e)) {
|
|
127
|
+
e.preventDefault();
|
|
128
|
+
this.shadowRoot!.querySelector("a")?.click();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
get eventLogoAlt(): string {
|
|
133
|
+
return eventLogoText[this.eventLogo];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
get eventLogoPath(): string {
|
|
137
|
+
return `https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/event-ribbon-logo-${this.eventLogo}.svg`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
UDExEventRibbon.define();
|
|
142
|
+
|
|
143
|
+
export default UDExEventRibbon;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
2
|
+
import type UDExEventRibbon from "./EventRibbon.js";
|
|
3
|
+
|
|
4
|
+
export default function EventRibbonTemplate(this: UDExEventRibbon) {
|
|
5
|
+
const { text, target, url } = this._eventLink;
|
|
6
|
+
return (
|
|
7
|
+
<a onKeyDown={this.handleKeyDown} role="banner" aria-label={this.eventText} class= {{ "udex-event-ribbon__container": true, "udex-event-ribbon__container-with-background-image": this.backgroundImage }} target={target} href={url} title={text}>
|
|
8
|
+
<div class="udex-event-ribbon__logo">
|
|
9
|
+
<img src={this.eventLogoPath} alt={this.eventLogoAlt}/>
|
|
10
|
+
</div>
|
|
11
|
+
{this.eventText && <p class="udex-event-ribbon__text">{this.eventText}</p>}
|
|
12
|
+
<div class="udex-event-ribbon__link-container">
|
|
13
|
+
{this.eventLinkIcon && <Icon name={this.eventLinkIcon}></Icon>}
|
|
14
|
+
<span>{text}</span>
|
|
15
|
+
</div>
|
|
16
|
+
</a>
|
|
17
|
+
);
|
|
18
|
+
}
|
package/src/InputGroup.ts
CHANGED
|
@@ -15,12 +15,15 @@ import {
|
|
|
15
15
|
VALUE_STATE_ERROR,
|
|
16
16
|
VALUE_STATE_SUCCESS,
|
|
17
17
|
} from "./generated/i18n/i18n-defaults.js";
|
|
18
|
-
import type UDExValueState from "./types/common.js";
|
|
19
18
|
|
|
20
19
|
// Styles
|
|
21
20
|
import InputGroupCss from "./generated/themes/InputGroup.css.js";
|
|
22
21
|
|
|
23
|
-
export
|
|
22
|
+
export enum UDExGroupValueState {
|
|
23
|
+
Standard = "Standard",
|
|
24
|
+
Error = "Error",
|
|
25
|
+
Success = "Success",
|
|
26
|
+
}
|
|
24
27
|
|
|
25
28
|
export enum UDExOrientation {
|
|
26
29
|
Vertical = "Vertical",
|
package/src/ListItem.ts
CHANGED
|
@@ -196,16 +196,16 @@ class UDExListItem extends UDExListItemBase {
|
|
|
196
196
|
* @slot
|
|
197
197
|
* @public
|
|
198
198
|
*/
|
|
199
|
-
@slot()
|
|
200
|
-
firstIcon!: Array<
|
|
199
|
+
@slot({ type: UDExButton })
|
|
200
|
+
firstIcon!: Array<UDExButton>;
|
|
201
201
|
/**
|
|
202
202
|
* Slot for second icon.
|
|
203
203
|
*
|
|
204
204
|
* @slot
|
|
205
205
|
* @public
|
|
206
206
|
*/
|
|
207
|
-
@slot()
|
|
208
|
-
secondIcon!: Array<
|
|
207
|
+
@slot({ type: UDExButton })
|
|
208
|
+
secondIcon!: Array<UDExButton>;
|
|
209
209
|
|
|
210
210
|
/**
|
|
211
211
|
* Defines the role attribute of component
|
package/src/MastheadItem.ts
CHANGED
|
@@ -549,7 +549,7 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
|
|
|
549
549
|
}
|
|
550
550
|
|
|
551
551
|
get isMobile(): boolean {
|
|
552
|
-
return BreakpointUtils.
|
|
552
|
+
return BreakpointUtils.isAtMost("M") || this.mastheadShell?._isMobileMode;
|
|
553
553
|
}
|
|
554
554
|
|
|
555
555
|
get isTargetBlank(): boolean {
|
package/src/MastheadShell.ts
CHANGED
|
@@ -387,6 +387,12 @@ class UDExMastheadShell extends UI5Element {
|
|
|
387
387
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
388
388
|
}
|
|
389
389
|
|
|
390
|
+
onBeforeRendering() {
|
|
391
|
+
if (this.isMobileMenuMode) {
|
|
392
|
+
this.setMobileMenuHeight();
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
390
396
|
onAfterRendering() {
|
|
391
397
|
this._rootHolder = this.mastheadHolder;
|
|
392
398
|
this._searchOpener = this.searchOpener;
|
|
@@ -414,7 +420,7 @@ class UDExMastheadShell extends UI5Element {
|
|
|
414
420
|
this.handleMobileMode();
|
|
415
421
|
}
|
|
416
422
|
|
|
417
|
-
if (this.
|
|
423
|
+
if (this.isAtMostBreakpointSizeM) {
|
|
418
424
|
this._isSearchOpened = false;
|
|
419
425
|
}
|
|
420
426
|
|
|
@@ -424,6 +430,10 @@ class UDExMastheadShell extends UI5Element {
|
|
|
424
430
|
return;
|
|
425
431
|
}
|
|
426
432
|
|
|
433
|
+
if (this.isMobileMenuMode) {
|
|
434
|
+
this.setMobileMenuHeight();
|
|
435
|
+
}
|
|
436
|
+
|
|
427
437
|
this._shouldHandleResize = true;
|
|
428
438
|
}
|
|
429
439
|
|
|
@@ -713,6 +723,12 @@ class UDExMastheadShell extends UI5Element {
|
|
|
713
723
|
});
|
|
714
724
|
}
|
|
715
725
|
|
|
726
|
+
setMobileMenuHeight(): void {
|
|
727
|
+
const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue("--udex-masthead-shell-height"));
|
|
728
|
+
const mobileMenuHeight = `${window.innerHeight - mastheadHeight}px`;
|
|
729
|
+
this.style.setProperty("--udex-masthead-shell-mobile-menu-height", mobileMenuHeight);
|
|
730
|
+
}
|
|
731
|
+
|
|
716
732
|
removeMobileMode(): void {
|
|
717
733
|
this._isMobileMode = false;
|
|
718
734
|
this.slottedItems.forEach((item: MastheadSlottedItem) => {
|
|
@@ -735,7 +751,7 @@ class UDExMastheadShell extends UI5Element {
|
|
|
735
751
|
*/
|
|
736
752
|
openSearch(): void {
|
|
737
753
|
const shouldPreventOpeningSearch = this._isSearchOpened
|
|
738
|
-
|| (this.
|
|
754
|
+
|| (this.isAtMostBreakpointSizeM && !this.showSearchByDefault)
|
|
739
755
|
|| this._isMobileMode
|
|
740
756
|
|| (this.isAtLeastBreakpointSizeM && this.showSearchByDefault);
|
|
741
757
|
|
|
@@ -758,7 +774,7 @@ class UDExMastheadShell extends UI5Element {
|
|
|
758
774
|
* @public
|
|
759
775
|
*/
|
|
760
776
|
openMobileMenu(): void {
|
|
761
|
-
if (!this._isMobileMenuOpen &&
|
|
777
|
+
if (!this._isMobileMenuOpen && this.isMobileMenuMode) {
|
|
762
778
|
this.mobileBtn?.handleSelectedChange();
|
|
763
779
|
this.handleOpenMobileMenu();
|
|
764
780
|
}
|
|
@@ -873,7 +889,7 @@ class UDExMastheadShell extends UI5Element {
|
|
|
873
889
|
return !!this.mobileMenu.length;
|
|
874
890
|
}
|
|
875
891
|
|
|
876
|
-
get
|
|
892
|
+
get isAtMostBreakpointSizeM(): boolean {
|
|
877
893
|
return BreakpointUtils.isAtMost("M");
|
|
878
894
|
}
|
|
879
895
|
|
|
@@ -881,6 +897,10 @@ class UDExMastheadShell extends UI5Element {
|
|
|
881
897
|
return BreakpointUtils.isAtLeast("M");
|
|
882
898
|
}
|
|
883
899
|
|
|
900
|
+
get isMobileMenuMode(): boolean {
|
|
901
|
+
return this._isMobileMode || this.isAtMostBreakpointSizeM;
|
|
902
|
+
}
|
|
903
|
+
|
|
884
904
|
get isMainMenuVisible(): boolean {
|
|
885
905
|
return !this.showSearchByDefault && !this._isSearchOpened;
|
|
886
906
|
}
|
|
@@ -890,7 +910,7 @@ class UDExMastheadShell extends UI5Element {
|
|
|
890
910
|
}
|
|
891
911
|
|
|
892
912
|
get shouldHandleMobileView(): boolean {
|
|
893
|
-
return !this.
|
|
913
|
+
return !this.isAtMostBreakpointSizeM && !this.showSearchByDefault;
|
|
894
914
|
}
|
|
895
915
|
|
|
896
916
|
get mainNavigationAriaLabel(): string {
|
package/src/MediaPlayer.ts
CHANGED
|
@@ -19,6 +19,8 @@ import MediaPlayerTemplate from "./generated/templates/MediaPlayerTemplate.lit.j
|
|
|
19
19
|
// Styles
|
|
20
20
|
import MediaPlayerCss from "./generated/themes/MediaPlayer.css.js";
|
|
21
21
|
|
|
22
|
+
export type YoutubePlayer = YT.Player;
|
|
23
|
+
|
|
22
24
|
declare global {
|
|
23
25
|
interface Window {
|
|
24
26
|
videojs: any;
|
|
@@ -352,7 +354,7 @@ class UDExMediaPlayer extends UI5Element {
|
|
|
352
354
|
* Returns video element
|
|
353
355
|
* @public
|
|
354
356
|
*/
|
|
355
|
-
getPlayer(): HTMLVideoElement | HTMLAudioElement |
|
|
357
|
+
getPlayer(): HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null {
|
|
356
358
|
if (this._youtubeSrc) {
|
|
357
359
|
const player = this.shadowRoot?.querySelector("[udex-media-player-youtube]") as UDExMediaPlayerYoutube;
|
|
358
360
|
return player?.getPlayer() || null;
|
|
@@ -3,13 +3,13 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
3
3
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
4
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
5
5
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
6
|
+
import type { UDExAspectRatio } from "./MediaPlayer.js";
|
|
6
7
|
|
|
7
8
|
import MediaPlayerYoutubeTemplate from "./generated/templates/MediaPlayerYoutubeTemplate.lit.js";
|
|
8
9
|
|
|
9
10
|
// Styles
|
|
10
11
|
import MediaPlayerYoutubeCss from "./generated/themes/MediaPlayerYoutube.css.js";
|
|
11
12
|
import MediaPlayerCss from "./generated/themes/MediaPlayer.css.js";
|
|
12
|
-
import type { UDExAspectRatio } from "./MediaPlayer.js";
|
|
13
13
|
|
|
14
14
|
const MATCH_NOCOOKIE = /youtube-nocookie\.com/;
|
|
15
15
|
const MATCH_URL_YOUTUBE = /(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//;
|
|
@@ -22,6 +22,8 @@ const MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;
|
|
|
22
22
|
const MATCH_START_STAMP = /(\d+)(h|m|s)/g;
|
|
23
23
|
const MATCH_NUMERIC = /^\d+$/;
|
|
24
24
|
|
|
25
|
+
export type YoutubePlayer = YT.Player;
|
|
26
|
+
|
|
25
27
|
declare global {
|
|
26
28
|
interface Window {
|
|
27
29
|
onYouTubeIframeAPIReady: () => void;
|
|
@@ -293,7 +295,7 @@ class UDExMediaPlayerYoutube extends UI5Element {
|
|
|
293
295
|
* Returns video element
|
|
294
296
|
* @public
|
|
295
297
|
*/
|
|
296
|
-
getPlayer():
|
|
298
|
+
getPlayer(): YoutubePlayer | null {
|
|
297
299
|
return this.youtubePlayer || null;
|
|
298
300
|
}
|
|
299
301
|
|
package/src/Pagination.hbs
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
<ul class="udex-pagination__list">
|
|
4
4
|
<li class="udex-pagination__item--prev udex-pagination__item">
|
|
5
5
|
<udex-button
|
|
6
|
-
|
|
6
|
+
aria-disabled="{{effectivePrevButtonDisabled}}"
|
|
7
|
+
?_aria-disabled="{{_prevButtonPseudoDisabled}}"
|
|
7
8
|
accessible-name="{{previousPageAccessibleName}}"
|
|
8
9
|
tooltip="{{previousBtnTooltip}}"
|
|
9
10
|
size="Large"
|
|
10
11
|
icon="navigation-left-arrow"
|
|
11
12
|
design="Tertiary"
|
|
12
13
|
@click="{{setPrevPage}}"
|
|
14
|
+
@focusout="{{handlePrevFocusOut}}"
|
|
13
15
|
></udex-button>
|
|
14
16
|
</li>
|
|
15
17
|
{{#if typeFull}}
|
|
@@ -17,7 +19,7 @@
|
|
|
17
19
|
<li class="udex-pagination__item">
|
|
18
20
|
<a class="udex-pagination__page" href="#"
|
|
19
21
|
aria-label="{{accessibleName}}"
|
|
20
|
-
@click="{{../onPageClick}}"
|
|
22
|
+
@click="{{../onPageClick}}"
|
|
21
23
|
?active="{{active}}"
|
|
22
24
|
aria-current="{{ariaCurrent}}"
|
|
23
25
|
index="{{index}}">
|
|
@@ -35,13 +37,15 @@
|
|
|
35
37
|
{{/if}}
|
|
36
38
|
<li class="udex-pagination__item--next udex-pagination__item">
|
|
37
39
|
<udex-button
|
|
38
|
-
|
|
40
|
+
aria-disabled="{{effectiveNextButtonDisabled}}"
|
|
41
|
+
?_aria-disabled="{{_nextButtonPseudoDisabled}}"
|
|
39
42
|
tooltip="{{nextBtnTooltip}}"
|
|
40
43
|
accessible-name="{{nextPageAccessibleName}}"
|
|
41
44
|
size="Large"
|
|
42
45
|
icon="navigation-right-arrow"
|
|
43
46
|
design="Tertiary"
|
|
44
47
|
@click="{{setNextPage}}"
|
|
48
|
+
@focusout="{{handleNextFocusOut}}"
|
|
45
49
|
></udex-button>
|
|
46
50
|
</li>
|
|
47
51
|
</ul>
|