@sapudex/web-components 2.53.0 → 2.55.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/cypress/specs/Breadcrumbs.cy.tsx +3 -1
- package/cypress/specs/FilterMenu.cy.tsx +68 -2
- package/cypress/specs/Footer.cy.tsx +59 -0
- package/cypress/specs/MediaPlayer.cy.tsx +58 -0
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +2 -2
- package/cypress/specs/SelectBox.cy.tsx +117 -0
- package/dist/Accordion.js +1 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js +1 -1
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.d.ts +2 -2
- package/dist/Avatar.js +1 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/Badge.js +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BreadcrumbsTemplate.js +1 -1
- package/dist/BreadcrumbsTemplate.js.map +1 -1
- package/dist/Carousel.js +1 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/Contact.js +1 -1
- package/dist/Contact.js.map +1 -1
- package/dist/ContactItem.js +1 -1
- package/dist/ContactItem.js.map +1 -1
- package/dist/Feed.d.ts +2 -1
- package/dist/Feed.js +1 -1
- package/dist/Feed.js.map +1 -1
- package/dist/FeedItem.d.ts +2 -1
- package/dist/FeedItem.js +1 -1
- package/dist/FeedItem.js.map +1 -1
- package/dist/FilterMenu.d.ts +1 -1
- package/dist/FilterMenu.js +6 -6
- package/dist/FilterMenu.js.map +1 -1
- package/dist/FilterMenuGroupHeader.js +1 -1
- package/dist/FilterMenuGroupHeader.js.map +1 -1
- package/dist/Footer.d.ts +22 -2
- package/dist/Footer.js +41 -4
- package/dist/Footer.js.map +1 -1
- package/dist/FooterTemplate.js +7 -2
- package/dist/FooterTemplate.js.map +1 -1
- package/dist/ImageGridCloud.js +1 -1
- package/dist/ImageGridCloud.js.map +1 -1
- package/dist/ImageGridTable.js +1 -1
- package/dist/ImageGridTable.js.map +1 -1
- package/dist/ImageGridTableItem.js +1 -1
- package/dist/ImageGridTableItem.js.map +1 -1
- package/dist/ImageGridTicker.js +1 -1
- package/dist/ImageGridTicker.js.map +1 -1
- package/dist/InputGroup.js +1 -1
- package/dist/InputGroup.js.map +1 -1
- package/dist/LinkList.js +1 -1
- package/dist/LinkList.js.map +1 -1
- package/dist/List.js +7 -7
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +12 -5
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +1 -1
- package/dist/ListGroupHeaderBase.js +3 -3
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.d.ts +2 -0
- package/dist/ListGroupHeaderTemplate.js +33 -0
- package/dist/ListGroupHeaderTemplate.js.map +1 -0
- package/dist/ListItem.d.ts +3 -3
- package/dist/ListItem.js +5 -4
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +1 -0
- package/dist/ListItemBase.js +8 -4
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemTemplate.d.ts +2 -0
- package/dist/ListItemTemplate.js +18 -0
- package/dist/ListItemTemplate.js.map +1 -0
- package/dist/ListSelectAll.js +4 -5
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/ListSelectAllTemplate.d.ts +2 -0
- package/dist/ListSelectAllTemplate.js +6 -0
- package/dist/ListSelectAllTemplate.js.map +1 -0
- package/dist/ListTemplate.d.ts +2 -0
- package/dist/ListTemplate.js +11 -0
- package/dist/ListTemplate.js.map +1 -0
- package/dist/MastheadItem.d.ts +3 -3
- package/dist/MastheadItem.js +1 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +3 -3
- package/dist/MastheadMobileMenu.js +1 -1
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +3 -2
- package/dist/MastheadProfileMenu.js +1 -1
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +9 -9
- package/dist/MastheadShell.js +1 -1
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.d.ts +1 -1
- package/dist/MediaPlayer.js +11 -3
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerVimeo.d.ts +6 -0
- package/dist/MediaPlayerVimeo.js +27 -6
- package/dist/MediaPlayerVimeo.js.map +1 -1
- package/dist/MediaPlayerYoutube.d.ts +3 -0
- package/dist/MediaPlayerYoutube.js +24 -5
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/MessageStrip.d.ts +2 -1
- package/dist/MessageStrip.js +1 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Modal.d.ts +2 -0
- package/dist/Modal.js +10 -3
- package/dist/Modal.js.map +1 -1
- package/dist/PromoTile.d.ts +2 -2
- package/dist/PromoTile.js +1 -1
- package/dist/PromoTile.js.map +1 -1
- package/dist/Quote.d.ts +4 -4
- package/dist/Quote.js +1 -1
- package/dist/Quote.js.map +1 -1
- package/dist/Review.d.ts +3 -3
- package/dist/Review.js +1 -1
- package/dist/Review.js.map +1 -1
- package/dist/ReviewItem.d.ts +4 -3
- package/dist/ReviewItem.js +1 -1
- package/dist/ReviewItem.js.map +1 -1
- package/dist/Search.js +1 -1
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.js +5 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +3 -3
- package/dist/SecondaryNavigation.js +1 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +2 -1
- package/dist/SecondaryNavigationItem.js +1 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SelectBase.js +1 -1
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.js +31 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/SelectBoxGroupHeader.js +1 -1
- package/dist/SelectBoxGroupHeader.js.map +1 -1
- package/dist/SelectBoxItem.d.ts +3 -3
- package/dist/SelectBoxItem.js +1 -1
- package/dist/SelectBoxItem.js.map +1 -1
- package/dist/SelectBoxTemplate.js +2 -1
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/SideNavigationMobile.d.ts +2 -2
- package/dist/SideNavigationMobile.js +1 -1
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/SocialMediaButton.js +1 -1
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/Tab.d.ts +2 -2
- package/dist/Tab.js +1 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +2 -2
- package/dist/TabNavigation.js +1 -1
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.d.ts +5 -5
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/TableCellBase.js +1 -1
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableGroupRow.js +1 -1
- package/dist/TableGroupRow.js.map +1 -1
- package/dist/TableRowBase.js +1 -1
- package/dist/TableRowBase.js.map +1 -1
- package/dist/TagGroup.js +1 -1
- package/dist/TagGroup.js.map +1 -1
- package/dist/Tile.d.ts +2 -1
- package/dist/Tile.js +1 -1
- package/dist/Tile.js.map +1 -1
- package/dist/Tooltip.d.ts +2 -1
- package/dist/Tooltip.js +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/Wizard.js +1 -1
- package/dist/Wizard.js.map +1 -1
- package/dist/assets/{InputSuggestions-0yCPXAmq.js → InputSuggestions-DPiJnNLn.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-DjZEnCXN.js → ListItemStandardExpandableTextTemplate-B-v72jL6.js} +1 -1
- package/dist/assets/{bundle.esm-DJuMR5ko.js → bundle.esm-DPppjwN7.js} +260 -260
- package/dist/assets/messagebundle_en-B0P3kkb6.js +1 -0
- package/dist/assets/messagebundle_it-BML2SC0W.js +1 -0
- package/dist/assets/messagebundle_ja-zyFfZHcj.js +1 -0
- package/dist/assets/messagebundle_ko-BCPaSqNp.js +1 -0
- package/dist/assets/messagebundle_lt-DB4b6FVx.js +1 -0
- package/dist/assets/messagebundle_lv-tAOia5tU.js +1 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/custom-elements-internal.json +267 -157
- package/dist/custom-elements.json +221 -133
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.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/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/BreadcrumbsPopover.css.d.ts +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.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/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/messagebundle.properties +1 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/messagebundle_it.properties +123 -0
- package/dist/messagebundle_ja.properties +127 -1
- package/dist/messagebundle_ko.properties +126 -0
- package/dist/messagebundle_lt.properties +126 -0
- package/dist/messagebundle_lv.properties +9 -0
- package/dist/types/FooterAskJoulePosition.d.ts +5 -0
- package/dist/types/FooterAskJoulePosition.js +7 -0
- package/dist/types/FooterAskJoulePosition.js.map +1 -0
- package/dist/vscode.html-custom-data.json +13 -3
- package/dist/web-types.json +56 -9
- package/package.json +1 -1
- package/src/Accordion.ts +1 -1
- package/src/AccordionItem.ts +1 -1
- package/src/Avatar.ts +3 -3
- package/src/Badge.ts +1 -1
- package/src/Breadcrumbs.ts +1 -1
- package/src/BreadcrumbsTemplate.tsx +12 -10
- package/src/Carousel.ts +1 -1
- package/src/Contact.ts +1 -1
- package/src/ContactItem.ts +1 -1
- package/src/Feed.ts +3 -2
- package/src/FeedItem.ts +3 -2
- package/src/FilterMenu.ts +6 -6
- package/src/FilterMenuGroupHeader.ts +1 -1
- package/src/Footer.ts +44 -5
- package/src/FooterTemplate.tsx +28 -4
- package/src/ImageGridCloud.ts +1 -1
- package/src/ImageGridTable.ts +1 -1
- package/src/ImageGridTableItem.ts +1 -1
- package/src/ImageGridTicker.ts +1 -1
- package/src/InputGroup.ts +1 -1
- package/src/LinkList.ts +1 -1
- package/src/List.ts +9 -9
- package/src/ListGroupHeader.ts +12 -5
- package/src/ListGroupHeaderBase.ts +4 -4
- package/src/ListGroupHeaderTemplate.tsx +228 -0
- package/src/ListItem.ts +8 -7
- package/src/ListItemBase.ts +9 -4
- package/src/ListItemTemplate.tsx +193 -0
- package/src/ListSelectAll.ts +4 -5
- package/src/ListSelectAllTemplate.tsx +38 -0
- package/src/ListTemplate.tsx +60 -0
- package/src/MastheadItem.ts +4 -4
- package/src/MastheadMobileMenu.ts +4 -4
- package/src/MastheadProfileMenu.ts +4 -3
- package/src/MastheadShell.ts +10 -10
- package/src/MediaPlayer.ts +11 -4
- package/src/MediaPlayerVimeo.ts +31 -6
- package/src/MediaPlayerYoutube.ts +24 -5
- package/src/MessageStrip.ts +3 -2
- package/src/Modal.ts +18 -3
- package/src/PromoTile.ts +3 -3
- package/src/Quote.ts +5 -5
- package/src/Review.ts +4 -4
- package/src/ReviewItem.ts +5 -4
- package/src/Search.ts +1 -1
- package/src/SearchableListBase.ts +6 -1
- package/src/SecondaryNavigation.ts +4 -4
- package/src/SecondaryNavigationItem.ts +3 -2
- package/src/SelectBase.ts +1 -1
- package/src/SelectBox.ts +34 -0
- package/src/SelectBoxGroupHeader.ts +1 -1
- package/src/SelectBoxItem.ts +4 -4
- package/src/SelectBoxTemplate.tsx +2 -0
- package/src/SideNavigationMobile.ts +3 -3
- package/src/SocialMediaButton.ts +1 -1
- package/src/Tab.ts +3 -3
- package/src/TabNavigation.ts +3 -3
- package/src/Table.ts +6 -6
- package/src/TableCellBase.ts +1 -1
- package/src/TableGroupRow.ts +1 -1
- package/src/TableRowBase.ts +1 -1
- package/src/TagGroup.ts +1 -1
- package/src/Tile.ts +3 -2
- package/src/Tooltip.ts +3 -2
- package/src/Wizard.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/Breadcrumbs.css.ts +1 -1
- package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/Link.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/i18n/messagebundle.properties +1 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/i18n/messagebundle_it.properties +123 -0
- package/src/i18n/messagebundle_ja.properties +127 -1
- package/src/i18n/messagebundle_ko.properties +126 -0
- package/src/i18n/messagebundle_lt.properties +126 -0
- package/src/i18n/messagebundle_lv.properties +9 -0
- package/src/themes/AccordionItem.css +2 -2
- package/src/themes/Breadcrumbs.css +46 -5
- package/src/themes/BreadcrumbsPopover.css +65 -0
- package/src/themes/Footer.css +99 -2
- package/src/themes/Link.css +127 -8
- package/src/themes/ListGroupHeader.css +6 -3
- package/src/types/FooterAskJoulePosition.ts +6 -0
- package/dist/assets/messagebundle_en-DoNTK1BE.js +0 -1
- package/dist/assets/messagebundle_it-BhrBdOd4.js +0 -1
- package/dist/assets/messagebundle_ja-5P5L7sQ1.js +0 -1
- package/dist/assets/messagebundle_ko-B9H5YQlC.js +0 -1
- package/dist/assets/messagebundle_lt-BJ5gr_LF.js +0 -1
- package/dist/assets/messagebundle_lv-D06tlATH.js +0 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +0 -30
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListItemTemplate.lit.js +0 -49
- package/dist/generated/templates/ListItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListSelectAllTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListSelectAllTemplate.lit.js +0 -7
- package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListTemplate.lit.js +0 -11
- package/dist/generated/templates/ListTemplate.lit.js.map +0 -1
- package/src/List.hbs +0 -38
- package/src/ListGroupHeader.hbs +0 -188
- package/src/ListItem.hbs +0 -166
- package/src/ListSelectAll.hbs +0 -31
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +0 -34
- package/src/generated/templates/ListItemTemplate.lit.ts +0 -53
- package/src/generated/templates/ListSelectAllTemplate.lit.ts +0 -11
- package/src/generated/templates/ListTemplate.lit.ts +0 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchableListBase.js","sourceRoot":"","sources":["../src/SearchableListBase.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAWlE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,SAAS,MAAM,sBAAsB,CAAC;AA+B7C;;;;;;;;;;GAUG;AAEH;;;;;;;;GAQG;AAsDH,IAAM,sBAAsB,8BAA5B,MAAM,sBAAuB,SAAQ,UAAU;IAmJ7C;QACE,KAAK,EAAE,CAAC;QAvIV;;;;;WAKG;QAED,sBAAiB,GAAG,KAAK,CAAC;QAoB5B;;;;;WAKG;QAED,cAAS,GAAW,IAAI,CAAC;QAsC3B;;;;;WAKG;QAED,SAAI,GAAsB,YAAY,CAAC,YAAY,CAAC;QAEtD;;;;;WAKG;QAED,SAAI,GAA2B,iBAAiB,CAAC,IAAI,CAAC;QAExD;;;;;WAKG;QAED,aAAQ,GAAW,EAAE,CAAC;QAWxB;;;;;WAKG;QAED,0BAAqB,GAAW,SAAS,CAAC;QAiB5C,wBAAmB,GAAY,KAAK,CAAC;QAInC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,+BAA+B,GAAG,IAAI,GAAG,EAAE,CAAC;IACnD,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAA6C,0BAA0B,CAAC;iBACtG,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChB,IAAI,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,gCAAgC,CAAC,CAAC;oBAC9D,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,WAAW,CAAC,CAAa;QACvB,MAAM,cAAc,GAAW,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAwB,CAAC,CAAC;QACtF,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAED,uBAAuB,CAAC,cAAsB;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;YACjE,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAqB,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,CAAE,CAAC;gBAC1F,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBAChC,IAAI,CAAC,sBAAsB,CAAC,IAA+B,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,IAAsB;QACpC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAwC,CAAC;YAClE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,sBAAsB,CAAC,WAAoC;QACzD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAa;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAwB,CAAC;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,sBAAsB,CAAC,CAAa;QAClC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAwB,CAAC;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,0BAA0B,CAAC,EAAU;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;gBACnB,IAAgC,CAAC,yBAAyB,EAAE,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,MAAM,WAAW,GAAW,KAAK,CAAC;QAClC,MAAM,cAAc,GAAG,WAAW,KAAK,EAAE,CAAC;QAE1C,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClH,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa;QACX,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACvC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,WAAW,CAAC,KAA+B,EAAE,GAAW;QACtD,MAAM,cAAc,GAAG,GAAG,KAAK,EAAE,CAAC;QAElC,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YACjC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC;YAEvC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAEhF,IAAI,kBAAkB,EAAE,CAAC;oBACvB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjF,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,UAAU,GAAG,gBAAgB,CAAC;gBAC7C,CAAC;gBAED,IAAI,cAAc,IAAI,CAAC,kBAAkB,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBACjF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACzB,CAAC;gBAED,OAAO,CAAC,cAAc,IAAI,kBAAkB,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACrF,CAAC;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,UAAmC,EAAE,GAAW;QAClE,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,mBAAmB,CAAC,IAAgD,EAAE,GAAW;QAC/E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,GAAW;QACxC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,KAAa;QACtC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,mBAAmB,CAAC,KAA8B;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAsB,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,CAAC;QAE7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACrE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,KAAwD;QACtE,MAAM,GAAG,GAAsD,EAAE,CAAC;QAClE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,GAAG,CAAC,IAAI,CAAC,GAAI,IAAgC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,eAAe,CAAC,MAAa;QAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAI,IAAgC,CAAC,QAAQ,EAAE,CAAC;gBAChE,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;gBAExD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM;gBACR,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;gBAC/B,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;YAC1C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,CAAc;QACpC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,wBAAwB,CAAC,CAAc;QACrC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,6BAA6B;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACpD,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;IACvG,CAAC;IAED,qBAAqB;QACnB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,cAAc;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAE3C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,SAAmD,EAAE,CAAc;QAC7F,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAwB,CAAC;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;YACjC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa;YACrC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,KAA+B;QAClD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO;oBACL,IAAI;oBACJ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;iBAC5D,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,IAAkB;QAChC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAW,aAAa,CAAE,CAAC;IAClE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAa,eAAe,CAAE,IAAI,IAAI,CAAC,UAAW,CAAC,aAAa,CAAmB,0BAA0B,CAAE,CAAC;IACvJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAU,eAAe,CAAE,CAAC;IACnE,CAAC;IAED,eAAe;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,aAAa,CAAgB,CAAC;QACjF,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,cAAc,CAAC,IAAsB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAW,CAAC;IACtD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,IAAgC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/E,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;YAEpC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,IAAqB;QAClC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAW,CAAC,aAAa,CAAc,SAAS,IAAI,GAAG,CAAE,CAAC;IACrF,CAAC;IAED,qBAAqB,CAAC,IAAqB,EAAE,MAAkD;QAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAkB,CAAC,CAAC;IACvF,CAAC;IAED,iBAAiB;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,uBAAuB,CAAC,KAAoD;QAC1E,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,eAAe;QACjB,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACxF,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACvE,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,SAAS,CAAC,wBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,SAAS,CAAC,wBAAsB,EAAE,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,SAAS,CAAC,wBAAsB,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,aAAa;QACf,MAAM,aAAa,GAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QACzH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,CAAC;IAChD,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,CAAC;IACjD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,CAAC;IAC/C,CAAC;IAED,IAAI,YAAY;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,eAAe;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,IAAI,qBAAqB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,WAAW,GAAG,8BAA8B,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,yCAAyC,CAAC,CAAC,CAAC,WAAW,CAAC;IACjG,CAAC;IAED,IAAI,UAAU;QACZ,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,eAAe,CAAC;IACrD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,uBAAuB,CAAC;IAC7D,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,gBAAgB;QAClB,2EAA2E;QAC3E,4CAA4C;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,IAAI,YAAY;QACd,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAtqBG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oEACK;AAO/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDACT;AAShB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iEACA;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACX;AASf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACA;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACA;AASzB;IADD,QAAQ,EAAE;4DACa;AAStB;IADD,QAAQ,EAAE;iEACkB;AAS3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACN;AASpB;IADD,QAAQ,EAAE;8DACe;AASxB;IADD,QAAQ,EAAE;oDAC2C;AASpD;IADD,QAAQ,EAAE;oDAC6C;AAStD;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACH;AAStB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;qDACV;AAShE;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qEACiB;AAS1C;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACiB;AAGrC;IADN,IAAI,CAAC,yBAAyB,CAAC;gDACF;AA5I1B,sBAAsB;IArD3B,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE7C;;;;OAIG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC;;;;;;OAMG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;OAIG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzC;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;;;OAOG;;IACF,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE7C;;;;;;;OAOG;;IACF,KAAK,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAExC,sBAAsB,CA0qB3B;AAED,eAAe,sBAAsB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport { UDExListMode, UDExListStyleType } from \"./types/List.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type { UDExProcessedItem } from \"./types/SearchableListBase.js\";\nimport type UDExSearch from \"./Search.js\";\nimport type UDExListItemBase from \"./ListItemBase.js\";\nimport type UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport type UDExList from \"./List.js\";\nimport type UDExListItem from \"./ListItem.js\";\nimport type UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport type UDExSelectBoxItem from \"./SelectBoxItem.js\";\nimport { SHOW_SEARCH_AFTER_COUNT, UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { NO_MATCHES_FOUND, RESULT_RETURNED, STARS } from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\nexport type UDExItemFromList = UDExListItemBase | UDExListGroupHeaderBase | null | undefined;\n\ntype UDExSearchableListBaseChangeSearchEventDetail = {\n value: string,\n}\n\ntype UDExSearchableListBaseSelectionChangeEventDetail = {\n selectedItems: Array<UDExListItemBase>,\n item: UDExItemFromList,\n}\ntype UDExSearchableListBaseSubmitSearchEventDetail = {\n selectedItems: Array<UDExListItemBase>\n}\n\ntype UDExSelectBoxIconClickEventDetail = {\n originalEvent: PointerEvent,\n item: UDExItemFromList,\n}\n\nexport type UDExSearchableListBaseEvents = {\n \"select-all\": void,\n \"selection-change\": UDExSearchableListBaseSelectionChangeEventDetail,\n \"submit-search\": UDExSearchableListBaseSubmitSearchEventDetail,\n \"reset-search\": void,\n \"change-search\": UDExSearchableListBaseChangeSearchEventDetail,\n \"first-icon-click\": UDExSelectBoxIconClickEventDetail,\n \"second-icon-click\": UDExSelectBoxIconClickEventDetail,\n}\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExFilterMenu</code> ,<code>UDExSelectBox</code> and <code>UDExCountrySelector</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n\n/**\n * Fired event when the user click on an item on the list.\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.\n * @public\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.\n *\n */\n@event(\"selection-change\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the Select All header.\n *\n * @public\n */\n@event(\"select-all\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n * @public\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n *\n */\n@event(\"submit-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @public\n */\n@event(\"reset-search\", { bubbles: true })\n\n/**\n * Fired event when the user submitted the value in the search.\n * @param {string} value The search value.\n * @public\n * @param {string} value The search value.\n */\n@event(\"change-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the first icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n */\n@event(\"first-icon-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the second icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n */\n@event(\"second-icon-click\", { bubbles: true })\n\nclass UDExSearchableListBase extends UI5Element {\n eventDetails!: UDExSearchableListBaseEvents;\n /** @deprecated Tab keyboard navigation is no longer allowed. */\n @property({ type: Boolean })\n tabNavigationEnabled?: boolean;\n\n /**\n * Allows control over the height.\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines if page scrolling should be prevented within the list of items.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n preventPageScroll = false;\n\n /**\n * Defines if the component would display a loading indicator.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n busy?: boolean;\n\n /**\n * Defines if the search input is visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchInput!: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n *\n * @default 1000\n * @public\n */\n @property({ type: Number })\n busyDelay: number = 1000;\n\n /**\n * Defines the \"no result\" text of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n noResultText!: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property()\n searchPlaceholder!: string;\n\n /**\n * Defines the selectAll option of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selectAll?: boolean;\n\n /**\n * Defines label text for select all header.\n *\n * @default \"Select All\"\n * @public\n */\n @property()\n selectAllLabel!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the list style type of the dropdown items.\n *\n * @default \"None\"\n * @public\n */\n @property()\n type: `${UDExListStyleType}` = UDExListStyleType.None;\n\n /**\n * Defines the name of the UI5 Icon displayed for each item. Use when type is Icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n itemIcon: string = \"\";\n\n /**\n * Slot for items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n items!: DefaultSlot<UDExListItemBase | UDExListGroupHeaderBase>;\n\n /**\n * Defines the default accessible role for the list component.\n *\n * @default \"listbox\"\n * @public\n */\n @property({ type: String })\n defaultAccessibleRole: string = \"listbox\";\n\n /**\n * Defines the filtered items for the component.\n *\n * @default []\n * @private\n */\n @property({ type: Object })\n _filteredItems!: Array<UDExProcessedItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _shouldFilterItems?: boolean;\n _accSearchResultInfo?: string;\n _groupCollapseStateBeforeSearch: Map<string, boolean>;\n _pendingHeightReset: boolean = false;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._filteredItems = [];\n this._groupCollapseStateBeforeSearch = new Map();\n }\n\n onBeforeRendering() {\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n if (this._pendingHeightReset) {\n this._pendingHeightReset = false;\n this.shadowRoot?.querySelectorAll<HTMLElement & { setContentHeight(): void }>(\"[udex-list-group-header]\")\n .forEach(header => {\n if (header.hasAttribute(\"collapsible\")) {\n header.style.removeProperty(\"--udex-list-content-max-height\");\n header.setContentHeight();\n }\n });\n }\n }\n\n onItemPress(e:CustomEvent) {\n const dropdownItemId: string = this.getDataTokenId(e.detail.item as UDExListItemBase);\n this.handleDropdownItemPress(dropdownItemId);\n this.fireSelectionChange(dropdownItemId);\n }\n\n handleDropdownItemPress(dropdownItemId: string) {\n this.getProcessedItems().forEach(({ item, groupItems, isGroup }) => {\n if (isGroup) {\n const groupItem: UDExListItemBase = groupItems.find(({ _id }) => _id === dropdownItemId)!;\n if (groupItem) {\n this.handleItemClick(groupItem);\n this.handleGroupHeaderState(item as UDExListGroupHeaderBase);\n }\n } else if (item._id === dropdownItemId) {\n this.handleItemClick(item);\n }\n });\n\n this.syncFilteredItems();\n }\n\n handleItemClick(item: UDExListItemBase) {\n if (this.modeSingleSelect) {\n this.revertSelectedItems(this.selectedItems);\n }\n\n if (this.modeRadioGroup) {\n const groupHeader = item.parentElement as UDExListGroupHeaderBase;\n this.revertSelectedItems(groupHeader.getItems());\n }\n\n item.selected = !item.selected;\n }\n\n handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase) {\n if (this.modeMultiSelect) {\n groupHeader.handleHeaderState();\n }\n }\n\n onHeaderPress(e:CustomEvent) {\n const item = e.detail.item as UDExListItemBase;\n const id = this.getDataTokenId(item);\n this.handleGroupHeaderSelection(id);\n this.syncFilteredItems();\n this.fireSelectionChange(id);\n }\n\n onSelectAllHeaderPress(e:CustomEvent) {\n const item = e.detail.item as UDExListItemBase;\n const id = this.getDataTokenId(item);\n this.handleGroupHeaderSelection(id);\n this.syncFilteredItems();\n this.fireDecoratorEvent(\"select-all\");\n }\n\n handleGroupHeaderSelection(id: string): void {\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === id) {\n (item as UDExListGroupHeaderBase).handleSelectionGroupState();\n }\n });\n }\n\n onSearch(value: string) {\n const searchValue: string = value;\n const hasSearchQuery = searchValue !== \"\";\n\n if (hasSearchQuery && !this._shouldFilterItems) {\n this.saveGroupCollapseState();\n }\n\n if (!hasSearchQuery && this._shouldFilterItems) {\n this.restoreGroupCollapseState();\n }\n\n this._shouldFilterItems = hasSearchQuery;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n const items = this.getFlattenItemsArray(this._filteredItems);\n this._accSearchResultInfo = items.length ? `${items.length} ${this.resultReturnedText}` : this.noMatchesFoundText;\n this.fireDecoratorEvent(\"change-search\", { value: searchValue });\n }\n\n onReset() {\n this.revertSelectedItems(this.selectedItems);\n }\n\n onResetSearch() {\n this.resetSearch();\n this.fireDecoratorEvent(\"reset-search\");\n }\n\n onSubmitSearch() {\n this.fireDecoratorEvent(\"submit-search\", {\n selectedItems: this.selectedItems,\n });\n }\n\n /**\n * Reset the search value.\n * @public\n */\n resetSearch() {\n const search = this.getSearch();\n search.value = \"\";\n this._shouldFilterItems = false;\n this.restoreGroupCollapseState();\n this._filteredItems = this.filterItems(this.getProcessedItems(), \"\");\n }\n\n filterItems(items: Array<UDExProcessedItem>, str: string): Array<UDExProcessedItem> {\n const hasSearchQuery = str !== \"\";\n\n return items.filter(preparedItem => {\n const { isGroup, item } = preparedItem;\n\n if (isGroup) {\n const groupHeaderMatches = this.checkAndUpdateLabel(item, str);\n const filteredChildren = this.filterItemsForLabel(preparedItem.groupItems, str);\n\n if (groupHeaderMatches) {\n preparedItem.groupItems.forEach(child => this.checkAndUpdateLabel(child, str));\n } else {\n preparedItem.groupItems = filteredChildren;\n }\n\n if (hasSearchQuery && (groupHeaderMatches || preparedItem.groupItems.length > 0)) {\n item.collapsed = false;\n }\n\n return !hasSearchQuery || groupHeaderMatches || preparedItem.groupItems.length > 0;\n }\n\n return this.checkAndUpdateLabel(item, str);\n });\n }\n\n filterItemsForLabel(groupItems: Array<UDExListItemBase>, str: string): Array<UDExListItemBase> {\n return groupItems.filter(groupItem => this.checkAndUpdateLabel(groupItem, str));\n }\n\n checkAndUpdateLabel(item: UDExListItemBase | UDExListGroupHeaderBase, str: string): boolean {\n if (item.ratingCount) {\n return this.isIncludes(item.ratingCount, str);\n }\n\n if (!item.label) {\n console.warn(\"A label property is required for the item\");\n return false;\n }\n const cleanedLabel = cleanLabel(item.label);\n if (this.isIncludes(cleanedLabel, str)) {\n item.label = this.addSearchTermTag(cleanedLabel, str);\n return true;\n }\n\n item.label = cleanedLabel;\n return false;\n }\n\n addSearchTermTag(text: string, str: string): string {\n if (!str.length) {\n return text;\n }\n\n const regex = new RegExp(`(${str})`, \"i\");\n return text.replace(regex, \"<b>$1</b>\");\n }\n\n isIncludes(string: string, value: string): boolean {\n return string.toLowerCase().includes(value.toLowerCase());\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n syncFilteredItems() {\n const search = this.getSearch();\n if (this._shouldFilterItems) {\n this._filteredItems = this.filterItems(this.getProcessedItems(), search.value);\n } else {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n saveGroupCollapseState(): void {\n this._groupCollapseStateBeforeSearch.clear();\n\n this.items.forEach(item => {\n if (item.isGroup) {\n this._groupCollapseStateBeforeSearch.set(item._id, Boolean(item.collapsed));\n }\n });\n }\n\n restoreGroupCollapseState(): void {\n this.items.forEach(item => {\n if (item.isGroup) {\n if (this._groupCollapseStateBeforeSearch.size) {\n const collapsed = this._groupCollapseStateBeforeSearch.get(item._id);\n if (collapsed !== undefined) {\n item.collapsed = collapsed;\n }\n }\n }\n });\n\n this._groupCollapseStateBeforeSearch.clear();\n this._pendingHeightReset = true;\n }\n\n getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n const arr: Array<UDExListItemBase | UDExListGroupHeaderBase> = [];\n items.forEach(item => {\n arr.push(item);\n if (item.isGroup) {\n arr.push(...(item as UDExListGroupHeaderBase).getItems());\n }\n });\n return arr;\n }\n\n getItemFromList(itemId:string): UDExItemFromList {\n let menuItem = null;\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n menuItem = groupItems.find(({ _id }) => _id === itemId);\n\n if (menuItem) {\n break;\n }\n } else if (item._id === itemId) {\n menuItem = item;\n break;\n }\n }\n\n return menuItem;\n }\n\n fireSelectionChange(itemId: string) {\n this.fireDecoratorEvent(\"selection-change\", {\n selectedItems: this.selectedItems,\n item: this.getItemFromList(itemId),\n });\n }\n\n fireFirstIconClickEvent(e: CustomEvent): void {\n this._fireIconClickEvent(\"first-icon-click\", e);\n }\n\n fireSecondIconClickEvent(e: CustomEvent): void {\n this._fireIconClickEvent(\"second-icon-click\", e);\n }\n\n _dropdownScrollToTop() {\n this.getPopoverPart(UDExPopoverPart.Content)?.scrollTo({ top: 0 });\n }\n\n _dropdownScrollToSelectedItem() {\n const content = this.getPopoverPart(UDExPopoverPart.Content);\n const activeItem = this.activeItem;\n if (!content || !activeItem) { return; }\n const itemRect = activeItem.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n content.scrollTop += itemRect.top - contentRect.top + itemRect.height / 2 - content.clientHeight / 2;\n }\n\n _handleDropdownScroll() {\n if (this.modeMultiSelect) {\n this._dropdownScrollToTop();\n }\n if (this.modeSingleSelect) {\n this._dropdownScrollToSelectedItem();\n }\n }\n\n focusFirstItem(): void {\n const list = this.getList();\n const items = list.getKeyboardNavigationItems();\n if (!items.length) { return; }\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n const firstItem = items[firstIndex];\n list.setTabIndexByIndex(items, firstIndex);\n\n if (firstItem.isGroup) {\n list.focusHeader(firstItem);\n } else {\n list.focusItem(firstItem);\n }\n }\n\n private _fireIconClickEvent(eventName: \"first-icon-click\" | \"second-icon-click\", e: CustomEvent): void {\n const item = e.detail.item as UDExListItemBase;\n const id = this.getDataTokenId(item);\n this.fireDecoratorEvent(eventName, {\n originalEvent: e.detail.originalEvent,\n item: this.getItemFromList(id),\n });\n }\n\n getFlattenItemsArray(array: Array<UDExProcessedItem>): (UDExProcessedItem | UDExListItemBase)[] {\n return array.flatMap(item => {\n if (item.isGroup) {\n return [\n item,\n ...item.groupItems.filter(groupItem => !groupItem.disabled),\n ];\n }\n return item.item.disabled ? [] : [item.item];\n });\n }\n\n getCurrentIndex(item: UDExListItem): number {\n return this.getDomListItems().indexOf(item);\n }\n\n getList(): UDExList {\n return this.shadowRoot!.querySelector<UDExList>(\"[udex-list]\")!;\n }\n\n getSearch(): UDExSearch | HTMLInputElement {\n return this.shadowRoot!.querySelector<UDExSearch>(\"[udex-search]\")! || this.shadowRoot!.querySelector<HTMLInputElement>(\".udex-text-field__search\")!;\n }\n\n getPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getDomListItems(): UDExListItem[] {\n const elementList = this.shadowRoot!.querySelector(\"[udex-list]\") as HTMLElement;\n return elementList ? Array.from(elementList.querySelectorAll(\"[udex-list-item]\")) : [];\n }\n\n getDataTokenId(item: UDExListItemBase): string {\n return item.getAttribute(\"data-token-id\") as string;\n }\n\n getProcessedItems(): Array<UDExProcessedItem> {\n return this._validItems.map(item => {\n const isGroup = item.isGroup;\n const groupItems = isGroup ? (item as UDExListGroupHeaderBase).getItems() : [];\n\n if (isGroup) {\n this._setItemsModeAndControl(groupItems);\n }\n\n item.mode = this.mode;\n item.controlled = this.isControlled;\n\n return { item, groupItems, isGroup };\n });\n }\n\n getPopoverPart(part: UDExPopoverPart): HTMLElement {\n return this.getPopover().shadowRoot!.querySelector<HTMLElement>(`[part=${part}]`)!;\n }\n\n _managePopupListeners(part: UDExPopoverPart, action: \"addEventListener\" | \"removeEventListener\"): void {\n const element = this.getPopoverPart(part);\n element?.[action](\"wheel\", ((e: WheelEvent) => e.preventDefault()) as EventListener);\n }\n\n _setContentHeight(): void {\n const content = this.getPopoverPart(UDExPopoverPart.Content);\n content.style.maxHeight = this.height || \"\";\n }\n\n _setItemsModeAndControl(items: Array<UDExFilterMenuItem | UDExSelectBoxItem>) {\n items.forEach(item => {\n item.mode = this.mode;\n item.controlled = this.isControlled;\n });\n }\n\n get activeItem(): UDExListItem | undefined {\n return this.getDomListItems().find(({ selected }) => selected);\n }\n\n get _validItems(): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n return this.items.filter(item => !(item instanceof HTMLElement) || \"isGroup\" in item);\n }\n\n get getNoResultText(): string {\n const hasTextProperty = this.noResultText !== undefined && this.noResultText.length > 0;\n return hasTextProperty ? this.noResultText : this.noMatchesFoundText;\n }\n\n get noMatchesFoundText(): string {\n return translate(UDExSearchableListBase, NO_MATCHES_FOUND);\n }\n\n get resultReturnedText(): string {\n return translate(UDExSearchableListBase, RESULT_RETURNED);\n }\n\n get startsText(): string {\n return translate(UDExSearchableListBase, STARS);\n }\n\n get isListEmpty(): boolean {\n return this._filteredItems.length === 0;\n }\n\n get selectedItems(): Array<UDExListItemBase> {\n const selectedItems: Array<UDExListItemBase> = this.getSlottedItems(this._validItems).filter(({ selected }) => selected);\n return selectedItems;\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === UDExListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === UDExListMode.SingleSelect;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === UDExListMode.RadioGroup;\n }\n\n get isControlled(): boolean {\n const isGrouping = this.items.some(({ isGroup }) => isGroup);\n return this.modeMultiSelect && isGrouping;\n }\n\n /**\n * Whether the dropdown list should use the ARIA tree pattern\n * (role=\"tree\"/\"treeitem\" with aria-expanded / aria-selected / aria-checked).\n *\n * Base implementation is never a tree. Subclasses that support grouped\n * hierarchical navigation (e.g. UDExFilterMenu) override this with their\n * own mode/collapsible rules.\n */\n get isTreeStructure(): boolean {\n return false;\n }\n\n /**\n * Whether items are navigated via aria-activedescendant (focus stays on the\n * combobox input) rather than via DOM focus on each item. When true,\n * SearchableListBaseTemplate places role + ARIA state attrs on the host\n * element of each list-item so that screen readers can read them through the\n * aria-activedescendant pointer.\n */\n get _activeDescendantMode(): boolean {\n return false;\n }\n\n get additionalClassName(): string {\n return `udex-searchable-list__header`;\n }\n\n get groupClassName(): string {\n const classHeader = `udex-searchable-list__header`;\n return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;\n }\n\n get showSearch(): boolean {\n const isSearchVisible = this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);\n return !this.hideDropdownSearch && isSearchVisible;\n }\n\n get isSearchActive(): boolean {\n return this.nonGroupItems.length > SHOW_SEARCH_AFTER_COUNT;\n }\n\n get nonGroupItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this._validItems).filter(item => !item.isGroup);\n }\n\n get roleForGroupList(): string {\n // Host is always transparent; the shadow-inner div carries the widget role\n // (tree/listbox) via accessibleRoleForList.\n return \"none\";\n }\n\n get accessibleRoleForList(): string {\n if (this.isTreeStructure) {\n return \"tree\";\n }\n return this.defaultAccessibleRole;\n }\n\n get listItemRole(): string {\n if (this.isTreeStructure) {\n return \"treeitem\";\n }\n\n if (this.accessibleRoleForList === \"listbox\") {\n return \"option\";\n }\n\n return \"none\";\n }\n\n get hideDropdownSearch(): boolean {\n return false;\n }\n}\n\nexport default UDExSearchableListBase;\nexport type {\n UDExSelectBoxIconClickEventDetail, UDExSearchableListBaseSubmitSearchEventDetail, UDExSearchableListBaseChangeSearchEventDetail, UDExSearchableListBaseSelectionChangeEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SearchableListBase.js","sourceRoot":"","sources":["../src/SearchableListBase.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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport { UDExListMode, UDExListStyleType } from \"./types/List.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type { UDExProcessedItem } from \"./types/SearchableListBase.js\";\nimport type UDExSearch from \"./Search.js\";\nimport type UDExListItemBase from \"./ListItemBase.js\";\nimport type UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport type UDExList from \"./List.js\";\nimport type UDExListItem from \"./ListItem.js\";\nimport type UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport type UDExSelectBoxItem from \"./SelectBoxItem.js\";\nimport { SHOW_SEARCH_AFTER_COUNT, UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { NO_MATCHES_FOUND, RESULT_RETURNED, STARS } from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\nexport type UDExItemFromList = UDExListItemBase | UDExListGroupHeaderBase | null | undefined;\n\ntype UDExSearchableListBaseChangeSearchEventDetail = {\n value: string,\n}\n\ntype UDExSearchableListBaseSelectionChangeEventDetail = {\n selectedItems: Array<UDExListItemBase>,\n item: UDExItemFromList,\n}\ntype UDExSearchableListBaseSubmitSearchEventDetail = {\n selectedItems: Array<UDExListItemBase>\n}\n\ntype UDExSelectBoxIconClickEventDetail = {\n originalEvent: PointerEvent,\n item: UDExItemFromList,\n}\n\nexport type UDExSearchableListBaseEvents = {\n \"select-all\": void,\n \"selection-change\": UDExSearchableListBaseSelectionChangeEventDetail,\n \"submit-search\": UDExSearchableListBaseSubmitSearchEventDetail,\n \"reset-search\": void,\n \"change-search\": UDExSearchableListBaseChangeSearchEventDetail,\n \"first-icon-click\": UDExSelectBoxIconClickEventDetail,\n \"second-icon-click\": UDExSelectBoxIconClickEventDetail,\n}\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExFilterMenu</code> ,<code>UDExSelectBox</code> and <code>UDExCountrySelector</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n\n/**\n * Fired event when the user click on an item on the list.\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.\n * @public\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.\n *\n */\n@event(\"selection-change\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the Select All header.\n *\n * @public\n */\n@event(\"select-all\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n * @public\n * @param {Array<UDExListItemBase>} selectedItems The selected items.\n *\n */\n@event(\"submit-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @public\n */\n@event(\"reset-search\", { bubbles: true })\n\n/**\n * Fired event when the user submitted the value in the search.\n * @param {string} value The search value.\n * @public\n * @param {string} value The search value.\n */\n@event(\"change-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the first icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n */\n@event(\"first-icon-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the second icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item\n */\n@event(\"second-icon-click\", { bubbles: true })\n\nclass UDExSearchableListBase extends UI5Element {\n eventDetails!: UDExSearchableListBaseEvents;\n /** @deprecated Tab keyboard navigation is no longer allowed. */\n @property({ type: Boolean })\n tabNavigationEnabled?: boolean;\n\n /**\n * Allows control over the height.\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines if page scrolling should be prevented within the list of items.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n preventPageScroll = false;\n\n /**\n * Defines if the component would display a loading indicator.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n busy?: boolean;\n\n /**\n * Defines if the search input is visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchInput!: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n *\n * @default 1000\n * @public\n */\n @property({ type: Number })\n busyDelay: number = 1000;\n\n /**\n * Defines the \"no result\" text of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n noResultText!: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property()\n searchPlaceholder!: string;\n\n /**\n * Defines the selectAll option of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selectAll?: boolean;\n\n /**\n * Defines label text for select all header.\n *\n * @default \"Select All\"\n * @public\n */\n @property()\n selectAllLabel!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the list style type of the dropdown items.\n *\n * @default \"None\"\n * @public\n */\n @property()\n type: `${UDExListStyleType}` = UDExListStyleType.None;\n\n /**\n * Defines the name of the UI5 Icon displayed for each item. Use when type is Icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n itemIcon: string = \"\";\n\n /**\n * Slot for items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n items!: DefaultSlot<UDExListItemBase | UDExListGroupHeaderBase>;\n\n /**\n * Defines the default accessible role for the list component.\n *\n * @default \"listbox\"\n * @public\n */\n @property({ type: String })\n defaultAccessibleRole: string = \"listbox\";\n\n /**\n * Defines the filtered items for the component.\n *\n * @default []\n * @private\n */\n @property({ type: Object })\n _filteredItems!: Array<UDExProcessedItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _shouldFilterItems?: boolean;\n _accSearchResultInfo?: string;\n _groupCollapseStateBeforeSearch: Map<string, boolean>;\n _pendingHeightReset: boolean = false;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._filteredItems = [];\n this._groupCollapseStateBeforeSearch = new Map();\n }\n\n onBeforeRendering() {\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n if (this._pendingHeightReset) {\n this._pendingHeightReset = false;\n this.shadowRoot?.querySelectorAll<HTMLElement & { setContentHeight(): void }>(\"[udex-list-group-header]\")\n .forEach(header => {\n if (header.hasAttribute(\"collapsible\")) {\n header.style.removeProperty(\"--udex-list-content-max-height\");\n header.setContentHeight();\n }\n });\n }\n }\n\n onItemPress(e:CustomEvent) {\n const dropdownItemId: string = this.getDataTokenId(e.detail.item as UDExListItemBase);\n this.handleDropdownItemPress(dropdownItemId);\n this.fireSelectionChange(dropdownItemId);\n }\n\n handleDropdownItemPress(dropdownItemId: string) {\n this.getProcessedItems().forEach(({ item, groupItems, isGroup }) => {\n if (isGroup) {\n const groupItem: UDExListItemBase = groupItems.find(({ _id }) => _id === dropdownItemId)!;\n if (groupItem) {\n this.handleItemClick(groupItem);\n this.handleGroupHeaderState(item as UDExListGroupHeaderBase);\n }\n } else if (item._id === dropdownItemId) {\n this.handleItemClick(item);\n }\n });\n\n this.syncFilteredItems();\n }\n\n handleItemClick(item: UDExListItemBase) {\n if (this.modeSingleSelect) {\n this.revertSelectedItems(this.selectedItems);\n }\n\n if (this.modeRadioGroup) {\n const groupHeader = item.parentElement as UDExListGroupHeaderBase;\n this.revertSelectedItems(groupHeader.getItems());\n }\n\n item.selected = !item.selected;\n }\n\n handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase) {\n if (this.modeMultiSelect) {\n groupHeader.handleHeaderState();\n }\n }\n\n onHeaderPress(e:CustomEvent) {\n const item = e.detail.item as UDExListItemBase;\n const id = this.getDataTokenId(item);\n this.handleGroupHeaderSelection(id);\n this.syncFilteredItems();\n this.fireSelectionChange(id);\n }\n\n onSelectAllHeaderPress(e:CustomEvent) {\n const item = e.detail.item as UDExListItemBase;\n const id = this.getDataTokenId(item);\n this.handleGroupHeaderSelection(id);\n this.syncFilteredItems();\n this.fireDecoratorEvent(\"select-all\");\n }\n\n handleGroupHeaderSelection(id: string): void {\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === id) {\n (item as UDExListGroupHeaderBase).handleSelectionGroupState();\n }\n });\n }\n\n onSearch(value: string) {\n const searchValue: string = value;\n const hasSearchQuery = searchValue !== \"\";\n\n if (hasSearchQuery && !this._shouldFilterItems) {\n this.saveGroupCollapseState();\n }\n\n if (!hasSearchQuery && this._shouldFilterItems) {\n this.restoreGroupCollapseState();\n }\n\n this._shouldFilterItems = hasSearchQuery;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n const items = this.getFlattenItemsArray(this._filteredItems);\n this._accSearchResultInfo = items.length ? `${items.length} ${this.resultReturnedText}` : this.noMatchesFoundText;\n this.fireDecoratorEvent(\"change-search\", { value: searchValue });\n }\n\n onReset() {\n this.revertSelectedItems(this.selectedItems);\n }\n\n onResetSearch() {\n this.resetSearch();\n this.fireDecoratorEvent(\"reset-search\");\n }\n\n onSubmitSearch() {\n this.fireDecoratorEvent(\"submit-search\", {\n selectedItems: this.selectedItems,\n });\n }\n\n /**\n * Reset the search value.\n * @public\n */\n resetSearch() {\n const search = this.getSearch();\n search.value = \"\";\n this._shouldFilterItems = false;\n this.restoreGroupCollapseState();\n this._filteredItems = this.filterItems(this.getProcessedItems(), \"\");\n }\n\n filterItems(items: Array<UDExProcessedItem>, str: string): Array<UDExProcessedItem> {\n const hasSearchQuery = str !== \"\";\n\n return items.filter(preparedItem => {\n const { isGroup, item } = preparedItem;\n\n if (isGroup) {\n const groupHeaderMatches = this.checkAndUpdateLabel(item, str);\n const filteredChildren = this.filterItemsForLabel(preparedItem.groupItems, str);\n\n if (groupHeaderMatches) {\n preparedItem.groupItems.forEach(child => this.checkAndUpdateLabel(child, str));\n } else {\n preparedItem.groupItems = filteredChildren;\n }\n\n if (hasSearchQuery && (groupHeaderMatches || preparedItem.groupItems.length > 0)) {\n item.collapsed = false;\n }\n\n return !hasSearchQuery || groupHeaderMatches || preparedItem.groupItems.length > 0;\n }\n\n return this.checkAndUpdateLabel(item, str);\n });\n }\n\n filterItemsForLabel(groupItems: Array<UDExListItemBase>, str: string): Array<UDExListItemBase> {\n return groupItems.filter(groupItem => this.checkAndUpdateLabel(groupItem, str));\n }\n\n checkAndUpdateLabel(item: UDExListItemBase | UDExListGroupHeaderBase, str: string): boolean {\n if (item.ratingCount) {\n return this.isIncludes(item.ratingCount, str);\n }\n\n if (!item.label) {\n console.warn(\"A label property is required for the item\");\n return false;\n }\n const cleanedLabel = cleanLabel(item.label);\n if (this.isIncludes(cleanedLabel, str)) {\n item.label = this.addSearchTermTag(cleanedLabel, str);\n return true;\n }\n\n item.label = cleanedLabel;\n return false;\n }\n\n addSearchTermTag(text: string, str: string): string {\n if (!str.length) {\n return text;\n }\n\n const regex = new RegExp(`(${str})`, \"i\");\n return text.replace(regex, \"<b>$1</b>\");\n }\n\n isIncludes(string: string, value: string): boolean {\n return string.toLowerCase().includes(value.toLowerCase());\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n syncFilteredItems() {\n const search = this.getSearch();\n if (this._shouldFilterItems) {\n this._filteredItems = this.filterItems(this.getProcessedItems(), search.value);\n } else {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n saveGroupCollapseState(): void {\n this._groupCollapseStateBeforeSearch.clear();\n\n this.items.forEach(item => {\n if (item.isGroup) {\n this._groupCollapseStateBeforeSearch.set(item._id, Boolean(item.collapsed));\n }\n });\n }\n\n restoreGroupCollapseState(): void {\n this.items.forEach(item => {\n if (item.isGroup) {\n if (this._groupCollapseStateBeforeSearch.size) {\n const collapsed = this._groupCollapseStateBeforeSearch.get(item._id);\n if (collapsed !== undefined) {\n item.collapsed = collapsed;\n }\n }\n }\n });\n\n this._groupCollapseStateBeforeSearch.clear();\n this._pendingHeightReset = true;\n }\n\n getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n const arr: Array<UDExListItemBase | UDExListGroupHeaderBase> = [];\n items.forEach(item => {\n arr.push(item);\n if (item.isGroup) {\n arr.push(...(item as UDExListGroupHeaderBase).getItems());\n }\n });\n return arr;\n }\n\n getItemFromList(itemId:string): UDExItemFromList {\n let menuItem = null;\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n\n if (item.isGroup) {\n if (item._id === itemId) {\n menuItem = item;\n break;\n }\n\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n menuItem = groupItems.find(({ _id }) => _id === itemId);\n\n if (menuItem) {\n break;\n }\n } else if (item._id === itemId) {\n menuItem = item;\n break;\n }\n }\n\n return menuItem;\n }\n\n fireSelectionChange(itemId: string) {\n this.fireDecoratorEvent(\"selection-change\", {\n selectedItems: this.selectedItems,\n item: this.getItemFromList(itemId),\n });\n }\n\n fireFirstIconClickEvent(e: CustomEvent): void {\n this._fireIconClickEvent(\"first-icon-click\", e);\n }\n\n fireSecondIconClickEvent(e: CustomEvent): void {\n this._fireIconClickEvent(\"second-icon-click\", e);\n }\n\n _dropdownScrollToTop() {\n this.getPopoverPart(UDExPopoverPart.Content)?.scrollTo({ top: 0 });\n }\n\n _dropdownScrollToSelectedItem() {\n const content = this.getPopoverPart(UDExPopoverPart.Content);\n const activeItem = this.activeItem;\n if (!content || !activeItem) { return; }\n const itemRect = activeItem.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n content.scrollTop += itemRect.top - contentRect.top + itemRect.height / 2 - content.clientHeight / 2;\n }\n\n _handleDropdownScroll() {\n if (this.modeMultiSelect) {\n this._dropdownScrollToTop();\n }\n if (this.modeSingleSelect) {\n this._dropdownScrollToSelectedItem();\n }\n }\n\n focusFirstItem(): void {\n const list = this.getList();\n const items = list.getKeyboardNavigationItems();\n if (!items.length) { return; }\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n const firstItem = items[firstIndex];\n list.setTabIndexByIndex(items, firstIndex);\n\n if (firstItem.isGroup) {\n list.focusHeader(firstItem);\n } else {\n list.focusItem(firstItem);\n }\n }\n\n private _fireIconClickEvent(eventName: \"first-icon-click\" | \"second-icon-click\", e: CustomEvent): void {\n const item = e.detail.item as UDExListItemBase;\n const id = this.getDataTokenId(item);\n this.fireDecoratorEvent(eventName, {\n originalEvent: e.detail.originalEvent,\n item: this.getItemFromList(id),\n });\n }\n\n getFlattenItemsArray(array: Array<UDExProcessedItem>): (UDExProcessedItem | UDExListItemBase)[] {\n return array.flatMap(item => {\n if (item.isGroup) {\n return [\n item,\n ...item.groupItems.filter(groupItem => !groupItem.disabled),\n ];\n }\n return item.item.disabled ? [] : [item.item];\n });\n }\n\n getCurrentIndex(item: UDExListItem): number {\n return this.getDomListItems().indexOf(item);\n }\n\n getList(): UDExList {\n return this.shadowRoot!.querySelector<UDExList>(\"[udex-list]\")!;\n }\n\n getSearch(): UDExSearch | HTMLInputElement {\n return this.shadowRoot!.querySelector<UDExSearch>(\"[udex-search]\")! || this.shadowRoot!.querySelector<HTMLInputElement>(\".udex-text-field__search\")!;\n }\n\n getPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getDomListItems(): UDExListItem[] {\n const elementList = this.shadowRoot!.querySelector(\"[udex-list]\") as HTMLElement;\n return elementList ? Array.from(elementList.querySelectorAll(\"[udex-list-item]\")) : [];\n }\n\n getDataTokenId(item: UDExListItemBase): string {\n return item.getAttribute(\"data-token-id\") as string;\n }\n\n getProcessedItems(): Array<UDExProcessedItem> {\n return this._validItems.map(item => {\n const isGroup = item.isGroup;\n const groupItems = isGroup ? (item as UDExListGroupHeaderBase).getItems() : [];\n\n if (isGroup) {\n this._setItemsModeAndControl(groupItems);\n }\n\n item.mode = this.mode;\n item.controlled = this.isControlled;\n\n return { item, groupItems, isGroup };\n });\n }\n\n getPopoverPart(part: UDExPopoverPart): HTMLElement {\n return this.getPopover().shadowRoot!.querySelector<HTMLElement>(`[part=${part}]`)!;\n }\n\n _managePopupListeners(part: UDExPopoverPart, action: \"addEventListener\" | \"removeEventListener\"): void {\n const element = this.getPopoverPart(part);\n element?.[action](\"wheel\", ((e: WheelEvent) => e.preventDefault()) as EventListener);\n }\n\n _setContentHeight(): void {\n const content = this.getPopoverPart(UDExPopoverPart.Content);\n content.style.maxHeight = this.height || \"\";\n }\n\n _setItemsModeAndControl(items: Array<UDExFilterMenuItem | UDExSelectBoxItem>) {\n items.forEach(item => {\n item.mode = this.mode;\n item.controlled = this.isControlled;\n });\n }\n\n get activeItem(): UDExListItem | undefined {\n return this.getDomListItems().find(({ selected }) => selected);\n }\n\n get _validItems(): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n return this.items.filter(item => !(item instanceof HTMLElement) || \"isGroup\" in item);\n }\n\n get getNoResultText(): string {\n const hasTextProperty = this.noResultText !== undefined && this.noResultText.length > 0;\n return hasTextProperty ? this.noResultText : this.noMatchesFoundText;\n }\n\n get noMatchesFoundText(): string {\n return translate(UDExSearchableListBase, NO_MATCHES_FOUND);\n }\n\n get resultReturnedText(): string {\n return translate(UDExSearchableListBase, RESULT_RETURNED);\n }\n\n get startsText(): string {\n return translate(UDExSearchableListBase, STARS);\n }\n\n get isListEmpty(): boolean {\n return this._filteredItems.length === 0;\n }\n\n get selectedItems(): Array<UDExListItemBase> {\n const selectedItems: Array<UDExListItemBase> = this.getSlottedItems(this._validItems).filter(({ selected }) => selected);\n return selectedItems;\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === UDExListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === UDExListMode.SingleSelect;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === UDExListMode.RadioGroup;\n }\n\n get isControlled(): boolean {\n const isGrouping = this.items.some(({ isGroup }) => isGroup);\n return this.modeMultiSelect && isGrouping;\n }\n\n /**\n * Whether the dropdown list should use the ARIA tree pattern\n * (role=\"tree\"/\"treeitem\" with aria-expanded / aria-selected / aria-checked).\n *\n * Base implementation is never a tree. Subclasses that support grouped\n * hierarchical navigation (e.g. UDExFilterMenu) override this with their\n * own mode/collapsible rules.\n */\n get isTreeStructure(): boolean {\n return false;\n }\n\n /**\n * Whether items are navigated via aria-activedescendant (focus stays on the\n * combobox input) rather than via DOM focus on each item. When true,\n * SearchableListBaseTemplate places role + ARIA state attrs on the host\n * element of each list-item so that screen readers can read them through the\n * aria-activedescendant pointer.\n */\n get _activeDescendantMode(): boolean {\n return false;\n }\n\n get additionalClassName(): string {\n return `udex-searchable-list__header`;\n }\n\n get groupClassName(): string {\n const classHeader = `udex-searchable-list__header`;\n return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;\n }\n\n get showSearch(): boolean {\n const isSearchVisible = this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);\n return !this.hideDropdownSearch && isSearchVisible;\n }\n\n get isSearchActive(): boolean {\n return this.nonGroupItems.length > SHOW_SEARCH_AFTER_COUNT;\n }\n\n get nonGroupItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this._validItems).filter(item => !item.isGroup);\n }\n\n get roleForGroupList(): string {\n // Host is always transparent; the shadow-inner div carries the widget role\n // (tree/listbox) via accessibleRoleForList.\n return \"none\";\n }\n\n get accessibleRoleForList(): string {\n if (this.isTreeStructure) {\n return \"tree\";\n }\n return this.defaultAccessibleRole;\n }\n\n get listItemRole(): string {\n if (this.isTreeStructure) {\n return \"treeitem\";\n }\n\n if (this.accessibleRoleForList === \"listbox\") {\n return \"option\";\n }\n\n return \"none\";\n }\n\n get hideDropdownSearch(): boolean {\n return false;\n }\n}\n\nexport default UDExSearchableListBase;\nexport type {\n UDExSelectBoxIconClickEventDetail, UDExSearchableListBaseSubmitSearchEventDetail, UDExSearchableListBaseChangeSearchEventDetail, UDExSearchableListBaseSelectionChangeEventDetail,\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
1
|
+
import type { ChangeInfo, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
3
|
import type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail } from "./SecondaryNavigationItem.js";
|
|
4
4
|
import UDExSecondaryNavigationItem from "./SecondaryNavigationItem.js";
|
|
@@ -68,14 +68,14 @@ declare class UDExSecondaryNavigation extends UI5Element {
|
|
|
68
68
|
* @slot breadcrumbs
|
|
69
69
|
* @public
|
|
70
70
|
*/
|
|
71
|
-
breadcrumbs:
|
|
71
|
+
breadcrumbs: Slot<HTMLElement>;
|
|
72
72
|
/**
|
|
73
73
|
* Slot for action buttons.
|
|
74
74
|
*
|
|
75
75
|
* @slot buttons
|
|
76
76
|
* @public
|
|
77
77
|
*/
|
|
78
|
-
buttons:
|
|
78
|
+
buttons: Slot<HTMLElement>;
|
|
79
79
|
/**
|
|
80
80
|
* Defines the heading of the component.
|
|
81
81
|
*
|
|
@@ -9,7 +9,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
12
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
13
13
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
14
14
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
15
15
|
import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecondaryNavigation.js","sourceRoot":"","sources":["../src/SecondaryNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Element 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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail } from \"./SecondaryNavigationItem.js\";\nimport UDExSecondaryNavigationItem from \"./SecondaryNavigationItem.js\";\nimport type UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport type UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\nimport SecondaryNavigationTemplate from \"./generated/templates/SecondaryNavigationTemplate.lit.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport SecondaryNavigationCss from \"./generated/themes/SecondaryNavigation.css.js\";\n\nconst canvasContentFont: string = \"16px / 17.6px '72 Brand Variable'\";\nconst rootClass = \"udex-secondary-navigation__root\";\n\ntype UDExSecondaryNavigationClickEventDetail = {\n originalEvent: Event,\n clickedItem: NavItem;\n clickedIndex: number;\n isMore?: boolean,\n isMobile?: boolean,\n analyticsName: AnalyticsName,\n analyticsPath: Array<string>,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationHeadingClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationMobileMenuOpenerClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\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-secondary-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-secondary-navigation\",\n renderer: litRender,\n styles: [SecondaryNavigationCss],\n template: SecondaryNavigationTemplate,\n dependencies: [UDExSecondaryNavigationItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {NavItem} clickedItem The clicked item\n * @param {number} clickedIndex The index of the clicked item\n * @param {boolean} isMobile Indicates whether the click happened on mobile\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n *\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with a secondary navigation heading\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the heading\n * @param {HTMLElement} sourceNode The source node of the heading\n *\n */\n@event(\"heading-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with the mobile menu opener\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu opener\n * @param {HTMLElement} sourceNode The source node of the mobile menu opener\n *\n */\n@event(\"mobile-menu-opener-click\", { cancelable: true, bubbles: true })\n\nclass UDExSecondaryNavigation extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExSecondaryNavigationClickEventDetail,\n \"heading-click\": UDExSecondaryNavigationHeadingClickEventDetail,\n \"mobile-menu-opener-click\": UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n };\n /**\n * Defines an aria label for the mobile menu opener\n *\n * @public\n */\n @property({ type: String })\n mobileMenuOpenerAriaLabel!: string;\n\n /**\n * List of the nav items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String })\n navItems: string = \"[]\";\n\n /**\n * Slot for breadcrumbs.\n *\n * @slot breadcrumbs\n * @public\n */\n @slot({ type: HTMLElement })\n breadcrumbs!: Array<HTMLElement>;\n\n /**\n * Slot for action buttons.\n *\n * @slot buttons\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Array<HTMLElement>;\n\n /**\n * Defines the heading of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n heading: string = \"\";\n\n /**\n * Defines the href of the heading.\n *\n * @default \"\"\n * @public\n */\n @property()\n headingHref: string = \"\";\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @public\n */\n @property({ type: String })\n maxDropdownHeight!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _selectedMore!: boolean;\n\n @property({ type: Object, noAttribute: true })\n _overflowItems: Array<NavItem> = [];\n\n @property({ type: Object, noAttribute: true })\n _visibleItems: Array<NavItem> = [];\n\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n @property({ type: Boolean, noAttribute: true })\n _mobileBtnExpanded = false;\n\n _navItems!: Array<NavItem>;\n _showMoreButton: boolean = true;\n _rootHolder!: HTMLElement | null | undefined;\n _clickedNavItem!: UDExSecondaryNavigationItem;\n _boundReflowItems: () => void;\n _prevSlottedButtons: HTMLElement | null = null;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._boundReflowItems = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n\n ResizeHandler.register(this, this._boundReflowItems);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._boundReflowItems);\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"navItems\") {\n this.reflowItems();\n }\n }\n\n onAfterRendering(): void {\n this._rootHolder = this.rootHolder;\n if (!this._overflowItems.length) {\n this._showMoreButton = true;\n }\n this.handleOutsideClick();\n this.syncButtonsResizeHandler();\n }\n\n syncButtonsResizeHandler(): void {\n const buttonsEl = this.optionalButtons || null;\n if (buttonsEl !== this._prevSlottedButtons) {\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n if (buttonsEl) {\n ResizeHandler.register(buttonsEl, this._boundReflowItems);\n } else {\n this.reflowItems();\n }\n this._prevSlottedButtons = buttonsEl;\n }\n }\n\n refreshRendering(): void {\n this._requestRender = !this._requestRender;\n }\n\n _handleResize() {\n this.reflowItems();\n if (this._clickedNavItem && this.isDesktopScreen) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n reflowItems(): void {\n const availableWidth = this.rootHolder.offsetWidth - (this.headingHolder?.offsetWidth || 0) - (this.optionalButtons?.offsetWidth || 0);\n const moreButtonWidth = this.getMoreButtonWidth();\n const itemsGap = 20;\n const widths = this.parsedItems.map(item => this.getItemWidth(item));\n const steps: Array<number> = [];\n\n widths?.forEach((itemWidth, index) => {\n steps.push((steps.at(-1) || 0) + itemWidth + (index && itemsGap));\n });\n\n if ((steps.at(-1) || 0) <= availableWidth) {\n this._visibleItems = [...this.parsedItems];\n this._showMoreButton = false;\n this.refreshRendering();\n return;\n }\n\n if (this.parsedItems) {\n // @ts-ignore\n const lastVisibleIndex: number = steps.findLastIndex((size: number) => size < (availableWidth - moreButtonWidth - itemsGap));\n this._visibleItems = this.parsedItems.slice(0, lastVisibleIndex + 1);\n this._overflowItems = this.parsedItems.slice(lastVisibleIndex + 1);\n this._showMoreButton = true;\n this.refreshRendering();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n const item = e.target as UDExSecondaryNavigationItem;\n\n if (isEscape(e) && item.hasNestedItems) {\n return item.closeDropdown();\n }\n }\n\n getItemWidth(item: NavItem): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n\n return Math.ceil(context.measureText(item.title).width);\n }\n\n getMoreButtonWidth(): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n\n return Math.ceil(context.measureText(this.moreButtonText).width);\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n handleItemClick(e: CustomEvent<UDExSecondaryNavigationItemClickEventDetail>): void {\n const { index, item, originalEvent: actualOriginalEvent } = e.detail;\n const clickedItem = item as UDExSecondaryNavigationItem;\n const {\n path, target, title, active, subItems, _id, mobileLinkTitle,\n } = clickedItem;\n\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, {\n path,\n target,\n title,\n active,\n mobileLinkTitle,\n items: subItems,\n }, this.getAnalyticsPath(title, path), title === this.moreButtonText);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n this._clickedNavItem = clickedItem;\n this.closePrevDropdown(_id);\n\n if (!subItems.length) {\n this.setActiveItem(this.parsedItems, clickedItem);\n }\n }\n\n handleSubItemClick(e: CustomEvent<UDExSecondaryNavigationItemSubItemClickEventDetail>): void {\n const { originalEvent: actualOriginalEvent, index } = e.detail;\n const item = e.detail.item as UDExSecondaryNavigationSubItem;\n const { items } = item as NavItem;\n const analyticsPath = this.getAnalyticsPath(item.title, item.path);\n const isMore = this._clickedNavItem?.title === this.moreButtonText;\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, item, analyticsPath, isMore);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n if (this.isMobileScreen && !items) {\n this.mobileNav.closeDropdown();\n }\n\n if (!items) {\n this.setActiveItem(this.parsedItems, item);\n this._clickedNavItem?.closeDropdown();\n }\n }\n\n handleHeadingClick(e: CustomEvent<UDExSecondaryNavigationHeadingClickEventDetail>): void {\n this.fireDecoratorEvent(\"heading-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n fireEventItemClick(\n e: PointerEvent | KeyboardEvent,\n clickedIndex: number,\n {\n items, target, path, title, active, mobileLinkTitle,\n }: NavItem,\n analyticsPath: Array<string> = [],\n isMore: boolean = false,\n ): boolean {\n return this.fireDecoratorEvent(\"item-click\", {\n ...(this.isMobileScreen && { isMobile: true }),\n ...(isMore && { isMore: true }),\n analyticsName: AnalyticsName.HeaderSub,\n analyticsPath,\n sourceNode: e?.currentTarget as HTMLElement,\n originalEvent: e,\n clickedItem: {\n mobileLinkTitle: mobileLinkTitle || \"\",\n path: path || \"\",\n active: active || false,\n items: items || [],\n target,\n title,\n },\n clickedIndex,\n });\n }\n\n getAnalyticsPath(clickedTitle: string, clickedPath?: string): Array<string> {\n const getLabel = (item: NavItem) => (this.isMobileScreen ? (item.mobileLinkTitle || item.title) : item.title);\n const findPath = (items: Array<NavItem>, parentPath: Array<string>): Array<string> | null => items.reduce<Array<string> | null>((found, item) => {\n if (found !== null) {\n return found;\n }\n if (item.title === clickedTitle && (!clickedPath || item.path === clickedPath)) {\n return [...parentPath, getLabel(item)];\n }\n if (item.items?.length) {\n return findPath(item.items, [...parentPath, getLabel(item)]);\n }\n return null;\n }, null);\n return findPath(this.parsedItems, []) || [];\n }\n\n setActiveItem(navItems: Array<NavItem>, clickedItem: UDExSecondaryNavigationItemBase): void {\n const updateNav = (items: Array<NavItem>, { title, path }: UDExSecondaryNavigationItemBase): boolean => {\n let hasActiveDescendant = false;\n\n items.forEach(item => {\n if (item.title === title && (item.path === path || !item.path)) {\n item.active = true;\n hasActiveDescendant = true;\n return;\n }\n\n if (item.items) {\n const childIsActive = updateNav(item.items, clickedItem);\n if (childIsActive) {\n item.active = true;\n hasActiveDescendant = true;\n } else {\n delete item.active;\n }\n } else {\n delete item.active;\n }\n });\n\n return hasActiveDescendant;\n };\n\n updateNav(navItems, clickedItem);\n this.navItems = JSON.stringify(navItems);\n }\n\n handleMobileMenuOpenerClick(e: CustomEvent): void {\n this.fireDecoratorEvent(\"mobile-menu-opener-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", this.outsideClickListener);\n }\n\n outsideClickListener = (e: MouseEvent): void => {\n if (this.isMobileScreen && !e.composedPath().includes(this)) {\n this.closeMobileDropdown();\n return;\n }\n\n if (this.isDesktopScreen) {\n this.handleDesktopDropdown(e);\n }\n };\n\n handleMobileButtonsClick(): void {\n this.closeMobileDropdown();\n }\n\n closeMobileDropdown(): void {\n this.mobileNav?.closeDropdown();\n }\n\n handleDesktopDropdown(e: MouseEvent): void {\n const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);\n if (!isClickedNavItem && this._clickedNavItem) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n closePrevDropdown(clickedItemId: string): void {\n this.domNavItems.forEach(item => {\n if (item.isOpen && item._id !== clickedItemId) {\n item.closeDropdown();\n }\n });\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationItem> {\n const items = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationItem>(\"[udex-secondary-navigation-item]\");\n return items ? Array.from(items) : [];\n }\n\n get rootHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__root\") : undefined)!;\n }\n\n get headingHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__heading\") : undefined)!;\n }\n\n get mobileNav(): UDExSecondaryNavigationItem {\n return (this.shadowRoot ? this.shadowRoot.querySelector<UDExSecondaryNavigationItem>(\".udex-secondary-navigation__mobile-nav\") : undefined)!;\n }\n\n get optionalButtons(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector<HTMLElement>(\".udex-secondary-navigation__buttons\");\n }\n\n get moreButtonText(): string {\n return translate(UDExSecondaryNavigation, MORE);\n }\n\n get parsedItems(): Array<NavItem> {\n return parseArrayFromString<NavItem>(this.navItems);\n }\n\n get visibleItems(): Array<NavItem> {\n return this.isDesktopScreen ? this._visibleItems : this.parsedItems;\n }\n\n get hasBreadcrumbsSlot(): boolean {\n return !!this.getSlottedNodes(\"breadcrumbs\").length && this.isDesktopScreen;\n }\n\n get rootClass(): string {\n return `${rootClass} ${this.hasBreadcrumbsSlot ? \"\" : `${rootClass}_centered`}`.trim();\n }\n\n get hasDesktopButtonsSlot(): boolean {\n return this.hasButtons && this.isDesktopScreen;\n }\n\n get hasMobileButtonsSlot(): boolean {\n return this.hasButtons && this.isMobileScreen;\n }\n\n get hasButtons(): boolean {\n return !!this.getSlottedNodes(\"buttons\").length;\n }\n\n get isDesktopScreen(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileScreen(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n}\n\nUDExSecondaryNavigation.define();\n\nexport default UDExSecondaryNavigation;\nexport type {\n UDExSecondaryNavigationClickEventDetail,\n UDExSecondaryNavigationHeadingClickEventDetail,\n UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SecondaryNavigation.js","sourceRoot":"","sources":["../src/SecondaryNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChangeInfo, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Element 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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail } from \"./SecondaryNavigationItem.js\";\nimport UDExSecondaryNavigationItem from \"./SecondaryNavigationItem.js\";\nimport type UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport type UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\nimport SecondaryNavigationTemplate from \"./generated/templates/SecondaryNavigationTemplate.lit.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport SecondaryNavigationCss from \"./generated/themes/SecondaryNavigation.css.js\";\n\nconst canvasContentFont: string = \"16px / 17.6px '72 Brand Variable'\";\nconst rootClass = \"udex-secondary-navigation__root\";\n\ntype UDExSecondaryNavigationClickEventDetail = {\n originalEvent: Event,\n clickedItem: NavItem;\n clickedIndex: number;\n isMore?: boolean,\n isMobile?: boolean,\n analyticsName: AnalyticsName,\n analyticsPath: Array<string>,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationHeadingClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationMobileMenuOpenerClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\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-secondary-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-secondary-navigation\",\n renderer: litRender,\n styles: [SecondaryNavigationCss],\n template: SecondaryNavigationTemplate,\n dependencies: [UDExSecondaryNavigationItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {NavItem} clickedItem The clicked item\n * @param {number} clickedIndex The index of the clicked item\n * @param {boolean} isMobile Indicates whether the click happened on mobile\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n *\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with a secondary navigation heading\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the heading\n * @param {HTMLElement} sourceNode The source node of the heading\n *\n */\n@event(\"heading-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with the mobile menu opener\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu opener\n * @param {HTMLElement} sourceNode The source node of the mobile menu opener\n *\n */\n@event(\"mobile-menu-opener-click\", { cancelable: true, bubbles: true })\n\nclass UDExSecondaryNavigation extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExSecondaryNavigationClickEventDetail,\n \"heading-click\": UDExSecondaryNavigationHeadingClickEventDetail,\n \"mobile-menu-opener-click\": UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n };\n /**\n * Defines an aria label for the mobile menu opener\n *\n * @public\n */\n @property({ type: String })\n mobileMenuOpenerAriaLabel!: string;\n\n /**\n * List of the nav items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String })\n navItems: string = \"[]\";\n\n /**\n * Slot for breadcrumbs.\n *\n * @slot breadcrumbs\n * @public\n */\n @slot({ type: HTMLElement })\n breadcrumbs!: Slot<HTMLElement>;\n\n /**\n * Slot for action buttons.\n *\n * @slot buttons\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Slot<HTMLElement>;\n\n /**\n * Defines the heading of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n heading: string = \"\";\n\n /**\n * Defines the href of the heading.\n *\n * @default \"\"\n * @public\n */\n @property()\n headingHref: string = \"\";\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @public\n */\n @property({ type: String })\n maxDropdownHeight!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _selectedMore!: boolean;\n\n @property({ type: Object, noAttribute: true })\n _overflowItems: Array<NavItem> = [];\n\n @property({ type: Object, noAttribute: true })\n _visibleItems: Array<NavItem> = [];\n\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n @property({ type: Boolean, noAttribute: true })\n _mobileBtnExpanded = false;\n\n _navItems!: Array<NavItem>;\n _showMoreButton: boolean = true;\n _rootHolder!: HTMLElement | null | undefined;\n _clickedNavItem!: UDExSecondaryNavigationItem;\n _boundReflowItems: () => void;\n _prevSlottedButtons: HTMLElement | null = null;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._boundReflowItems = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n\n ResizeHandler.register(this, this._boundReflowItems);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._boundReflowItems);\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"navItems\") {\n this.reflowItems();\n }\n }\n\n onAfterRendering(): void {\n this._rootHolder = this.rootHolder;\n if (!this._overflowItems.length) {\n this._showMoreButton = true;\n }\n this.handleOutsideClick();\n this.syncButtonsResizeHandler();\n }\n\n syncButtonsResizeHandler(): void {\n const buttonsEl = this.optionalButtons || null;\n if (buttonsEl !== this._prevSlottedButtons) {\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n if (buttonsEl) {\n ResizeHandler.register(buttonsEl, this._boundReflowItems);\n } else {\n this.reflowItems();\n }\n this._prevSlottedButtons = buttonsEl;\n }\n }\n\n refreshRendering(): void {\n this._requestRender = !this._requestRender;\n }\n\n _handleResize() {\n this.reflowItems();\n if (this._clickedNavItem && this.isDesktopScreen) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n reflowItems(): void {\n const availableWidth = this.rootHolder.offsetWidth - (this.headingHolder?.offsetWidth || 0) - (this.optionalButtons?.offsetWidth || 0);\n const moreButtonWidth = this.getMoreButtonWidth();\n const itemsGap = 20;\n const widths = this.parsedItems.map(item => this.getItemWidth(item));\n const steps: Array<number> = [];\n\n widths?.forEach((itemWidth, index) => {\n steps.push((steps.at(-1) || 0) + itemWidth + (index && itemsGap));\n });\n\n if ((steps.at(-1) || 0) <= availableWidth) {\n this._visibleItems = [...this.parsedItems];\n this._showMoreButton = false;\n this.refreshRendering();\n return;\n }\n\n if (this.parsedItems) {\n // @ts-ignore\n const lastVisibleIndex: number = steps.findLastIndex((size: number) => size < (availableWidth - moreButtonWidth - itemsGap));\n this._visibleItems = this.parsedItems.slice(0, lastVisibleIndex + 1);\n this._overflowItems = this.parsedItems.slice(lastVisibleIndex + 1);\n this._showMoreButton = true;\n this.refreshRendering();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n const item = e.target as UDExSecondaryNavigationItem;\n\n if (isEscape(e) && item.hasNestedItems) {\n return item.closeDropdown();\n }\n }\n\n getItemWidth(item: NavItem): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n\n return Math.ceil(context.measureText(item.title).width);\n }\n\n getMoreButtonWidth(): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n\n return Math.ceil(context.measureText(this.moreButtonText).width);\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n handleItemClick(e: CustomEvent<UDExSecondaryNavigationItemClickEventDetail>): void {\n const { index, item, originalEvent: actualOriginalEvent } = e.detail;\n const clickedItem = item as UDExSecondaryNavigationItem;\n const {\n path, target, title, active, subItems, _id, mobileLinkTitle,\n } = clickedItem;\n\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, {\n path,\n target,\n title,\n active,\n mobileLinkTitle,\n items: subItems,\n }, this.getAnalyticsPath(title, path), title === this.moreButtonText);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n this._clickedNavItem = clickedItem;\n this.closePrevDropdown(_id);\n\n if (!subItems.length) {\n this.setActiveItem(this.parsedItems, clickedItem);\n }\n }\n\n handleSubItemClick(e: CustomEvent<UDExSecondaryNavigationItemSubItemClickEventDetail>): void {\n const { originalEvent: actualOriginalEvent, index } = e.detail;\n const item = e.detail.item as UDExSecondaryNavigationSubItem;\n const { items } = item as NavItem;\n const analyticsPath = this.getAnalyticsPath(item.title, item.path);\n const isMore = this._clickedNavItem?.title === this.moreButtonText;\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, item, analyticsPath, isMore);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n if (this.isMobileScreen && !items) {\n this.mobileNav.closeDropdown();\n }\n\n if (!items) {\n this.setActiveItem(this.parsedItems, item);\n this._clickedNavItem?.closeDropdown();\n }\n }\n\n handleHeadingClick(e: CustomEvent<UDExSecondaryNavigationHeadingClickEventDetail>): void {\n this.fireDecoratorEvent(\"heading-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n fireEventItemClick(\n e: PointerEvent | KeyboardEvent,\n clickedIndex: number,\n {\n items, target, path, title, active, mobileLinkTitle,\n }: NavItem,\n analyticsPath: Array<string> = [],\n isMore: boolean = false,\n ): boolean {\n return this.fireDecoratorEvent(\"item-click\", {\n ...(this.isMobileScreen && { isMobile: true }),\n ...(isMore && { isMore: true }),\n analyticsName: AnalyticsName.HeaderSub,\n analyticsPath,\n sourceNode: e?.currentTarget as HTMLElement,\n originalEvent: e,\n clickedItem: {\n mobileLinkTitle: mobileLinkTitle || \"\",\n path: path || \"\",\n active: active || false,\n items: items || [],\n target,\n title,\n },\n clickedIndex,\n });\n }\n\n getAnalyticsPath(clickedTitle: string, clickedPath?: string): Array<string> {\n const getLabel = (item: NavItem) => (this.isMobileScreen ? (item.mobileLinkTitle || item.title) : item.title);\n const findPath = (items: Array<NavItem>, parentPath: Array<string>): Array<string> | null => items.reduce<Array<string> | null>((found, item) => {\n if (found !== null) {\n return found;\n }\n if (item.title === clickedTitle && (!clickedPath || item.path === clickedPath)) {\n return [...parentPath, getLabel(item)];\n }\n if (item.items?.length) {\n return findPath(item.items, [...parentPath, getLabel(item)]);\n }\n return null;\n }, null);\n return findPath(this.parsedItems, []) || [];\n }\n\n setActiveItem(navItems: Array<NavItem>, clickedItem: UDExSecondaryNavigationItemBase): void {\n const updateNav = (items: Array<NavItem>, { title, path }: UDExSecondaryNavigationItemBase): boolean => {\n let hasActiveDescendant = false;\n\n items.forEach(item => {\n if (item.title === title && (item.path === path || !item.path)) {\n item.active = true;\n hasActiveDescendant = true;\n return;\n }\n\n if (item.items) {\n const childIsActive = updateNav(item.items, clickedItem);\n if (childIsActive) {\n item.active = true;\n hasActiveDescendant = true;\n } else {\n delete item.active;\n }\n } else {\n delete item.active;\n }\n });\n\n return hasActiveDescendant;\n };\n\n updateNav(navItems, clickedItem);\n this.navItems = JSON.stringify(navItems);\n }\n\n handleMobileMenuOpenerClick(e: CustomEvent): void {\n this.fireDecoratorEvent(\"mobile-menu-opener-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", this.outsideClickListener);\n }\n\n outsideClickListener = (e: MouseEvent): void => {\n if (this.isMobileScreen && !e.composedPath().includes(this)) {\n this.closeMobileDropdown();\n return;\n }\n\n if (this.isDesktopScreen) {\n this.handleDesktopDropdown(e);\n }\n };\n\n handleMobileButtonsClick(): void {\n this.closeMobileDropdown();\n }\n\n closeMobileDropdown(): void {\n this.mobileNav?.closeDropdown();\n }\n\n handleDesktopDropdown(e: MouseEvent): void {\n const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);\n if (!isClickedNavItem && this._clickedNavItem) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n closePrevDropdown(clickedItemId: string): void {\n this.domNavItems.forEach(item => {\n if (item.isOpen && item._id !== clickedItemId) {\n item.closeDropdown();\n }\n });\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationItem> {\n const items = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationItem>(\"[udex-secondary-navigation-item]\");\n return items ? Array.from(items) : [];\n }\n\n get rootHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__root\") : undefined)!;\n }\n\n get headingHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__heading\") : undefined)!;\n }\n\n get mobileNav(): UDExSecondaryNavigationItem {\n return (this.shadowRoot ? this.shadowRoot.querySelector<UDExSecondaryNavigationItem>(\".udex-secondary-navigation__mobile-nav\") : undefined)!;\n }\n\n get optionalButtons(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector<HTMLElement>(\".udex-secondary-navigation__buttons\");\n }\n\n get moreButtonText(): string {\n return translate(UDExSecondaryNavigation, MORE);\n }\n\n get parsedItems(): Array<NavItem> {\n return parseArrayFromString<NavItem>(this.navItems);\n }\n\n get visibleItems(): Array<NavItem> {\n return this.isDesktopScreen ? this._visibleItems : this.parsedItems;\n }\n\n get hasBreadcrumbsSlot(): boolean {\n return !!this.getSlottedNodes(\"breadcrumbs\").length && this.isDesktopScreen;\n }\n\n get rootClass(): string {\n return `${rootClass} ${this.hasBreadcrumbsSlot ? \"\" : `${rootClass}_centered`}`.trim();\n }\n\n get hasDesktopButtonsSlot(): boolean {\n return this.hasButtons && this.isDesktopScreen;\n }\n\n get hasMobileButtonsSlot(): boolean {\n return this.hasButtons && this.isMobileScreen;\n }\n\n get hasButtons(): boolean {\n return !!this.getSlottedNodes(\"buttons\").length;\n }\n\n get isDesktopScreen(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileScreen(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n}\n\nUDExSecondaryNavigation.define();\n\nexport default UDExSecondaryNavigation;\nexport type {\n UDExSecondaryNavigationClickEventDetail,\n UDExSecondaryNavigationHeadingClickEventDetail,\n UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n};\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
1
2
|
import type { RelativeValue } from "./utils/parseRelativeUnits.js";
|
|
2
3
|
import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
|
|
3
4
|
import type { NavItem } from "./SecondaryNavigationItemBase.js";
|
|
@@ -54,7 +55,7 @@ declare class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBas
|
|
|
54
55
|
* @slot content
|
|
55
56
|
* @public
|
|
56
57
|
*/
|
|
57
|
-
buttons:
|
|
58
|
+
buttons: Slot<HTMLElement>;
|
|
58
59
|
/**
|
|
59
60
|
* List of the sub items
|
|
60
61
|
*
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
8
8
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
9
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
9
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
10
10
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
11
11
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
12
12
|
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecondaryNavigationItem.js","sourceRoot":"","sources":["../src/SecondaryNavigationItem.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport {\n isEscape, isEnter, isSpace, isLeft, isRight, isUp, isDown, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { RelativeValue } from \"./utils/parseRelativeUnits.js\";\nimport parseRelativeUnits from \"./utils/parseRelativeUnits.js\";\nimport UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SecondaryNavigationItemTemplate from \"./generated/templates/SecondaryNavigationItemTemplate.lit.js\";\n\n// Styles\nimport SecondaryNavigationItemCss from \"./generated/themes/SecondaryNavigationItem.css.js\";\n\nconst DESKTOP_DROPDOWN_BOTTOM_GAP = 24;\n\ntype UDExSecondaryNavigationItemClickEventDetail = {\n item: HTMLElement,\n index: number,\n originalEvent: PointerEvent | KeyboardEvent\n};\n\ntype UDExSecondaryNavigationItemSubItemClickEventDetail = {\n item: NavItem,\n index: number,\n originalEvent: PointerEvent | KeyboardEvent\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-secondary-navigation-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigationItem.js\";</code>\n *\n * @constructor\n * @extends UDExSecondaryNavigationItemBase\n * @tagname udex-secondary-navigation-item\n * @private\n */\n@customElement({\n tag: \"udex-secondary-navigation-item\",\n renderer: litRender,\n styles: [SecondaryNavigationItemCss],\n template: SecondaryNavigationItemTemplate,\n dependencies: [UI5Icon, UDExSecondaryNavigationSubItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent the original event object\n * @param {HTMLElement} item the clicked item\n * @param {number} index the index of the clicked item\n */\n@event(\"nav-item-click\", { bubbles: true, cancelable: true })\n\n/**\n * Fires when dropdown item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent the original event object\n * @param {NavItem} item the clicked sub item\n * @param {number} index the index of the clicked sub item\n */\n@event(\"sub-item-click\", { bubbles: true, cancelable: true })\n\nclass UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {\n eventDetails!: {\n \"nav-item-click\": UDExSecondaryNavigationItemClickEventDetail,\n \"sub-item-click\": UDExSecondaryNavigationItemSubItemClickEventDetail,\n };\n /**\n * Defines an aria label for item\n *\n * @public\n */\n @property({ type: String })\n ariaLabel!: string;\n\n /**\n * Defines a role for item\n *\n * @public\n */\n @property({ type: String })\n role!: string;\n\n /**\n * Defines the content of the item.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Array<HTMLElement>;\n\n /**\n * List of the sub items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: Object })\n subItems: Array<NavItem> = [];\n\n /**\n * Defines if dropdown is opened.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n isOpen: boolean = false;\n\n /**\n * Defines the length of items in the secondary navigation.\n *\n * @private\n */\n @property({ type: Number })\n _navItemsLength!: number;\n\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @private\n */\n @property({ type: String })\n _maxHeight!: RelativeValue;\n\n /**\n * Defines processed items.\n *\n * @private\n * @default []\n */\n @property({ type: Object })\n _processedItems: Array<NavItem> = [];\n\n /**\n * Defines if item is mobile menu opener.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _isMobileMenuOpener!: boolean;\n\n _dropdownHistory: Array<Array<NavItem>> = [];\n _shouldFocusFirstSubItem!: boolean;\n _subTitle!: string | undefined;\n\n onAfterRendering(): void {\n if (this.isLastItem && this.isOpen && !this._isMobileView) {\n this.setDropdownHorizontalAlign();\n }\n\n if (this._shouldFocusFirstSubItem && this.isOpen) {\n this.onFirstSubItemFocus();\n this._shouldFocusFirstSubItem = false;\n }\n\n if (this.isOpen) {\n if (this._isMobileView) {\n this.setMobileDropdownMaxHeight();\n } else {\n this.setDesktopDropdownMaxHeight();\n }\n }\n }\n\n onBeforeRendering() : void {\n this._subTitle = this.subActiveItemTitle || this._subTitle;\n }\n\n _handleWindowResize = (): void => {\n if (!this.isOpen) { return; }\n\n if (this._isMobileView) {\n this.setMobileDropdownMaxHeight();\n } else {\n this.setDesktopDropdownMaxHeight();\n }\n };\n\n onEnterDOM(): void {\n super.onEnterDOM();\n window.addEventListener(\"resize\", this._handleWindowResize);\n }\n\n onExitDOM(): void {\n super.onExitDOM();\n window.removeEventListener(\"resize\", this._handleWindowResize);\n }\n\n handleSubItemClick(e: CustomEvent | KeyboardEvent): void {\n const originalEvent: PointerEvent | KeyboardEvent = (e instanceof CustomEvent && e.detail?.originalEvent) ? e.detail.originalEvent : e as KeyboardEvent;\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const clickedItem = this._processedItems[index];\n\n if (clickedItem.items) {\n this.setDropdownHistory();\n this.setNestedItems(clickedItem);\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireSubItemClickEvent(originalEvent, clickedItem, index);\n }\n\n onBackClick(): void {\n this.setPrevNestedItems();\n }\n\n openDropdown(e: PointerEvent | KeyboardEvent): void {\n if (this.hasNestedItems) {\n this.setDropdownItems();\n this.isOpen = !this.isOpen;\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireNavItemClickEvent(e);\n }\n\n closeDropdown(): void {\n this.isOpen = false;\n }\n\n handleItemLinkKeyDown(e: KeyboardEvent): void {\n if (isSpace(e)) {\n this.fireNavItemClickEvent(e);\n }\n }\n\n handleItemEnterOrSpaceKeys(e: KeyboardEvent): void {\n if (isEnter(e) || isSpace(e)) {\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleSubItemKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isEscape(e)) {\n this.handleEscapeKey();\n }\n if (isLeft(e)) {\n this.handleLeftArrow(e);\n }\n if (isRight(e)) {\n this.handleRightArrow(e);\n }\n if (isUp(e)) {\n e.preventDefault();\n this.handleUpArrow(e);\n }\n if (isDown(e)) {\n e.preventDefault();\n this.handleDownArrow(e);\n }\n if (isHome(e)) {\n e.preventDefault();\n this.onFirstSubItemFocus();\n }\n if (isEnd(e)) {\n e.preventDefault();\n this.onLastSubItemFocus();\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.handleEnterAndSpace(e);\n }\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n if (isTabNext(e) && index === this.domNavItems.length - 1) {\n this.closeDropdown();\n }\n if (isTabPrevious(e) && index === 0) {\n this.closeDropdown();\n }\n }\n\n handleButtonsEscKey(e: KeyboardEvent): void {\n if (isEscape(e) && this._isMobileView) {\n this.handleEscapeKey();\n }\n }\n\n handleEnterAndSpace(e: KeyboardEvent): void {\n const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.onBackClick();\n this.onShouldFocusFirstSubItem();\n return;\n }\n\n this.handleSubItemClick(e);\n\n if (hasItems) {\n this.onShouldFocusFirstSubItem();\n } else {\n this.closeDropdown();\n this.focus();\n }\n }\n\n handleEscapeKey(): void {\n this.closeDropdown();\n this.focus();\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const lastIndex = this.domNavItems.length - 1;\n const previousIndex = index - 1 < 0 ? lastIndex : index - 1;\n this.domNavItems[previousIndex].focus();\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const nextIndex = index + 1 > this.domNavItems.length - 1 ? 0 : index + 1;\n this.domNavItems[nextIndex].focus();\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n const { isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.setPrevNestedItems();\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n const { hasItems, isBack, index } = e.target as UDExSecondaryNavigationSubItem;\n if (hasItems && !isBack) {\n const clickedItem = this._processedItems[index];\n this.setDropdownHistory();\n this.setNestedItems(clickedItem);\n this.onShouldFocusFirstSubItem();\n }\n }\n\n onLastSubItemFocus(): void {\n this.domNavItems[this.domNavItems.length - 1].focus();\n }\n\n fireNavItemClickEvent(e: PointerEvent | KeyboardEvent): void {\n this.fireDecoratorEvent(\"nav-item-click\", {\n item: this,\n index: this.index,\n originalEvent: e,\n });\n }\n\n fireSubItemClickEvent(e: PointerEvent | KeyboardEvent, clickedItem: NavItem, index: number): void {\n this.fireDecoratorEvent(\"sub-item-click\", {\n item: clickedItem,\n index,\n originalEvent: e,\n });\n }\n\n setDropdownHistory(): void {\n this._dropdownHistory.push(this._processedItems);\n }\n\n setPrevNestedItems(): void {\n this._processedItems = this._dropdownHistory.pop()!;\n }\n\n setNestedItems({ title, items, mobileLinkTitle } : NavItem): void {\n if (items) {\n this._processedItems = [{ title, mobileLinkTitle, isBack: true }, ...items];\n }\n }\n\n setDropdownItems(): void {\n this._processedItems = this.subItems;\n }\n\n setDesktopDropdownMaxHeight(): void {\n const { top } = this.dropdown.getBoundingClientRect();\n const maxHeight = window.innerHeight - top - DESKTOP_DROPDOWN_BOTTOM_GAP;\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-desktop-max-height\", `${maxHeight}px`);\n }\n\n setMobileDropdownMaxHeight(): void {\n if (!this._maxHeight || this._dropdownMaxHeightExceeds || !this.heightSatisfiesType) {\n const secondaryNavigationMobileTrigger = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!;\n const maxDropdownHeight = window.innerHeight - secondaryNavigationMobileTrigger.clientHeight;\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-mobile-max-height\", `${maxDropdownHeight}px`);\n return;\n }\n\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-mobile-max-height\", `${this._maxHeight}`);\n }\n\n get _dropdownMaxHeightExceeds(): boolean {\n const normalizedHeight = parseRelativeUnits(this._maxHeight, this.dropdown);\n const secondaryNavigationMobileTriggerHeight = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!.clientHeight;\n return normalizedHeight >= window.innerHeight - secondaryNavigationMobileTriggerHeight;\n }\n\n get heightSatisfiesType(): boolean {\n return /vh|vw|%|em|rem|px/.test(this._maxHeight);\n }\n\n setDropdownHorizontalAlign(): void {\n const { right, left } = this.dropdown.getBoundingClientRect();\n\n if (right > window.innerWidth) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"right\");\n }\n\n if (left < 0) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"left\");\n }\n }\n\n onFirstSubItemFocus(): void {\n this.domNavItems[0]?.focus();\n }\n\n onShouldFocusFirstSubItem(): void {\n this._shouldFocusFirstSubItem = true;\n }\n\n get dropdown(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-secondary-navigation__dropdown\")!;\n }\n\n get isLastItem(): boolean {\n return this._navItemsLength === this.index;\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationSubItem> {\n const domNavItems = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationSubItem>(\"[udex-secondary-navigation-sub-item]\");\n return domNavItems ? Array.from(domNavItems) : [];\n }\n\n get hasNestedItems(): boolean {\n return this.subItems.length > 0;\n }\n\n get isSubItemActive(): boolean {\n return !!this.subActiveItem?.active;\n }\n\n get isActive(): boolean {\n return this.isSubItemActive || this.active;\n }\n\n get subActiveItemTitle(): string | undefined {\n if (this.subActiveItem) {\n const { title, mobileLinkTitle } = this.subActiveItem;\n return this._isMobileView ? (mobileLinkTitle || title) : title;\n }\n }\n\n get subActiveItem(): NavItem | undefined {\n return this.getActiveSubItem(this.subItems);\n }\n\n get isLink(): boolean {\n return !this.hasNestedItems && !!this.path;\n }\n\n get title(): string {\n return this.label;\n }\n}\n\nUDExSecondaryNavigationItem.define();\n\nexport default UDExSecondaryNavigationItem;\nexport type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"SecondaryNavigationItem.js","sourceRoot":"","sources":["../src/SecondaryNavigationItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAE1E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,EACL,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,GACnG,MAAM,sCAAsC,CAAC;AAE9C,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,8BAA8B,MAAM,iCAAiC,CAAC;AAE7E,OAAO,+BAA+B,MAAM,kCAAkC,CAAC;AAC/E,OAAO,kDAAkD,CAAC;AAE1D,OAAO,+BAA+B,MAAM,8DAA8D,CAAC;AAE3G,SAAS;AACT,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAE3F,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAcvC;;;;;;;;;;;;;;;;;GAiBG;AA+BH,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,+BAA+B;IAAzE;;QA8BE;;;;;WAKG;QAED,aAAQ,GAAmB,EAAE,CAAC;QAEhC;;;;;WAKG;QAED,WAAM,GAAY,KAAK,CAAC;QAkB1B;;;;;WAKG;QAED,oBAAe,GAAmB,EAAE,CAAC;QAWvC,qBAAgB,GAA0B,EAAE,CAAC;QA2B7C,wBAAmB,GAAG,GAAS,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE7B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;IA4RJ,CAAC;IA3TC,gBAAgB;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC;IAC7D,CAAC;IAYD,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjE,CAAC;IAED,kBAAkB,CAAC,CAA8B;QAC/C,MAAM,aAAa,GAAiC,CAAC,CAAC,YAAY,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAkB,CAAC;QACxJ,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,CAA+B;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACpC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,0BAA0B,CAAC,CAAgB;QACzC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,CAAgB;QACnC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC7D,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,CAAgB;QAClC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,CAAgB;QAClC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QACxE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC7D,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAC/B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC/E,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,qBAAqB,CAAC,CAA+B;QACnD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;YACxC,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,CAA+B,EAAE,WAAoB,EAAE,KAAa;QACxF,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;YACxC,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAG,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAY;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,2BAA2B;QACzB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,2BAA2B,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,8DAA8D,EAAE,GAAG,SAAS,IAAI,CAAC,CAAC;IAC3G,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpF,MAAM,gCAAgC,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,kCAAkC,CAAE,CAAC;YAC7G,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,GAAG,gCAAgC,CAAC,YAAY,CAAC;YAC7F,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6DAA6D,EAAE,GAAG,iBAAiB,IAAI,CAAC,CAAC;YAChH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6DAA6D,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,IAAI,yBAAyB;QAC3B,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,MAAM,sCAAsC,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,kCAAkC,CAAE,CAAC,YAAY,CAAC;QAChI,OAAO,gBAAgB,IAAI,MAAM,CAAC,WAAW,GAAG,sCAAsC,CAAC;IACzF,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,0BAA0B;QACxB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAE9D,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,sCAAsC,CAAE,CAAC;IAC9F,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED,IAAI,WAAW;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAiC,sCAAsC,CAAC,CAAC;QAC9H,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACtD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF,CAAA;AAtYG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACN;AAQnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACX;AASd;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;4DACE;AAS5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DACK;AAS9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2DACF;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oEACA;AAQzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DACE;AAS3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oEACY;AASrC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wEACI;AAhF5B,2BAA2B;IA9BhC,aAAa,CAAC;QACb,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,0BAA0B,CAAC;QACpC,QAAQ,EAAE,+BAA+B;QACzC,YAAY,EAAE,CAAC,OAAO,EAAE,8BAA8B,CAAC;KACxD,CAAC;IAEF;;;;;;;;OAQG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAE7D;;;;;;;;OAQG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GAEvD,2BAA2B,CAiZhC;AAED,2BAA2B,CAAC,MAAM,EAAE,CAAC;AAErC,eAAe,2BAA2B,CAAC","sourcesContent":["import 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-strict.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport {\n isEscape, isEnter, isSpace, isLeft, isRight, isUp, isDown, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { RelativeValue } from \"./utils/parseRelativeUnits.js\";\nimport parseRelativeUnits from \"./utils/parseRelativeUnits.js\";\nimport UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SecondaryNavigationItemTemplate from \"./generated/templates/SecondaryNavigationItemTemplate.lit.js\";\n\n// Styles\nimport SecondaryNavigationItemCss from \"./generated/themes/SecondaryNavigationItem.css.js\";\n\nconst DESKTOP_DROPDOWN_BOTTOM_GAP = 24;\n\ntype UDExSecondaryNavigationItemClickEventDetail = {\n item: HTMLElement,\n index: number,\n originalEvent: PointerEvent | KeyboardEvent\n};\n\ntype UDExSecondaryNavigationItemSubItemClickEventDetail = {\n item: NavItem,\n index: number,\n originalEvent: PointerEvent | KeyboardEvent\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-secondary-navigation-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigationItem.js\";</code>\n *\n * @constructor\n * @extends UDExSecondaryNavigationItemBase\n * @tagname udex-secondary-navigation-item\n * @private\n */\n@customElement({\n tag: \"udex-secondary-navigation-item\",\n renderer: litRender,\n styles: [SecondaryNavigationItemCss],\n template: SecondaryNavigationItemTemplate,\n dependencies: [UI5Icon, UDExSecondaryNavigationSubItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent the original event object\n * @param {HTMLElement} item the clicked item\n * @param {number} index the index of the clicked item\n */\n@event(\"nav-item-click\", { bubbles: true, cancelable: true })\n\n/**\n * Fires when dropdown item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent the original event object\n * @param {NavItem} item the clicked sub item\n * @param {number} index the index of the clicked sub item\n */\n@event(\"sub-item-click\", { bubbles: true, cancelable: true })\n\nclass UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {\n eventDetails!: {\n \"nav-item-click\": UDExSecondaryNavigationItemClickEventDetail,\n \"sub-item-click\": UDExSecondaryNavigationItemSubItemClickEventDetail,\n };\n /**\n * Defines an aria label for item\n *\n * @public\n */\n @property({ type: String })\n ariaLabel!: string;\n\n /**\n * Defines a role for item\n *\n * @public\n */\n @property({ type: String })\n role!: string;\n\n /**\n * Defines the content of the item.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Slot<HTMLElement>;\n\n /**\n * List of the sub items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: Object })\n subItems: Array<NavItem> = [];\n\n /**\n * Defines if dropdown is opened.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n isOpen: boolean = false;\n\n /**\n * Defines the length of items in the secondary navigation.\n *\n * @private\n */\n @property({ type: Number })\n _navItemsLength!: number;\n\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @private\n */\n @property({ type: String })\n _maxHeight!: RelativeValue;\n\n /**\n * Defines processed items.\n *\n * @private\n * @default []\n */\n @property({ type: Object })\n _processedItems: Array<NavItem> = [];\n\n /**\n * Defines if item is mobile menu opener.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _isMobileMenuOpener!: boolean;\n\n _dropdownHistory: Array<Array<NavItem>> = [];\n _shouldFocusFirstSubItem!: boolean;\n _subTitle!: string | undefined;\n\n onAfterRendering(): void {\n if (this.isLastItem && this.isOpen && !this._isMobileView) {\n this.setDropdownHorizontalAlign();\n }\n\n if (this._shouldFocusFirstSubItem && this.isOpen) {\n this.onFirstSubItemFocus();\n this._shouldFocusFirstSubItem = false;\n }\n\n if (this.isOpen) {\n if (this._isMobileView) {\n this.setMobileDropdownMaxHeight();\n } else {\n this.setDesktopDropdownMaxHeight();\n }\n }\n }\n\n onBeforeRendering() : void {\n this._subTitle = this.subActiveItemTitle || this._subTitle;\n }\n\n _handleWindowResize = (): void => {\n if (!this.isOpen) { return; }\n\n if (this._isMobileView) {\n this.setMobileDropdownMaxHeight();\n } else {\n this.setDesktopDropdownMaxHeight();\n }\n };\n\n onEnterDOM(): void {\n super.onEnterDOM();\n window.addEventListener(\"resize\", this._handleWindowResize);\n }\n\n onExitDOM(): void {\n super.onExitDOM();\n window.removeEventListener(\"resize\", this._handleWindowResize);\n }\n\n handleSubItemClick(e: CustomEvent | KeyboardEvent): void {\n const originalEvent: PointerEvent | KeyboardEvent = (e instanceof CustomEvent && e.detail?.originalEvent) ? e.detail.originalEvent : e as KeyboardEvent;\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const clickedItem = this._processedItems[index];\n\n if (clickedItem.items) {\n this.setDropdownHistory();\n this.setNestedItems(clickedItem);\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireSubItemClickEvent(originalEvent, clickedItem, index);\n }\n\n onBackClick(): void {\n this.setPrevNestedItems();\n }\n\n openDropdown(e: PointerEvent | KeyboardEvent): void {\n if (this.hasNestedItems) {\n this.setDropdownItems();\n this.isOpen = !this.isOpen;\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireNavItemClickEvent(e);\n }\n\n closeDropdown(): void {\n this.isOpen = false;\n }\n\n handleItemLinkKeyDown(e: KeyboardEvent): void {\n if (isSpace(e)) {\n this.fireNavItemClickEvent(e);\n }\n }\n\n handleItemEnterOrSpaceKeys(e: KeyboardEvent): void {\n if (isEnter(e) || isSpace(e)) {\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleSubItemKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isEscape(e)) {\n this.handleEscapeKey();\n }\n if (isLeft(e)) {\n this.handleLeftArrow(e);\n }\n if (isRight(e)) {\n this.handleRightArrow(e);\n }\n if (isUp(e)) {\n e.preventDefault();\n this.handleUpArrow(e);\n }\n if (isDown(e)) {\n e.preventDefault();\n this.handleDownArrow(e);\n }\n if (isHome(e)) {\n e.preventDefault();\n this.onFirstSubItemFocus();\n }\n if (isEnd(e)) {\n e.preventDefault();\n this.onLastSubItemFocus();\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.handleEnterAndSpace(e);\n }\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n if (isTabNext(e) && index === this.domNavItems.length - 1) {\n this.closeDropdown();\n }\n if (isTabPrevious(e) && index === 0) {\n this.closeDropdown();\n }\n }\n\n handleButtonsEscKey(e: KeyboardEvent): void {\n if (isEscape(e) && this._isMobileView) {\n this.handleEscapeKey();\n }\n }\n\n handleEnterAndSpace(e: KeyboardEvent): void {\n const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.onBackClick();\n this.onShouldFocusFirstSubItem();\n return;\n }\n\n this.handleSubItemClick(e);\n\n if (hasItems) {\n this.onShouldFocusFirstSubItem();\n } else {\n this.closeDropdown();\n this.focus();\n }\n }\n\n handleEscapeKey(): void {\n this.closeDropdown();\n this.focus();\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const lastIndex = this.domNavItems.length - 1;\n const previousIndex = index - 1 < 0 ? lastIndex : index - 1;\n this.domNavItems[previousIndex].focus();\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const nextIndex = index + 1 > this.domNavItems.length - 1 ? 0 : index + 1;\n this.domNavItems[nextIndex].focus();\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n const { isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.setPrevNestedItems();\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n const { hasItems, isBack, index } = e.target as UDExSecondaryNavigationSubItem;\n if (hasItems && !isBack) {\n const clickedItem = this._processedItems[index];\n this.setDropdownHistory();\n this.setNestedItems(clickedItem);\n this.onShouldFocusFirstSubItem();\n }\n }\n\n onLastSubItemFocus(): void {\n this.domNavItems[this.domNavItems.length - 1].focus();\n }\n\n fireNavItemClickEvent(e: PointerEvent | KeyboardEvent): void {\n this.fireDecoratorEvent(\"nav-item-click\", {\n item: this,\n index: this.index,\n originalEvent: e,\n });\n }\n\n fireSubItemClickEvent(e: PointerEvent | KeyboardEvent, clickedItem: NavItem, index: number): void {\n this.fireDecoratorEvent(\"sub-item-click\", {\n item: clickedItem,\n index,\n originalEvent: e,\n });\n }\n\n setDropdownHistory(): void {\n this._dropdownHistory.push(this._processedItems);\n }\n\n setPrevNestedItems(): void {\n this._processedItems = this._dropdownHistory.pop()!;\n }\n\n setNestedItems({ title, items, mobileLinkTitle } : NavItem): void {\n if (items) {\n this._processedItems = [{ title, mobileLinkTitle, isBack: true }, ...items];\n }\n }\n\n setDropdownItems(): void {\n this._processedItems = this.subItems;\n }\n\n setDesktopDropdownMaxHeight(): void {\n const { top } = this.dropdown.getBoundingClientRect();\n const maxHeight = window.innerHeight - top - DESKTOP_DROPDOWN_BOTTOM_GAP;\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-desktop-max-height\", `${maxHeight}px`);\n }\n\n setMobileDropdownMaxHeight(): void {\n if (!this._maxHeight || this._dropdownMaxHeightExceeds || !this.heightSatisfiesType) {\n const secondaryNavigationMobileTrigger = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!;\n const maxDropdownHeight = window.innerHeight - secondaryNavigationMobileTrigger.clientHeight;\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-mobile-max-height\", `${maxDropdownHeight}px`);\n return;\n }\n\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-mobile-max-height\", `${this._maxHeight}`);\n }\n\n get _dropdownMaxHeightExceeds(): boolean {\n const normalizedHeight = parseRelativeUnits(this._maxHeight, this.dropdown);\n const secondaryNavigationMobileTriggerHeight = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!.clientHeight;\n return normalizedHeight >= window.innerHeight - secondaryNavigationMobileTriggerHeight;\n }\n\n get heightSatisfiesType(): boolean {\n return /vh|vw|%|em|rem|px/.test(this._maxHeight);\n }\n\n setDropdownHorizontalAlign(): void {\n const { right, left } = this.dropdown.getBoundingClientRect();\n\n if (right > window.innerWidth) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"right\");\n }\n\n if (left < 0) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"left\");\n }\n }\n\n onFirstSubItemFocus(): void {\n this.domNavItems[0]?.focus();\n }\n\n onShouldFocusFirstSubItem(): void {\n this._shouldFocusFirstSubItem = true;\n }\n\n get dropdown(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-secondary-navigation__dropdown\")!;\n }\n\n get isLastItem(): boolean {\n return this._navItemsLength === this.index;\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationSubItem> {\n const domNavItems = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationSubItem>(\"[udex-secondary-navigation-sub-item]\");\n return domNavItems ? Array.from(domNavItems) : [];\n }\n\n get hasNestedItems(): boolean {\n return this.subItems.length > 0;\n }\n\n get isSubItemActive(): boolean {\n return !!this.subActiveItem?.active;\n }\n\n get isActive(): boolean {\n return this.isSubItemActive || this.active;\n }\n\n get subActiveItemTitle(): string | undefined {\n if (this.subActiveItem) {\n const { title, mobileLinkTitle } = this.subActiveItem;\n return this._isMobileView ? (mobileLinkTitle || title) : title;\n }\n }\n\n get subActiveItem(): NavItem | undefined {\n return this.getActiveSubItem(this.subItems);\n }\n\n get isLink(): boolean {\n return !this.hasNestedItems && !!this.path;\n }\n\n get title(): string {\n return this.label;\n }\n}\n\nUDExSecondaryNavigationItem.define();\n\nexport default UDExSecondaryNavigationItem;\nexport type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail };\n"]}
|
package/dist/SelectBase.js
CHANGED
|
@@ -994,7 +994,7 @@ class UDExSelectBase extends UDExSearchableListBase {
|
|
|
994
994
|
return `${this._id}_${this._dropdownClass}`;
|
|
995
995
|
}
|
|
996
996
|
get listboxRole() {
|
|
997
|
-
return this._listBoxRole;
|
|
997
|
+
return this.isTreeStructure ? "tree" : this._listBoxRole;
|
|
998
998
|
}
|
|
999
999
|
get listAriaControlsId() {
|
|
1000
1000
|
return this._list?.id || this.popoverId;
|